%global _empty_manifest_terminate_build 0 Name: python-biodome Version: 2022.9.1 Release: 1 Summary: biodome License: None URL: https://github.com/cjrh/biodome Source0: https://mirrors.nju.edu.cn/pypi/web/packages/34/57/04095a851879aadf857c9f52d737863521220eab8b43ac15bee5ce100ebd/biodome-2022.9.1.tar.gz BuildArch: noarch %description *Controlled environments* Reading environment variables with ``os.environ`` is pretty easy, but after a while one gets pretty tired of having to cast variables to the right types and handling fallback to defaults. This library provides a clean way read environment variables and fall back to defaults in a sane way. **How you were doing it:** import os try: TIMEOUT = int(os.environ.get('TIMEOUT', 10)) except ValueError: TIMEOUT = 10 Wordy, boilerplate, DRY violation, etc. **How you will be doing it:** import biodome TIMEOUT = biodome.environ.get('TIMEOUT', 10) That's right, it becomes a single line. But there's a magic trick here: how does ``biodome`` know that ``TIMEOUT`` should be set to an ``int``? It knows because it looks at the type of the default arguments. This works for a bunch of different things: # Lists os.environ['IGNORE_KEYS'] = '[1, 2, 3]' biodome.environ.get('TIMEOUT', []) == [1, 2, 3] # Dicts os.environ['SETTINGS'] = '{"a": 1, "b": 2}' biodome.environ.get('SETTINGS', {}) == dict(a=1, b=2) If you look carefully at the above, you can see that we *set* the data via the stdlib ``os.environ`` dictionary; that's right, ``biodome.environ`` is a **drop-in replacement** for ``os.environ``. You don't even have to switch out your entire codebase, you can do it piece by piece. And while we're on the subject of *setting* env vars, with ``biodome`` you don't have to cast them first, it does string casting internally automatically, unlike ``os.environ``: # Dicts biodome.environ['SETTINGS'] = dict(b=2, a=1) # No cast required biodome.environ.get('SETTINGS', {}) == dict(a=1, b=2) %package -n python3-biodome Summary: biodome Provides: python-biodome BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-biodome *Controlled environments* Reading environment variables with ``os.environ`` is pretty easy, but after a while one gets pretty tired of having to cast variables to the right types and handling fallback to defaults. This library provides a clean way read environment variables and fall back to defaults in a sane way. **How you were doing it:** import os try: TIMEOUT = int(os.environ.get('TIMEOUT', 10)) except ValueError: TIMEOUT = 10 Wordy, boilerplate, DRY violation, etc. **How you will be doing it:** import biodome TIMEOUT = biodome.environ.get('TIMEOUT', 10) That's right, it becomes a single line. But there's a magic trick here: how does ``biodome`` know that ``TIMEOUT`` should be set to an ``int``? It knows because it looks at the type of the default arguments. This works for a bunch of different things: # Lists os.environ['IGNORE_KEYS'] = '[1, 2, 3]' biodome.environ.get('TIMEOUT', []) == [1, 2, 3] # Dicts os.environ['SETTINGS'] = '{"a": 1, "b": 2}' biodome.environ.get('SETTINGS', {}) == dict(a=1, b=2) If you look carefully at the above, you can see that we *set* the data via the stdlib ``os.environ`` dictionary; that's right, ``biodome.environ`` is a **drop-in replacement** for ``os.environ``. You don't even have to switch out your entire codebase, you can do it piece by piece. And while we're on the subject of *setting* env vars, with ``biodome`` you don't have to cast them first, it does string casting internally automatically, unlike ``os.environ``: # Dicts biodome.environ['SETTINGS'] = dict(b=2, a=1) # No cast required biodome.environ.get('SETTINGS', {}) == dict(a=1, b=2) %package help Summary: Development documents and examples for biodome Provides: python3-biodome-doc %description help *Controlled environments* Reading environment variables with ``os.environ`` is pretty easy, but after a while one gets pretty tired of having to cast variables to the right types and handling fallback to defaults. This library provides a clean way read environment variables and fall back to defaults in a sane way. **How you were doing it:** import os try: TIMEOUT = int(os.environ.get('TIMEOUT', 10)) except ValueError: TIMEOUT = 10 Wordy, boilerplate, DRY violation, etc. **How you will be doing it:** import biodome TIMEOUT = biodome.environ.get('TIMEOUT', 10) That's right, it becomes a single line. But there's a magic trick here: how does ``biodome`` know that ``TIMEOUT`` should be set to an ``int``? It knows because it looks at the type of the default arguments. This works for a bunch of different things: # Lists os.environ['IGNORE_KEYS'] = '[1, 2, 3]' biodome.environ.get('TIMEOUT', []) == [1, 2, 3] # Dicts os.environ['SETTINGS'] = '{"a": 1, "b": 2}' biodome.environ.get('SETTINGS', {}) == dict(a=1, b=2) If you look carefully at the above, you can see that we *set* the data via the stdlib ``os.environ`` dictionary; that's right, ``biodome.environ`` is a **drop-in replacement** for ``os.environ``. You don't even have to switch out your entire codebase, you can do it piece by piece. And while we're on the subject of *setting* env vars, with ``biodome`` you don't have to cast them first, it does string casting internally automatically, unlike ``os.environ``: # Dicts biodome.environ['SETTINGS'] = dict(b=2, a=1) # No cast required biodome.environ.get('SETTINGS', {}) == dict(a=1, b=2) %prep %autosetup -n biodome-2022.9.1 %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-biodome -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue May 30 2023 Python_Bot - 2022.9.1-1 - Package Spec generated