summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 01:35:02 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 01:35:02 +0000
commit2c79a921c7c16d63811e545b3311b0c3e7cf08b6 (patch)
treef1a3e186199108a01f1bba5949301bfc2ea5633c
parent99a6f354e949ec87edc9ca9bbc0a14d89281a47a (diff)
automatic import of python-envyaml
-rw-r--r--.gitignore1
-rw-r--r--python-envyaml.spec610
-rw-r--r--sources1
3 files changed, 612 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..24b6e34 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/envyaml-1.10.211231.tar.gz
diff --git a/python-envyaml.spec b/python-envyaml.spec
new file mode 100644
index 0000000..e8612c7
--- /dev/null
+++ b/python-envyaml.spec
@@ -0,0 +1,610 @@
+%global _empty_manifest_terminate_build 0
+Name: python-envyaml
+Version: 1.10.211231
+Release: 1
+Summary: Simple YAML configuration file parser with easy access for structured data
+License: MIT
+URL: https://github.com/thesimj/envyaml
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/aa/ce/bcc062f1d55368713674cf55851a4d9dfa77835c0258753d0f23dff70743/envyaml-1.10.211231.tar.gz
+BuildArch: noarch
+
+Requires: python3-PyYAML
+
+%description
+# EnvYAML | Easy configuration file parser for structured data
+
+[![Latest Version](https://pypip.in/version/envyaml/badge.svg)](https://pypi.python.org/pypi/envyaml/)
+[![EnvYaml CI/CD Pipeline](https://github.com/thesimj/envyaml/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/thesimj/envyaml/actions/workflows/main.yml)
+[![Coverage Status](https://coveralls.io/repos/github/thesimj/envyaml/badge.svg?branch=master)](https://coveralls.io/github/thesimj/envyaml?branch=master)
+![Versions](https://img.shields.io/pypi/pyversions/envyaml.svg)
+[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
+[![Alerts](https://img.shields.io/lgtm/alerts/g/thesimj/envyaml.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/thesimj/envyaml/alerts/)
+[![Code Quality](https://img.shields.io/lgtm/grade/python/g/thesimj/envyaml.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/thesimj/envyaml/context:python)
+[![License](https://img.shields.io/pypi/l/envyaml.svg)](LICENSE)
+
+
+### Motivation
+Modern configuration files become to be more and more complex, flexible, and readable.
+YAML file format is perfect to store configuration but had no option to pass environment variables. They give flexibility, readability and provide an option to store complex data structure.
+This project goal is to simplify usage of the YAML file and environment variables as program configuration files with easy config key access.
+
+
+### Install
+```bash
+pip install envyaml
+```
+
+
+### Basic usage
+Let's assume we had a project with this config file `env.yaml`
+
+```yaml
+# env.yaml
+project:
+ name: "${PROJECT_NAME}-${PROJECT_ID}"
+
+database:
+ host: $DATABASE_HOST
+ port: 3301
+ username: username
+ password: $DATABASE_PASSWORD
+ database: test
+
+ table:
+ user: table_user
+ blog: table_blog
+
+ query: |-
+ SELECT * FROM "users" WHERE "user" = $1 AND "login" = $2 AND "pwd" = $3
+
+ insert: |-
+ INSERT INTO "{table}" (user, login) VALUES ($1, $2)
+
+redis:
+ host: $REDIS_HOST|127.0.0.1
+ port: 5040
+ db: $REDIS_DB|3 # with default value
+
+ config:
+ expire: 300
+ prefix: $REDIS_PREFIX
+
+escaped: $$.extra
+
+empty_env: $NOT_EXIST_ENV_VARIABLE
+```
+
+Environment variables set to
+```
+PROJECT_NAME=simple-hello
+PROJECT_ID=42
+DATABASE_HOST=xxx.xxx.xxx.xxx
+DATABASE_PASSWORD=super-secret-password
+REDIS_PREFIX=state
+```
+
+Parse file with `EnvYAML`
+
+```python
+from envyaml import EnvYAML
+
+# read file env.yaml and parse config
+env = EnvYAML('env.yaml')
+
+# access project name
+print(env['project.name'])
+
+# >> simple-hello-42
+
+# access whole database section
+print(env['database'])
+
+# {
+# 'database': 'test',
+# 'host': 'xxx.xxx.xxx.xxx',
+# 'password': 'super-secret-password',
+# 'port': 3301,
+# 'table':
+# {
+# 'blog': 'table_blog',
+# 'user': 'table_user'
+# },
+# 'username': 'username'
+# }
+
+# access database host value as key item
+print(env['database.host'])
+
+# >> xxx.xxx.xxx.xxx
+
+# access database user table value as key item
+print(env['database.table.user'])
+
+# >> table_user
+
+# get sql query with $1,$2,$3 variables
+print(env['database.query'])
+
+# >> SELECT * FROM "users" WHERE "user" = $1 AND "login" = $2 AND "pwd" = $3
+
+# using default values if variable not defined
+# one example is redis host and redis port, when $REDIS_HOST not set then default value will be used
+print(env['redis.host'])
+
+# >> 127.0.0.1
+
+# one example is redis host and redis port, when $REDIS_DB not set then default value will be used
+print(env['redis.db'])
+
+# >> 3
+
+# access list items by number
+print(env['list_test'][0])
+
+# >> one
+
+# access list items by number as key
+print(env['list_test.1'])
+
+# >> two
+
+# test if you have key
+print('redis.port' in env)
+
+# >> True
+
+```
+
+Access config with `get` function and default value
+```python
+print(env.get('not.exist.value', 'default'))
+# >> default
+
+print(env.get('empty_env', 'default'))
+# >> default
+
+print(env['empty_env'])
+# >> None
+```
+
+Use `format` function to update placeholder
+```python
+print(env.format('database.insert', table="users"))
+# >> INSERT INTO "users" (user, login) VALUES ($1, $2)
+```
+
+### Strict mode
+This mode is **enable by default** and prevents from declaring variables that do not exist in `environment variables` or `.env` file. This leads to having runtime `ValueError` exception when variables do not define with message `Strict mode enabled, variable $VAR not defined!`. To disable **strict** mode specify `strict=False` at EnvYAML object initialization. Another option to disable `strict` mode is to define `ENVYAML_STRICT_DISABLE` environment variable before initializing EnvYAML object.
+
+
+### Escaped variables
+In case of usage `$` in env.yaml file as value double `$$` should be used. Example:
+Use `escaped` variable
+```python
+print(env['escaped'])
+# >> $.extra
+```
+
+
+### License
+MIT licensed. See the [LICENSE](LICENSE) file for more details.
+
+
+
+
+%package -n python3-envyaml
+Summary: Simple YAML configuration file parser with easy access for structured data
+Provides: python-envyaml
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-envyaml
+# EnvYAML | Easy configuration file parser for structured data
+
+[![Latest Version](https://pypip.in/version/envyaml/badge.svg)](https://pypi.python.org/pypi/envyaml/)
+[![EnvYaml CI/CD Pipeline](https://github.com/thesimj/envyaml/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/thesimj/envyaml/actions/workflows/main.yml)
+[![Coverage Status](https://coveralls.io/repos/github/thesimj/envyaml/badge.svg?branch=master)](https://coveralls.io/github/thesimj/envyaml?branch=master)
+![Versions](https://img.shields.io/pypi/pyversions/envyaml.svg)
+[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
+[![Alerts](https://img.shields.io/lgtm/alerts/g/thesimj/envyaml.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/thesimj/envyaml/alerts/)
+[![Code Quality](https://img.shields.io/lgtm/grade/python/g/thesimj/envyaml.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/thesimj/envyaml/context:python)
+[![License](https://img.shields.io/pypi/l/envyaml.svg)](LICENSE)
+
+
+### Motivation
+Modern configuration files become to be more and more complex, flexible, and readable.
+YAML file format is perfect to store configuration but had no option to pass environment variables. They give flexibility, readability and provide an option to store complex data structure.
+This project goal is to simplify usage of the YAML file and environment variables as program configuration files with easy config key access.
+
+
+### Install
+```bash
+pip install envyaml
+```
+
+
+### Basic usage
+Let's assume we had a project with this config file `env.yaml`
+
+```yaml
+# env.yaml
+project:
+ name: "${PROJECT_NAME}-${PROJECT_ID}"
+
+database:
+ host: $DATABASE_HOST
+ port: 3301
+ username: username
+ password: $DATABASE_PASSWORD
+ database: test
+
+ table:
+ user: table_user
+ blog: table_blog
+
+ query: |-
+ SELECT * FROM "users" WHERE "user" = $1 AND "login" = $2 AND "pwd" = $3
+
+ insert: |-
+ INSERT INTO "{table}" (user, login) VALUES ($1, $2)
+
+redis:
+ host: $REDIS_HOST|127.0.0.1
+ port: 5040
+ db: $REDIS_DB|3 # with default value
+
+ config:
+ expire: 300
+ prefix: $REDIS_PREFIX
+
+escaped: $$.extra
+
+empty_env: $NOT_EXIST_ENV_VARIABLE
+```
+
+Environment variables set to
+```
+PROJECT_NAME=simple-hello
+PROJECT_ID=42
+DATABASE_HOST=xxx.xxx.xxx.xxx
+DATABASE_PASSWORD=super-secret-password
+REDIS_PREFIX=state
+```
+
+Parse file with `EnvYAML`
+
+```python
+from envyaml import EnvYAML
+
+# read file env.yaml and parse config
+env = EnvYAML('env.yaml')
+
+# access project name
+print(env['project.name'])
+
+# >> simple-hello-42
+
+# access whole database section
+print(env['database'])
+
+# {
+# 'database': 'test',
+# 'host': 'xxx.xxx.xxx.xxx',
+# 'password': 'super-secret-password',
+# 'port': 3301,
+# 'table':
+# {
+# 'blog': 'table_blog',
+# 'user': 'table_user'
+# },
+# 'username': 'username'
+# }
+
+# access database host value as key item
+print(env['database.host'])
+
+# >> xxx.xxx.xxx.xxx
+
+# access database user table value as key item
+print(env['database.table.user'])
+
+# >> table_user
+
+# get sql query with $1,$2,$3 variables
+print(env['database.query'])
+
+# >> SELECT * FROM "users" WHERE "user" = $1 AND "login" = $2 AND "pwd" = $3
+
+# using default values if variable not defined
+# one example is redis host and redis port, when $REDIS_HOST not set then default value will be used
+print(env['redis.host'])
+
+# >> 127.0.0.1
+
+# one example is redis host and redis port, when $REDIS_DB not set then default value will be used
+print(env['redis.db'])
+
+# >> 3
+
+# access list items by number
+print(env['list_test'][0])
+
+# >> one
+
+# access list items by number as key
+print(env['list_test.1'])
+
+# >> two
+
+# test if you have key
+print('redis.port' in env)
+
+# >> True
+
+```
+
+Access config with `get` function and default value
+```python
+print(env.get('not.exist.value', 'default'))
+# >> default
+
+print(env.get('empty_env', 'default'))
+# >> default
+
+print(env['empty_env'])
+# >> None
+```
+
+Use `format` function to update placeholder
+```python
+print(env.format('database.insert', table="users"))
+# >> INSERT INTO "users" (user, login) VALUES ($1, $2)
+```
+
+### Strict mode
+This mode is **enable by default** and prevents from declaring variables that do not exist in `environment variables` or `.env` file. This leads to having runtime `ValueError` exception when variables do not define with message `Strict mode enabled, variable $VAR not defined!`. To disable **strict** mode specify `strict=False` at EnvYAML object initialization. Another option to disable `strict` mode is to define `ENVYAML_STRICT_DISABLE` environment variable before initializing EnvYAML object.
+
+
+### Escaped variables
+In case of usage `$` in env.yaml file as value double `$$` should be used. Example:
+Use `escaped` variable
+```python
+print(env['escaped'])
+# >> $.extra
+```
+
+
+### License
+MIT licensed. See the [LICENSE](LICENSE) file for more details.
+
+
+
+
+%package help
+Summary: Development documents and examples for envyaml
+Provides: python3-envyaml-doc
+%description help
+# EnvYAML | Easy configuration file parser for structured data
+
+[![Latest Version](https://pypip.in/version/envyaml/badge.svg)](https://pypi.python.org/pypi/envyaml/)
+[![EnvYaml CI/CD Pipeline](https://github.com/thesimj/envyaml/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/thesimj/envyaml/actions/workflows/main.yml)
+[![Coverage Status](https://coveralls.io/repos/github/thesimj/envyaml/badge.svg?branch=master)](https://coveralls.io/github/thesimj/envyaml?branch=master)
+![Versions](https://img.shields.io/pypi/pyversions/envyaml.svg)
+[![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
+[![Alerts](https://img.shields.io/lgtm/alerts/g/thesimj/envyaml.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/thesimj/envyaml/alerts/)
+[![Code Quality](https://img.shields.io/lgtm/grade/python/g/thesimj/envyaml.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/thesimj/envyaml/context:python)
+[![License](https://img.shields.io/pypi/l/envyaml.svg)](LICENSE)
+
+
+### Motivation
+Modern configuration files become to be more and more complex, flexible, and readable.
+YAML file format is perfect to store configuration but had no option to pass environment variables. They give flexibility, readability and provide an option to store complex data structure.
+This project goal is to simplify usage of the YAML file and environment variables as program configuration files with easy config key access.
+
+
+### Install
+```bash
+pip install envyaml
+```
+
+
+### Basic usage
+Let's assume we had a project with this config file `env.yaml`
+
+```yaml
+# env.yaml
+project:
+ name: "${PROJECT_NAME}-${PROJECT_ID}"
+
+database:
+ host: $DATABASE_HOST
+ port: 3301
+ username: username
+ password: $DATABASE_PASSWORD
+ database: test
+
+ table:
+ user: table_user
+ blog: table_blog
+
+ query: |-
+ SELECT * FROM "users" WHERE "user" = $1 AND "login" = $2 AND "pwd" = $3
+
+ insert: |-
+ INSERT INTO "{table}" (user, login) VALUES ($1, $2)
+
+redis:
+ host: $REDIS_HOST|127.0.0.1
+ port: 5040
+ db: $REDIS_DB|3 # with default value
+
+ config:
+ expire: 300
+ prefix: $REDIS_PREFIX
+
+escaped: $$.extra
+
+empty_env: $NOT_EXIST_ENV_VARIABLE
+```
+
+Environment variables set to
+```
+PROJECT_NAME=simple-hello
+PROJECT_ID=42
+DATABASE_HOST=xxx.xxx.xxx.xxx
+DATABASE_PASSWORD=super-secret-password
+REDIS_PREFIX=state
+```
+
+Parse file with `EnvYAML`
+
+```python
+from envyaml import EnvYAML
+
+# read file env.yaml and parse config
+env = EnvYAML('env.yaml')
+
+# access project name
+print(env['project.name'])
+
+# >> simple-hello-42
+
+# access whole database section
+print(env['database'])
+
+# {
+# 'database': 'test',
+# 'host': 'xxx.xxx.xxx.xxx',
+# 'password': 'super-secret-password',
+# 'port': 3301,
+# 'table':
+# {
+# 'blog': 'table_blog',
+# 'user': 'table_user'
+# },
+# 'username': 'username'
+# }
+
+# access database host value as key item
+print(env['database.host'])
+
+# >> xxx.xxx.xxx.xxx
+
+# access database user table value as key item
+print(env['database.table.user'])
+
+# >> table_user
+
+# get sql query with $1,$2,$3 variables
+print(env['database.query'])
+
+# >> SELECT * FROM "users" WHERE "user" = $1 AND "login" = $2 AND "pwd" = $3
+
+# using default values if variable not defined
+# one example is redis host and redis port, when $REDIS_HOST not set then default value will be used
+print(env['redis.host'])
+
+# >> 127.0.0.1
+
+# one example is redis host and redis port, when $REDIS_DB not set then default value will be used
+print(env['redis.db'])
+
+# >> 3
+
+# access list items by number
+print(env['list_test'][0])
+
+# >> one
+
+# access list items by number as key
+print(env['list_test.1'])
+
+# >> two
+
+# test if you have key
+print('redis.port' in env)
+
+# >> True
+
+```
+
+Access config with `get` function and default value
+```python
+print(env.get('not.exist.value', 'default'))
+# >> default
+
+print(env.get('empty_env', 'default'))
+# >> default
+
+print(env['empty_env'])
+# >> None
+```
+
+Use `format` function to update placeholder
+```python
+print(env.format('database.insert', table="users"))
+# >> INSERT INTO "users" (user, login) VALUES ($1, $2)
+```
+
+### Strict mode
+This mode is **enable by default** and prevents from declaring variables that do not exist in `environment variables` or `.env` file. This leads to having runtime `ValueError` exception when variables do not define with message `Strict mode enabled, variable $VAR not defined!`. To disable **strict** mode specify `strict=False` at EnvYAML object initialization. Another option to disable `strict` mode is to define `ENVYAML_STRICT_DISABLE` environment variable before initializing EnvYAML object.
+
+
+### Escaped variables
+In case of usage `$` in env.yaml file as value double `$$` should be used. Example:
+Use `escaped` variable
+```python
+print(env['escaped'])
+# >> $.extra
+```
+
+
+### License
+MIT licensed. See the [LICENSE](LICENSE) file for more details.
+
+
+
+
+%prep
+%autosetup -n envyaml-1.10.211231
+
+%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-envyaml -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.10.211231-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..1318ef3
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+d3251f65d7be437ff8f370dc69c78014 envyaml-1.10.211231.tar.gz