Skip to main content

simple migration script, migrate pipenv to poetry

Project description

pipenv-poetry-migrate

This is simple migration script, migrate pipenv to poetry.

PyPI - Python Version PyPI - Downloads Test Codecov FOSSA Status

:rocket: Get Started

Installation

$ pip install -U poetry pipenv-poetry-migrate

Migration

Step 1: Create pyproject.toml file

$ poetry init

Step 2: Migrate

To migrate Pipfile to pyproject.toml.

$ pipenv-poetry-migrate -f Pipfile -t pyproject.toml

When want to run dry-run mode:

$ pipenv-poetry-migrate -f Pipfile -t pyproject.toml -n

Dry-run mode is pyproject.toml file does not overwrite, results are displayed on standard output.

[!Note]
If the dependency already exists in the poetry dependency and you want to re-migrate it, please use the --re-migrate option. However, if the dependency is removed from pipenv, the poetry dependency is not removed.

$ pipenv-poetry-migrate -f Pipfile -t pyproject.toml --re-migrate

[!Note]
The default behavior is to migrate with the group notation, which has been available since Poetry 1.2.0. If you want to migrate with dev-dependencies notation, please use the --on-use-group-notation option.

$ pipenv-poetry-migrate -f Pipfile -t pyproject.toml --no-use-group-notation

Step 3: Generate lock file

$ poetry lock

If there is already a poetry.lock file, remove it first.

Step 4: Installing dependencies

To install the defined dependencies for your project.

$ poetry install

Example output

This is an example of a Pipfile to be migrated.

[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[packages]
requests = "*"

[dev-packages]
pytest = "^5.2"

Migrate the above file to the following pyproject.toml.

[tool.poetry]
name = "migration-sample"
version = "0.1.0"
description = ""
authors = ["Yoshiyuki HINO <yhinoz@gmail.com>"]

[tool.poetry.dependencies]
python = "^3.7"

[tool.poetry.group.dev.dependencies]

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

By executing this script, pyproject.toml is rewritten as follows.

[tool.poetry]
name = "migration-sample"
version = "0.1.0"
description = ""
authors = ["Yoshiyuki HINO <yhinoz@gmail.com>"]

[tool.poetry.dependencies]
python = "^3.7"
requests = "*"

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

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

:handshake: Contributing

  1. Fork and clone the repository, and create the development branch.
  2. Run poetry install to setup your develop environment.
  3. Do your code.
  4. Run bash scripts/test.sh to check that your test passed.
  5. Run bash scripts/format.sh and bash scripts/lint.sh to check that you haven't warnings.
  6. Open a PR on GitHub.

Test cases

Test cases are in tests/toml, update Pipfile with additional entries and expect_pyproject.toml with expected output.

:pencil: License

FOSSA Status

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

pipenv_poetry_migrate-0.5.10.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

pipenv_poetry_migrate-0.5.10-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file pipenv_poetry_migrate-0.5.10.tar.gz.

File metadata

File hashes

Hashes for pipenv_poetry_migrate-0.5.10.tar.gz
Algorithm Hash digest
SHA256 5508caca109315be55360f32fcfc66bbaa21256027b7827c1209aa8c953eda87
MD5 6e1411885e6072aac44f04a302d90728
BLAKE2b-256 fa853ddd47ed9ce3032f65e2a52f0ec94f19a6c7a170edb33da4392114c87fb7

See more details on using hashes here.

File details

Details for the file pipenv_poetry_migrate-0.5.10-py3-none-any.whl.

File metadata

File hashes

Hashes for pipenv_poetry_migrate-0.5.10-py3-none-any.whl
Algorithm Hash digest
SHA256 883f3d252c61283979ef4c7f1965cc9f06b9d1ab83740ccc8ecf5aefbc661349
MD5 81f66254f4d8523ecc168975fe1f91fa
BLAKE2b-256 b8e7c5851e0e7f3559de3e73b02e4019f98c82cccf27c6785acbdfe36e68aa3d

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