This is simple migration script, migrate pipenv to poetry.
$ pip install -U poetry pipenv-poetry-migrate
$ poetry init
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
$ poetry lock
If there is already a poetry.lock file, remove it first.
To install the defined dependencies for your project.
$ poetry install
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 <[email protected]>"]
[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 <[email protected]>"]
[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"- Fork and clone the repository, and create the development branch.
- Run
poetry installto setup your develop environment. - Do your code.
- Run
bash scripts/test.shto check that your test passed. - Run
bash scripts/format.shandbash scripts/lint.shto check that you haven't warnings. - Open a PR on GitHub.
Test cases are in tests/toml, update Pipfile with additional entries and expect_pyproject.toml with expected output.