diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-json-parser.spec | 250 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 252 insertions, 0 deletions
@@ -0,0 +1 @@ +/json_parser-1.2.0.tar.gz diff --git a/python-json-parser.spec b/python-json-parser.spec new file mode 100644 index 0000000..80f1a07 --- /dev/null +++ b/python-json-parser.spec @@ -0,0 +1,250 @@ +%global _empty_manifest_terminate_build 0 +Name: python-json-parser +Version: 1.2.0 +Release: 1 +Summary: A JSON parser written in Python. +License: MIT +URL: https://github.com/tusharsadhwani/json_parser +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/24/5b/5e89f17131c145aa2c2359faadf8d9165e4d6a69bb2508e7637162b3f824/json_parser-1.2.0.tar.gz +BuildArch: noarch + +Requires: python3-pytest + +%description +# json_parser + +An _efficient_ JSON parser written in Python. + +## Installation + +Install it via pip: + +```bash +pip install json-parser +``` + +## Usage + +```python +import json_parser + +data = json_parser.parse('{"value": 42}') +print(data['value']) # 42 +``` + +## Benchmarks + +Running it on [this 25MB JSON file][1] gave the following results: + +```pycon +>>> with open('large-file.json') as f: +... t = time.time() +... x = json.load(f) +... t = time.time() - t +... print(t, 'seconds') +... +0.6405608654022217 seconds +>>> with open('large-file.json') as f: +... t = time.time() +... y = json_parser.parse(f.read()) +... t = time.time() - t +... print(t, 'seconds') +... +22.286625385284424 seconds +>>> x == y +True +``` + +So, it's about 34x slower than the builtin `json`. +Which, is par for the course when it comes to pure python. + +## Testing + +Clone the app and run the following: + +```bash +pip install -e '.[dev]' +pytest +``` + +[1]: https://raw.githubusercontent.com/json-iterator/test-data/master/large-file.json + + + + +%package -n python3-json-parser +Summary: A JSON parser written in Python. +Provides: python-json-parser +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-json-parser +# json_parser + +An _efficient_ JSON parser written in Python. + +## Installation + +Install it via pip: + +```bash +pip install json-parser +``` + +## Usage + +```python +import json_parser + +data = json_parser.parse('{"value": 42}') +print(data['value']) # 42 +``` + +## Benchmarks + +Running it on [this 25MB JSON file][1] gave the following results: + +```pycon +>>> with open('large-file.json') as f: +... t = time.time() +... x = json.load(f) +... t = time.time() - t +... print(t, 'seconds') +... +0.6405608654022217 seconds +>>> with open('large-file.json') as f: +... t = time.time() +... y = json_parser.parse(f.read()) +... t = time.time() - t +... print(t, 'seconds') +... +22.286625385284424 seconds +>>> x == y +True +``` + +So, it's about 34x slower than the builtin `json`. +Which, is par for the course when it comes to pure python. + +## Testing + +Clone the app and run the following: + +```bash +pip install -e '.[dev]' +pytest +``` + +[1]: https://raw.githubusercontent.com/json-iterator/test-data/master/large-file.json + + + + +%package help +Summary: Development documents and examples for json-parser +Provides: python3-json-parser-doc +%description help +# json_parser + +An _efficient_ JSON parser written in Python. + +## Installation + +Install it via pip: + +```bash +pip install json-parser +``` + +## Usage + +```python +import json_parser + +data = json_parser.parse('{"value": 42}') +print(data['value']) # 42 +``` + +## Benchmarks + +Running it on [this 25MB JSON file][1] gave the following results: + +```pycon +>>> with open('large-file.json') as f: +... t = time.time() +... x = json.load(f) +... t = time.time() - t +... print(t, 'seconds') +... +0.6405608654022217 seconds +>>> with open('large-file.json') as f: +... t = time.time() +... y = json_parser.parse(f.read()) +... t = time.time() - t +... print(t, 'seconds') +... +22.286625385284424 seconds +>>> x == y +True +``` + +So, it's about 34x slower than the builtin `json`. +Which, is par for the course when it comes to pure python. + +## Testing + +Clone the app and run the following: + +```bash +pip install -e '.[dev]' +pytest +``` + +[1]: https://raw.githubusercontent.com/json-iterator/test-data/master/large-file.json + + + + +%prep +%autosetup -n json-parser-1.2.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-json-parser -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.0-1 +- Package Spec generated @@ -0,0 +1 @@ +5ab39f0f162df47735c7e81341d80b59 json_parser-1.2.0.tar.gz |