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

Uploaded Source

Built Distribution

bukowski-0.2.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bukowski-0.2.1.tar.gz
  • Upload date:
  • Size: 53.9 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.1.tar.gz
Algorithm Hash digest
SHA256 abed6a1c30cf1c10c33322a8583aeccbc7f3093d812f120d057c128f6cb93054
MD5 05caa501bdea7872dcc28024f0562cb5
BLAKE2b-256 de9cd6dee06e1a0ffa9c8c66c82c1f27add7d6b3a85712e4df2fe83ca782c0fd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bukowski-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 8.0 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 06c3947c8a4f30af47fb9dbb647bb07db8de98212a93c22103c2145fd428f67e
MD5 94d130624328ce6069212ac2a0ea5cd2
BLAKE2b-256 cd325f1e61791f3d5478bb620d705e72721fd499889f8307510302e41de6c6f5

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