19
19
import subprocess
20
20
import sys
21
21
import time
22
+ from datetime import datetime
22
23
from http .client import IncompleteRead
23
24
from urllib .error import HTTPError , URLError
24
25
from urllib .parse import quote as urlquote
25
26
from urllib .parse import urlencode , urlparse
26
27
from urllib .request import HTTPRedirectHandler , Request , build_opener , urlopen
27
- from datetime import datetime
28
28
29
29
try :
30
30
from . import __version__
40
40
https_ctx = ssl .create_default_context ()
41
41
if not https_ctx .get_ca_certs ():
42
42
import warnings
43
- warnings .warn ('\n \n YOUR DEFAULT CA CERTS ARE EMPTY.\n ' +
44
- 'PLEASE POPULATE ANY OF:' +
45
- '' .join ([
46
- '\n - ' + x
47
- for x in ssl .get_default_verify_paths ()
48
- if type (x ) is str
49
- ]) + '\n ' , stacklevel = 2 )
43
+
44
+ warnings .warn (
45
+ "\n \n YOUR DEFAULT CA CERTS ARE EMPTY.\n "
46
+ + "PLEASE POPULATE ANY OF:"
47
+ + "" .join (
48
+ ["\n - " + x for x in ssl .get_default_verify_paths () if type (x ) is str ]
49
+ )
50
+ + "\n " ,
51
+ stacklevel = 2 ,
52
+ )
50
53
import certifi
54
+
51
55
https_ctx = ssl .create_default_context (cafile = certifi .where ())
52
56
57
+
53
58
def logging_subprocess (
54
59
popenargs , stdout_log_level = logging .DEBUG , stderr_log_level = logging .ERROR , ** kwargs
55
60
):
@@ -524,7 +529,7 @@ def get_github_host(args):
524
529
525
530
526
531
def read_file_contents (file_uri ):
527
- return open (file_uri [len (FILE_URI_PREFIX ):], "rt" ).readline ().strip ()
532
+ return open (file_uri [len (FILE_URI_PREFIX ) :], "rt" ).readline ().strip ()
528
533
529
534
530
535
def get_github_repo_url (args , repository ):
@@ -795,13 +800,15 @@ def download_file(url, path, auth, as_app=False, fine=False):
795
800
if os .path .exists (path ):
796
801
return
797
802
798
- request = _construct_request (per_page = 100 ,
799
- page = 1 ,
800
- query_args = {},
801
- template = url ,
802
- auth = auth ,
803
- as_app = as_app ,
804
- fine = fine )
803
+ request = _construct_request (
804
+ per_page = 100 ,
805
+ page = 1 ,
806
+ query_args = {},
807
+ template = url ,
808
+ auth = auth ,
809
+ as_app = as_app ,
810
+ fine = fine ,
811
+ )
805
812
request .add_header ("Accept" , "application/octet-stream" )
806
813
opener = build_opener (S3HTTPRedirectHandler )
807
814
@@ -944,11 +951,15 @@ def filter_repositories(args, unfiltered_repositories):
944
951
if r .get ("language" ) and r .get ("language" ).lower () in languages
945
952
] # noqa
946
953
if name_regex :
947
- repositories = [r for r in repositories if "name" not in r or name_regex .match (r ["name" ])]
954
+ repositories = [
955
+ r for r in repositories if "name" not in r or name_regex .match (r ["name" ])
956
+ ]
948
957
if args .skip_archived :
949
958
repositories = [r for r in repositories if not r .get ("archived" )]
950
959
if args .exclude :
951
- repositories = [r for r in repositories if "name" not in r or r ["name" ] not in args .exclude ]
960
+ repositories = [
961
+ r for r in repositories if "name" not in r or r ["name" ] not in args .exclude
962
+ ]
952
963
953
964
return repositories
954
965
@@ -1244,10 +1255,16 @@ def backup_releases(args, repo_cwd, repository, repos_template, include_assets=F
1244
1255
if args .skip_prerelease :
1245
1256
releases = [r for r in releases if not r ["prerelease" ] and not r ["draft" ]]
1246
1257
1247
- if args .number_of_latest_releases and args .number_of_latest_releases < len (releases ):
1248
- releases .sort (key = lambda item : datetime .strptime (item ["created_at" ], "%Y-%m-%dT%H:%M:%SZ" ),
1249
- reverse = True )
1250
- releases = releases [:args .number_of_latest_releases ]
1258
+ if args .number_of_latest_releases and args .number_of_latest_releases < len (
1259
+ releases
1260
+ ):
1261
+ releases .sort (
1262
+ key = lambda item : datetime .strptime (
1263
+ item ["created_at" ], "%Y-%m-%dT%H:%M:%SZ"
1264
+ ),
1265
+ reverse = True ,
1266
+ )
1267
+ releases = releases [: args .number_of_latest_releases ]
1251
1268
logger .info ("Saving the latest {0} releases to disk" .format (len (releases )))
1252
1269
else :
1253
1270
logger .info ("Saving {0} releases to disk" .format (len (releases )))
@@ -1274,7 +1291,7 @@ def backup_releases(args, repo_cwd, repository, repos_template, include_assets=F
1274
1291
os .path .join (release_assets_cwd , asset ["name" ]),
1275
1292
get_auth (args , encode = not args .as_app ),
1276
1293
as_app = args .as_app ,
1277
- fine = True if args .token_fine is not None else False
1294
+ fine = True if args .token_fine is not None else False ,
1278
1295
)
1279
1296
1280
1297
0 commit comments