diff options
author | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-03-09 02:19:49 +0000 |
---|---|---|
committer | CoprDistGit <copr-devel@lists.fedorahosted.org> | 2023-03-09 02:19:49 +0000 |
commit | 02301f4a874539e867e08ace556ea3dc1c19cadd (patch) | |
tree | d505015ad0829dc8ea87bee10ca27ece4147b6ce | |
parent | e667200d4ed52724093a24fd50a37337cb4ee65b (diff) |
automatic import of python-configargparse
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-configargparse.spec | 256 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 258 insertions, 0 deletions
@@ -0,0 +1 @@ +/ConfigArgParse-1.5.3.tar.gz diff --git a/python-configargparse.spec b/python-configargparse.spec new file mode 100644 index 0000000..27905a7 --- /dev/null +++ b/python-configargparse.spec @@ -0,0 +1,256 @@ +%global _empty_manifest_terminate_build 0 +Name: python-ConfigArgParse +Version: 1.5.3 +Release: 1 +Summary: A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables. +License: MIT +URL: https://github.com/bw2/ConfigArgParse +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/16/05/385451bc8d20a3aa1d8934b32bd65847c100849ebba397dbf6c74566b237/ConfigArgParse-1.5.3.tar.gz +BuildArch: noarch + +Requires: python3-mock +Requires: python3-PyYAML +Requires: python3-pytest +Requires: python3-PyYAML + +%description +Overview +~~~~~~~~ +Applications with more than a handful of user-settable options are best +configured through a combination of command line args, config files, +hard-coded defaults, and in some cases, environment variables. +Python's command line parsing modules such as argparse have very limited +support for config files and environment variables, so this module +extends argparse to add these features. +Available on PyPI: http://pypi.python.org/pypi/ConfigArgParse +Features +~~~~~~~~ +- command-line, config file, env var, and default settings can now be + defined, documented, and parsed in one go using a single API (if a + value is specified in more than one way then: command line > + environment variables > config file values > defaults) +- config files can have .ini or .yaml style syntax (eg. key=value or + key: value) +- user can provide a config file via a normal-looking command line arg + (eg. -c path/to/config.txt) rather than the argparse-style @config.txt +- one or more default config file paths can be specified + (eg. ['/etc/bla.conf', '~/.my_config'] ) +- all argparse functionality is fully supported, so this module can + serve as a drop-in replacement (verified by argparse unittests). +- env vars and config file keys & syntax are automatically documented + in the -h help message +- new method :code:`print_values()` can report keys & values and where + they were set (eg. command line, env var, config file, or default). +- lite-weight (no 3rd-party library dependencies except (optionally) PyYAML) +- extensible (:code:`ConfigFileParser` can be subclassed to define a new + config file format) +- unittested by running the unittests that came with argparse but on + configargparse, and using tox to test with Python 2.7 and Python 3+ +Example +~~~~~~~ +*config_test.py*: +Script that defines 4 options and a positional arg and then parses and prints the values. Also, +it prints out the help message as well as the string produced by :code:`format_values()` to show +what they look like. + import configargparse + p = configargparse.ArgParser(default_config_files=['/etc/app/conf.d/*.conf', '~/.my_settings']) + p.add('-c', '--my-config', required=True, is_config_file=True, help='config file path') + p.add('--genome', required=True, help='path to genome file') # this option can be set in a config file because it starts with '--' + p.add('-v', help='verbose', action='store_true') + p.add('-d', '--dbsnp', help='known variants .vcf', env_var='DBSNP_PATH') # this option can be set in a config file because it starts with '--' + p.add('vcf', nargs='+', help='variant file(s)') + options = p.parse_args() + print(options) + print("----------") + print(p.format_help()) + print("----------") + print(p.format_values()) # useful for logging where different settings came from +*config.txt:* +Since the script above set the config file as required=True, lets create a config file to give it: + # settings for config_test.py + genome = HCMV # cytomegalovirus genome + dbsnp = /data/dbsnp/variants.vcf +*command line:* +Now run the script and pass it the config file: + DBSNP_PATH=/data/dbsnp/variants_v2.vcf python config_test.py --my-config config.txt f1.vcf f2.vcf +*output:* +Here is the result: + +%package -n python3-ConfigArgParse +Summary: A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables. +Provides: python-ConfigArgParse +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-ConfigArgParse +Overview +~~~~~~~~ +Applications with more than a handful of user-settable options are best +configured through a combination of command line args, config files, +hard-coded defaults, and in some cases, environment variables. +Python's command line parsing modules such as argparse have very limited +support for config files and environment variables, so this module +extends argparse to add these features. +Available on PyPI: http://pypi.python.org/pypi/ConfigArgParse +Features +~~~~~~~~ +- command-line, config file, env var, and default settings can now be + defined, documented, and parsed in one go using a single API (if a + value is specified in more than one way then: command line > + environment variables > config file values > defaults) +- config files can have .ini or .yaml style syntax (eg. key=value or + key: value) +- user can provide a config file via a normal-looking command line arg + (eg. -c path/to/config.txt) rather than the argparse-style @config.txt +- one or more default config file paths can be specified + (eg. ['/etc/bla.conf', '~/.my_config'] ) +- all argparse functionality is fully supported, so this module can + serve as a drop-in replacement (verified by argparse unittests). +- env vars and config file keys & syntax are automatically documented + in the -h help message +- new method :code:`print_values()` can report keys & values and where + they were set (eg. command line, env var, config file, or default). +- lite-weight (no 3rd-party library dependencies except (optionally) PyYAML) +- extensible (:code:`ConfigFileParser` can be subclassed to define a new + config file format) +- unittested by running the unittests that came with argparse but on + configargparse, and using tox to test with Python 2.7 and Python 3+ +Example +~~~~~~~ +*config_test.py*: +Script that defines 4 options and a positional arg and then parses and prints the values. Also, +it prints out the help message as well as the string produced by :code:`format_values()` to show +what they look like. + import configargparse + p = configargparse.ArgParser(default_config_files=['/etc/app/conf.d/*.conf', '~/.my_settings']) + p.add('-c', '--my-config', required=True, is_config_file=True, help='config file path') + p.add('--genome', required=True, help='path to genome file') # this option can be set in a config file because it starts with '--' + p.add('-v', help='verbose', action='store_true') + p.add('-d', '--dbsnp', help='known variants .vcf', env_var='DBSNP_PATH') # this option can be set in a config file because it starts with '--' + p.add('vcf', nargs='+', help='variant file(s)') + options = p.parse_args() + print(options) + print("----------") + print(p.format_help()) + print("----------") + print(p.format_values()) # useful for logging where different settings came from +*config.txt:* +Since the script above set the config file as required=True, lets create a config file to give it: + # settings for config_test.py + genome = HCMV # cytomegalovirus genome + dbsnp = /data/dbsnp/variants.vcf +*command line:* +Now run the script and pass it the config file: + DBSNP_PATH=/data/dbsnp/variants_v2.vcf python config_test.py --my-config config.txt f1.vcf f2.vcf +*output:* +Here is the result: + +%package help +Summary: Development documents and examples for ConfigArgParse +Provides: python3-ConfigArgParse-doc +%description help +Overview +~~~~~~~~ +Applications with more than a handful of user-settable options are best +configured through a combination of command line args, config files, +hard-coded defaults, and in some cases, environment variables. +Python's command line parsing modules such as argparse have very limited +support for config files and environment variables, so this module +extends argparse to add these features. +Available on PyPI: http://pypi.python.org/pypi/ConfigArgParse +Features +~~~~~~~~ +- command-line, config file, env var, and default settings can now be + defined, documented, and parsed in one go using a single API (if a + value is specified in more than one way then: command line > + environment variables > config file values > defaults) +- config files can have .ini or .yaml style syntax (eg. key=value or + key: value) +- user can provide a config file via a normal-looking command line arg + (eg. -c path/to/config.txt) rather than the argparse-style @config.txt +- one or more default config file paths can be specified + (eg. ['/etc/bla.conf', '~/.my_config'] ) +- all argparse functionality is fully supported, so this module can + serve as a drop-in replacement (verified by argparse unittests). +- env vars and config file keys & syntax are automatically documented + in the -h help message +- new method :code:`print_values()` can report keys & values and where + they were set (eg. command line, env var, config file, or default). +- lite-weight (no 3rd-party library dependencies except (optionally) PyYAML) +- extensible (:code:`ConfigFileParser` can be subclassed to define a new + config file format) +- unittested by running the unittests that came with argparse but on + configargparse, and using tox to test with Python 2.7 and Python 3+ +Example +~~~~~~~ +*config_test.py*: +Script that defines 4 options and a positional arg and then parses and prints the values. Also, +it prints out the help message as well as the string produced by :code:`format_values()` to show +what they look like. + import configargparse + p = configargparse.ArgParser(default_config_files=['/etc/app/conf.d/*.conf', '~/.my_settings']) + p.add('-c', '--my-config', required=True, is_config_file=True, help='config file path') + p.add('--genome', required=True, help='path to genome file') # this option can be set in a config file because it starts with '--' + p.add('-v', help='verbose', action='store_true') + p.add('-d', '--dbsnp', help='known variants .vcf', env_var='DBSNP_PATH') # this option can be set in a config file because it starts with '--' + p.add('vcf', nargs='+', help='variant file(s)') + options = p.parse_args() + print(options) + print("----------") + print(p.format_help()) + print("----------") + print(p.format_values()) # useful for logging where different settings came from +*config.txt:* +Since the script above set the config file as required=True, lets create a config file to give it: + # settings for config_test.py + genome = HCMV # cytomegalovirus genome + dbsnp = /data/dbsnp/variants.vcf +*command line:* +Now run the script and pass it the config file: + DBSNP_PATH=/data/dbsnp/variants_v2.vcf python config_test.py --my-config config.txt f1.vcf f2.vcf +*output:* +Here is the result: + +%prep +%autosetup -n ConfigArgParse-1.5.3 + +%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-ConfigArgParse -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu Mar 09 2023 Python_Bot <Python_Bot@openeuler.org> - 1.5.3-1 +- Package Spec generated @@ -0,0 +1 @@ +33bef8918c8946e6a9e4dcaa74eb7ab8 ConfigArgParse-1.5.3.tar.gz |