Poetry lock package generator
Simple script that will take a pyproject.toml and a poetry.lock and generate a new poetry project where all the lock versions are pinned dependencies.
In theory this will allow you to transport your lock file to any system that is able to install python packages and dependencies.
After installation, the command poetry-lock-package should be run next to your pyproject.toml and poetry.lock files and will generate a subdirectory with a pyproject.toml requiring all the dependencies of the lock file.
Simply enter the subdirectory, build and publish the package and you have a '-lock' package that depends on all the exact versions from your lock file.
Example workflow
The example workflow below will add poetry-lock-package as a dev dependency, allowing poetry run to find the command.
First create a new poetry project
poetry new example-package
cd example-package
Add some dependencies, and see what we have build so far
poetry add loguru click
poetry install
poetry build
ls dist
Add poetry-lock-package to allow for poetry run to find the entry point script:
poetry add --dev poetry-lock-package
Finally build the lock package and see what we have gotten
poetry run poetry-lock-package --build
ls -al dist
You will now have two wheel files in your dist folder: one with the project code, one name example-package-lock which depends on the exact version of all the packages specified in your poetry.lock file.
Using --no-root
Default behavior is to have the lock package depend on the original package the lock was created for. If you have a private repository, this will allow you to publish both packages to the private repository and only require you to point at one package to install everything.
If you want to be able to install the dependencies, but not the package itself, you can use the --no-root command line argument to stop poetry-lock-package from adding your root project to the lock package dependencies.
Using --ignore
If you want to allow pip to have freedom in selecting a package, or you expect to deploy in an environment that already has the right version installed, you can opt to use --ignore to remove that dependency from the lock package pinned dependencies.
Because poetry-lock-package is aware of the dependency graph, it will not only skip locking the dependency but also transitive dependencies.
Contributing code
-
Open an issue
-
Create an associated PR
-
Make sure to black format the proposed change
poetry run pre-commit install
-
Add tests where possible
License
GPLv3, use at your own risk.
Metadata
Release files for poetry-lock-package 0.5.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| poetry_lock_package-0.5.3.tar.gz | 5.6 kB | Without provenance | Details for poetry_lock_package-0.5.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| poetry_lock_package-0.5.3-py3-none-any.whl | Python 3 | none | any | Details for poetry_lock_package-0.5.3-py3-none-any.whl |
Total release size: 12.4 kB
Release files / poetry_lock_package-0.5.3.tar.gz
| Download URL | poetry_lock_package-0.5.3.tar.gz |
|---|---|
| Size | 5.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7bf01a2230df3dad9b7c7265f5b763f57c3f3621aa7604f0d4cb922cc400f2d4
|
|
BLAKE2b-256 checksum How to use checksums |
0726a038e234315ad8a01a19f3c305016a78f6b3e16d01a6fc3f8958811a3b12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Release files / poetry_lock_package-0.5.3-py3-none-any.whl
| Download URL | poetry_lock_package-0.5.3-py3-none-any.whl |
|---|---|
| Size | 6.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ffb16a8b9b7ba35961a1601c11cea391dafd3fd4df95cdf72c7b037b55d557da
|
|
BLAKE2b-256 checksum How to use checksums |
e30aefc02c262e1e991740eec0cab891abf82c2987d43f8b51f148400761c9e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Security for poetry-lock-package 0.5.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.