%global _empty_manifest_terminate_build 0 Name: python-glom Version: 23.3.0 Release: 1 Summary: A declarative object transformer and formatter, for conglomerating nested data. License: BSD License URL: https://github.com/mahmoud/glom Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b7/96/93dcb00519fffca57026b0c84a4e15b719587b125b78fda39c6b2f690d44/glom-23.3.0.tar.gz BuildArch: noarch Requires: python3-boltons Requires: python3-attrs Requires: python3-face Requires: python3-PyYAML %description # glom *Restructuring data, the Python way* Real applications have real data, and real data nests. Objects inside of objects inside of lists of objects. glom is a new and powerful way to handle real-world data, featuring: * Path-based access for nested data structures * Readable, meaningful error messages * Declarative data transformation, using lightweight, Pythonic specifications * Built-in data exploration and debugging features All of that and more, available as a [fully-documented][rtd], pure-Python package, tested on Python 3.7+, as well as PyPy3. Installation is as easy as: ``` pip install glom ``` And when you install glom, you also get [the `glom` command-line interface][cli_rtd], letting you experiment at the console, but never limiting you to shell scripts: ``` Usage: glom [FLAGS] [spec [target]] Command-line interface to the glom library, providing nested data access and data restructuring with the power of Python. Flags: --help / -h show this help message and exit --target-file TARGET_FILE path to target data source (optional) --target-format TARGET_FORMAT format of the source data (json or python) (defaults to 'json') --spec-file SPEC_FILE path to glom spec definition (optional) --spec-format SPEC_FORMAT format of the glom spec definition (json, python, python-full) (defaults to 'python') --indent INDENT number of spaces to indent the result, 0 to disable pretty-printing (defaults to 2) --debug interactively debug any errors that come up --inspect interactively explore the data ``` Anything you can do at the command line readily translates to Python code, so you've always got a path forward when complexity starts to ramp up. ## Examples #### Without glom ```python >>> data = {'a': {'b': {'c': 'd'}}} >>> data['a']['b']['c'] 'd' >>> data2 = {'a': {'b': None}} >>> data2['a']['b']['c'] Traceback (most recent call last): ... TypeError: 'NoneType' object is not subscriptable ``` #### With glom ```python >>> glom(data, 'a.b.c') 'd' >>> glom(data2, 'a.b.c') Traceback (most recent call last): ... PathAccessError: could not access 'c', index 2 in path Path('a', 'b', 'c'), got error: ... ``` ## Learn more If all this seems interesting, continue exploring glom below: * [glom Tutorial][tutorial] * [Full API documentation at Read the Docs][rtd] * [Original announcement blog post (2018-05-09)][glom_announce] * [Frequently Asked Questions][faq] * [PyCon 2018 Lightning Talk (2018-05-11)][pycon_talk] All of the links above are overflowing with examples, but should you find anything about the docs, or glom itself, lacking, [please submit an issue][gh_issues]! [rtd]: https://glom.readthedocs.io [cli_rtd]: http://glom.readthedocs.io/en/latest/cli.html [tutorial]: https://glom.readthedocs.io/en/latest/tutorial.html [faq]: https://glom.readthedocs.io/en/latest/faq.html [glom_announce]: https://sedimental.org/glom_restructured_data.html [gh_issues]: https://github.com/mahmoud/glom/issues/ [pycon_talk]: https://www.youtube.com/watch?v=bTAFl8P2DkE&t=18m07s In the meantime, just remember: When you've got nested data, glom it! ☄️ %package -n python3-glom Summary: A declarative object transformer and formatter, for conglomerating nested data. Provides: python-glom BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-glom # glom *Restructuring data, the Python way* Real applications have real data, and real data nests. Objects inside of objects inside of lists of objects. glom is a new and powerful way to handle real-world data, featuring: * Path-based access for nested data structures * Readable, meaningful error messages * Declarative data transformation, using lightweight, Pythonic specifications * Built-in data exploration and debugging features All of that and more, available as a [fully-documented][rtd], pure-Python package, tested on Python 3.7+, as well as PyPy3. Installation is as easy as: ``` pip install glom ``` And when you install glom, you also get [the `glom` command-line interface][cli_rtd], letting you experiment at the console, but never limiting you to shell scripts: ``` Usage: glom [FLAGS] [spec [target]] Command-line interface to the glom library, providing nested data access and data restructuring with the power of Python. Flags: --help / -h show this help message and exit --target-file TARGET_FILE path to target data source (optional) --target-format TARGET_FORMAT format of the source data (json or python) (defaults to 'json') --spec-file SPEC_FILE path to glom spec definition (optional) --spec-format SPEC_FORMAT format of the glom spec definition (json, python, python-full) (defaults to 'python') --indent INDENT number of spaces to indent the result, 0 to disable pretty-printing (defaults to 2) --debug interactively debug any errors that come up --inspect interactively explore the data ``` Anything you can do at the command line readily translates to Python code, so you've always got a path forward when complexity starts to ramp up. ## Examples #### Without glom ```python >>> data = {'a': {'b': {'c': 'd'}}} >>> data['a']['b']['c'] 'd' >>> data2 = {'a': {'b': None}} >>> data2['a']['b']['c'] Traceback (most recent call last): ... TypeError: 'NoneType' object is not subscriptable ``` #### With glom ```python >>> glom(data, 'a.b.c') 'd' >>> glom(data2, 'a.b.c') Traceback (most recent call last): ... PathAccessError: could not access 'c', index 2 in path Path('a', 'b', 'c'), got error: ... ``` ## Learn more If all this seems interesting, continue exploring glom below: * [glom Tutorial][tutorial] * [Full API documentation at Read the Docs][rtd] * [Original announcement blog post (2018-05-09)][glom_announce] * [Frequently Asked Questions][faq] * [PyCon 2018 Lightning Talk (2018-05-11)][pycon_talk] All of the links above are overflowing with examples, but should you find anything about the docs, or glom itself, lacking, [please submit an issue][gh_issues]! [rtd]: https://glom.readthedocs.io [cli_rtd]: http://glom.readthedocs.io/en/latest/cli.html [tutorial]: https://glom.readthedocs.io/en/latest/tutorial.html [faq]: https://glom.readthedocs.io/en/latest/faq.html [glom_announce]: https://sedimental.org/glom_restructured_data.html [gh_issues]: https://github.com/mahmoud/glom/issues/ [pycon_talk]: https://www.youtube.com/watch?v=bTAFl8P2DkE&t=18m07s In the meantime, just remember: When you've got nested data, glom it! ☄️ %package help Summary: Development documents and examples for glom Provides: python3-glom-doc %description help # glom *Restructuring data, the Python way* Real applications have real data, and real data nests. Objects inside of objects inside of lists of objects. glom is a new and powerful way to handle real-world data, featuring: * Path-based access for nested data structures * Readable, meaningful error messages * Declarative data transformation, using lightweight, Pythonic specifications * Built-in data exploration and debugging features All of that and more, available as a [fully-documented][rtd], pure-Python package, tested on Python 3.7+, as well as PyPy3. Installation is as easy as: ``` pip install glom ``` And when you install glom, you also get [the `glom` command-line interface][cli_rtd], letting you experiment at the console, but never limiting you to shell scripts: ``` Usage: glom [FLAGS] [spec [target]] Command-line interface to the glom library, providing nested data access and data restructuring with the power of Python. Flags: --help / -h show this help message and exit --target-file TARGET_FILE path to target data source (optional) --target-format TARGET_FORMAT format of the source data (json or python) (defaults to 'json') --spec-file SPEC_FILE path to glom spec definition (optional) --spec-format SPEC_FORMAT format of the glom spec definition (json, python, python-full) (defaults to 'python') --indent INDENT number of spaces to indent the result, 0 to disable pretty-printing (defaults to 2) --debug interactively debug any errors that come up --inspect interactively explore the data ``` Anything you can do at the command line readily translates to Python code, so you've always got a path forward when complexity starts to ramp up. ## Examples #### Without glom ```python >>> data = {'a': {'b': {'c': 'd'}}} >>> data['a']['b']['c'] 'd' >>> data2 = {'a': {'b': None}} >>> data2['a']['b']['c'] Traceback (most recent call last): ... TypeError: 'NoneType' object is not subscriptable ``` #### With glom ```python >>> glom(data, 'a.b.c') 'd' >>> glom(data2, 'a.b.c') Traceback (most recent call last): ... PathAccessError: could not access 'c', index 2 in path Path('a', 'b', 'c'), got error: ... ``` ## Learn more If all this seems interesting, continue exploring glom below: * [glom Tutorial][tutorial] * [Full API documentation at Read the Docs][rtd] * [Original announcement blog post (2018-05-09)][glom_announce] * [Frequently Asked Questions][faq] * [PyCon 2018 Lightning Talk (2018-05-11)][pycon_talk] All of the links above are overflowing with examples, but should you find anything about the docs, or glom itself, lacking, [please submit an issue][gh_issues]! [rtd]: https://glom.readthedocs.io [cli_rtd]: http://glom.readthedocs.io/en/latest/cli.html [tutorial]: https://glom.readthedocs.io/en/latest/tutorial.html [faq]: https://glom.readthedocs.io/en/latest/faq.html [glom_announce]: https://sedimental.org/glom_restructured_data.html [gh_issues]: https://github.com/mahmoud/glom/issues/ [pycon_talk]: https://www.youtube.com/watch?v=bTAFl8P2DkE&t=18m07s In the meantime, just remember: When you've got nested data, glom it! ☄️ %prep %autosetup -n glom-23.3.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-glom -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Apr 21 2023 Python_Bot - 23.3.0-1 - Package Spec generated