14
0
forked from pool/python-ijson

Accepting request 934410 from home:darix:apps

- update to 3.1.4 
  * Fixed bug in ``yajl2_c`` backend introduced in 3.1.0
    where ``ijson.items`` didn't work correctly
    against member names containing ``.`` (#41).
  * Python backend raises errors on incomplete JSON content
    that previously wasn't recognised as such,
    aligning itself with the rest of the backends (#42).
  
  Contains 3.1.3:
  
  * Python backed correctly raises errors
    when JSON numbers with leading zeros
    are found in the stream (#40).
  * Likewise, JSON numbers with fractions
    where the decimal point is not surrounded
    by at least one digit on both sides
    also produce an error now
    on the python backend.
  * Fixed detection of file objects
    with generator-based ``read`` coroutines
    (i.e., a ``read`` generator decorated with ``@types.coroutine``)
    for the purpose of automatically routing user calls
    done through the main entry points.
    For example, when using ``aiofiles`` objects
    users could invoke ``async for item in ijson.parse_async(f)``
    but not ``async for item in ijson.parse(f)``,
    while the latter has been possible since 3.1
    for native coroutines.
  
  Contains 3.1.2.post0:

OBS-URL: https://build.opensuse.org/request/show/934410
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ijson?expand=0&rev=5
This commit is contained in:
2021-11-28 19:13:31 +00:00
committed by Git OBS Bridge
parent 886e95d4a4
commit d526397295
4 changed files with 147 additions and 6 deletions

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:13507564c2798a2af9250211b0be246ca75bbf499fd7375803d3f91dccc7c2c1
size 43273

3
ijson-3.1.4.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1d1003ae3c6115ec9b587d29dd136860a81a23c7626b682e2b5b12c9fd30e4ea
size 56783

View File

@@ -1,3 +1,144 @@
-------------------------------------------------------------------
Fri Nov 26 16:09:20 UTC 2021 - Daniel Molkentin <daniel@molkentin.de>
- update to 3.1.4
* Fixed bug in ``yajl2_c`` backend introduced in 3.1.0
where ``ijson.items`` didn't work correctly
against member names containing ``.`` (#41).
* Python backend raises errors on incomplete JSON content
that previously wasn't recognised as such,
aligning itself with the rest of the backends (#42).
Contains 3.1.3:
* Python backed correctly raises errors
when JSON numbers with leading zeros
are found in the stream (#40).
* Likewise, JSON numbers with fractions
where the decimal point is not surrounded
by at least one digit on both sides
also produce an error now
on the python backend.
* Fixed detection of file objects
with generator-based ``read`` coroutines
(i.e., a ``read`` generator decorated with ``@types.coroutine``)
for the purpose of automatically routing user calls
done through the main entry points.
For example, when using ``aiofiles`` objects
users could invoke ``async for item in ijson.parse_async(f)``
but not ``async for item in ijson.parse(f)``,
while the latter has been possible since 3.1
for native coroutines.
Contains 3.1.2.post0:
* Moved binary wheel generation
from GitHub Actions to Travis.
This gained us binary ARM wheels,
wihch are becoming increasingly popular (#35)
Contains 3.1.2:
* Fixed minor memory leaks
in the initialization methods
of the generators of the ``yajl2_c`` backend.
All generators
(i.e., ``basic_parse``, ``parse``, ``kvitems`` and ``items``)
in both their sync and async versions,
were affected.
Contains 3.1.1:
* Fixed two problems in the ``yajl2_c`` backend
related to `asyncio` support,
which prevented some objects
like those from ``aiofiles``
from working properly (#32).
* Ironing out and documenting some corner cases
related to the use of ``use_float=True``
and its side-effect on integer number parsing.
Contains 3.1:
* A new ``use_float`` option has been added to all backends
to control whether ``float`` values should be returned
for non-integer numbers instead of ``Decimal`` objects.
Using this option trades loss of precision
(which most applications probably don't care)
for performance (which most application do care about).
Historically ijson has returned ``Decimal`` objects,
and therefore the option defaults to ``False``
for backwards compatibility,
but in later releases this default could change to ``True``.
* Improved the performance
of the ``items`` and ``kvitems`` methods
of the ``yajl2_c`` backend
(by internally avoiding unnecessary string concatenations).
Local tests show a performance improvement of up to ~15%,
but milage might vary depending on your use case and system.
* The "raw" functions ``basic_parse``, ``parse``, ``items`` and ``kvitems``
can now be used with different types of inputs.
In particular they accept not only file-like objects,
but also asynchronous file-like objects,
behaving like their ``*_async`` counterparts.
They also accept ``bytes`` and ``str`` objects direclty
(and ``unicode`` objects in python 2.7).
Finally, they also accept iterables,
in which case they behave like the ``ijson.common.*`` functions,
allowing users to tap into the event pipeline.
* ``ijson.common`` routines ``parse``, ``items`` and ``kvitems``
are marked as deprecated.
Users should use the ``ijson.*`` routines instead,
which now accept event iterables.
* New ``ijson.get_backend`` function
for users to import a backend programatically
(without having to manually use importlib).
* New ``IJSON_BACKEND`` environment variable
can be used to choose the default backend to be exposed by ijson.
* Unicode decoding errors are now reported
more clearly to users.
In the past there was a mix
of empty messages and error types.
Now the error type is always the same
and there should always be an error messages
indicating the offending byte sequence.
* ``ijson.common.number`` is marked as deprecated,
and will be removed on some later release.
Contains 3.0.4:
* Fixed errors triggered by JSON documents
where the top-level value is an object containing
an empty-named member (e.g., ``{"": 1}``).
Although such documents are valid JSON,
they broke basic assumptions made
by the ``kvitems`` and ``items`` functions
(and all their variants)
in all backends,
producing different types of unexpected failures,
including segmentation faults, raising unexpected exceptions,
and producing wrong results.
Contains 3.0.3:
* Fixed segmentation fault in ``yajl2_c`` backend's ``parse``
caused by the previous fix introduced in 3.0.2 (#29).
Contains 3.0.2:
* Fixed memory leak in ``yajl2_c`` backend's ``parse`` functionality (#28).
Contains 3.0.1:
* Adding back the ``parse``, ``kvitems`` and ``items`` functions
under the ``ijson.common`` module (#27).
These functions take an events iterable instead of a file
and are backend-independent (which is not great for performance).
They were accidentaly removed in the redesign of ijson 3.0,
which is why they are coming back.
In the future they will slowly transition into being
backend-specific rather than independent.
-------------------------------------------------------------------
Thu Apr 9 13:11:22 UTC 2020 - Marketa Calabkova <mcalabkova@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-ijson
#
# Copyright (c) 2020 SUSE LLC
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-ijson
Version: 3.0
Version: 3.1.4
Release: 0
Summary: Iterative JSON parser with a standard Python iterator interface
License: BSD-3-Clause
@@ -51,7 +51,7 @@ export CFLAGS="%{optflags}"
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%check
%python_exec tests.py
%pyunittest -v
%files %{python_files}
%doc README.rst