Restructured project to have a clear src and test layout. Using poetry as venv, dependency and release helper.
Benefits:
Clear separation of src and tests
Tools are available as "binary" names, e.g. vspec2json instead of vspec2json.py
Tests are simpler by having clean package imports from vss_tools.something import something. Tests do not need to know where tool sources are ../../../vspec2json.py -> vspec2json
Benefits of poetry:
Poetry simplifies the process of managing project dependencies. It automatically resolves dependencies, handles version conflicts, and ensures consistency across different environments.
Reproducible Builds: Poetry generates a poetry.lock file that captures the exact versions of all dependencies used in your project. This ensures that your project can be reproduced consistently across different environments.
Virtual Environments: Poetry creates and manages virtual environments for your project, ensuring that dependencies are isolated and do not interfere with other projects on your system. Of course this is also possible manually but poetry makes it easier.
Packaging and Distribution: Poetry makes it easy to package your Python project and distribute it as a distributable artifact (e.g., a wheel or source distribution) that can be installed by others. Simple wrappers for that with poetry build and poetry publish
Dependency Resolution: Poetry's dependency resolver is more robust and reliable than the default pip resolver, handling complex dependency graphs and resolving conflicts more effectively.
Cross-Platform Compatibility: Poetry is designed to work consistently across different operating systems, ensuring that your project can be easily set up and run on various platforms.
Compatibility with Existing Tools: Poetry can coexist with other Python tools like pip, virtualenv, and setuptools, allowing you to integrate it into your existing workflow.
Simplified Dependency Upgrades: Poetry makes it easy to upgrade dependencies to their latest versions, helping you stay up-to-date with security patches and bug fixes.
About
Restructured project to have a clear src and test layout. Using poetry as venv, dependency and release helper.
Benefits:
vspec2json
instead ofvspec2json.py
from vss_tools.something import something
. Tests do not need to know where tool sources are../../../vspec2json.py
->vspec2json
Benefits of poetry:
poetry build
andpoetry publish