summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-10 22:59:56 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-10 22:59:56 +0000
commitf0bdcd0095de138e6362a467c83287f9bfdd6ab7 (patch)
tree62b2d3623205ab2a84037d7a8d5c384e6f6b6670
parent6bee6d911735599169e3ca94f6282e551bdf3ccf (diff)
automatic import of python-single-source
-rw-r--r--.gitignore1
-rw-r--r--python-single-source.spec433
-rw-r--r--sources1
3 files changed, 435 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..41593b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/single-source-0.3.0.tar.gz
diff --git a/python-single-source.spec b/python-single-source.spec
new file mode 100644
index 0000000..9d83426
--- /dev/null
+++ b/python-single-source.spec
@@ -0,0 +1,433 @@
+%global _empty_manifest_terminate_build 0
+Name: python-single-source
+Version: 0.3.0
+Release: 1
+Summary: Access to the project version in Python code for PEP 621-style projects
+License: MIT
+URL: https://github.com/rabbit72/single-source
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/91/f0/26c1a35080f251308d897221e386232af02323d1271231378d040cc28db1/single-source-0.3.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-importlib_metadata
+
+%description
+# Single-source: There is only one truth
+> `single-source` helps to reduce the entropy in your Python project by keeping
+> single source of truth.
+
+The targets of this library are modern Python projects which want to have
+one source of truth for version, name and etc.
+
+At the moment, the library provides the single point for a package version.
+
+It supports Python 3.6+.
+
+## Quick start
+
+```python
+# root_package/__init__.py
+from pathlib import Path
+from single_source import get_version
+
+__version__ = get_version(__name__, Path(__file__).parent.parent)
+```
+
+## Root of the problem
+
+You use modern `pyproject.toml` and want to keep the version of your package
+here:
+```toml
+# pyproject.toml
+[tool.poetry]
+name = "modern-project"
+version = "0.1.0"
+```
+
+Let's imagine the version of your package is required in some place of the code.
+
+Since you need the version in your Python code, you may want to duplicate the version by putting it as a string variable to some python file:
+```python
+# modern_project/__init__.py
+__version__ = "0.1.0"
+
+# modern_project/version.py
+version = "0.1.0"
+```
+
+Then you realize you don't want to have the version in a python file and in pyproject.toml at the same time. It's harder to keep them consistent and easier to forget to bump both versions before release.
+
+Also, you don't want to build the wheel by creating some script for auto incrementing the version in both places (and use it in your CI flow, for example). Instead you want use `poetry version` commands.
+
+## Installation
+You can install `single-source` via [pip](https://pip.pypa.io/en/stable/)
+```bash
+pip3 install single-source
+```
+
+or via [poetry](https://python-poetry.org/docs/#installation)
+```bash
+poetry add single-source
+```
+
+The library also available as
+[a conda package](https://docs.conda.io/projects/conda/en/latest/) in
+[conda-forge](https://anaconda.org/conda-forge/repo) channel
+```bash
+conda install single-source --channel conda-forge
+```
+
+## Advanced usage
+### Changing default value
+If it's not possible to get the version from package metadata or
+there is no pyproject.toml `get_version` returns `""` - empty string by default.
+You can change this value by providing a value as a `default_return` keyword argument.
+
+```python
+from pathlib import Path
+from single_source import get_version
+
+path_to_pyproject_dir = Path(__file__).parent.parent
+__version__ = get_version(__name__, path_to_pyproject_dir, default_return=None)
+```
+
+### Raising an exception
+You may want to raise an exception in case the version of the package
+has not been found.
+```python
+from pathlib import Path
+from single_source import get_version, VersionNotFoundError
+
+path_to_pyproject_dir = Path(__file__).parent.parent
+try:
+ __version__ = get_version(__name__, path_to_pyproject_dir, fail=True)
+except VersionNotFoundError:
+ pass
+```
+
+
+### Not only pyproject.toml
+You can use `single-source` even if you still store the version of your library
+in `setup.py` or in any other `utf-8` encoded text file.
+
+>First, try without custom `regex`, probably it can parse the version
+
+If the default internal `regex` does not find the version in your file,
+the only thing you need to provide is a custom `regex` to `get_version`:
+```python
+from single_source import get_version
+
+custom_regex = r"\s*version\s*=\s*[\"']\s*([-.\w]{3,})\s*[\"']\s*"
+
+path_to_file = "~/my-project/some_file_with_version.txt"
+__version__ = get_version(__name__, path_to_file, version_regex=custom_regex)
+```
+Version must be in the first group `()` in the custom regex.
+
+## Contributing
+Pull requests are welcome. For major changes, please open an issue first to
+discuss what you would like to change.
+
+Please make sure to update tests as appropriate.
+
+## License
+[MIT](https://choosealicense.com/licenses/mit/)
+
+
+%package -n python3-single-source
+Summary: Access to the project version in Python code for PEP 621-style projects
+Provides: python-single-source
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-single-source
+# Single-source: There is only one truth
+> `single-source` helps to reduce the entropy in your Python project by keeping
+> single source of truth.
+
+The targets of this library are modern Python projects which want to have
+one source of truth for version, name and etc.
+
+At the moment, the library provides the single point for a package version.
+
+It supports Python 3.6+.
+
+## Quick start
+
+```python
+# root_package/__init__.py
+from pathlib import Path
+from single_source import get_version
+
+__version__ = get_version(__name__, Path(__file__).parent.parent)
+```
+
+## Root of the problem
+
+You use modern `pyproject.toml` and want to keep the version of your package
+here:
+```toml
+# pyproject.toml
+[tool.poetry]
+name = "modern-project"
+version = "0.1.0"
+```
+
+Let's imagine the version of your package is required in some place of the code.
+
+Since you need the version in your Python code, you may want to duplicate the version by putting it as a string variable to some python file:
+```python
+# modern_project/__init__.py
+__version__ = "0.1.0"
+
+# modern_project/version.py
+version = "0.1.0"
+```
+
+Then you realize you don't want to have the version in a python file and in pyproject.toml at the same time. It's harder to keep them consistent and easier to forget to bump both versions before release.
+
+Also, you don't want to build the wheel by creating some script for auto incrementing the version in both places (and use it in your CI flow, for example). Instead you want use `poetry version` commands.
+
+## Installation
+You can install `single-source` via [pip](https://pip.pypa.io/en/stable/)
+```bash
+pip3 install single-source
+```
+
+or via [poetry](https://python-poetry.org/docs/#installation)
+```bash
+poetry add single-source
+```
+
+The library also available as
+[a conda package](https://docs.conda.io/projects/conda/en/latest/) in
+[conda-forge](https://anaconda.org/conda-forge/repo) channel
+```bash
+conda install single-source --channel conda-forge
+```
+
+## Advanced usage
+### Changing default value
+If it's not possible to get the version from package metadata or
+there is no pyproject.toml `get_version` returns `""` - empty string by default.
+You can change this value by providing a value as a `default_return` keyword argument.
+
+```python
+from pathlib import Path
+from single_source import get_version
+
+path_to_pyproject_dir = Path(__file__).parent.parent
+__version__ = get_version(__name__, path_to_pyproject_dir, default_return=None)
+```
+
+### Raising an exception
+You may want to raise an exception in case the version of the package
+has not been found.
+```python
+from pathlib import Path
+from single_source import get_version, VersionNotFoundError
+
+path_to_pyproject_dir = Path(__file__).parent.parent
+try:
+ __version__ = get_version(__name__, path_to_pyproject_dir, fail=True)
+except VersionNotFoundError:
+ pass
+```
+
+
+### Not only pyproject.toml
+You can use `single-source` even if you still store the version of your library
+in `setup.py` or in any other `utf-8` encoded text file.
+
+>First, try without custom `regex`, probably it can parse the version
+
+If the default internal `regex` does not find the version in your file,
+the only thing you need to provide is a custom `regex` to `get_version`:
+```python
+from single_source import get_version
+
+custom_regex = r"\s*version\s*=\s*[\"']\s*([-.\w]{3,})\s*[\"']\s*"
+
+path_to_file = "~/my-project/some_file_with_version.txt"
+__version__ = get_version(__name__, path_to_file, version_regex=custom_regex)
+```
+Version must be in the first group `()` in the custom regex.
+
+## Contributing
+Pull requests are welcome. For major changes, please open an issue first to
+discuss what you would like to change.
+
+Please make sure to update tests as appropriate.
+
+## License
+[MIT](https://choosealicense.com/licenses/mit/)
+
+
+%package help
+Summary: Development documents and examples for single-source
+Provides: python3-single-source-doc
+%description help
+# Single-source: There is only one truth
+> `single-source` helps to reduce the entropy in your Python project by keeping
+> single source of truth.
+
+The targets of this library are modern Python projects which want to have
+one source of truth for version, name and etc.
+
+At the moment, the library provides the single point for a package version.
+
+It supports Python 3.6+.
+
+## Quick start
+
+```python
+# root_package/__init__.py
+from pathlib import Path
+from single_source import get_version
+
+__version__ = get_version(__name__, Path(__file__).parent.parent)
+```
+
+## Root of the problem
+
+You use modern `pyproject.toml` and want to keep the version of your package
+here:
+```toml
+# pyproject.toml
+[tool.poetry]
+name = "modern-project"
+version = "0.1.0"
+```
+
+Let's imagine the version of your package is required in some place of the code.
+
+Since you need the version in your Python code, you may want to duplicate the version by putting it as a string variable to some python file:
+```python
+# modern_project/__init__.py
+__version__ = "0.1.0"
+
+# modern_project/version.py
+version = "0.1.0"
+```
+
+Then you realize you don't want to have the version in a python file and in pyproject.toml at the same time. It's harder to keep them consistent and easier to forget to bump both versions before release.
+
+Also, you don't want to build the wheel by creating some script for auto incrementing the version in both places (and use it in your CI flow, for example). Instead you want use `poetry version` commands.
+
+## Installation
+You can install `single-source` via [pip](https://pip.pypa.io/en/stable/)
+```bash
+pip3 install single-source
+```
+
+or via [poetry](https://python-poetry.org/docs/#installation)
+```bash
+poetry add single-source
+```
+
+The library also available as
+[a conda package](https://docs.conda.io/projects/conda/en/latest/) in
+[conda-forge](https://anaconda.org/conda-forge/repo) channel
+```bash
+conda install single-source --channel conda-forge
+```
+
+## Advanced usage
+### Changing default value
+If it's not possible to get the version from package metadata or
+there is no pyproject.toml `get_version` returns `""` - empty string by default.
+You can change this value by providing a value as a `default_return` keyword argument.
+
+```python
+from pathlib import Path
+from single_source import get_version
+
+path_to_pyproject_dir = Path(__file__).parent.parent
+__version__ = get_version(__name__, path_to_pyproject_dir, default_return=None)
+```
+
+### Raising an exception
+You may want to raise an exception in case the version of the package
+has not been found.
+```python
+from pathlib import Path
+from single_source import get_version, VersionNotFoundError
+
+path_to_pyproject_dir = Path(__file__).parent.parent
+try:
+ __version__ = get_version(__name__, path_to_pyproject_dir, fail=True)
+except VersionNotFoundError:
+ pass
+```
+
+
+### Not only pyproject.toml
+You can use `single-source` even if you still store the version of your library
+in `setup.py` or in any other `utf-8` encoded text file.
+
+>First, try without custom `regex`, probably it can parse the version
+
+If the default internal `regex` does not find the version in your file,
+the only thing you need to provide is a custom `regex` to `get_version`:
+```python
+from single_source import get_version
+
+custom_regex = r"\s*version\s*=\s*[\"']\s*([-.\w]{3,})\s*[\"']\s*"
+
+path_to_file = "~/my-project/some_file_with_version.txt"
+__version__ = get_version(__name__, path_to_file, version_regex=custom_regex)
+```
+Version must be in the first group `()` in the custom regex.
+
+## Contributing
+Pull requests are welcome. For major changes, please open an issue first to
+discuss what you would like to change.
+
+Please make sure to update tests as appropriate.
+
+## License
+[MIT](https://choosealicense.com/licenses/mit/)
+
+
+%prep
+%autosetup -n single-source-0.3.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-single-source -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..1b5d350
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a811a19edf2852ee4fb356912f50a9f6 single-source-0.3.0.tar.gz