%global _empty_manifest_terminate_build 0 Name: python-dirtyjson Version: 1.0.8 Release: 1 Summary: JSON decoder for Python that can extract data from the muck License: MIT License URL: https://github.com/codecobblers/dirtyjson Source0: https://mirrors.nju.edu.cn/pypi/web/packages/db/04/d24f6e645ad82ba0ef092fa17d9ef7a21953781663648a01c9371d9e8e98/dirtyjson-1.0.8.tar.gz BuildArch: noarch %description Decode JSON data from dirty files. JSON (JavaScript Object Notation) is a subset of JavaScript syntax (ECMA-262 3rd edition) used as a lightweight data interchange format. `dirtyjson` is a JSON decoder meant for extracting JSON-type data from .js files. The returned data structure includes information about line and column numbers, so you can output more useful error messages. The input can also include single quotes, line comments, inline comments, dangling commas, unquoted single-word keys, and hexadecimal and octal numbers. The goal of `dirtyjson` is to read JSON objects out of files that are littered with elements that do not fit the official JSON standard. By providing line and column number contexts, a dirty JSON file can be used as source input for a complex data parser or compiler. `dirtyjson` exposes an API familiar to users of the standard library `marshal` and `pickle` modules. However, `dirtyjson` provides only the `load(s)` capability. To write JSON, use either the standard `json` library or `simplejson`. The code for `dirtyjson` is a fairly drastically rewritten version of the loader in `simplejson` so thanks go to Bob Ippolito of the `simplejson` project for providing such a nice starting point. Development of dirtyjson happens on Github: https://github.com/codecobblers/dirtyjson Decoding JSON and getting position information:: >>> import dirtyjson >>> obj = [u'foo', {u'bar': [u'baz', None, 1.0, 2]}] >>> d = dirtyjson.loads("""["foo", /* not fu*/ {bar: ['baz', null, 1.0, 2,]}] and then ignore this junk""") >>> d == obj True >>> pos = d.attributes(0) # line/column position of first element in array >>> pos.line == 1 True >>> pos.column == 2 True >>> pos = d[1].attributes('bar') # line/column position of 'bar' key/value pair >>> pos.key.line == 1 True >>> pos.key.column == 22 True >>> pos.value.line == 1 True >>> pos.value.column == 27 True Decoding unicode from JSON:: >>> dirtyjson.loads('"\\"foo\\bar"') == u'"foo\x08ar' True Decoding JSON from streams:: >>> from dirtyjson.compat import StringIO >>> io = StringIO('["streaming API"]') >>> dirtyjson.load(io)[0] == 'streaming API' True Using Decimal instead of float:: >>> import dirtyjson >>> from decimal import Decimal >>> dirtyjson.loads('1.1', parse_float=Decimal) == Decimal('1.1') True %package -n python3-dirtyjson Summary: JSON decoder for Python that can extract data from the muck Provides: python-dirtyjson BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-dirtyjson Decode JSON data from dirty files. JSON (JavaScript Object Notation) is a subset of JavaScript syntax (ECMA-262 3rd edition) used as a lightweight data interchange format. `dirtyjson` is a JSON decoder meant for extracting JSON-type data from .js files. The returned data structure includes information about line and column numbers, so you can output more useful error messages. The input can also include single quotes, line comments, inline comments, dangling commas, unquoted single-word keys, and hexadecimal and octal numbers. The goal of `dirtyjson` is to read JSON objects out of files that are littered with elements that do not fit the official JSON standard. By providing line and column number contexts, a dirty JSON file can be used as source input for a complex data parser or compiler. `dirtyjson` exposes an API familiar to users of the standard library `marshal` and `pickle` modules. However, `dirtyjson` provides only the `load(s)` capability. To write JSON, use either the standard `json` library or `simplejson`. The code for `dirtyjson` is a fairly drastically rewritten version of the loader in `simplejson` so thanks go to Bob Ippolito of the `simplejson` project for providing such a nice starting point. Development of dirtyjson happens on Github: https://github.com/codecobblers/dirtyjson Decoding JSON and getting position information:: >>> import dirtyjson >>> obj = [u'foo', {u'bar': [u'baz', None, 1.0, 2]}] >>> d = dirtyjson.loads("""["foo", /* not fu*/ {bar: ['baz', null, 1.0, 2,]}] and then ignore this junk""") >>> d == obj True >>> pos = d.attributes(0) # line/column position of first element in array >>> pos.line == 1 True >>> pos.column == 2 True >>> pos = d[1].attributes('bar') # line/column position of 'bar' key/value pair >>> pos.key.line == 1 True >>> pos.key.column == 22 True >>> pos.value.line == 1 True >>> pos.value.column == 27 True Decoding unicode from JSON:: >>> dirtyjson.loads('"\\"foo\\bar"') == u'"foo\x08ar' True Decoding JSON from streams:: >>> from dirtyjson.compat import StringIO >>> io = StringIO('["streaming API"]') >>> dirtyjson.load(io)[0] == 'streaming API' True Using Decimal instead of float:: >>> import dirtyjson >>> from decimal import Decimal >>> dirtyjson.loads('1.1', parse_float=Decimal) == Decimal('1.1') True %package help Summary: Development documents and examples for dirtyjson Provides: python3-dirtyjson-doc %description help Decode JSON data from dirty files. JSON (JavaScript Object Notation) is a subset of JavaScript syntax (ECMA-262 3rd edition) used as a lightweight data interchange format. `dirtyjson` is a JSON decoder meant for extracting JSON-type data from .js files. The returned data structure includes information about line and column numbers, so you can output more useful error messages. The input can also include single quotes, line comments, inline comments, dangling commas, unquoted single-word keys, and hexadecimal and octal numbers. The goal of `dirtyjson` is to read JSON objects out of files that are littered with elements that do not fit the official JSON standard. By providing line and column number contexts, a dirty JSON file can be used as source input for a complex data parser or compiler. `dirtyjson` exposes an API familiar to users of the standard library `marshal` and `pickle` modules. However, `dirtyjson` provides only the `load(s)` capability. To write JSON, use either the standard `json` library or `simplejson`. The code for `dirtyjson` is a fairly drastically rewritten version of the loader in `simplejson` so thanks go to Bob Ippolito of the `simplejson` project for providing such a nice starting point. Development of dirtyjson happens on Github: https://github.com/codecobblers/dirtyjson Decoding JSON and getting position information:: >>> import dirtyjson >>> obj = [u'foo', {u'bar': [u'baz', None, 1.0, 2]}] >>> d = dirtyjson.loads("""["foo", /* not fu*/ {bar: ['baz', null, 1.0, 2,]}] and then ignore this junk""") >>> d == obj True >>> pos = d.attributes(0) # line/column position of first element in array >>> pos.line == 1 True >>> pos.column == 2 True >>> pos = d[1].attributes('bar') # line/column position of 'bar' key/value pair >>> pos.key.line == 1 True >>> pos.key.column == 22 True >>> pos.value.line == 1 True >>> pos.value.column == 27 True Decoding unicode from JSON:: >>> dirtyjson.loads('"\\"foo\\bar"') == u'"foo\x08ar' True Decoding JSON from streams:: >>> from dirtyjson.compat import StringIO >>> io = StringIO('["streaming API"]') >>> dirtyjson.load(io)[0] == 'streaming API' True Using Decimal instead of float:: >>> import dirtyjson >>> from decimal import Decimal >>> dirtyjson.loads('1.1', parse_float=Decimal) == Decimal('1.1') True %prep %autosetup -n dirtyjson-1.0.8 %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-dirtyjson -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 11 2023 Python_Bot - 1.0.8-1 - Package Spec generated