indygreg / PyOxidizer

A modern Python application packaging and distribution tool
Mozilla Public License 2.0
5.32k stars 227 forks source link

Pyoxidizer doesn't work for `jsonschema_specifications` #749

Open fabioz opened 1 month ago

fabioz commented 1 month ago

The issue here is that the jsonschema_specifications._core._schemas() function does:

from importlib.resources import files

for version in files(__package__).joinpath("schemas").iterdir():

and then it will not really find anything to register.

Printing the return of the files(...) it gives:

<importlib._adapters.DegenerateFiles.Path object at 0x0000015E5D83A9B0>

I added

if "jsonschema_specifications" in resource.name:
    resource.add_location = "filesystem-relative:lib"
    resource.add_source = True

So, those resources even have a __file__, but still, importlib.resources.files(...) doesn't work as intended.

This was also reported at: https://github.com/python-jsonschema/jsonschema-specifications/issues/61, but unfortunately the library can't be changed to accommodate a different API.

fabioz commented 1 month ago

Note: this is on Python 3.10.9