@@ -60,14 +60,12 @@ def main(argv: Sequence[str] | None = None) -> int:
6060 parser .add_argument ("--dist" , default = "dist" )
6161 parser .add_argument ("--pypi-url" , required = True )
6262 parser .add_argument ("--dest" , required = True )
63+ parser .add_argument ("--rebuild" , default = False )
6364 args = parser .parse_args (argv )
6465
6566 url = urllib .parse .urljoin (args .pypi_url , "packages.json" )
6667 packages = [json .loads (line ) for line in urllib .request .urlopen (url )]
67- on_pypi = {package ["filename" ] for package in packages }
68- has_core_metadata = {
69- package ["filename" ] for package in packages if package .get ("core_metadata" )
70- }
68+ on_pypi = {package ["filename" ] for package in packages } if not args .rebuild else {}
7169
7270 shutil .rmtree (args .dest , ignore_errors = True )
7371 os .makedirs (args .dest , exist_ok = True )
@@ -88,12 +86,10 @@ def main(argv: Sequence[str] | None = None) -> int:
8886 ):
8987 basename = os .path .basename (filename )
9088
91- # core metadata backfill
92- if filename in has_core_metadata :
93- if basename in on_pypi :
94- raise AssertionError (f"{ basename } : already on pypi?" )
95- elif basename in seen :
96- continue
89+ if basename in on_pypi :
90+ raise AssertionError (f"{ basename } : already on pypi?" )
91+ elif basename in seen :
92+ continue
9793
9894 seen .add (basename )
9995 package_info = _make_info (filename )
@@ -114,19 +110,21 @@ def main(argv: Sequence[str] | None = None) -> int:
114110 for package in itertools .chain (packages , new_packages ):
115111 f .write (f"{ json .dumps (package )} \n " )
116112
117- subprocess .check_call (
118- (
119- sys .executable ,
120- "-mdumb_pypi.main" ,
121- f"--previous-package-list-json={ prev_json } " ,
122- f"--package-list-json={ packages_json } " ,
123- f"--output-dir={ args .dest } " ,
124- f'--packages-url={ urllib .parse .urljoin (args .pypi_url , "wheels" )} ' ,
125- "--title=sentry pypi" ,
126- "--logo=https://avatars.githubusercontent.com/u/1396951?s=24" ,
127- "--logo-width=36" ,
128- )
129- )
113+ pargs = [
114+ sys .executable ,
115+ "-mdumb_pypi.main" ,
116+ f"--package-list-json={ packages_json } " ,
117+ f"--output-dir={ args .dest } " ,
118+ f'--packages-url={ urllib .parse .urljoin (args .pypi_url , "wheels" )} ' ,
119+ "--title=sentry pypi" ,
120+ "--logo=https://avatars.githubusercontent.com/u/1396951?s=24" ,
121+ "--logo-width=36" ,
122+ ]
123+
124+ if not args .rebuild :
125+ pargs .append (f"--previous-package-list-json={ prev_json } " )
126+
127+ subprocess .check_call (pargs )
130128
131129 # for now we don't utilize the json api
132130 shutil .rmtree (os .path .join (args .dest , "pypi" ), ignore_errors = True )
0 commit comments