Dependency management
The current version in pypi won't install all the needed dependencies for the full usage of the library, while trying to pip install the package from the main branch using python>3.10 will result in unsolvable dependencies.
Adopting a modern package and dependency manager like https://pdm-project.org/en/latest/ could help solving dependency requirements and exposing the package scripts as command line commands.
There is an optional dependency group for the heaviest packages, [torch], but it is not documented what is the scope or the functionality that enables this group, or the part of the package that won't work without those dependencies.
The supported python versions should be explicit in the pyproject.toml, and we should aim to increment the version support, currently it is >=3.9,<3.11. The current python version constrains are mostly coming from libraries required for minio/S3 operations and the selected torch and tensorflow requirement, which could be leveraged by using a separate package for the usage/research, as mentioned in https://github.com/openrsgis/pytdml/issues/29
We fully endorse adopting PDM for dependency management. Here is the implementation plan: 1. Configuration Integration: In the existing pyproject.toml, declare dependencies using PDM's standardized format. Since PDM is compatible with PEP 621 specifications, a complete refactoring of the current configuration is unnecessary—only PDM-specific fields need to be added, such as dependency group classification and script commands. 2.Documentation Updates Add a section in README.md to explain each group. By the way, I am sure that an important task is to rewrite ReadMe and PyTDML tutorials, due to many updates to the content and structure of the package. Besides, many features would need to be removed or modified if the solution in #29 is adopted. 3. CI/CD Adaptation Integrate PDM commands into the release pipeline, use pdm install for dependency installation. 4. Python Version Support Update pyproject.toml to >=3.9 and test compatibility with 3.11+ using PDM. The content related to #29 will be discussed and a conclusion will be drawn at tomorrow's meeting.
Please consider that while this project can manage its dependencies, CI/CI, etc. with PDM, many projects out there do not use it, and therefore, if the package definition/installation/configuration becomes too PDM-specific, you might inadvertently limit user adoption that will face issues integrating it within their projects.
It would be important to leverage the existing https://pypi.org/project/pytdml/ package publishing and remain as agnostics as possible from the installation/dependency manager.
I do believe that @fmigneault is right, and the focus should reside in clarifying the python versions and correctly separating the main dependency group and the optional ones based on the decisions in https://github.com/openrsgis/pytdml/issues/29