Skip to main content

bukowski

A pyproject.toml conversion tool for Poetry to uv migration.

Installation

pip install bukowski
# or
uv pip install bukowski

Alternatively, you can use uvx to install and run from a self-contained virtual environment if you don't have a virtual environment ready:

uvx bukowski --help

Usage

$ bukowski --help

 Usage: bukowski [OPTIONS] [PATH]

╭─ Arguments ──────────────────────────────────────────────────────────────────╮
│   path      [PATH]  path to pyproject.toml [default: pyproject.toml]         │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --force-overwrite     -f        Whether to overwrite the existing            │
│                                 pyproject.toml file or not                   │
│ --install-completion            Install completion for the current shell.    │
│ --show-completion               Show completion for the current shell, to    │
│                                 copy it or customize the installation.       │
│ --help                          Show this message and exit.                  │
╰──────────────────────────────────────────────────────────────────────────────╯

For example, let's say you have the following pyproject.toml:

[tool.poetry]
name = "foo"
version = "0.1.0"
description = "bar"
authors = ["John Smith <johnsmith@example.org>"]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.10"
fastapi = { extras = ["all"], version = "^0.112.2" }
requests = "2.32.3"

[tool.poetry.group.dev.dependencies]
pytest = "^8.3.2"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

bukowski /path/to/pyproject.toml converts it (outputs it to stdout when -f options is not set, otherwise overwrites the path) as follows:

[project]
name = "foo"
version = "0.1.0"
description = "bar"
readme = "README.md"
requires-python = ">=3.10,<4.0"
authors = [
    { name = "John Smith", email = "johnsmith@example.org" },
]
dependencies = [
    "fastapi[all]>=0.112.2,<0.113.0",
    "requests==2.32.3",
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[dependency-groups]
dev = [
    "pytest>=8.3.2,<9.0.0",
]

Then you can do uv sync with the new pyproject.toml.

Known Issues

  • packages (tool.poetry.packages) is not supported.
  • source (tool.poetry.source) is supported, but the conversion may be lossy.

Alternatives

Metadata

Release files for bukowski 0.3.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bukowski 0.3.7
File Size Uploaded
bukowski-0.3.7.tar.gz 51.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bukowski 0.3.7
File Interpreter ABI Platform
bukowski-0.3.7-py3-none-any.whl Python 3 none any Details

Total release size: 60.8 kB

Release files / bukowski-0.3.7.tar.gz

Download URL bukowski-0.3.7.tar.gz
Size 51.7 kB
Tags Source
SHA-256 checksum
How to use checksums
87a74252f9f3e8084d35cf5e8c5b17495660a05281b5a6b4afe1398ef284e35e
BLAKE2b-256 checksum
How to use checksums
8d0fa19f6776b650b68b05ba187cfcd4b1b2f7d2aa565c4d69144d5b1d5ed90f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 23, 2024.

Transparency log

Release files / bukowski-0.3.7-py3-none-any.whl

Download URL bukowski-0.3.7-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0b7df22ad0a29f2547b921a81a903e41d0904f3b06a3f6524685194d97099f97
BLAKE2b-256 checksum
How to use checksums
35ab946acd22ceb23a487729265af3a8f3b6ef8422fccfef7f360a39f13f4992
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 23, 2024.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.7 This release

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page