Skip to content

[PyGambit]: Configuration of catalog #823

@tturocy

Description

@tturocy

The configuration of how we're packaging the catalog in pygambit doesn't look quite right. I am getting the following warning for each of the directories in the catalog.

/private/var/folders/33/szs2dgz97j7dhgx5zdfjfzs40000gn/T/pip-build-env-ijz85bne/overlay/lib/python3.13/site-packages/setuptools/command/build_py.py:215: _Warning: Package 'pygambit.catalog.myerson1991' is absent from the `packages` configuration.
  !!

          ********************************************************************************
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'pygambit.catalog.myerson1991' as an importable package[^1],
          but it is absent from setuptools' `packages` configuration.

          This leads to an ambiguous overall configuration. If you want to distribute this
          package, please make sure that 'pygambit.catalog.myerson1991' is explicitly added
          to the `packages` configuration field.

          Alternatively, you can also rely on setuptools' discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).

          You can read more about "package discovery" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

          If you don't want 'pygambit.catalog.myerson1991' to be distributed and are
          already explicitly excluding 'pygambit.catalog.myerson1991' via
          `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
          you can try to use `exclude_package_data`, or `include-package-data=False` in
          combination with a more fine grained `package-data` configuration.

          You can read more about "package data files" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


          [^1]: For Python, any directory (with suitable naming) can be imported,
                even if it does not contain any `.py` files.
                On the other hand, currently there is no concept of package data
                directory, all directories are treated like packages.
          ********************************************************************************

I am thinking the problem here is that we have the Python code in catalog/__init__py. That should be in perhaps pygambit/catalog.py instead. Then we should copy over the catalog to a different directory (maybe catalog_data or catalog_games? I am thinking it's the __init__.py that is the core of the problem, as that's what makes it look like a package.

It would also be much cleaner to keep all of the Python code under src/pygambit rather than having some of it copied over at build time.

Metadata

Metadata

Labels

bugcatalogIssues that relate to the Gambit's Catalog of gamespythonItems which involve coding in Python

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions