@@ -61,7 +61,6 @@ class Config:
6161 PKG_BASE_DEFAULT = "https://pygame-web.github.io/archives/repo/"
6262 PKG_INDEXES = []
6363 REPO_INDEX = "index.json"
64- REPO_DATA = "repodata.json"
6564 repos = []
6665 pkg_repolist = []
6766 dev_mode = ".-X.dev." in "." .join (["" ] + sys .orig_argv + ["" ])
@@ -71,9 +70,8 @@ class Config:
7170 Requires_Failures = []
7271
7372 mapping = {
74- "pygame" : "pygame.base" ,
75- "pygame_ce" : "pygame.base" ,
76- "pygame_static" : "pygame.base" ,
73+ "pygame" : "pygame_ce" ,
74+ "pygame.base" : "pygame_ce" ,
7775 "python_i18n" : "i18n" ,
7876 "pillow" : "PIL" ,
7977 "pyglm" : "glm" ,
@@ -89,7 +87,8 @@ def read_dependency_block_723(code):
8987 content = []
9088 for line in code .split ("\n " ):
9189 if not has_block :
92- if line .strip () in ["# /// pyproject" , "# /// script" ]:
90+ # compat with draft PEP for pyproject
91+ if line .rstrip () in ["# /// pyproject" , "# /// script" ]:
9392 has_block = True
9493 continue
9594
@@ -103,6 +102,7 @@ def read_dependency_block_723(code):
103102 struct = tomllib .loads ("\n " .join (content ))
104103
105104 print (json .dumps (struct , sort_keys = True , indent = 4 ))
105+ # compat with draft PEP
106106 if struct .get ("project" , None ):
107107 struct = struct .get ("project" , {"dependencies" : []})
108108 deps = struct .get ("dependencies" , [])
@@ -147,15 +147,6 @@ def install(pkg_file, sconf=None):
147147 sys .print_exception (ex )
148148
149149
150- # see cpythonrc
151- # if not len(Config.repos):
152- # for cdn in (Config.PKG_INDEXES or PyConfig.pkg_indexes):
153- # async with platform.fopen(Path(cdn) / Config.REPO_DATA) as source:
154- # Config.repos.append(json.loads(source.read()))
155- #
156- # DBG("1203: FIXME (this is pyodide maintened stuff, use PEP723 asap) referenced packages :", len(cls.repos[0]["packages"]))
157-
158-
159150async def async_repos ():
160151 abitag = f"cp{ sys .version_info .major } { sys .version_info .minor } "
161152 apitag = __import__ ("sysconfig" ).get_config_var ("HOST_GNU_TYPE" )
@@ -171,28 +162,31 @@ async def async_repos():
171162
172163 print ("200: async_repos" , Config .PKG_INDEXES )
173164
165+
174166 for repo in Config .PKG_INDEXES :
175- idx = f"{ repo } index-0.9.2-{ abitag } .json"
176- try :
177- async with fopen (idx , "r" , encoding = "UTF-8" ) as index :
178- try :
179- data = index .read ()
180- if isinstance (data , bytes ):
181- data = data .decode ()
182- data = data .replace ("<abi>" , abitag )
183- data = data .replace ("<api>" , apitag )
184- repo = json .loads (data )
185- except :
186- pdb (f"213: { idx = } : malformed json index { data } " )
187- continue
188- if repo not in Config .pkg_repolist :
189- Config .pkg_repolist .append (repo )
190- except FileNotFoundError :
191- print ("\n " * 4 )
192- print ("!" * 75 )
193- print ("Sorry, there is no pygbag package repository for your python version" )
194- print ("!" * 75 , "\n " * 4 )
195- #raise SystemExit
167+ merged = {}
168+ for pygver in ('0.9.2' , '0.9.3' ):
169+ idx = f"{ repo } index-{ pygver } -{ abitag } .json"
170+ try :
171+ async with fopen (idx , "r" , encoding = "UTF-8" ) as index :
172+ try :
173+ data = index .read ()
174+ if isinstance (data , bytes ):
175+ data = data .decode ()
176+ data = data .replace ("<abi>" , abitag )
177+ data = data .replace ("<api>" , apitag )
178+ merged .update ( json .loads (data ) )
179+ except Exception as e :
180+ pdb (f"213: { idx = } : malformed json index { data } " , e )
181+ continue
182+ except FileNotFoundError :
183+ print ("\n " * 4 )
184+ print ("!" * 75 )
185+ print ("Sorry, there is no pygbag package repository for your python version" )
186+ print ("!" * 75 , "\n " * 4 )
187+ #raise SystemExit
188+ if merged :
189+ Config .pkg_repolist .append (merged )
196190
197191 if not aio .cross .simulator :
198192 rewritecdn = ""
@@ -462,20 +456,20 @@ async def check_list(code=None, filename=None):
462456 import platform
463457 import asyncio
464458
465- print (f'# 439 : Scanning { sconf ["platlib" ]} for WebAssembly library ' )
459+ print (f'# 455 : Scanning { sconf ["platlib" ]} for WebAssembly libraries ' )
466460 platform .explore (sconf ["platlib" ], verbose = True )
467461 for compilation in range (1 + embed .preloading ()):
468462
469463 await asyncio .sleep (0 )
470464 if embed .preloading () <= 0 :
471465 break
472466 else :
473- print ("# 442 : ERROR: remaining wasm {embed.preloading()}" )
467+ print ("# 463 : ERROR: remaining wasm {embed.preloading()}" )
474468 await asyncio .sleep (0 )
475469
476470 do_patches ()
477471
478- print ("-" * 40 )
472+ print ("-" * 79 )
479473 print ()
480474
481475 return still_missing
0 commit comments