461bf6fd40
CI / lint (3.11) (push) Has been cancelled
CI / lint (3.12) (push) Has been cancelled
CI / lint (3.13) (push) Has been cancelled
CI / shellcheck (push) Has been cancelled
CI / shfmt (push) Has been cancelled
CI / setup (3.11) (push) Has been cancelled
CI / setup (3.12) (push) Has been cancelled
CI / setup (3.13) (push) Has been cancelled
CI / check-licenses (3.12) (push) Has been cancelled
CI / test_unit (3.11) (push) Has been cancelled
CI / test_unit (3.12) (push) Has been cancelled
CI / test_unit (3.13) (push) Has been cancelled
CI / test_unit_no_extras (3.11) (push) Has been cancelled
CI / test_unit_no_extras (3.12) (push) Has been cancelled
CI / test_json_to_html (3.12) (push) Has been cancelled
CI / test_unit_no_extras (3.13) (push) Has been cancelled
CI / test_unit_dependency_extras (csv, 3.12, --extra csv) (push) Has been cancelled
CI / test_unit_dependency_extras (xlsx, 3.11, --extra xlsx) (push) Has been cancelled
CI / test_unit_dependency_extras (xlsx, 3.12, --extra xlsx) (push) Has been cancelled
CI / test_unit_dependency_extras (csv, 3.11, --extra csv) (push) Has been cancelled
CI / test_unit_dependency_extras (csv, 3.13, --extra csv) (push) Has been cancelled
CI / test_unit_dependency_extras (docx, 3.11, --extra docx) (push) Has been cancelled
CI / test_unit_dependency_extras (docx, 3.12, --extra docx) (push) Has been cancelled
CI / test_unit_dependency_extras (docx, 3.13, --extra docx) (push) Has been cancelled
CI / test_unit_dependency_extras (markdown, 3.11, --extra md) (push) Has been cancelled
CI / test_unit_dependency_extras (markdown, 3.12, --extra md) (push) Has been cancelled
CI / test_unit_dependency_extras (markdown, 3.13, --extra md) (push) Has been cancelled
CI / test_unit_dependency_extras (odt, 3.11, --extra odt) (push) Has been cancelled
CI / test_unit_dependency_extras (odt, 3.12, --extra odt) (push) Has been cancelled
CI / test_unit_dependency_extras (odt, 3.13, --extra odt) (push) Has been cancelled
CI / test_unit_dependency_extras (pdf-image, 3.11, --extra pdf --extra image --extra paddleocr) (push) Has been cancelled
CI / test_unit_dependency_extras (pdf-image, 3.12, --extra pdf --extra image --extra paddleocr) (push) Has been cancelled
CI / test_unit_dependency_extras (pdf-image, 3.13, --extra pdf --extra image --extra paddleocr) (push) Has been cancelled
CI / test_unit_dependency_extras (pptx, 3.11, --extra pptx) (push) Has been cancelled
CI / test_unit_dependency_extras (pptx, 3.12, --extra pptx) (push) Has been cancelled
CI / test_unit_dependency_extras (pptx, 3.13, --extra pptx) (push) Has been cancelled
CI / test_unit_dependency_extras (pypandoc, 3.11, --extra epub --extra org --extra rtf --extra rst) (push) Has been cancelled
CI / test_unit_dependency_extras (pypandoc, 3.12, --extra epub --extra org --extra rtf --extra rst) (push) Has been cancelled
CI / test_unit_dependency_extras (pypandoc, 3.13, --extra epub --extra org --extra rtf --extra rst) (push) Has been cancelled
Build And Push Docker Image / set-short-sha (push) Has been cancelled
Partition Benchmark / setup (push) Has been cancelled
Partition Benchmark / Measure and compare partition() runtime (push) Has been cancelled
CI / test_unit_dependency_extras (xlsx, 3.13, --extra xlsx) (push) Has been cancelled
CI / test_ingest_src (3.12) (push) Has been cancelled
CI / test_json_to_markdown (3.12) (push) Has been cancelled
CI / changelog (push) Has been cancelled
CI / test_dockerfile (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Build And Push Docker Image / build-images (linux/amd64, opensource-linux-8core) (push) Has been cancelled
Build And Push Docker Image / build-images (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Build And Push Docker Image / publish-images (push) Has been cancelled
68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
"""
|
|
Adds support for working with newline-delimited JSON (ndjson) files. This format is useful for
|
|
streaming json content that would otherwise not be possible using raw JSON files.
|
|
"""
|
|
|
|
import json
|
|
from typing import IO, Any
|
|
|
|
|
|
def dumps(obj: list[dict[str, Any]], **kwargs) -> str:
|
|
"""
|
|
Converts the list of dictionaries into string representation
|
|
|
|
Args:
|
|
obj (list[dict[str, Any]]): List of dictionaries to convert
|
|
**kwargs: Additional keyword arguments to pass to json.dumps
|
|
|
|
Returns:
|
|
str: string representation of the list of dictionaries
|
|
"""
|
|
return "\n".join(json.dumps(each, **kwargs) for each in obj)
|
|
|
|
|
|
def dump(obj: list[dict[str, Any]], fp: IO, **kwargs) -> None:
|
|
"""
|
|
Writes the list of dictionaries to a newline-delimited file
|
|
|
|
Args:
|
|
obj (list[dict[str, Any]]): List of dictionaries to convert
|
|
fp (IO): File pointer to write the string representation to
|
|
**kwargs: Additional keyword arguments to pass to json.dumps
|
|
|
|
Returns:
|
|
None
|
|
"""
|
|
# Indent breaks ndjson formatting
|
|
kwargs["indent"] = None
|
|
text = dumps(obj, **kwargs)
|
|
fp.write(text)
|
|
|
|
|
|
def loads(s: str, **kwargs) -> list[dict[str, Any]]:
|
|
"""
|
|
Converts the raw string into a list of dictionaries
|
|
|
|
Args:
|
|
s (str): Raw string to convert
|
|
**kwargs: Additional keyword arguments to pass to json.loads
|
|
|
|
Returns:
|
|
list[dict[str, Any]]: List of dictionaries parsed from the input string
|
|
"""
|
|
return [json.loads(line, **kwargs) for line in s.splitlines()]
|
|
|
|
|
|
def load(fp: IO, **kwargs) -> list[dict[str, Any]]:
|
|
"""
|
|
Converts the contents of the file into a list of dictionaries
|
|
|
|
Args:
|
|
fp (IO): File pointer to read the string representation from
|
|
**kwargs: Additional keyword arguments to pass to json.loads
|
|
|
|
Returns:
|
|
list[dict[str, Any]]: List of dictionaries parsed from the file
|
|
"""
|
|
return loads(fp.read(), **kwargs)
|