Skip to main content

A pyproject.toml conversion tool for Poetry to uv migration

Project description

bukowski

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

Installation

pip install bukowski
# or
uv pip install bukowski

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

uv tool install bukowski
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"
license = ""
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"

[tool.uv]
dev-dependencies = [
    "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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bukowski-0.3.2.tar.gz (51.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bukowski-0.3.2-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file bukowski-0.3.2.tar.gz.

File metadata

  • Download URL: bukowski-0.3.2.tar.gz
  • Upload date:
  • Size: 51.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for bukowski-0.3.2.tar.gz
Algorithm Hash digest
SHA256 6d66097d20291a22fdd5c119e9ffd3dd30f60b9acb41c818742369389e122cd5
MD5 937d6909fe19c7d05618a7fa2810103f
BLAKE2b-256 3ab6a85e6ded2d9712d796c22d126818606dfe71e8cc2e05656485e4bcab7ae4

See more details on using hashes here.

Provenance

The following attestation bundles were made for bukowski-0.3.2.tar.gz:

Publisher: publish.yml on ninoseki/bukowski

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bukowski-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: bukowski-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for bukowski-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8d1426fd571f9a1ebdd8f9a58390693237bcc1ff415218cf0901880fa3b1790a
MD5 084c01e7ba034d548f4a0620f9dd8744
BLAKE2b-256 f8270df9ca8653e506d139c05cf694da9d9bcd465d41af901c50c8a9fde218a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for bukowski-0.3.2-py3-none-any.whl:

Publisher: publish.yml on ninoseki/bukowski

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page