%global _empty_manifest_terminate_build 0 Name: python-env_utils Version: 1.2.0 Release: 1 Summary: Utility functions to make it easier to work with os.environ License: MIT URL: https://github.com/yunojuno/python-env-utils Source0: https://mirrors.nju.edu.cn/pypi/web/packages/7b/2a/ce19d7bdad70c42a0573fb11566eb166c3f00b52bb034bcaa043885b3c70/env_utils-1.2.0.tar.gz BuildArch: noarch %description This library extends the standard library's ``getenv`` function, allowing you to coerce the return value into a type. And that's it. It's been released as a library because every project we have includes the same requirements - read in environment variables, coerce them into the correct type. The problem is that environment variables are always stored as strings, but Python will evaluate any string (even "") as True if cast to a boolean. This is almost never the desired behaviour. If you set an environment variable to "", "0" or "False", you want it to be False. >>> os.environ['foo'] = "0" >>> val = os.getenv('foo') >>> val "0" >>> bool(val) True ``env_utils.get_env`` will coerce the value into the type you require. The package contains basic helper functions that coerce booleans, integers, decimals, floats, dates, lists and dictionaries. # FOO=0 >>> env_utils.get_env('FOO') "0" >>> env_utils.get_bool('FOO') False >>> env_utils.get_int('FOO') 0 # FOO=foo,bar >>> env_utils.get_list('FOO', separator=',') ['foo', 'bar'] # FOO='{"foo": true}' >>> env_utils.get_dict('FOO') {'foo': True} # FOO=2016-11-23 >>> env_utils.get_date('FOO') datetime.date(2016, 11, 23) You can supply any function you like to coerce the value, e.g.: >>> import os >>> os.getenv('FOO_NAME') 'bob' >>> class Foo(object): >>> coerce = lambda x: Foo(x) >>> import env_utils >>> foo = env_utils.get_env('FOO_NAME', coerce=coerce) >>> foo.name >>> 'bob' %package -n python3-env_utils Summary: Utility functions to make it easier to work with os.environ Provides: python-env_utils BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-env_utils This library extends the standard library's ``getenv`` function, allowing you to coerce the return value into a type. And that's it. It's been released as a library because every project we have includes the same requirements - read in environment variables, coerce them into the correct type. The problem is that environment variables are always stored as strings, but Python will evaluate any string (even "") as True if cast to a boolean. This is almost never the desired behaviour. If you set an environment variable to "", "0" or "False", you want it to be False. >>> os.environ['foo'] = "0" >>> val = os.getenv('foo') >>> val "0" >>> bool(val) True ``env_utils.get_env`` will coerce the value into the type you require. The package contains basic helper functions that coerce booleans, integers, decimals, floats, dates, lists and dictionaries. # FOO=0 >>> env_utils.get_env('FOO') "0" >>> env_utils.get_bool('FOO') False >>> env_utils.get_int('FOO') 0 # FOO=foo,bar >>> env_utils.get_list('FOO', separator=',') ['foo', 'bar'] # FOO='{"foo": true}' >>> env_utils.get_dict('FOO') {'foo': True} # FOO=2016-11-23 >>> env_utils.get_date('FOO') datetime.date(2016, 11, 23) You can supply any function you like to coerce the value, e.g.: >>> import os >>> os.getenv('FOO_NAME') 'bob' >>> class Foo(object): >>> coerce = lambda x: Foo(x) >>> import env_utils >>> foo = env_utils.get_env('FOO_NAME', coerce=coerce) >>> foo.name >>> 'bob' %package help Summary: Development documents and examples for env_utils Provides: python3-env_utils-doc %description help This library extends the standard library's ``getenv`` function, allowing you to coerce the return value into a type. And that's it. It's been released as a library because every project we have includes the same requirements - read in environment variables, coerce them into the correct type. The problem is that environment variables are always stored as strings, but Python will evaluate any string (even "") as True if cast to a boolean. This is almost never the desired behaviour. If you set an environment variable to "", "0" or "False", you want it to be False. >>> os.environ['foo'] = "0" >>> val = os.getenv('foo') >>> val "0" >>> bool(val) True ``env_utils.get_env`` will coerce the value into the type you require. The package contains basic helper functions that coerce booleans, integers, decimals, floats, dates, lists and dictionaries. # FOO=0 >>> env_utils.get_env('FOO') "0" >>> env_utils.get_bool('FOO') False >>> env_utils.get_int('FOO') 0 # FOO=foo,bar >>> env_utils.get_list('FOO', separator=',') ['foo', 'bar'] # FOO='{"foo": true}' >>> env_utils.get_dict('FOO') {'foo': True} # FOO=2016-11-23 >>> env_utils.get_date('FOO') datetime.date(2016, 11, 23) You can supply any function you like to coerce the value, e.g.: >>> import os >>> os.getenv('FOO_NAME') 'bob' >>> class Foo(object): >>> coerce = lambda x: Foo(x) >>> import env_utils >>> foo = env_utils.get_env('FOO_NAME', coerce=coerce) >>> foo.name >>> 'bob' %prep %autosetup -n env_utils-1.2.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-env_utils -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Sun Apr 23 2023 Python_Bot - 1.2.0-1 - Package Spec generated