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

Uploaded Source

Built Distribution

bukowski-0.2.4-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bukowski-0.2.4.tar.gz
  • Upload date:
  • Size: 54.6 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.4.tar.gz
Algorithm Hash digest
SHA256 1c5b8632843e62f3ad6bc7a264ff84fd92d98b6f2c86363e3d1ec8cf118287e0
MD5 bf70f14bd045b88a755bd288b95dbbaf
BLAKE2b-256 be5c4b281f897538abac0419a747ea70d47c20fbafd6db80ee042478f24ef8f5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bukowski-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 8.5 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f9c7ba5aff1170d1ae83bc56cb629fd00e543ead329974c9cacc73e7c20594b5
MD5 6532cdb3cd76142b1cdfd69399b9cb0d
BLAKE2b-256 f8684489af8b72025a3cacc2669cf3a87681222ebac01dac6091bed9f351d413

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