# orjsonl
<a href="https://pypi.org/project/orjsonl/" alt="PyPI Version"><img src="https://img.shields.io/pypi/v/orjsonl"></a> <a href="https://github.com/umarbutler/orjsonl/actions/workflows/ci.yml" alt="Build Status"><img src="https://img.shields.io/github/actions/workflow/status/umarbutler/orjsonl/ci.yml?branch=main"></a> <a href="https://app.codecov.io/gh/umarbutler/orjsonl" alt="Code Coverage"><img src="https://img.shields.io/codecov/c/github/umarbutler/orjsonl"></a> <a href="https://pypistats.org/packages/orjsonl" alt="Downloads"><img src="https://img.shields.io/pypi/dm/orjsonl"></a>
`orjsonl` is a lightweight, high-performance Python library for parsing jsonl files. It supports a wide variety of compression formats, including gzip, bzip2, xz and Zstandard. It is powered by [`orjson`](https://github.com/ijl/orjson), the fastest and most accurate json serializer for Python.
## Installation
`orjsonl` may be installed with `pip`:
```bash
pip install orjsonl
```
To read or write Zstandard files, install either [`zstd`](https://github.com/facebook/zstd) or the [`zstandard`](https://pypi.org/project/zstandard/) Python package.
## Usage
The code snippet below demonstrates how jsonl files can be saved, loaded, streamed, appended and extended with `orjsonl`:
```python
>>> import orjsonl
>>> # Create an iterable of Python objects.
>>> data = [
'hello world',
['fizz', 'buzz'],
]
>>> # Save the iterable to a jsonl file.
>>> orjsonl.save('test.jsonl', data)
>>> # Append a Python object to the jsonl file.
>>> orjsonl.append('test.jsonl', {42 : 3.14})
>>> # Extend the jsonl file with an iterable of Python objects.
>>> orjsonl.extend('test.jsonl', [True, False])
>>> # Load the jsonl file.
>>> orjsonl.load('test.jsonl')
['hello world', ['fizz', 'buzz'], {42 : 3.14}, True, False]
>>> # Stream the jsonl file.
>>> list(orjsonl.stream('test.jsonl'))
['hello world', ['fizz', 'buzz'], {42 : 3.14}, True, False]
```
`orjsonl` can also be used to process jsonl files compressed with gzip, bzip2, xz and Zstandard:
```python
>>> orjsonl.save('test.jsonl.gz', data)
>>> orjsonl.append('test.jsonl.gz', {42 : 3.14})
>>> orjsonl.extend('test.jsonl.gz', [True, False])
>>> orjsonl.load('test.jsonl.gz')
['hello world', ['fizz', 'buzz'], {42 : 3.14}, True, False]
>>> [obj for obj in orjsonl.stream('test.jsonl.gz')]
['hello world', ['fizz', 'buzz'], {42 : 3.14}, True, False]
```
### Load
```python
def load(
path: str | bytes | int | os.PathLike,
decompression_threads: Optional[int] = None,
compression_format: Optional[str] = None
) -> list[dict | list | int | float | str | bool | None]
```
`load()` deserializes a compressed or uncompressed UTF-8-encoded jsonl file to a list of Python objects.
`path` is a path-like object giving the pathname (absolute or relative to the current working directory) of the compressed or uncompressed UTF-8-encoded jsonl file to be deserialized.
`decompression_threads` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`threads`](https://github.com/pycompression/xopen/#xopen) argument that specifies the number of threads that should be used for decompression.
`compression_format` is an optional string passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`format`](https://github.com/pycompression/xopen/#v130-2022-01-10) argument that overrides the autodetection of the file’s compression format based on its extension or content. Possible values are ‘gz’, ‘xz’, ‘bz2’ and ‘zst’.
This function returns a `list` object comprised of deserialized `dict`, `list`, `int`, `float`, `str`, `bool` or `None` objects.
### Stream
```python
def stream(
path: str | bytes | int | os.PathLike,
decompression_threads: Optional[int] = None,
compression_format: Optional[str] = None
) -> Generator[dict | list | int | float | str | bool | None, None, None]
```
`stream()` creates a `generator` that deserializes a compressed or uncompressed UTF-8-encoded jsonl file to Python objects.
`path` is a path-like object giving the pathname (absolute or relative to the current working directory) of the compressed or uncompressed UTF-8-encoded jsonl file to be deserialized by the `generator`.
`decompression_threads` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`threads`](https://github.com/pycompression/xopen/#xopen) argument that specifies the number of threads that should be used for decompression.
`compression_format` is an optional string passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`format`](https://github.com/pycompression/xopen/#v130-2022-01-10) argument that overrides the autodetection of the file’s compression format based on its extension or content. Possible values are ‘gz’, ‘xz’, ‘bz2’ and ‘zst’.
This function returns a `generator` that deserializes the file to `dict`, `list`, `int`, `float`, `str`, `bool` or `None` objects.
### Save
```python
def save(
path: str | bytes | int | os.PathLike,
data: Iterable,
default: Optional[Callable] = None,
option: int = 0,
compression_level: Optional[int] = None,
compression_threads: Optional[int] = None,
compression_format: Optional[str] = None
) -> None
```
`save()` serializes an iterable of Python objects to a compressed or uncompressed UTF-8-encoded jsonl file.
`path` is a path-like object giving the pathname (absolute or relative to the current working directory) of the compressed or uncompressed UTF-8-encoded jsonl file to be saved.
`data` is an iterable of Python objects to be serialized to the file.
`default` is an optional callable passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`default`](https://github.com/ijl/orjson#default) argument that serializes subclasses or arbitrary types to supported types.
`option` is an optional integer passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`option`](https://github.com/ijl/orjson#option) argument that modifies how data is serialized.
`compression_level` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`compresslevel`](https://github.com/pycompression/xopen/#usage) argument that determines the compression level for writing to gzip, xz and Zstandard files.
`compression_threads` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`threads`](https://github.com/pycompression/xopen/#xopen) argument that specifies the number of threads that should be used for compression.
`compression_format` is an optional string passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`format`](https://github.com/pycompression/xopen/#v130-2022-01-10) argument that overrides the autodetection of the file’s compression format based on its extension. Possible values are ‘gz’, ‘xz’, ‘bz2’ and ‘zst’.
### Append
```python
def append(
path: str | bytes | int | os.PathLike,
data: Any,
newline: bool = True,
default: Optional[Callable] = None,
option: int = 0,
compression_level: Optional[int] = None,
compression_threads: Optional[int] = None,
compression_format: Optional[str] = None
) -> None
```
`append()` serializes and appends a Python object to a compressed or uncompressed UTF-8-encoded jsonl file.
`path` is a path-like object giving the pathname (absolute or relative to the current working directory) of the compressed or uncompressed UTF-8-encoded jsonl file to be appended.
`data` is a Python object to be serialized and appended to the file.
`newline` is an optional Boolean flag that, if set to `False`, indicates that the file does not end with a newline and should, therefore, have one added before data is appended.
`default` is an optional callable passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`default`](https://github.com/ijl/orjson#default) argument that serializes subclasses or arbitrary types to supported types.
`option` is an optional integer passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`option`](https://github.com/ijl/orjson#option) argument that modifies how data is serialized.
`compression_level` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`compresslevel`](https://github.com/pycompression/xopen/#usage) argument that determines the compression level for writing to gzip, xz and Zstandard files.
`compression_threads` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`threads`](https://github.com/pycompression/xopen/#xopen) argument that specifies the number of threads that should be used for compression.
`compression_format` is an optional string passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`format`](https://github.com/pycompression/xopen/#v130-2022-01-10) argument that overrides the autodetection of the file’s compression format based on its extension or content. Possible values are ‘gz’, ‘xz’, ‘bz2’ and ‘zst’.
### Extend
```python
def extend(
path: str | bytes | int | os.PathLike,
data: Iterable,
newline: bool = True,
default: Optional[Callable] = None,
option: int = 0,
compression_level: Optional[int] = None,
compression_threads: Optional[int] = None,
compression_format: Optional[str] = None
) -> None
```
`extend()` serializes and appends an iterable of Python objects to a compressed or uncompressed UTF-8-encoded jsonl file.
`path` is a path-like object giving the pathname (absolute or relative to the current working directory) of the compressed or uncompressed UTF-8-encoded jsonl file to be extended.
`data` is an iterable of Python objects to be serialized and appended to the file.
`newline` is an optional Boolean flag that, if set to `False`, indicates that the file does not end with a newline and should, therefore, have one added before data is extended.
`default` is an optional callable passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`default`](https://github.com/ijl/orjson#default) argument that serializes subclasses or arbitrary types to supported types.
`option` is an optional integer passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`option`](https://github.com/ijl/orjson#option) argument that modifies how data is serialized.
`compression_level` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`compresslevel`](https://github.com/pycompression/xopen/#usage) argument that determines the compression level for writing to gzip, xz and Zstandard files.
`compression_threads` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`threads`](https://github.com/pycompression/xopen/#xopen) argument that specifies the number of threads that should be used for compression.
`compression_format` is an optional string passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`format`](https://github.com/pycompression/xopen/#v130-2022-01-10) argument that overrides the autodetection of the file’s compression format based on its extension or content. Possible values are ‘gz’, ‘xz’, ‘bz2’ and ‘zst’.
## License
This library is licensed under the [MIT License](https://github.com/umarbutler/orjsonl/blob/main/LICENSE).
Raw data
{
"_id": null,
"home_page": "",
"name": "orjsonl",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "bzip2,fast,gzip,json,json lines,jsonl,jsonlines,lines,ndjson,orjson,xopen,xz,zstandard",
"author": "",
"author_email": "Umar Butler <umar@umar.au>",
"download_url": "https://files.pythonhosted.org/packages/a8/6e/aba71f429cdfc141789afa9ea64d86b4277200a7efd4a3e8a025394178bc/orjsonl-1.0.0.tar.gz",
"platform": null,
"description": "# orjsonl\n<a href=\"https://pypi.org/project/orjsonl/\" alt=\"PyPI Version\"><img src=\"https://img.shields.io/pypi/v/orjsonl\"></a> <a href=\"https://github.com/umarbutler/orjsonl/actions/workflows/ci.yml\" alt=\"Build Status\"><img src=\"https://img.shields.io/github/actions/workflow/status/umarbutler/orjsonl/ci.yml?branch=main\"></a> <a href=\"https://app.codecov.io/gh/umarbutler/orjsonl\" alt=\"Code Coverage\"><img src=\"https://img.shields.io/codecov/c/github/umarbutler/orjsonl\"></a> <a href=\"https://pypistats.org/packages/orjsonl\" alt=\"Downloads\"><img src=\"https://img.shields.io/pypi/dm/orjsonl\"></a>\n\n`orjsonl` is a lightweight, high-performance Python library for parsing jsonl files. It supports a wide variety of compression formats, including gzip, bzip2, xz and Zstandard. It is powered by [`orjson`](https://github.com/ijl/orjson), the fastest and most accurate json serializer for Python.\n\n## Installation\n`orjsonl` may be installed with `pip`:\n```bash\npip install orjsonl\n```\n\nTo read or write Zstandard files, install either [`zstd`](https://github.com/facebook/zstd) or the [`zstandard`](https://pypi.org/project/zstandard/) Python package.\n\n## Usage\nThe code snippet below demonstrates how jsonl files can be saved, loaded, streamed, appended and extended with `orjsonl`:\n```python\n>>> import orjsonl\n>>> # Create an iterable of Python objects.\n>>> data = [\n 'hello world',\n ['fizz', 'buzz'],\n]\n>>> # Save the iterable to a jsonl file.\n>>> orjsonl.save('test.jsonl', data)\n>>> # Append a Python object to the jsonl file.\n>>> orjsonl.append('test.jsonl', {42 : 3.14})\n>>> # Extend the jsonl file with an iterable of Python objects.\n>>> orjsonl.extend('test.jsonl', [True, False])\n>>> # Load the jsonl file.\n>>> orjsonl.load('test.jsonl')\n['hello world', ['fizz', 'buzz'], {42 : 3.14}, True, False]\n>>> # Stream the jsonl file.\n>>> list(orjsonl.stream('test.jsonl'))\n['hello world', ['fizz', 'buzz'], {42 : 3.14}, True, False]\n```\n\n`orjsonl` can also be used to process jsonl files compressed with gzip, bzip2, xz and Zstandard:\n```python\n>>> orjsonl.save('test.jsonl.gz', data)\n>>> orjsonl.append('test.jsonl.gz', {42 : 3.14})\n>>> orjsonl.extend('test.jsonl.gz', [True, False])\n>>> orjsonl.load('test.jsonl.gz')\n['hello world', ['fizz', 'buzz'], {42 : 3.14}, True, False]\n>>> [obj for obj in orjsonl.stream('test.jsonl.gz')]\n['hello world', ['fizz', 'buzz'], {42 : 3.14}, True, False]\n```\n\n### Load\n```python\ndef load(\n path: str | bytes | int | os.PathLike,\n decompression_threads: Optional[int] = None,\n compression_format: Optional[str] = None\n) -> list[dict | list | int | float | str | bool | None]\n```\n\n`load()` deserializes a compressed or uncompressed UTF-8-encoded jsonl file to a list of Python objects.\n\n`path` is a path-like object giving the pathname (absolute or relative to the current working directory) of the compressed or uncompressed UTF-8-encoded jsonl file to be deserialized.\n\n`decompression_threads` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`threads`](https://github.com/pycompression/xopen/#xopen) argument that specifies the number of threads that should be used for decompression.\n\n`compression_format` is an optional string passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`format`](https://github.com/pycompression/xopen/#v130-2022-01-10) argument that overrides the autodetection of the file\u2019s compression format based on its extension or content. Possible values are \u2018gz\u2019, \u2018xz\u2019, \u2018bz2\u2019 and \u2018zst\u2019.\n\nThis function returns a `list` object comprised of deserialized `dict`, `list`, `int`, `float`, `str`, `bool` or `None` objects.\n\n### Stream\n```python\ndef stream(\n path: str | bytes | int | os.PathLike,\n decompression_threads: Optional[int] = None,\n compression_format: Optional[str] = None\n) -> Generator[dict | list | int | float | str | bool | None, None, None]\n```\n\n`stream()` creates a `generator` that deserializes a compressed or uncompressed UTF-8-encoded jsonl file to Python objects.\n\n`path` is a path-like object giving the pathname (absolute or relative to the current working directory) of the compressed or uncompressed UTF-8-encoded jsonl file to be deserialized by the `generator`.\n\n`decompression_threads` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`threads`](https://github.com/pycompression/xopen/#xopen) argument that specifies the number of threads that should be used for decompression.\n\n`compression_format` is an optional string passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`format`](https://github.com/pycompression/xopen/#v130-2022-01-10) argument that overrides the autodetection of the file\u2019s compression format based on its extension or content. Possible values are \u2018gz\u2019, \u2018xz\u2019, \u2018bz2\u2019 and \u2018zst\u2019.\n\nThis function returns a `generator` that deserializes the file to `dict`, `list`, `int`, `float`, `str`, `bool` or `None` objects.\n\n### Save\n```python\ndef save(\n path: str | bytes | int | os.PathLike,\n data: Iterable,\n default: Optional[Callable] = None,\n option: int = 0,\n compression_level: Optional[int] = None,\n compression_threads: Optional[int] = None,\n compression_format: Optional[str] = None\n) -> None\n```\n\n`save()` serializes an iterable of Python objects to a compressed or uncompressed UTF-8-encoded jsonl file.\n\n`path` is a path-like object giving the pathname (absolute or relative to the current working directory) of the compressed or uncompressed UTF-8-encoded jsonl file to be saved.\n\n`data` is an iterable of Python objects to be serialized to the file.\n\n`default` is an optional callable passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`default`](https://github.com/ijl/orjson#default) argument that serializes subclasses or arbitrary types to supported types.\n\n`option` is an optional integer passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`option`](https://github.com/ijl/orjson#option) argument that modifies how data is serialized.\n\n`compression_level` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`compresslevel`](https://github.com/pycompression/xopen/#usage) argument that determines the compression level for writing to gzip, xz and Zstandard files.\n\n`compression_threads` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`threads`](https://github.com/pycompression/xopen/#xopen) argument that specifies the number of threads that should be used for compression.\n\n`compression_format` is an optional string passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`format`](https://github.com/pycompression/xopen/#v130-2022-01-10) argument that overrides the autodetection of the file\u2019s compression format based on its extension. Possible values are \u2018gz\u2019, \u2018xz\u2019, \u2018bz2\u2019 and \u2018zst\u2019.\n\n### Append\n```python\ndef append(\n path: str | bytes | int | os.PathLike,\n data: Any,\n newline: bool = True,\n default: Optional[Callable] = None,\n option: int = 0,\n compression_level: Optional[int] = None,\n compression_threads: Optional[int] = None,\n compression_format: Optional[str] = None\n) -> None\n```\n\n`append()` serializes and appends a Python object to a compressed or uncompressed UTF-8-encoded jsonl file.\n\n`path` is a path-like object giving the pathname (absolute or relative to the current working directory) of the compressed or uncompressed UTF-8-encoded jsonl file to be appended.\n\n`data` is a Python object to be serialized and appended to the file.\n\n`newline` is an optional Boolean flag that, if set to `False`, indicates that the file does not end with a newline and should, therefore, have one added before data is appended.\n\n`default` is an optional callable passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`default`](https://github.com/ijl/orjson#default) argument that serializes subclasses or arbitrary types to supported types.\n\n`option` is an optional integer passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`option`](https://github.com/ijl/orjson#option) argument that modifies how data is serialized.\n\n`compression_level` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`compresslevel`](https://github.com/pycompression/xopen/#usage) argument that determines the compression level for writing to gzip, xz and Zstandard files.\n\n`compression_threads` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`threads`](https://github.com/pycompression/xopen/#xopen) argument that specifies the number of threads that should be used for compression.\n\n`compression_format` is an optional string passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`format`](https://github.com/pycompression/xopen/#v130-2022-01-10) argument that overrides the autodetection of the file\u2019s compression format based on its extension or content. Possible values are \u2018gz\u2019, \u2018xz\u2019, \u2018bz2\u2019 and \u2018zst\u2019.\n\n### Extend\n```python\ndef extend(\n path: str | bytes | int | os.PathLike,\n data: Iterable,\n newline: bool = True,\n default: Optional[Callable] = None,\n option: int = 0,\n compression_level: Optional[int] = None,\n compression_threads: Optional[int] = None,\n compression_format: Optional[str] = None\n) -> None\n```\n\n`extend()` serializes and appends an iterable of Python objects to a compressed or uncompressed UTF-8-encoded jsonl file.\n\n`path` is a path-like object giving the pathname (absolute or relative to the current working directory) of the compressed or uncompressed UTF-8-encoded jsonl file to be extended.\n\n`data` is an iterable of Python objects to be serialized and appended to the file.\n\n`newline` is an optional Boolean flag that, if set to `False`, indicates that the file does not end with a newline and should, therefore, have one added before data is extended.\n\n`default` is an optional callable passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`default`](https://github.com/ijl/orjson#default) argument that serializes subclasses or arbitrary types to supported types.\n\n`option` is an optional integer passed to [`orjson.dumps()`](https://github.com/ijl/orjson#serialize) as the [`option`](https://github.com/ijl/orjson#option) argument that modifies how data is serialized.\n\n`compression_level` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`compresslevel`](https://github.com/pycompression/xopen/#usage) argument that determines the compression level for writing to gzip, xz and Zstandard files.\n\n`compression_threads` is an optional integer passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`threads`](https://github.com/pycompression/xopen/#xopen) argument that specifies the number of threads that should be used for compression.\n\n`compression_format` is an optional string passed to [`xopen.xopen()`](https://github.com/pycompression/xopen/#xopen) as the [`format`](https://github.com/pycompression/xopen/#v130-2022-01-10) argument that overrides the autodetection of the file\u2019s compression format based on its extension or content. Possible values are \u2018gz\u2019, \u2018xz\u2019, \u2018bz2\u2019 and \u2018zst\u2019.\n\n## License\nThis library is licensed under the [MIT License](https://github.com/umarbutler/orjsonl/blob/main/LICENSE).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A lightweight, high-performance Python library for parsing jsonl files.",
"version": "1.0.0",
"project_urls": {
"Documentation": "https://github.com/umarbutler/orjsonl/blob/main/README.md",
"Homepage": "https://github.com/umarbutler/orjsonl",
"Issues": "https://github.com/umarbutler/orjsonl/issues",
"Source": "https://github.com/umarbutler/orjsonl"
},
"split_keywords": [
"bzip2",
"fast",
"gzip",
"json",
"json lines",
"jsonl",
"jsonlines",
"lines",
"ndjson",
"orjson",
"xopen",
"xz",
"zstandard"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "029f4c2899436bcc758b7c0cfa4012ea2a4983601f7580f9926ca10f79f8dbc8",
"md5": "8743049a77cdae0ae8436b69b9d3af01",
"sha256": "21f5688517a34ae77cd919dac63e11eb103b75da9be60ea910ac4f6862d92a47"
},
"downloads": -1,
"filename": "orjsonl-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8743049a77cdae0ae8436b69b9d3af01",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 5870,
"upload_time": "2023-11-09T02:27:52",
"upload_time_iso_8601": "2023-11-09T02:27:52.001608Z",
"url": "https://files.pythonhosted.org/packages/02/9f/4c2899436bcc758b7c0cfa4012ea2a4983601f7580f9926ca10f79f8dbc8/orjsonl-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a86eaba71f429cdfc141789afa9ea64d86b4277200a7efd4a3e8a025394178bc",
"md5": "753d0c0616707ece922be2cc1856cca8",
"sha256": "5097e7d099a0700a173dbabd90285245442b7940e52386b1470ca1678125e763"
},
"downloads": -1,
"filename": "orjsonl-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "753d0c0616707ece922be2cc1856cca8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 7880,
"upload_time": "2023-11-09T02:27:53",
"upload_time_iso_8601": "2023-11-09T02:27:53.738653Z",
"url": "https://files.pythonhosted.org/packages/a8/6e/aba71f429cdfc141789afa9ea64d86b4277200a7efd4a3e8a025394178bc/orjsonl-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-09 02:27:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "umarbutler",
"github_project": "orjsonl",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "orjsonl"
}