@@ -491,14 +491,20 @@ def check_and_update(
491
491
continue
492
492
package_simple_path = self .simple_dir / package_name
493
493
html_simple = package_simple_path / "index.html"
494
+ htmlv1_simple = package_simple_path / "index.v1_html"
494
495
json_simple = package_simple_path / "index.v1_json"
495
- if not (html_simple .exists () and json_simple .exists ()):
496
+ if not (
497
+ html_simple .exists () and json_simple .exists () and htmlv1_simple .exists ()
498
+ ):
496
499
logger .info (
497
- "add %s as it does not have index.html or index.v1_json" ,
500
+ "add %s as it does not have index.html, index.v1_html or index.v1_json" ,
498
501
package_name ,
499
502
)
500
503
to_update .append (package_name )
501
504
continue
505
+ if not html_simple .is_symlink ():
506
+ html_simple .unlink ()
507
+ html_simple .symlink_to ("index.v1_html" )
502
508
hrefs_html = get_package_urls_from_index_html (html_simple )
503
509
hrefsize_json = get_package_urls_size_from_index_json (json_simple )
504
510
if (
@@ -621,14 +627,19 @@ def do_update(
621
627
def write_meta_to_simple (self , package_simple_path : Path , meta : dict ) -> None :
622
628
simple_html_contents = PyPI .generate_html_simple_page (meta )
623
629
simple_json_contents = PyPI .generate_json_simple_page (meta )
624
- for html_filename in ("index.html" , "index. v1_html" ):
630
+ for html_filename in ("index.v1_html" , ):
625
631
html_path = package_simple_path / html_filename
626
632
with overwrite (html_path ) as f :
627
633
f .write (simple_html_contents )
628
634
for json_filename in ("index.v1_json" ,):
629
635
json_path = package_simple_path / json_filename
630
636
with overwrite (json_path ) as f :
631
637
f .write (simple_json_contents )
638
+ index_html_path = package_simple_path / "index.html"
639
+ if not index_html_path .is_symlink ():
640
+ if index_html_path .exists ():
641
+ index_html_path .unlink ()
642
+ index_html_path .symlink_to ("index.v1_html" )
632
643
633
644
def finalize (self ) -> None :
634
645
local_names = self .local_db .keys ()
@@ -1051,7 +1062,9 @@ def genlocal(ctx: click.Context) -> None:
1051
1062
serial = get_local_serial (package_metapath )
1052
1063
if serial :
1053
1064
local [package_name ] = serial
1054
- logger .info ("%d out of {} packages have valid serial number" , len (local ), len (dir_items ))
1065
+ logger .info (
1066
+ "%d out of %d packages have valid serial number" , len (local ), len (dir_items )
1067
+ )
1055
1068
local_db .nuke (commit = False )
1056
1069
local_db .batch_set (local )
1057
1070
local_db .dump_json ()
@@ -1093,7 +1106,11 @@ def verify(
1093
1106
simple_dirs = {i .name for i in (basedir / "simple" ).iterdir () if i .is_dir ()}
1094
1107
json_files = {i .name for i in (basedir / "json" ).iterdir () if i .is_file ()}
1095
1108
not_in_local = (simple_dirs | json_files ) - local_names
1096
- logger .info ("%d out of %d local packages NOT in local db" , len (not_in_local ), len (local_names ))
1109
+ logger .info (
1110
+ "%d out of %d local packages NOT in local db" ,
1111
+ len (not_in_local ),
1112
+ len (local_names ),
1113
+ )
1097
1114
for package_name in not_in_local :
1098
1115
logger .info ("package %s not in local db" , package_name )
1099
1116
if remove_not_in_local :
@@ -1127,7 +1144,9 @@ def verify(
1127
1144
)
1128
1145
syncer .finalize ()
1129
1146
1130
- logger .info ("====== Step 4. Remove any unreferenced files in `packages` folder ======" )
1147
+ logger .info (
1148
+ "====== Step 4. Remove any unreferenced files in `packages` folder ======"
1149
+ )
1131
1150
ref_set = set ()
1132
1151
for sname in tqdm (simple_dirs , desc = "Iterating simple/ directory" ):
1133
1152
sd = basedir / "simple" / sname
@@ -1148,7 +1167,7 @@ def verify(
1148
1167
if str (file ) not in ref_set :
1149
1168
logger .info ("removing unreferenced file %s" , file )
1150
1169
file .unlink ()
1151
-
1170
+
1152
1171
logger .info ("Verification finished. Success: %s" , success )
1153
1172
1154
1173
if not success :
0 commit comments