%global _empty_manifest_terminate_build 0 Name: python-coveo-systools Version: 2.0.11 Release: 1 Summary: Filesystem, language and OS related tools. License: Apache-2.0 URL: https://github.com/coveooss/coveo-python-oss/tree/main/coveo-systools Source0: https://mirrors.nju.edu.cn/pypi/web/packages/03/75/65a6369ca34938385b364fd516023f90fdbcc035ad665e539af6366fc161/coveo_systools-2.0.11.tar.gz BuildArch: noarch Requires: python3-coveo-functools Requires: python3-typing_extensions %description # coveo-systools Language and OS related utilities. Content in a nutshell: - enhanced subprocess calls - asyncio subprocess calls - file and app finding made easy - safe text write and replace-if-different - git-repo-root locator - bool platforms `if WINDOWS or LINUX or MAC or WSL:` # searching the filesystem ```python import os from coveo_systools.filesystem import find_paths, find_application, find_repo_root os.getcwd() # '/code/coveo-python-oss/coveo-systools' find_application('git') # WindowsPath('C:/Program Files/Git/cmd/git.EXE') # windows example for completeness find_repo_root() # Path('/code/coveo-python-oss') list(find_paths('pyproject.toml', search_from=find_repo_root(), in_root=True, in_children=True)) # [Path('/code/coveo-python-oss/pyproject.toml'), ...] ``` # enhanced subprocess calls An opinionated version of `subprocess.check_call` and `subprocess.check_output`. _New in 2.0.7_: asyncio support, through `async_check_call` and `async_check_output`. Adds the following features: - command line is a variable args (instead of a list) - automatic conversion of output to a stripped string (instead of raw bytes) - automatic conversion of Path, bytes and number variables in command line - automatic filtering of ansi codes from the output - enhanced DetailedCalledProcessError on error (a subclass of the typical CalledProcessError) ```python from pathlib import Path from coveo_systools.subprocess import check_call check_call('mypy', '--config-file', Path('configs/mypy.ini'), verbose=True) ``` # safe I/O, if changed Good programming practices requires files to be saved using a temporary filename and then renamed. This helper takes it a step further by skipping the write operation if the content did not change: ```python import json from pathlib import Path from coveo_systools.filesystem import safe_text_write safe_text_write(Path('./path/to/file.txt'), json.dumps(...), only_if_changed=True) ``` # conditional platforms syntactic sugar Readability is important, not repeating yourself is important. Forget about `platform.platform()` and use bools directly: ```python from coveo_systools.platforms import WINDOWS, LINUX, IOS, WSL if WINDOWS or WSL: print("Hello Windows!") elif LINUX or IOS: print("Hello Unix!") ``` %package -n python3-coveo-systools Summary: Filesystem, language and OS related tools. Provides: python-coveo-systools BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-coveo-systools # coveo-systools Language and OS related utilities. Content in a nutshell: - enhanced subprocess calls - asyncio subprocess calls - file and app finding made easy - safe text write and replace-if-different - git-repo-root locator - bool platforms `if WINDOWS or LINUX or MAC or WSL:` # searching the filesystem ```python import os from coveo_systools.filesystem import find_paths, find_application, find_repo_root os.getcwd() # '/code/coveo-python-oss/coveo-systools' find_application('git') # WindowsPath('C:/Program Files/Git/cmd/git.EXE') # windows example for completeness find_repo_root() # Path('/code/coveo-python-oss') list(find_paths('pyproject.toml', search_from=find_repo_root(), in_root=True, in_children=True)) # [Path('/code/coveo-python-oss/pyproject.toml'), ...] ``` # enhanced subprocess calls An opinionated version of `subprocess.check_call` and `subprocess.check_output`. _New in 2.0.7_: asyncio support, through `async_check_call` and `async_check_output`. Adds the following features: - command line is a variable args (instead of a list) - automatic conversion of output to a stripped string (instead of raw bytes) - automatic conversion of Path, bytes and number variables in command line - automatic filtering of ansi codes from the output - enhanced DetailedCalledProcessError on error (a subclass of the typical CalledProcessError) ```python from pathlib import Path from coveo_systools.subprocess import check_call check_call('mypy', '--config-file', Path('configs/mypy.ini'), verbose=True) ``` # safe I/O, if changed Good programming practices requires files to be saved using a temporary filename and then renamed. This helper takes it a step further by skipping the write operation if the content did not change: ```python import json from pathlib import Path from coveo_systools.filesystem import safe_text_write safe_text_write(Path('./path/to/file.txt'), json.dumps(...), only_if_changed=True) ``` # conditional platforms syntactic sugar Readability is important, not repeating yourself is important. Forget about `platform.platform()` and use bools directly: ```python from coveo_systools.platforms import WINDOWS, LINUX, IOS, WSL if WINDOWS or WSL: print("Hello Windows!") elif LINUX or IOS: print("Hello Unix!") ``` %package help Summary: Development documents and examples for coveo-systools Provides: python3-coveo-systools-doc %description help # coveo-systools Language and OS related utilities. Content in a nutshell: - enhanced subprocess calls - asyncio subprocess calls - file and app finding made easy - safe text write and replace-if-different - git-repo-root locator - bool platforms `if WINDOWS or LINUX or MAC or WSL:` # searching the filesystem ```python import os from coveo_systools.filesystem import find_paths, find_application, find_repo_root os.getcwd() # '/code/coveo-python-oss/coveo-systools' find_application('git') # WindowsPath('C:/Program Files/Git/cmd/git.EXE') # windows example for completeness find_repo_root() # Path('/code/coveo-python-oss') list(find_paths('pyproject.toml', search_from=find_repo_root(), in_root=True, in_children=True)) # [Path('/code/coveo-python-oss/pyproject.toml'), ...] ``` # enhanced subprocess calls An opinionated version of `subprocess.check_call` and `subprocess.check_output`. _New in 2.0.7_: asyncio support, through `async_check_call` and `async_check_output`. Adds the following features: - command line is a variable args (instead of a list) - automatic conversion of output to a stripped string (instead of raw bytes) - automatic conversion of Path, bytes and number variables in command line - automatic filtering of ansi codes from the output - enhanced DetailedCalledProcessError on error (a subclass of the typical CalledProcessError) ```python from pathlib import Path from coveo_systools.subprocess import check_call check_call('mypy', '--config-file', Path('configs/mypy.ini'), verbose=True) ``` # safe I/O, if changed Good programming practices requires files to be saved using a temporary filename and then renamed. This helper takes it a step further by skipping the write operation if the content did not change: ```python import json from pathlib import Path from coveo_systools.filesystem import safe_text_write safe_text_write(Path('./path/to/file.txt'), json.dumps(...), only_if_changed=True) ``` # conditional platforms syntactic sugar Readability is important, not repeating yourself is important. Forget about `platform.platform()` and use bools directly: ```python from coveo_systools.platforms import WINDOWS, LINUX, IOS, WSL if WINDOWS or WSL: print("Hello Windows!") elif LINUX or IOS: print("Hello Unix!") ``` %prep %autosetup -n coveo-systools-2.0.11 %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-coveo-systools -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 2.0.11-1 - Package Spec generated