summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-18 05:15:12 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-18 05:15:12 +0000
commit4883b95b15ae8f08c10bdc15c7b185fe4d93da55 (patch)
tree8d968d4a04b96b09afb1aea15162f16ee101d285
parent387be1a260c52632b0f160402ccfb72c1d8eb794 (diff)
automatic import of python-relaxed-poetry
-rw-r--r--.gitignore1
-rw-r--r--python-relaxed-poetry.spec1087
-rw-r--r--sources1
3 files changed, 1089 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..f184939 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/relaxed-poetry-0.5.2.tar.gz
diff --git a/python-relaxed-poetry.spec b/python-relaxed-poetry.spec
new file mode 100644
index 0000000..c85cad1
--- /dev/null
+++ b/python-relaxed-poetry.spec
@@ -0,0 +1,1087 @@
+%global _empty_manifest_terminate_build 0
+Name: python-relaxed-poetry
+Version: 0.5.2
+Release: 1
+Summary: Fork of Poetry (Python dependency management and packaging tool), attempts to be faster and less strict.
+License: MIT
+URL: https://github.com/bennylut/relaxed-poetry
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/bb/6e/83241b9e3a6f2c074321093626d832746aea27aa4aef01bd7a61f52ae434/relaxed-poetry-0.5.2.tar.gz
+BuildArch: noarch
+
+Requires: python3-relaxed-poetry-core
+Requires: python3-cleo
+Requires: python3-crashtest
+Requires: python3-requests
+Requires: python3-cachy
+Requires: python3-requests-toolbelt
+Requires: python3-cachecontrol[filecache]
+Requires: python3-pkginfo
+Requires: python3-html5lib
+Requires: python3-shellingham
+Requires: python3-pexpect
+Requires: python3-packaging
+Requires: python3-virtualenv
+Requires: python3-keyring
+Requires: python3-entrypoints
+Requires: python3-importlib-metadata
+Requires: python3-dataclasses
+Requires: python3-protopy-lib
+Requires: python3-typing-extensions
+
+%description
+# Relaxed Poetry
+
+> ℹ️ For installation instructions check the [Wiki](https://github.com/bennylut/relaxed-poetry/wiki/Installation)
+
+This project is a poetry fork. It serves as a relaxed version of poetry (currently based on version 1.2.0a2).
+
+Poetry is a great tool and was a perfect fit for my team. Over the time, we found several issues where it is a bit too strict, and while most of the time for good reasons, these issues still made poetry unusable for us in many projects.
+
+Since, in my eyes, there is no real alternative to poetry, I choose to fork it and include some relaxations for the issues that we encounter. While I'm at it, I also modified some of poetry's behavior and added some features that suite our workflows and views better.
+
+All of the changes that were made in this fork are documented in the wiki, the followings are some notable ones:
+- Forced dependency versions
+- Relaxation of version-enforcements
+- Faster dependency-versions resolution (more than 4 times faster on tested projects)
+- Multi-package projects support
+- virtual environments are built inside the project directory by default
+- Project and other components scaffolding using [protopy](https://github.com/bennylut/protopy)
+- property definition and substitution in pyproject
+- automatic and manual build profiles (override groups of properties in pyproject)
+- install, update and add are merged into a single (install) command
+
+See wiki for further details.
+
+**Important**: this package is based on alpha staged poetry, changes may be frequent,
+though it is planed to be used internally for our projects from day one.
+
+**The rest of this README left as is from the original Poetry README**
+
+# Poetry: Dependency Management for Python
+
+Poetry helps you declare, manage and install dependencies of Python projects,
+ensuring you have the right stack everywhere.
+
+![Poetry Install](https://raw.githubusercontent.com/python-poetry/poetry/master/assets/install.gif)
+
+It supports Python 2.7 and 3.5+.
+
+**Note**: Python 2.7 and 3.5 will no longer be supported in the next feature release (1.2).
+You should consider updating your Python version to a supported one.
+
+[![Tests Status](https://github.com/python-poetry/poetry/workflows/Tests/badge.svg?branch=master&event=push)](https://github.com/python-poetry/poetry/actions?query=workflow%3ATests+branch%3Amaster+event%3Apush)
+
+The [complete documentation](https://python-poetry.org/docs/) is available on the [official website](https://python-poetry.org).
+
+## Installation
+
+Poetry provides a custom installer that will install `poetry` isolated
+from the rest of your system.
+
+### osx / linux / bashonwindows install instructions
+```bash
+curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python -
+```
+### windows powershell install instructions
+```powershell
+(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py -UseBasicParsing).Content | python -
+```
+
+**Warning**: The previous `get-poetry.py` installer is now deprecated, if you are currently using it
+you should migrate to the new, supported, `install-poetry.py` installer.
+
+The installer installs the `poetry` tool to Poetry's `bin` directory. This location depends on your system:
+
+- `$HOME/.local/bin` for Unix
+- `%APPDATA%\Python\Scripts` on Windows
+
+If this directory is not on your `PATH`, you will need to add it manually
+if you want to invoke Poetry with simply `poetry`.
+
+Alternatively, you can use the full path to `poetry` to use it.
+
+Once Poetry is installed you can execute the following:
+
+```bash
+poetry --version
+```
+
+If you see something like `Poetry (version 1.2.0)` then you are ready to use Poetry.
+If you decide Poetry isn't your thing, you can completely remove it from your system
+by running the installer again with the `--uninstall` option or by setting
+the `POETRY_UNINSTALL` environment variable before executing the installer.
+
+```bash
+python install-poetry.py --uninstall
+POETRY_UNINSTALL=1 python install-poetry.py
+```
+
+By default, Poetry is installed into the user's platform-specific home directory.
+If you wish to change this, you may define the `POETRY_HOME` environment variable:
+
+```bash
+POETRY_HOME=/etc/poetry python install-poetry.py
+```
+
+If you want to install prerelease versions, you can do so by passing `--preview` option to `install-poetry.py`
+or by using the `POETRY_PREVIEW` environment variable:
+
+```bash
+python install-poetry.py --preview
+POETRY_PREVIEW=1 python install-poetry.py
+```
+
+Similarly, if you want to install a specific version, you can use `--version` option or the `POETRY_VERSION`
+environment variable:
+
+```bash
+python install-poetry.py --version 1.2.0
+POETRY_VERSION=1.2.0 python install-poetry.py
+```
+
+You can also install Poetry for a `git` repository by using the `--git` option:
+
+```bash
+python install-poetry.py --git https://github.com/python-poetry/poetry.git@master
+````
+
+**Note**: Note that the installer does not support Python < 3.6.
+
+## Updating `poetry`
+
+Updating poetry to the latest stable version is as simple as calling the `self update` command.
+
+**Warning**: Poetry versions installed using the now deprecated `get-poetry.py` installer will not be able to use this
+command to update to 1.2 releases or later. Migrate to using the `install-poetry.py` installer or `pipx`.
+
+```bash
+poetry self update
+```
+
+If you want to install prerelease versions, you can use the `--preview` option.
+
+```bash
+poetry self update --preview
+```
+
+And finally, if you want to install a specific version you can pass it as an argument
+to `self update`.
+
+```bash
+poetry self update 1.2.0
+```
+
+
+## Enable tab completion for Bash, Fish, or Zsh
+
+`poetry` supports generating completion scripts for Bash, Fish, and Zsh.
+See `poetry help completions` for full details, but the gist is as simple as using one of the following:
+
+```bash
+# Bash
+poetry completions bash > /etc/bash_completion.d/poetry.bash-completion
+
+# Bash (Homebrew)
+poetry completions bash > $(brew --prefix)/etc/bash_completion.d/poetry.bash-completion
+
+# Fish
+poetry completions fish > ~/.config/fish/completions/poetry.fish
+
+# Fish (Homebrew)
+poetry completions fish > (brew --prefix)/share/fish/vendor_completions.d/poetry.fish
+
+# Zsh
+poetry completions zsh > ~/.zfunc/_poetry
+
+# Zsh (Homebrew)
+poetry completions zsh > $(brew --prefix)/share/zsh/site-functions/_poetry
+
+# Zsh (Oh-My-Zsh)
+mkdir $ZSH_CUSTOM/plugins/poetry
+poetry completions zsh > $ZSH_CUSTOM/plugins/poetry/_poetry
+
+# Zsh (prezto)
+poetry completions zsh > ~/.zprezto/modules/completion/external/src/_poetry
+```
+
+*Note:* you may need to restart your shell in order for the changes to take
+effect.
+
+For `zsh`, you must then add the following line in your `~/.zshrc` before
+`compinit` (not for homebrew setup):
+
+```zsh
+fpath+=~/.zfunc
+```
+
+
+## Introduction
+
+`poetry` is a tool to handle dependency installation as well as building and packaging of Python packages.
+It only needs one file to do all of that: the new, [standardized](https://www.python.org/dev/peps/pep-0518/) `pyproject.toml`.
+
+In other words, poetry uses `pyproject.toml` to replace `setup.py`, `requirements.txt`, `setup.cfg`, `MANIFEST.in` and the newly added `Pipfile`.
+
+```toml
+[tool.poetry]
+name = "my-package"
+version = "0.1.0"
+description = "The description of the package"
+
+license = "MIT"
+
+authors = [
+ "Sébastien Eustace <sebastien@eustace.io>"
+]
+
+readme = 'README.md' # Markdown files are supported
+
+repository = "https://github.com/python-poetry/poetry"
+homepage = "https://github.com/python-poetry/poetry"
+
+keywords = ['packaging', 'poetry']
+
+[tool.poetry.dependencies]
+python = "~2.7 || ^3.2" # Compatible python versions must be declared here
+toml = "^0.9"
+# Dependencies with extras
+requests = { version = "^2.13", extras = [ "security" ] }
+# Python specific dependencies with prereleases allowed
+pathlib2 = { version = "^2.2", python = "~2.7", allow-prereleases = true }
+# Git dependencies
+cleo = { git = "https://github.com/sdispater/cleo.git", branch = "master" }
+
+# Optional dependencies (extras)
+pendulum = { version = "^1.4", optional = true }
+
+[tool.poetry.dev-dependencies]
+pytest = "^3.0"
+pytest-cov = "^2.4"
+
+[tool.poetry.scripts]
+my-script = 'my_package:main'
+```
+
+There are some things we can notice here:
+
+* It will try to enforce [semantic versioning](<http://semver.org>) as the best practice in version naming.
+* You can specify the readme, included and excluded files: no more `MANIFEST.in`.
+`poetry` will also use VCS ignore files (like `.gitignore`) to populate the `exclude` section.
+* Keywords (up to 5) can be specified and will act as tags on the packaging site.
+* The dependencies sections support caret, tilde, wildcard, inequality and multiple requirements.
+* You must specify the python versions for which your package is compatible.
+
+`poetry` will also detect if you are inside a virtualenv and install the packages accordingly.
+So, `poetry` can be installed globally and used everywhere.
+
+`poetry` also comes with a full fledged dependency resolution library.
+
+## Why?
+
+Packaging systems and dependency management in Python are rather convoluted and hard to understand for newcomers.
+Even for seasoned developers it might be cumbersome at times to create all files needed in a Python project: `setup.py`,
+`requirements.txt`, `setup.cfg`, `MANIFEST.in` and the newly added `Pipfile`.
+
+So I wanted a tool that would limit everything to a single configuration file to do:
+dependency management, packaging and publishing.
+
+It takes inspiration in tools that exist in other languages, like `composer` (PHP) or `cargo` (Rust).
+
+And, finally, I started `poetry` to bring another exhaustive dependency resolver to the Python community apart from
+[Conda's](https://conda.io).
+
+### What about Pipenv?
+
+In short: I do not like the CLI it provides, or some of the decisions made,
+and I think we can make a better and more intuitive one. Here are a few things
+that I don't like.
+
+#### Dependency resolution
+
+The dependency resolution is erratic and will fail even if there is a solution. Let's take an example:
+
+```bash
+pipenv install oslo.utils==1.4.0
+```
+
+will fail with this error:
+
+```text
+Could not find a version that matches pbr!=0.7,!=2.1.0,<1.0,>=0.6,>=2.0.0
+```
+
+while Poetry will get you the right set of packages:
+
+```bash
+poetry add oslo.utils=1.4.0
+```
+
+results in :
+
+```text
+ - Installing pytz (2018.3)
+ - Installing netifaces (0.10.6)
+ - Installing netaddr (0.7.19)
+ - Installing oslo.i18n (2.1.0)
+ - Installing iso8601 (0.1.12)
+ - Installing six (1.11.0)
+ - Installing babel (2.5.3)
+ - Installing pbr (0.11.1)
+ - Installing oslo.utils (1.4.0)
+```
+
+This is possible thanks to the efficient dependency resolver at the heart of Poetry.
+
+Here is a breakdown of what exactly happens here:
+
+`oslo.utils (1.4.0)` depends on:
+
+- `pbr (>=0.6,!=0.7,<1.0)`
+- `Babel (>=1.3)`
+- `six (>=1.9.0)`
+- `iso8601 (>=0.1.9)`
+- `oslo.i18n (>=1.3.0)`
+- `netaddr (>=0.7.12)`
+- `netifaces (>=0.10.4)`
+
+What interests us is `pbr (>=0.6,!=0.7,<1.0)`.
+
+At this point, poetry will choose `pbr==0.11.1` which is the latest version that matches the constraint.
+
+Next it will try to select `oslo.i18n==3.20.0` which is the latest version that matches `oslo.i18n (>=1.3.0)`.
+
+However this version requires `pbr (!=2.1.0,>=2.0.0)` which is incompatible with `pbr==0.11.1`,
+so `poetry` will try to find a version of `oslo.i18n` that satisfies `pbr (>=0.6,!=0.7,<1.0)`.
+
+By analyzing the releases of `oslo.i18n`, it will find `oslo.i18n==2.1.0` which requires `pbr (>=0.11,<2.0)`.
+At this point the rest of the resolution is straightforward since there is no more conflict.
+
+## Resources
+
+* [Official Website](https://python-poetry.org)
+* [Issue Tracker](https://github.com/python-poetry/poetry/issues)
+* [Discord](https://discord.com/invite/awxPgve)
+
+
+%package -n python3-relaxed-poetry
+Summary: Fork of Poetry (Python dependency management and packaging tool), attempts to be faster and less strict.
+Provides: python-relaxed-poetry
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-relaxed-poetry
+# Relaxed Poetry
+
+> ℹ️ For installation instructions check the [Wiki](https://github.com/bennylut/relaxed-poetry/wiki/Installation)
+
+This project is a poetry fork. It serves as a relaxed version of poetry (currently based on version 1.2.0a2).
+
+Poetry is a great tool and was a perfect fit for my team. Over the time, we found several issues where it is a bit too strict, and while most of the time for good reasons, these issues still made poetry unusable for us in many projects.
+
+Since, in my eyes, there is no real alternative to poetry, I choose to fork it and include some relaxations for the issues that we encounter. While I'm at it, I also modified some of poetry's behavior and added some features that suite our workflows and views better.
+
+All of the changes that were made in this fork are documented in the wiki, the followings are some notable ones:
+- Forced dependency versions
+- Relaxation of version-enforcements
+- Faster dependency-versions resolution (more than 4 times faster on tested projects)
+- Multi-package projects support
+- virtual environments are built inside the project directory by default
+- Project and other components scaffolding using [protopy](https://github.com/bennylut/protopy)
+- property definition and substitution in pyproject
+- automatic and manual build profiles (override groups of properties in pyproject)
+- install, update and add are merged into a single (install) command
+
+See wiki for further details.
+
+**Important**: this package is based on alpha staged poetry, changes may be frequent,
+though it is planed to be used internally for our projects from day one.
+
+**The rest of this README left as is from the original Poetry README**
+
+# Poetry: Dependency Management for Python
+
+Poetry helps you declare, manage and install dependencies of Python projects,
+ensuring you have the right stack everywhere.
+
+![Poetry Install](https://raw.githubusercontent.com/python-poetry/poetry/master/assets/install.gif)
+
+It supports Python 2.7 and 3.5+.
+
+**Note**: Python 2.7 and 3.5 will no longer be supported in the next feature release (1.2).
+You should consider updating your Python version to a supported one.
+
+[![Tests Status](https://github.com/python-poetry/poetry/workflows/Tests/badge.svg?branch=master&event=push)](https://github.com/python-poetry/poetry/actions?query=workflow%3ATests+branch%3Amaster+event%3Apush)
+
+The [complete documentation](https://python-poetry.org/docs/) is available on the [official website](https://python-poetry.org).
+
+## Installation
+
+Poetry provides a custom installer that will install `poetry` isolated
+from the rest of your system.
+
+### osx / linux / bashonwindows install instructions
+```bash
+curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python -
+```
+### windows powershell install instructions
+```powershell
+(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py -UseBasicParsing).Content | python -
+```
+
+**Warning**: The previous `get-poetry.py` installer is now deprecated, if you are currently using it
+you should migrate to the new, supported, `install-poetry.py` installer.
+
+The installer installs the `poetry` tool to Poetry's `bin` directory. This location depends on your system:
+
+- `$HOME/.local/bin` for Unix
+- `%APPDATA%\Python\Scripts` on Windows
+
+If this directory is not on your `PATH`, you will need to add it manually
+if you want to invoke Poetry with simply `poetry`.
+
+Alternatively, you can use the full path to `poetry` to use it.
+
+Once Poetry is installed you can execute the following:
+
+```bash
+poetry --version
+```
+
+If you see something like `Poetry (version 1.2.0)` then you are ready to use Poetry.
+If you decide Poetry isn't your thing, you can completely remove it from your system
+by running the installer again with the `--uninstall` option or by setting
+the `POETRY_UNINSTALL` environment variable before executing the installer.
+
+```bash
+python install-poetry.py --uninstall
+POETRY_UNINSTALL=1 python install-poetry.py
+```
+
+By default, Poetry is installed into the user's platform-specific home directory.
+If you wish to change this, you may define the `POETRY_HOME` environment variable:
+
+```bash
+POETRY_HOME=/etc/poetry python install-poetry.py
+```
+
+If you want to install prerelease versions, you can do so by passing `--preview` option to `install-poetry.py`
+or by using the `POETRY_PREVIEW` environment variable:
+
+```bash
+python install-poetry.py --preview
+POETRY_PREVIEW=1 python install-poetry.py
+```
+
+Similarly, if you want to install a specific version, you can use `--version` option or the `POETRY_VERSION`
+environment variable:
+
+```bash
+python install-poetry.py --version 1.2.0
+POETRY_VERSION=1.2.0 python install-poetry.py
+```
+
+You can also install Poetry for a `git` repository by using the `--git` option:
+
+```bash
+python install-poetry.py --git https://github.com/python-poetry/poetry.git@master
+````
+
+**Note**: Note that the installer does not support Python < 3.6.
+
+## Updating `poetry`
+
+Updating poetry to the latest stable version is as simple as calling the `self update` command.
+
+**Warning**: Poetry versions installed using the now deprecated `get-poetry.py` installer will not be able to use this
+command to update to 1.2 releases or later. Migrate to using the `install-poetry.py` installer or `pipx`.
+
+```bash
+poetry self update
+```
+
+If you want to install prerelease versions, you can use the `--preview` option.
+
+```bash
+poetry self update --preview
+```
+
+And finally, if you want to install a specific version you can pass it as an argument
+to `self update`.
+
+```bash
+poetry self update 1.2.0
+```
+
+
+## Enable tab completion for Bash, Fish, or Zsh
+
+`poetry` supports generating completion scripts for Bash, Fish, and Zsh.
+See `poetry help completions` for full details, but the gist is as simple as using one of the following:
+
+```bash
+# Bash
+poetry completions bash > /etc/bash_completion.d/poetry.bash-completion
+
+# Bash (Homebrew)
+poetry completions bash > $(brew --prefix)/etc/bash_completion.d/poetry.bash-completion
+
+# Fish
+poetry completions fish > ~/.config/fish/completions/poetry.fish
+
+# Fish (Homebrew)
+poetry completions fish > (brew --prefix)/share/fish/vendor_completions.d/poetry.fish
+
+# Zsh
+poetry completions zsh > ~/.zfunc/_poetry
+
+# Zsh (Homebrew)
+poetry completions zsh > $(brew --prefix)/share/zsh/site-functions/_poetry
+
+# Zsh (Oh-My-Zsh)
+mkdir $ZSH_CUSTOM/plugins/poetry
+poetry completions zsh > $ZSH_CUSTOM/plugins/poetry/_poetry
+
+# Zsh (prezto)
+poetry completions zsh > ~/.zprezto/modules/completion/external/src/_poetry
+```
+
+*Note:* you may need to restart your shell in order for the changes to take
+effect.
+
+For `zsh`, you must then add the following line in your `~/.zshrc` before
+`compinit` (not for homebrew setup):
+
+```zsh
+fpath+=~/.zfunc
+```
+
+
+## Introduction
+
+`poetry` is a tool to handle dependency installation as well as building and packaging of Python packages.
+It only needs one file to do all of that: the new, [standardized](https://www.python.org/dev/peps/pep-0518/) `pyproject.toml`.
+
+In other words, poetry uses `pyproject.toml` to replace `setup.py`, `requirements.txt`, `setup.cfg`, `MANIFEST.in` and the newly added `Pipfile`.
+
+```toml
+[tool.poetry]
+name = "my-package"
+version = "0.1.0"
+description = "The description of the package"
+
+license = "MIT"
+
+authors = [
+ "Sébastien Eustace <sebastien@eustace.io>"
+]
+
+readme = 'README.md' # Markdown files are supported
+
+repository = "https://github.com/python-poetry/poetry"
+homepage = "https://github.com/python-poetry/poetry"
+
+keywords = ['packaging', 'poetry']
+
+[tool.poetry.dependencies]
+python = "~2.7 || ^3.2" # Compatible python versions must be declared here
+toml = "^0.9"
+# Dependencies with extras
+requests = { version = "^2.13", extras = [ "security" ] }
+# Python specific dependencies with prereleases allowed
+pathlib2 = { version = "^2.2", python = "~2.7", allow-prereleases = true }
+# Git dependencies
+cleo = { git = "https://github.com/sdispater/cleo.git", branch = "master" }
+
+# Optional dependencies (extras)
+pendulum = { version = "^1.4", optional = true }
+
+[tool.poetry.dev-dependencies]
+pytest = "^3.0"
+pytest-cov = "^2.4"
+
+[tool.poetry.scripts]
+my-script = 'my_package:main'
+```
+
+There are some things we can notice here:
+
+* It will try to enforce [semantic versioning](<http://semver.org>) as the best practice in version naming.
+* You can specify the readme, included and excluded files: no more `MANIFEST.in`.
+`poetry` will also use VCS ignore files (like `.gitignore`) to populate the `exclude` section.
+* Keywords (up to 5) can be specified and will act as tags on the packaging site.
+* The dependencies sections support caret, tilde, wildcard, inequality and multiple requirements.
+* You must specify the python versions for which your package is compatible.
+
+`poetry` will also detect if you are inside a virtualenv and install the packages accordingly.
+So, `poetry` can be installed globally and used everywhere.
+
+`poetry` also comes with a full fledged dependency resolution library.
+
+## Why?
+
+Packaging systems and dependency management in Python are rather convoluted and hard to understand for newcomers.
+Even for seasoned developers it might be cumbersome at times to create all files needed in a Python project: `setup.py`,
+`requirements.txt`, `setup.cfg`, `MANIFEST.in` and the newly added `Pipfile`.
+
+So I wanted a tool that would limit everything to a single configuration file to do:
+dependency management, packaging and publishing.
+
+It takes inspiration in tools that exist in other languages, like `composer` (PHP) or `cargo` (Rust).
+
+And, finally, I started `poetry` to bring another exhaustive dependency resolver to the Python community apart from
+[Conda's](https://conda.io).
+
+### What about Pipenv?
+
+In short: I do not like the CLI it provides, or some of the decisions made,
+and I think we can make a better and more intuitive one. Here are a few things
+that I don't like.
+
+#### Dependency resolution
+
+The dependency resolution is erratic and will fail even if there is a solution. Let's take an example:
+
+```bash
+pipenv install oslo.utils==1.4.0
+```
+
+will fail with this error:
+
+```text
+Could not find a version that matches pbr!=0.7,!=2.1.0,<1.0,>=0.6,>=2.0.0
+```
+
+while Poetry will get you the right set of packages:
+
+```bash
+poetry add oslo.utils=1.4.0
+```
+
+results in :
+
+```text
+ - Installing pytz (2018.3)
+ - Installing netifaces (0.10.6)
+ - Installing netaddr (0.7.19)
+ - Installing oslo.i18n (2.1.0)
+ - Installing iso8601 (0.1.12)
+ - Installing six (1.11.0)
+ - Installing babel (2.5.3)
+ - Installing pbr (0.11.1)
+ - Installing oslo.utils (1.4.0)
+```
+
+This is possible thanks to the efficient dependency resolver at the heart of Poetry.
+
+Here is a breakdown of what exactly happens here:
+
+`oslo.utils (1.4.0)` depends on:
+
+- `pbr (>=0.6,!=0.7,<1.0)`
+- `Babel (>=1.3)`
+- `six (>=1.9.0)`
+- `iso8601 (>=0.1.9)`
+- `oslo.i18n (>=1.3.0)`
+- `netaddr (>=0.7.12)`
+- `netifaces (>=0.10.4)`
+
+What interests us is `pbr (>=0.6,!=0.7,<1.0)`.
+
+At this point, poetry will choose `pbr==0.11.1` which is the latest version that matches the constraint.
+
+Next it will try to select `oslo.i18n==3.20.0` which is the latest version that matches `oslo.i18n (>=1.3.0)`.
+
+However this version requires `pbr (!=2.1.0,>=2.0.0)` which is incompatible with `pbr==0.11.1`,
+so `poetry` will try to find a version of `oslo.i18n` that satisfies `pbr (>=0.6,!=0.7,<1.0)`.
+
+By analyzing the releases of `oslo.i18n`, it will find `oslo.i18n==2.1.0` which requires `pbr (>=0.11,<2.0)`.
+At this point the rest of the resolution is straightforward since there is no more conflict.
+
+## Resources
+
+* [Official Website](https://python-poetry.org)
+* [Issue Tracker](https://github.com/python-poetry/poetry/issues)
+* [Discord](https://discord.com/invite/awxPgve)
+
+
+%package help
+Summary: Development documents and examples for relaxed-poetry
+Provides: python3-relaxed-poetry-doc
+%description help
+# Relaxed Poetry
+
+> ℹ️ For installation instructions check the [Wiki](https://github.com/bennylut/relaxed-poetry/wiki/Installation)
+
+This project is a poetry fork. It serves as a relaxed version of poetry (currently based on version 1.2.0a2).
+
+Poetry is a great tool and was a perfect fit for my team. Over the time, we found several issues where it is a bit too strict, and while most of the time for good reasons, these issues still made poetry unusable for us in many projects.
+
+Since, in my eyes, there is no real alternative to poetry, I choose to fork it and include some relaxations for the issues that we encounter. While I'm at it, I also modified some of poetry's behavior and added some features that suite our workflows and views better.
+
+All of the changes that were made in this fork are documented in the wiki, the followings are some notable ones:
+- Forced dependency versions
+- Relaxation of version-enforcements
+- Faster dependency-versions resolution (more than 4 times faster on tested projects)
+- Multi-package projects support
+- virtual environments are built inside the project directory by default
+- Project and other components scaffolding using [protopy](https://github.com/bennylut/protopy)
+- property definition and substitution in pyproject
+- automatic and manual build profiles (override groups of properties in pyproject)
+- install, update and add are merged into a single (install) command
+
+See wiki for further details.
+
+**Important**: this package is based on alpha staged poetry, changes may be frequent,
+though it is planed to be used internally for our projects from day one.
+
+**The rest of this README left as is from the original Poetry README**
+
+# Poetry: Dependency Management for Python
+
+Poetry helps you declare, manage and install dependencies of Python projects,
+ensuring you have the right stack everywhere.
+
+![Poetry Install](https://raw.githubusercontent.com/python-poetry/poetry/master/assets/install.gif)
+
+It supports Python 2.7 and 3.5+.
+
+**Note**: Python 2.7 and 3.5 will no longer be supported in the next feature release (1.2).
+You should consider updating your Python version to a supported one.
+
+[![Tests Status](https://github.com/python-poetry/poetry/workflows/Tests/badge.svg?branch=master&event=push)](https://github.com/python-poetry/poetry/actions?query=workflow%3ATests+branch%3Amaster+event%3Apush)
+
+The [complete documentation](https://python-poetry.org/docs/) is available on the [official website](https://python-poetry.org).
+
+## Installation
+
+Poetry provides a custom installer that will install `poetry` isolated
+from the rest of your system.
+
+### osx / linux / bashonwindows install instructions
+```bash
+curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python -
+```
+### windows powershell install instructions
+```powershell
+(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py -UseBasicParsing).Content | python -
+```
+
+**Warning**: The previous `get-poetry.py` installer is now deprecated, if you are currently using it
+you should migrate to the new, supported, `install-poetry.py` installer.
+
+The installer installs the `poetry` tool to Poetry's `bin` directory. This location depends on your system:
+
+- `$HOME/.local/bin` for Unix
+- `%APPDATA%\Python\Scripts` on Windows
+
+If this directory is not on your `PATH`, you will need to add it manually
+if you want to invoke Poetry with simply `poetry`.
+
+Alternatively, you can use the full path to `poetry` to use it.
+
+Once Poetry is installed you can execute the following:
+
+```bash
+poetry --version
+```
+
+If you see something like `Poetry (version 1.2.0)` then you are ready to use Poetry.
+If you decide Poetry isn't your thing, you can completely remove it from your system
+by running the installer again with the `--uninstall` option or by setting
+the `POETRY_UNINSTALL` environment variable before executing the installer.
+
+```bash
+python install-poetry.py --uninstall
+POETRY_UNINSTALL=1 python install-poetry.py
+```
+
+By default, Poetry is installed into the user's platform-specific home directory.
+If you wish to change this, you may define the `POETRY_HOME` environment variable:
+
+```bash
+POETRY_HOME=/etc/poetry python install-poetry.py
+```
+
+If you want to install prerelease versions, you can do so by passing `--preview` option to `install-poetry.py`
+or by using the `POETRY_PREVIEW` environment variable:
+
+```bash
+python install-poetry.py --preview
+POETRY_PREVIEW=1 python install-poetry.py
+```
+
+Similarly, if you want to install a specific version, you can use `--version` option or the `POETRY_VERSION`
+environment variable:
+
+```bash
+python install-poetry.py --version 1.2.0
+POETRY_VERSION=1.2.0 python install-poetry.py
+```
+
+You can also install Poetry for a `git` repository by using the `--git` option:
+
+```bash
+python install-poetry.py --git https://github.com/python-poetry/poetry.git@master
+````
+
+**Note**: Note that the installer does not support Python < 3.6.
+
+## Updating `poetry`
+
+Updating poetry to the latest stable version is as simple as calling the `self update` command.
+
+**Warning**: Poetry versions installed using the now deprecated `get-poetry.py` installer will not be able to use this
+command to update to 1.2 releases or later. Migrate to using the `install-poetry.py` installer or `pipx`.
+
+```bash
+poetry self update
+```
+
+If you want to install prerelease versions, you can use the `--preview` option.
+
+```bash
+poetry self update --preview
+```
+
+And finally, if you want to install a specific version you can pass it as an argument
+to `self update`.
+
+```bash
+poetry self update 1.2.0
+```
+
+
+## Enable tab completion for Bash, Fish, or Zsh
+
+`poetry` supports generating completion scripts for Bash, Fish, and Zsh.
+See `poetry help completions` for full details, but the gist is as simple as using one of the following:
+
+```bash
+# Bash
+poetry completions bash > /etc/bash_completion.d/poetry.bash-completion
+
+# Bash (Homebrew)
+poetry completions bash > $(brew --prefix)/etc/bash_completion.d/poetry.bash-completion
+
+# Fish
+poetry completions fish > ~/.config/fish/completions/poetry.fish
+
+# Fish (Homebrew)
+poetry completions fish > (brew --prefix)/share/fish/vendor_completions.d/poetry.fish
+
+# Zsh
+poetry completions zsh > ~/.zfunc/_poetry
+
+# Zsh (Homebrew)
+poetry completions zsh > $(brew --prefix)/share/zsh/site-functions/_poetry
+
+# Zsh (Oh-My-Zsh)
+mkdir $ZSH_CUSTOM/plugins/poetry
+poetry completions zsh > $ZSH_CUSTOM/plugins/poetry/_poetry
+
+# Zsh (prezto)
+poetry completions zsh > ~/.zprezto/modules/completion/external/src/_poetry
+```
+
+*Note:* you may need to restart your shell in order for the changes to take
+effect.
+
+For `zsh`, you must then add the following line in your `~/.zshrc` before
+`compinit` (not for homebrew setup):
+
+```zsh
+fpath+=~/.zfunc
+```
+
+
+## Introduction
+
+`poetry` is a tool to handle dependency installation as well as building and packaging of Python packages.
+It only needs one file to do all of that: the new, [standardized](https://www.python.org/dev/peps/pep-0518/) `pyproject.toml`.
+
+In other words, poetry uses `pyproject.toml` to replace `setup.py`, `requirements.txt`, `setup.cfg`, `MANIFEST.in` and the newly added `Pipfile`.
+
+```toml
+[tool.poetry]
+name = "my-package"
+version = "0.1.0"
+description = "The description of the package"
+
+license = "MIT"
+
+authors = [
+ "Sébastien Eustace <sebastien@eustace.io>"
+]
+
+readme = 'README.md' # Markdown files are supported
+
+repository = "https://github.com/python-poetry/poetry"
+homepage = "https://github.com/python-poetry/poetry"
+
+keywords = ['packaging', 'poetry']
+
+[tool.poetry.dependencies]
+python = "~2.7 || ^3.2" # Compatible python versions must be declared here
+toml = "^0.9"
+# Dependencies with extras
+requests = { version = "^2.13", extras = [ "security" ] }
+# Python specific dependencies with prereleases allowed
+pathlib2 = { version = "^2.2", python = "~2.7", allow-prereleases = true }
+# Git dependencies
+cleo = { git = "https://github.com/sdispater/cleo.git", branch = "master" }
+
+# Optional dependencies (extras)
+pendulum = { version = "^1.4", optional = true }
+
+[tool.poetry.dev-dependencies]
+pytest = "^3.0"
+pytest-cov = "^2.4"
+
+[tool.poetry.scripts]
+my-script = 'my_package:main'
+```
+
+There are some things we can notice here:
+
+* It will try to enforce [semantic versioning](<http://semver.org>) as the best practice in version naming.
+* You can specify the readme, included and excluded files: no more `MANIFEST.in`.
+`poetry` will also use VCS ignore files (like `.gitignore`) to populate the `exclude` section.
+* Keywords (up to 5) can be specified and will act as tags on the packaging site.
+* The dependencies sections support caret, tilde, wildcard, inequality and multiple requirements.
+* You must specify the python versions for which your package is compatible.
+
+`poetry` will also detect if you are inside a virtualenv and install the packages accordingly.
+So, `poetry` can be installed globally and used everywhere.
+
+`poetry` also comes with a full fledged dependency resolution library.
+
+## Why?
+
+Packaging systems and dependency management in Python are rather convoluted and hard to understand for newcomers.
+Even for seasoned developers it might be cumbersome at times to create all files needed in a Python project: `setup.py`,
+`requirements.txt`, `setup.cfg`, `MANIFEST.in` and the newly added `Pipfile`.
+
+So I wanted a tool that would limit everything to a single configuration file to do:
+dependency management, packaging and publishing.
+
+It takes inspiration in tools that exist in other languages, like `composer` (PHP) or `cargo` (Rust).
+
+And, finally, I started `poetry` to bring another exhaustive dependency resolver to the Python community apart from
+[Conda's](https://conda.io).
+
+### What about Pipenv?
+
+In short: I do not like the CLI it provides, or some of the decisions made,
+and I think we can make a better and more intuitive one. Here are a few things
+that I don't like.
+
+#### Dependency resolution
+
+The dependency resolution is erratic and will fail even if there is a solution. Let's take an example:
+
+```bash
+pipenv install oslo.utils==1.4.0
+```
+
+will fail with this error:
+
+```text
+Could not find a version that matches pbr!=0.7,!=2.1.0,<1.0,>=0.6,>=2.0.0
+```
+
+while Poetry will get you the right set of packages:
+
+```bash
+poetry add oslo.utils=1.4.0
+```
+
+results in :
+
+```text
+ - Installing pytz (2018.3)
+ - Installing netifaces (0.10.6)
+ - Installing netaddr (0.7.19)
+ - Installing oslo.i18n (2.1.0)
+ - Installing iso8601 (0.1.12)
+ - Installing six (1.11.0)
+ - Installing babel (2.5.3)
+ - Installing pbr (0.11.1)
+ - Installing oslo.utils (1.4.0)
+```
+
+This is possible thanks to the efficient dependency resolver at the heart of Poetry.
+
+Here is a breakdown of what exactly happens here:
+
+`oslo.utils (1.4.0)` depends on:
+
+- `pbr (>=0.6,!=0.7,<1.0)`
+- `Babel (>=1.3)`
+- `six (>=1.9.0)`
+- `iso8601 (>=0.1.9)`
+- `oslo.i18n (>=1.3.0)`
+- `netaddr (>=0.7.12)`
+- `netifaces (>=0.10.4)`
+
+What interests us is `pbr (>=0.6,!=0.7,<1.0)`.
+
+At this point, poetry will choose `pbr==0.11.1` which is the latest version that matches the constraint.
+
+Next it will try to select `oslo.i18n==3.20.0` which is the latest version that matches `oslo.i18n (>=1.3.0)`.
+
+However this version requires `pbr (!=2.1.0,>=2.0.0)` which is incompatible with `pbr==0.11.1`,
+so `poetry` will try to find a version of `oslo.i18n` that satisfies `pbr (>=0.6,!=0.7,<1.0)`.
+
+By analyzing the releases of `oslo.i18n`, it will find `oslo.i18n==2.1.0` which requires `pbr (>=0.11,<2.0)`.
+At this point the rest of the resolution is straightforward since there is no more conflict.
+
+## Resources
+
+* [Official Website](https://python-poetry.org)
+* [Issue Tracker](https://github.com/python-poetry/poetry/issues)
+* [Discord](https://discord.com/invite/awxPgve)
+
+
+%prep
+%autosetup -n relaxed-poetry-0.5.2
+
+%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-relaxed-poetry -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..c96051f
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+8b75bebfd68d1c0cf0778baa3382f4cf relaxed-poetry-0.5.2.tar.gz