summaryrefslogtreecommitdiff
path: root/python-scription.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-scription.spec')
-rw-r--r--python-scription.spec349
1 files changed, 349 insertions, 0 deletions
diff --git a/python-scription.spec b/python-scription.spec
new file mode 100644
index 0000000..069fe56
--- /dev/null
+++ b/python-scription.spec
@@ -0,0 +1,349 @@
+%global _empty_manifest_terminate_build 0
+Name: python-scription
+Version: 0.86.20
+Release: 1
+Summary: simple script parameter parser
+License: BSD License
+URL: https://github.com/ethanfurman/scription.git
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4f/28/9e6fbd1e8613253dd6556455aa8ecaddf256aa2722ea78390336c8a73a7b/scription-0.86.20.tar.gz
+BuildArch: noarch
+
+Requires: python3-aenum
+
+%description
+scription
+
+light-weight library to enhance command-line scripts; includes conversion of
+parameters to specified data types, parameter checking, basic input/output with
+users, support for suid [1], sending email, executing sub-programs, and having
+sub-commands within a script
+
+
+decorators
+
+ - Script: sets global variables and/or parameters for Commands; the decorated
+ function will be called by Main/Run before any specified Command
+
+ - Command: marks function as a subcommand for the script (e.g. add, delete,
+ list, etc.); if no subcommand is specified on the command-line, scription
+ will look for a Command with the same name as the script
+
+ - Alias: registers other names for Commands (e.g. delete / remove / kill)
+
+
+functions
+
+ - Main: if the importing module's __name__ is __main__, call Run() (this
+ allows for importing the script as a module)
+
+ - Run: unconditionally attempts to run the Script function (if any) and the
+ Command found on the command-line
+
+ Main() or Run() should be the last thing in the script
+
+
+classes
+
+ - Spec: can be used when defining the command-line parameters (can also just
+ use tuples)
+
+
+helper functions/classes
+
+ - abort: quits immediately by raising SystemExit
+
+ - Execute: class for executing other programs; uses subprocess.Popen by
+ default, but if `pty=True` is specified then `pty.fork` will be used
+ (handy for programs that only accept input from a pty)
+
+ - get_response: function for displaying text and getting feedback
+
+ - help: quits immediately, but adds a reference to --help in the quit message
+
+ - log_exception: logs an exception with logging.logger
+
+ - mail: rudimentary mail sender
+
+ - OrmFile: lightweight orm -- supports str, int, float, date, time,
+ datetime, bool, and path (which defaults to str); custom data types can
+ also be specified
+
+ - print: wrapper around print that adds a 'verbose_level' keyword (default: 1);
+ default verbosity is 0 (so print does nothing), but can be increased using
+ -v, -vv, --verbose, or --verbose=2 (in Python 2 the script must use
+ 'from __future__ import print_function' to use scription's print)
+
+ - user_ids: context manager useful for suid scripts -- all actions taken
+ within the context are run as the user/group specified
+
+
+features
+
+ - extra parameters defined by Script are global, and can be accessed from any
+ function or Command
+
+ - 'module' is a namespace inserted into the script
+
+ - 'script_command' is the Command selected from the command line (useful when
+ one needs to call the subcommand directly from a main() function)
+
+ - 'script_command_name' is the name of the script_command
+
+ - 'script_verbosity' is the level of verboseness selected (defaults to 0)
+
+ - 'script_name' is the name of the script
+
+ - builtin options are: --help, --verbose (-v or -vv), --version, --all-versions
+ --version attempts to display the version of the main package in use
+ --all-versions attempts to display the versions of any imported packages
+
+ - command-line is decoded to unicode under Python 2 (Python 3 does this for us)
+
+
+[1] I use the suid-python program, available at http://selliott.org/python/suid-python.c
+
+
+
+
+%package -n python3-scription
+Summary: simple script parameter parser
+Provides: python-scription
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-scription
+scription
+
+light-weight library to enhance command-line scripts; includes conversion of
+parameters to specified data types, parameter checking, basic input/output with
+users, support for suid [1], sending email, executing sub-programs, and having
+sub-commands within a script
+
+
+decorators
+
+ - Script: sets global variables and/or parameters for Commands; the decorated
+ function will be called by Main/Run before any specified Command
+
+ - Command: marks function as a subcommand for the script (e.g. add, delete,
+ list, etc.); if no subcommand is specified on the command-line, scription
+ will look for a Command with the same name as the script
+
+ - Alias: registers other names for Commands (e.g. delete / remove / kill)
+
+
+functions
+
+ - Main: if the importing module's __name__ is __main__, call Run() (this
+ allows for importing the script as a module)
+
+ - Run: unconditionally attempts to run the Script function (if any) and the
+ Command found on the command-line
+
+ Main() or Run() should be the last thing in the script
+
+
+classes
+
+ - Spec: can be used when defining the command-line parameters (can also just
+ use tuples)
+
+
+helper functions/classes
+
+ - abort: quits immediately by raising SystemExit
+
+ - Execute: class for executing other programs; uses subprocess.Popen by
+ default, but if `pty=True` is specified then `pty.fork` will be used
+ (handy for programs that only accept input from a pty)
+
+ - get_response: function for displaying text and getting feedback
+
+ - help: quits immediately, but adds a reference to --help in the quit message
+
+ - log_exception: logs an exception with logging.logger
+
+ - mail: rudimentary mail sender
+
+ - OrmFile: lightweight orm -- supports str, int, float, date, time,
+ datetime, bool, and path (which defaults to str); custom data types can
+ also be specified
+
+ - print: wrapper around print that adds a 'verbose_level' keyword (default: 1);
+ default verbosity is 0 (so print does nothing), but can be increased using
+ -v, -vv, --verbose, or --verbose=2 (in Python 2 the script must use
+ 'from __future__ import print_function' to use scription's print)
+
+ - user_ids: context manager useful for suid scripts -- all actions taken
+ within the context are run as the user/group specified
+
+
+features
+
+ - extra parameters defined by Script are global, and can be accessed from any
+ function or Command
+
+ - 'module' is a namespace inserted into the script
+
+ - 'script_command' is the Command selected from the command line (useful when
+ one needs to call the subcommand directly from a main() function)
+
+ - 'script_command_name' is the name of the script_command
+
+ - 'script_verbosity' is the level of verboseness selected (defaults to 0)
+
+ - 'script_name' is the name of the script
+
+ - builtin options are: --help, --verbose (-v or -vv), --version, --all-versions
+ --version attempts to display the version of the main package in use
+ --all-versions attempts to display the versions of any imported packages
+
+ - command-line is decoded to unicode under Python 2 (Python 3 does this for us)
+
+
+[1] I use the suid-python program, available at http://selliott.org/python/suid-python.c
+
+
+
+
+%package help
+Summary: Development documents and examples for scription
+Provides: python3-scription-doc
+%description help
+scription
+
+light-weight library to enhance command-line scripts; includes conversion of
+parameters to specified data types, parameter checking, basic input/output with
+users, support for suid [1], sending email, executing sub-programs, and having
+sub-commands within a script
+
+
+decorators
+
+ - Script: sets global variables and/or parameters for Commands; the decorated
+ function will be called by Main/Run before any specified Command
+
+ - Command: marks function as a subcommand for the script (e.g. add, delete,
+ list, etc.); if no subcommand is specified on the command-line, scription
+ will look for a Command with the same name as the script
+
+ - Alias: registers other names for Commands (e.g. delete / remove / kill)
+
+
+functions
+
+ - Main: if the importing module's __name__ is __main__, call Run() (this
+ allows for importing the script as a module)
+
+ - Run: unconditionally attempts to run the Script function (if any) and the
+ Command found on the command-line
+
+ Main() or Run() should be the last thing in the script
+
+
+classes
+
+ - Spec: can be used when defining the command-line parameters (can also just
+ use tuples)
+
+
+helper functions/classes
+
+ - abort: quits immediately by raising SystemExit
+
+ - Execute: class for executing other programs; uses subprocess.Popen by
+ default, but if `pty=True` is specified then `pty.fork` will be used
+ (handy for programs that only accept input from a pty)
+
+ - get_response: function for displaying text and getting feedback
+
+ - help: quits immediately, but adds a reference to --help in the quit message
+
+ - log_exception: logs an exception with logging.logger
+
+ - mail: rudimentary mail sender
+
+ - OrmFile: lightweight orm -- supports str, int, float, date, time,
+ datetime, bool, and path (which defaults to str); custom data types can
+ also be specified
+
+ - print: wrapper around print that adds a 'verbose_level' keyword (default: 1);
+ default verbosity is 0 (so print does nothing), but can be increased using
+ -v, -vv, --verbose, or --verbose=2 (in Python 2 the script must use
+ 'from __future__ import print_function' to use scription's print)
+
+ - user_ids: context manager useful for suid scripts -- all actions taken
+ within the context are run as the user/group specified
+
+
+features
+
+ - extra parameters defined by Script are global, and can be accessed from any
+ function or Command
+
+ - 'module' is a namespace inserted into the script
+
+ - 'script_command' is the Command selected from the command line (useful when
+ one needs to call the subcommand directly from a main() function)
+
+ - 'script_command_name' is the name of the script_command
+
+ - 'script_verbosity' is the level of verboseness selected (defaults to 0)
+
+ - 'script_name' is the name of the script
+
+ - builtin options are: --help, --verbose (-v or -vv), --version, --all-versions
+ --version attempts to display the version of the main package in use
+ --all-versions attempts to display the versions of any imported packages
+
+ - command-line is decoded to unicode under Python 2 (Python 3 does this for us)
+
+
+[1] I use the suid-python program, available at http://selliott.org/python/suid-python.c
+
+
+
+
+%prep
+%autosetup -n scription-0.86.20
+
+%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-scription -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.86.20-1
+- Package Spec generated