-
Notifications
You must be signed in to change notification settings - Fork 836
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
bugfix/drop use of ndjson dep, use local code (#3886)
### Description Avoid using the ndjson dependency due to the limiting license that exists on it
- Loading branch information
Showing
7 changed files
with
75 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,4 +22,3 @@ tqdm | |
psutil | ||
python-oxmsg | ||
html5lib | ||
ndjson |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
__version__ = "0.16.16-dev0" # pragma: no cover | ||
__version__ = "0.16.16-dev1" # pragma: no cover |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
""" | ||
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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters