diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 16:49:36 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 16:49:36 +0000 |
commit | 81ac46fb0abf26b08d26e07edbca0349a581a7ea (patch) | |
tree | c1d8dce05a383d145590fcafebf84662e2f2d3f6 | |
parent | fb2b4977c85c850271deff5c5dffefeb6dff0fd5 (diff) |
automatic import of python-pipenv-setup
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-pipenv-setup.spec | 840 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 842 insertions, 0 deletions
@@ -0,0 +1 @@ +/pipenv-setup-3.2.0.tar.gz diff --git a/python-pipenv-setup.spec b/python-pipenv-setup.spec new file mode 100644 index 0000000..73b3047 --- /dev/null +++ b/python-pipenv-setup.spec @@ -0,0 +1,840 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pipenv-setup +Version: 3.2.0 +Release: 1 +Summary: sync Pipfile/Pipfile.lock to setup.py +License: MIT +URL: https://github.com/Madoshakalaka/pipenv-setup +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/29/54/5756347bce0bd4067f884add5af48361ae56c7e17159c0b60ac1d31c52a7/pipenv-setup-3.2.0.tar.gz +BuildArch: noarch + +Requires: python3-pipfile +Requires: python3-colorama +Requires: python3-packaging +Requires: python3-requirementslib +Requires: python3-vistir +Requires: python3-six +Requires: python3-chardet +Requires: python3-pyparsing +Requires: python3-typing +Requires: python3-autopep8 +Requires: python3-black +Requires: python3-pytest-cov +Requires: python3-pytest-datadir +Requires: python3-pytest-xdist +Requires: python3-tox +Requires: python3-autopep8 +Requires: python3-types-six +Requires: python3-pytest-mypy +Requires: python3-black +Requires: python3-pytest +Requires: python3-pre-commit + +%description +# Pipenv-Setup + +[](https://travis-ci.org/Madoshakalaka/pipenv-setup) +[](https://github.com/Madoshakalaka/pipenv-setup/actions/workflows/ci.yml) +[](https://pypi.python.org/pypi/pipenv-setup/) +[](https://codecov.io/gh/Madoshakalaka/pipenv-setup) +[](https://badge.fury.io/py/pipenv-setup) +[](https://pypistats.org/packages/pipenv-setup) +[](https://github.com/psf/black) + +A beautiful python package development tool: sync dependencies in `Pipfile` or `Pipfile.lock` to `setup.py`. + +Never need again to change dependencies manually in `setup.py`, and enjoy the same +dependency locking or semantic versioning. + +Or just check whether `setup.py` and `Pipfile` are consistent and sync dependency when +necessary. + +## Installation + +Create a command line entry point `pipenv-setup`, and add `pipenv-setup` as a `dev` +package in `Pipfile`: + +```bash +pipenv install --dev pipenv-setup +``` + +Additionally, starting with the +[`3.2.0`](https://github.com/Madoshakalaka/pipenv-setup/releases/tag/v3.2.0) release, +[`black`](https://github.com/psf/black) and [`autopep8`](https://github.com/hhatto/autopep8) can be +included as package extras: + +```bash +pipenv install --dev "pipenv-setup[black]" # alternatively: pipenv-setup[autopep8] +``` + +### Note + +`pipenv-setup<3.2` includes pinned versions of `black` and `autopep8` as dependencies. However, most +projects manage `black` requirements independently from `pipenv-setup`; accordingly, `black` is no +longer a requirement of `pipenv-setup` after `3.2.0` (instead, include it as an extra as shown +above). + +## Features + +### Beautiful pipenv flavored help + +`$ pipenv-setup` + + + +### Sync to `setup.py` + +- supports assorted package configuration. You can have a pipfile as ugly as you want: + + ```Pipfile + [package] + requests = { extras = ['socks'] } + records = '>0.5.0' + django = { git = 'https://github.com/django/django.git', ref = '1.11.4', editable = true } + "e682b37" = {file = "https://github.com/divio/django-cms/archive/release/3.4.x.zip"} + "e1839a8" = {path = ".", editable = true} + pywinusb = { version = "*", os_name = "=='nt'", index="pypi"} + ``` + + `pipenv-setup` will still figure things out: + + ```bash + $ pipenv-setup sync + package e1839a8 is local, omitted in setup.py + setup.py successfully updated + 23 packages from Pipfile.lock synced to setup.py + ``` + + And things will be where they should be: + + ```python + # setup.py + setup(..., + install_requires=[ + "certifi==2017.7.27.1", + "chardet==3.0.4", + "pywinusb==0.4.2; os_name == 'nt'", + ..., + "xlrd==1.1.0", + "xlwt==1.3.0", + ], + dependency_links=[ + "git+https://github.com/django/django.git@1.11.4#egg=django", + "https://github.com/divio/django-cms/archive/release/3.4.x.zip", + ], + ) + ``` + +- provide `--dev` flag to sync development packages with `extras_require`: + + ```bash + $ pipenv-setup sync --dev + setup.py successfully updated + 1 default packages from Pipfile.lock synced to setup.py + 1 dev packages from Pipfile.lock synced to setup.py + ``` + + ```python + # produced setup.py + setup(..., + extras_require={"dev": ["pytest==1.1.3",]}, + install_requires=["xml-subsetter==0.0.1"], + ) + ``` + +- produce beautiful [Blackened](https://github.com/psf/black) `setup.py` file + +- [Template](https://github.com/pypa/sampleproject/blob/master/setup.py) generation with + filled dependencies in the absence of a setup file. + + ```bash + $ pipenv-setup sync + setup.py not found under current directory + Creating boilerplate setup.py... + setup.py was successfully generated + 23 packages synced from Pipfile.lock to setup.py + Please edit the required fields in the generated file + ``` + + > Note: by default, `pipenv-setup` syncs lockfile instead of pipfile + +#### Sync `Pipfile` vs. `Pipfile.lock` + +Provide `--pipfile` flag to sync `Pipfile` instead of `Pipfile.lock`. + +`pipenv-setup` +will perform a liquid sync using semantic versioning taken from `Pipfile` (instead of +using frozen pinned versions from `Pipfile.lock`): + +```bash +$ pipenv-setup sync --pipfile +setup.py was successfully updated +23 packages synced from Pipfile to setup.py +``` + +### Checks Only + +run `$ pipenv-setup check` + +- checks four items + - local package in default pipfile packages + - Package version requirements in `install_requires` in setup.py that potentially violates Pipfile + - Package version requirements in `dependency_links` in setup.py that differs from Pipfile + - Default package in pipfile missing in `install_requires` or `dependency_links` in setup.py +- exits with non-zero code when conflict found (can be used in travis-ci) +- here is a somewhat extreme example: + + ```bash + $ pipenv-setup check + package 'numpy' has version string: >=1.2 in setup.py, which potentially violates >=1.5 in pipfile + package 'pywinusb' has version string: ==0.4.2 in setup.py, which is disjoint from ~=0.3.0 in pipfile + package 'records' has version string: >=0.4.2,<0.5 in setup.py, which is disjoint from >0.5.0 in pipfile + package 'django' has branch/version 1.11.5 in dependency_links, which is different than 1.11.4 listed in pipfile + package 'requests' in pipfile but not in install_requires + package 'e682b37' has a url in pipfile but not in dependency_links + (exits with 1) + ``` + +- provide `--ignore-local` flag to allow local packages in pipfile + + ```bash + $ pipenv-setup check + local package found in default dependency: e1839a8. + Do you mean to make it dev dependency + (exits with 1) + ``` + + ```bash + $ pipenv-setup check --ignore-local + No version conflict or missing packages/dependencies found in setup.py! + (exits with 0) + ``` + +- provide `--strict` flag to only pass identical version requirements + + By default `pipenv-setup check` passes when the version `setup.py` specifies is + "compatible" with `Pipfile`, i.e. is a subset of it. For example, a Pipfile + specifying `django~=1.1` with `setup.py` requiring `django==1.2` is such a case. + + Provide `--strict` to allow only identical requirements; _i.e._ for `Pipfile`'s + `django~=1.1`, `setup.py` must require `django>=1.1,<2.0` + + Example output: + + ```bash + $ pipenv-setup check --strict + package 'pywinusb' has version string: ==0.4.2 in setup.py, which specifies a subset of * in pipfile + package 'django' has version string: >=0.5 in setup.py, which is disjoint from ~=0.3.0 in pipfile + package 'records' has version string: ==0.5.2 in setup.py, which specifies a subset of >0.5.0 in pipfile + package 'requests' has version string: ==2.18.4 in setup.py, which specifies a subset of * in pipfile + (exits with 1) + ``` + +- provide `--lockfile` flag to check `setup.py` against `Pipfile.lock` instead of `Pipfile` + + By default, `pipenv-setup check` compares the dependencies from `setup.py` against + the dependencies listed in `Pipfile`. This works well for most cases, but there + are some exceptions that break this strategy, including (but not necessarily limited to): + + - VCS dependencies with a mutable `ref` (e.g. - git branch name instead of a tag or commit sha) + - Because these resolve to an immutable pointer (e.g. - commit sha) in `setup.py`, the + dependency will no longer match between `setup.py` and `Pipfile`. However, `Pipfile.lock` + will contain the same resolved pointer as `setup.py`. + +### Pre-commit integration + +You can run `pipenv-setup` automatically using a [pre-commit](https://pre-commit.com) hook. To get +started, add this configuration to your `.pre-commit-config.yaml`: + +```yaml +- repo: https://github.com/Madoshakalaka/pipenv-setup + rev: "3.2.0" # pick a git hash / tag to point to + hooks: + - id: pipenv-setup +``` + +This configuration will will execute `pipenv-setup sync --pipfile` on changes to `Pipfile`, +`Pipfile.lock`, and `setup.py`. + +You can also customize the default args (`"--pipfile"`). For example, to synchronize `--dev` extras: + +```yaml +- repo: # ... + hooks: + - id: pipenv-setup + args: [--dev, --pipfile] +``` + +If using the hook during CI (or in another environment separate from a `black` / `autopep8` +installation), you can include the appropriate auto-formatter with the hook: + +```yaml +- repo: # ... + hooks: + - id: pipenv-setup + additional_dependencies: [".[black]"] +``` + +## Contributing + +If you'd like to contribute to `pipenv-setup`, see [Contribution Guide](CONTRIBUTING.md) + + + + +%package -n python3-pipenv-setup +Summary: sync Pipfile/Pipfile.lock to setup.py +Provides: python-pipenv-setup +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pipenv-setup +# Pipenv-Setup + +[](https://travis-ci.org/Madoshakalaka/pipenv-setup) +[](https://github.com/Madoshakalaka/pipenv-setup/actions/workflows/ci.yml) +[](https://pypi.python.org/pypi/pipenv-setup/) +[](https://codecov.io/gh/Madoshakalaka/pipenv-setup) +[](https://badge.fury.io/py/pipenv-setup) +[](https://pypistats.org/packages/pipenv-setup) +[](https://github.com/psf/black) + +A beautiful python package development tool: sync dependencies in `Pipfile` or `Pipfile.lock` to `setup.py`. + +Never need again to change dependencies manually in `setup.py`, and enjoy the same +dependency locking or semantic versioning. + +Or just check whether `setup.py` and `Pipfile` are consistent and sync dependency when +necessary. + +## Installation + +Create a command line entry point `pipenv-setup`, and add `pipenv-setup` as a `dev` +package in `Pipfile`: + +```bash +pipenv install --dev pipenv-setup +``` + +Additionally, starting with the +[`3.2.0`](https://github.com/Madoshakalaka/pipenv-setup/releases/tag/v3.2.0) release, +[`black`](https://github.com/psf/black) and [`autopep8`](https://github.com/hhatto/autopep8) can be +included as package extras: + +```bash +pipenv install --dev "pipenv-setup[black]" # alternatively: pipenv-setup[autopep8] +``` + +### Note + +`pipenv-setup<3.2` includes pinned versions of `black` and `autopep8` as dependencies. However, most +projects manage `black` requirements independently from `pipenv-setup`; accordingly, `black` is no +longer a requirement of `pipenv-setup` after `3.2.0` (instead, include it as an extra as shown +above). + +## Features + +### Beautiful pipenv flavored help + +`$ pipenv-setup` + + + +### Sync to `setup.py` + +- supports assorted package configuration. You can have a pipfile as ugly as you want: + + ```Pipfile + [package] + requests = { extras = ['socks'] } + records = '>0.5.0' + django = { git = 'https://github.com/django/django.git', ref = '1.11.4', editable = true } + "e682b37" = {file = "https://github.com/divio/django-cms/archive/release/3.4.x.zip"} + "e1839a8" = {path = ".", editable = true} + pywinusb = { version = "*", os_name = "=='nt'", index="pypi"} + ``` + + `pipenv-setup` will still figure things out: + + ```bash + $ pipenv-setup sync + package e1839a8 is local, omitted in setup.py + setup.py successfully updated + 23 packages from Pipfile.lock synced to setup.py + ``` + + And things will be where they should be: + + ```python + # setup.py + setup(..., + install_requires=[ + "certifi==2017.7.27.1", + "chardet==3.0.4", + "pywinusb==0.4.2; os_name == 'nt'", + ..., + "xlrd==1.1.0", + "xlwt==1.3.0", + ], + dependency_links=[ + "git+https://github.com/django/django.git@1.11.4#egg=django", + "https://github.com/divio/django-cms/archive/release/3.4.x.zip", + ], + ) + ``` + +- provide `--dev` flag to sync development packages with `extras_require`: + + ```bash + $ pipenv-setup sync --dev + setup.py successfully updated + 1 default packages from Pipfile.lock synced to setup.py + 1 dev packages from Pipfile.lock synced to setup.py + ``` + + ```python + # produced setup.py + setup(..., + extras_require={"dev": ["pytest==1.1.3",]}, + install_requires=["xml-subsetter==0.0.1"], + ) + ``` + +- produce beautiful [Blackened](https://github.com/psf/black) `setup.py` file + +- [Template](https://github.com/pypa/sampleproject/blob/master/setup.py) generation with + filled dependencies in the absence of a setup file. + + ```bash + $ pipenv-setup sync + setup.py not found under current directory + Creating boilerplate setup.py... + setup.py was successfully generated + 23 packages synced from Pipfile.lock to setup.py + Please edit the required fields in the generated file + ``` + + > Note: by default, `pipenv-setup` syncs lockfile instead of pipfile + +#### Sync `Pipfile` vs. `Pipfile.lock` + +Provide `--pipfile` flag to sync `Pipfile` instead of `Pipfile.lock`. + +`pipenv-setup` +will perform a liquid sync using semantic versioning taken from `Pipfile` (instead of +using frozen pinned versions from `Pipfile.lock`): + +```bash +$ pipenv-setup sync --pipfile +setup.py was successfully updated +23 packages synced from Pipfile to setup.py +``` + +### Checks Only + +run `$ pipenv-setup check` + +- checks four items + - local package in default pipfile packages + - Package version requirements in `install_requires` in setup.py that potentially violates Pipfile + - Package version requirements in `dependency_links` in setup.py that differs from Pipfile + - Default package in pipfile missing in `install_requires` or `dependency_links` in setup.py +- exits with non-zero code when conflict found (can be used in travis-ci) +- here is a somewhat extreme example: + + ```bash + $ pipenv-setup check + package 'numpy' has version string: >=1.2 in setup.py, which potentially violates >=1.5 in pipfile + package 'pywinusb' has version string: ==0.4.2 in setup.py, which is disjoint from ~=0.3.0 in pipfile + package 'records' has version string: >=0.4.2,<0.5 in setup.py, which is disjoint from >0.5.0 in pipfile + package 'django' has branch/version 1.11.5 in dependency_links, which is different than 1.11.4 listed in pipfile + package 'requests' in pipfile but not in install_requires + package 'e682b37' has a url in pipfile but not in dependency_links + (exits with 1) + ``` + +- provide `--ignore-local` flag to allow local packages in pipfile + + ```bash + $ pipenv-setup check + local package found in default dependency: e1839a8. + Do you mean to make it dev dependency + (exits with 1) + ``` + + ```bash + $ pipenv-setup check --ignore-local + No version conflict or missing packages/dependencies found in setup.py! + (exits with 0) + ``` + +- provide `--strict` flag to only pass identical version requirements + + By default `pipenv-setup check` passes when the version `setup.py` specifies is + "compatible" with `Pipfile`, i.e. is a subset of it. For example, a Pipfile + specifying `django~=1.1` with `setup.py` requiring `django==1.2` is such a case. + + Provide `--strict` to allow only identical requirements; _i.e._ for `Pipfile`'s + `django~=1.1`, `setup.py` must require `django>=1.1,<2.0` + + Example output: + + ```bash + $ pipenv-setup check --strict + package 'pywinusb' has version string: ==0.4.2 in setup.py, which specifies a subset of * in pipfile + package 'django' has version string: >=0.5 in setup.py, which is disjoint from ~=0.3.0 in pipfile + package 'records' has version string: ==0.5.2 in setup.py, which specifies a subset of >0.5.0 in pipfile + package 'requests' has version string: ==2.18.4 in setup.py, which specifies a subset of * in pipfile + (exits with 1) + ``` + +- provide `--lockfile` flag to check `setup.py` against `Pipfile.lock` instead of `Pipfile` + + By default, `pipenv-setup check` compares the dependencies from `setup.py` against + the dependencies listed in `Pipfile`. This works well for most cases, but there + are some exceptions that break this strategy, including (but not necessarily limited to): + + - VCS dependencies with a mutable `ref` (e.g. - git branch name instead of a tag or commit sha) + - Because these resolve to an immutable pointer (e.g. - commit sha) in `setup.py`, the + dependency will no longer match between `setup.py` and `Pipfile`. However, `Pipfile.lock` + will contain the same resolved pointer as `setup.py`. + +### Pre-commit integration + +You can run `pipenv-setup` automatically using a [pre-commit](https://pre-commit.com) hook. To get +started, add this configuration to your `.pre-commit-config.yaml`: + +```yaml +- repo: https://github.com/Madoshakalaka/pipenv-setup + rev: "3.2.0" # pick a git hash / tag to point to + hooks: + - id: pipenv-setup +``` + +This configuration will will execute `pipenv-setup sync --pipfile` on changes to `Pipfile`, +`Pipfile.lock`, and `setup.py`. + +You can also customize the default args (`"--pipfile"`). For example, to synchronize `--dev` extras: + +```yaml +- repo: # ... + hooks: + - id: pipenv-setup + args: [--dev, --pipfile] +``` + +If using the hook during CI (or in another environment separate from a `black` / `autopep8` +installation), you can include the appropriate auto-formatter with the hook: + +```yaml +- repo: # ... + hooks: + - id: pipenv-setup + additional_dependencies: [".[black]"] +``` + +## Contributing + +If you'd like to contribute to `pipenv-setup`, see [Contribution Guide](CONTRIBUTING.md) + + + + +%package help +Summary: Development documents and examples for pipenv-setup +Provides: python3-pipenv-setup-doc +%description help +# Pipenv-Setup + +[](https://travis-ci.org/Madoshakalaka/pipenv-setup) +[](https://github.com/Madoshakalaka/pipenv-setup/actions/workflows/ci.yml) +[](https://pypi.python.org/pypi/pipenv-setup/) +[](https://codecov.io/gh/Madoshakalaka/pipenv-setup) +[](https://badge.fury.io/py/pipenv-setup) +[](https://pypistats.org/packages/pipenv-setup) +[](https://github.com/psf/black) + +A beautiful python package development tool: sync dependencies in `Pipfile` or `Pipfile.lock` to `setup.py`. + +Never need again to change dependencies manually in `setup.py`, and enjoy the same +dependency locking or semantic versioning. + +Or just check whether `setup.py` and `Pipfile` are consistent and sync dependency when +necessary. + +## Installation + +Create a command line entry point `pipenv-setup`, and add `pipenv-setup` as a `dev` +package in `Pipfile`: + +```bash +pipenv install --dev pipenv-setup +``` + +Additionally, starting with the +[`3.2.0`](https://github.com/Madoshakalaka/pipenv-setup/releases/tag/v3.2.0) release, +[`black`](https://github.com/psf/black) and [`autopep8`](https://github.com/hhatto/autopep8) can be +included as package extras: + +```bash +pipenv install --dev "pipenv-setup[black]" # alternatively: pipenv-setup[autopep8] +``` + +### Note + +`pipenv-setup<3.2` includes pinned versions of `black` and `autopep8` as dependencies. However, most +projects manage `black` requirements independently from `pipenv-setup`; accordingly, `black` is no +longer a requirement of `pipenv-setup` after `3.2.0` (instead, include it as an extra as shown +above). + +## Features + +### Beautiful pipenv flavored help + +`$ pipenv-setup` + + + +### Sync to `setup.py` + +- supports assorted package configuration. You can have a pipfile as ugly as you want: + + ```Pipfile + [package] + requests = { extras = ['socks'] } + records = '>0.5.0' + django = { git = 'https://github.com/django/django.git', ref = '1.11.4', editable = true } + "e682b37" = {file = "https://github.com/divio/django-cms/archive/release/3.4.x.zip"} + "e1839a8" = {path = ".", editable = true} + pywinusb = { version = "*", os_name = "=='nt'", index="pypi"} + ``` + + `pipenv-setup` will still figure things out: + + ```bash + $ pipenv-setup sync + package e1839a8 is local, omitted in setup.py + setup.py successfully updated + 23 packages from Pipfile.lock synced to setup.py + ``` + + And things will be where they should be: + + ```python + # setup.py + setup(..., + install_requires=[ + "certifi==2017.7.27.1", + "chardet==3.0.4", + "pywinusb==0.4.2; os_name == 'nt'", + ..., + "xlrd==1.1.0", + "xlwt==1.3.0", + ], + dependency_links=[ + "git+https://github.com/django/django.git@1.11.4#egg=django", + "https://github.com/divio/django-cms/archive/release/3.4.x.zip", + ], + ) + ``` + +- provide `--dev` flag to sync development packages with `extras_require`: + + ```bash + $ pipenv-setup sync --dev + setup.py successfully updated + 1 default packages from Pipfile.lock synced to setup.py + 1 dev packages from Pipfile.lock synced to setup.py + ``` + + ```python + # produced setup.py + setup(..., + extras_require={"dev": ["pytest==1.1.3",]}, + install_requires=["xml-subsetter==0.0.1"], + ) + ``` + +- produce beautiful [Blackened](https://github.com/psf/black) `setup.py` file + +- [Template](https://github.com/pypa/sampleproject/blob/master/setup.py) generation with + filled dependencies in the absence of a setup file. + + ```bash + $ pipenv-setup sync + setup.py not found under current directory + Creating boilerplate setup.py... + setup.py was successfully generated + 23 packages synced from Pipfile.lock to setup.py + Please edit the required fields in the generated file + ``` + + > Note: by default, `pipenv-setup` syncs lockfile instead of pipfile + +#### Sync `Pipfile` vs. `Pipfile.lock` + +Provide `--pipfile` flag to sync `Pipfile` instead of `Pipfile.lock`. + +`pipenv-setup` +will perform a liquid sync using semantic versioning taken from `Pipfile` (instead of +using frozen pinned versions from `Pipfile.lock`): + +```bash +$ pipenv-setup sync --pipfile +setup.py was successfully updated +23 packages synced from Pipfile to setup.py +``` + +### Checks Only + +run `$ pipenv-setup check` + +- checks four items + - local package in default pipfile packages + - Package version requirements in `install_requires` in setup.py that potentially violates Pipfile + - Package version requirements in `dependency_links` in setup.py that differs from Pipfile + - Default package in pipfile missing in `install_requires` or `dependency_links` in setup.py +- exits with non-zero code when conflict found (can be used in travis-ci) +- here is a somewhat extreme example: + + ```bash + $ pipenv-setup check + package 'numpy' has version string: >=1.2 in setup.py, which potentially violates >=1.5 in pipfile + package 'pywinusb' has version string: ==0.4.2 in setup.py, which is disjoint from ~=0.3.0 in pipfile + package 'records' has version string: >=0.4.2,<0.5 in setup.py, which is disjoint from >0.5.0 in pipfile + package 'django' has branch/version 1.11.5 in dependency_links, which is different than 1.11.4 listed in pipfile + package 'requests' in pipfile but not in install_requires + package 'e682b37' has a url in pipfile but not in dependency_links + (exits with 1) + ``` + +- provide `--ignore-local` flag to allow local packages in pipfile + + ```bash + $ pipenv-setup check + local package found in default dependency: e1839a8. + Do you mean to make it dev dependency + (exits with 1) + ``` + + ```bash + $ pipenv-setup check --ignore-local + No version conflict or missing packages/dependencies found in setup.py! + (exits with 0) + ``` + +- provide `--strict` flag to only pass identical version requirements + + By default `pipenv-setup check` passes when the version `setup.py` specifies is + "compatible" with `Pipfile`, i.e. is a subset of it. For example, a Pipfile + specifying `django~=1.1` with `setup.py` requiring `django==1.2` is such a case. + + Provide `--strict` to allow only identical requirements; _i.e._ for `Pipfile`'s + `django~=1.1`, `setup.py` must require `django>=1.1,<2.0` + + Example output: + + ```bash + $ pipenv-setup check --strict + package 'pywinusb' has version string: ==0.4.2 in setup.py, which specifies a subset of * in pipfile + package 'django' has version string: >=0.5 in setup.py, which is disjoint from ~=0.3.0 in pipfile + package 'records' has version string: ==0.5.2 in setup.py, which specifies a subset of >0.5.0 in pipfile + package 'requests' has version string: ==2.18.4 in setup.py, which specifies a subset of * in pipfile + (exits with 1) + ``` + +- provide `--lockfile` flag to check `setup.py` against `Pipfile.lock` instead of `Pipfile` + + By default, `pipenv-setup check` compares the dependencies from `setup.py` against + the dependencies listed in `Pipfile`. This works well for most cases, but there + are some exceptions that break this strategy, including (but not necessarily limited to): + + - VCS dependencies with a mutable `ref` (e.g. - git branch name instead of a tag or commit sha) + - Because these resolve to an immutable pointer (e.g. - commit sha) in `setup.py`, the + dependency will no longer match between `setup.py` and `Pipfile`. However, `Pipfile.lock` + will contain the same resolved pointer as `setup.py`. + +### Pre-commit integration + +You can run `pipenv-setup` automatically using a [pre-commit](https://pre-commit.com) hook. To get +started, add this configuration to your `.pre-commit-config.yaml`: + +```yaml +- repo: https://github.com/Madoshakalaka/pipenv-setup + rev: "3.2.0" # pick a git hash / tag to point to + hooks: + - id: pipenv-setup +``` + +This configuration will will execute `pipenv-setup sync --pipfile` on changes to `Pipfile`, +`Pipfile.lock`, and `setup.py`. + +You can also customize the default args (`"--pipfile"`). For example, to synchronize `--dev` extras: + +```yaml +- repo: # ... + hooks: + - id: pipenv-setup + args: [--dev, --pipfile] +``` + +If using the hook during CI (or in another environment separate from a `black` / `autopep8` +installation), you can include the appropriate auto-formatter with the hook: + +```yaml +- repo: # ... + hooks: + - id: pipenv-setup + additional_dependencies: [".[black]"] +``` + +## Contributing + +If you'd like to contribute to `pipenv-setup`, see [Contribution Guide](CONTRIBUTING.md) + + + + +%prep +%autosetup -n pipenv-setup-3.2.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pipenv-setup -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 3.2.0-1 +- Package Spec generated @@ -0,0 +1 @@ +6e064cb7d09642c9e7ce4643e5abc21f pipenv-setup-3.2.0.tar.gz |