michelbierlaire / biogeme

Biogeme is an open source freeware designed for the maximum likelihood estimation of parametric models in general, with a special emphasis on discrete choice models.
Other
107 stars 51 forks source link

biogeme 3.2.14 packages the `__pycache__` directories #41

Open moorepants opened 2 weeks ago

moorepants commented 2 weeks ago

If you download the source tarball you can find __pycache__ directories present:

biogeme-3.2.14$ find . -name "__pycache__"
./src/biogeme/tools/__pycache__
./src/biogeme/expressions/__pycache__
./src/biogeme/__pycache__
./src/biogeme/mdcev/__pycache__
./src/biogeme/sampling_of_alternatives/__pycache__
./src/biogeme/data/__pycache__
./src/biogeme/models/__pycache__

These should not be packaged in a source tarball.

They cause warnings such as these:

  /home/conda/feedstock_root/build_artifacts/biogeme_1725082603608/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.12/site-packages/setuptools/command/build_py.py:215: _Warning: Package 'biogeme.tools.__pycache__' is absent from the `packages` configuration.
  !!

          ********************************************************************************
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'biogeme.tools.__pycache__' 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 'biogeme.tools.__pycache__' 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 'biogeme.tools.__pycache__' to be distributed and are
          already explicitly excluding 'biogeme.tools.__pycache__' 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.
          ********************************************************************************

  !!

and could cause errors when installing.

moorepants commented 2 weeks ago

I noticed this here: https://github.com/conda-forge/biogeme-feedstock/pull/3