summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-dirtyjson.spec231
-rw-r--r--sources1
3 files changed, 233 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..7e822a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/dirtyjson-1.0.8.tar.gz
diff --git a/python-dirtyjson.spec b/python-dirtyjson.spec
new file mode 100644
index 0000000..072cda5
--- /dev/null
+++ b/python-dirtyjson.spec
@@ -0,0 +1,231 @@
+%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) <http://json.org> 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) <http://json.org> 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) <http://json.org> 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 <Python_Bot@openeuler.org> - 1.0.8-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..cb016bc
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+18612a6fe1af10444601ad0299654b20 dirtyjson-1.0.8.tar.gz