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

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.2.2.tar.gz (54.1 kB view details)

Uploaded Source

Built Distribution

bukowski-0.2.2-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bukowski-0.2.2.tar.gz
  • Upload date:
  • Size: 54.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for bukowski-0.2.2.tar.gz
Algorithm Hash digest
SHA256 d0a8019f654d8c981718d2a3d4964fe14ac2b2e0fc9c8f727994e880e47c0404
MD5 c84ce91494fb9a5f4a5f738c63a8fb9c
BLAKE2b-256 99252048988a019ce7dbf64b1cf2cf688dd93644becf5f9a16bef58bcd4a8dad

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bukowski-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for bukowski-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ec5a9f2fbba51c98e31f12e9c283f78826c4283d57933730c0aa8a013d512695
MD5 79ed1cfad1d9d42c8be74334da7be1f2
BLAKE2b-256 6d9338ca4b8b57617f53740ad394ea2b8121bf2b524708a81791433614bd485b

See more details on using hashes here.

Supported by

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