chrisbase
Advanced tools
+1
-1
| Metadata-Version: 2.1 | ||
| Name: chrisbase | ||
| Version: 0.5.5 | ||
| Version: 0.5.6 | ||
| Summary: Base library for python coding | ||
@@ -5,0 +5,0 @@ Home-page: https://github.com/chrisjihee/chrisbase |
+1
-1
| [metadata] | ||
| name = chrisbase | ||
| version = 0.5.5 | ||
| version = 0.5.6 | ||
| author = Jihee Ryu | ||
@@ -5,0 +5,0 @@ author_email = chrisjihee@naver.com |
| Metadata-Version: 2.1 | ||
| Name: chrisbase | ||
| Version: 0.5.5 | ||
| Version: 0.5.6 | ||
| Summary: Base library for python coding | ||
@@ -5,0 +5,0 @@ Home-page: https://github.com/chrisjihee/chrisbase |
@@ -22,2 +22,3 @@ import json | ||
| from more_itertools import ichunked | ||
| from pydantic import BaseModel | ||
| from pymongo import MongoClient | ||
@@ -93,3 +94,15 @@ | ||
| @staticmethod | ||
| def from_path(path: str | Path, name: str | Path | None = None, mode: str = "rb", encoding: str = "utf-8", reset: bool = False, required: bool = False) -> "FileOption": | ||
| path = Path(path) | ||
| return FileOption( | ||
| home=path.parent, | ||
| name=name if name else path.name, | ||
| mode=mode, | ||
| encoding=encoding, | ||
| reset=reset, | ||
| required=required, | ||
| ) | ||
| @dataclass | ||
@@ -101,3 +114,20 @@ class TableOption(StreamOption): | ||
| @staticmethod | ||
| def from_path(path: str | Path, user: str | None = None, pswd: str | None = None, | ||
| sort: str | List[Tuple[str, int] | str] = "_id", find: dict | None = None, timeout: int = 30 * 1000, | ||
| reset: bool = False, required: bool = False) -> "TableOption": | ||
| path = Path(path) | ||
| return TableOption( | ||
| home=path.parent, | ||
| name=path.name, | ||
| user=user, | ||
| pswd=pswd, | ||
| sort=sort, | ||
| find=find if find else {}, | ||
| timeout=timeout, | ||
| reset=reset, | ||
| required=required, | ||
| ) | ||
| @dataclass | ||
@@ -390,3 +420,3 @@ class IndexOption(StreamOption): | ||
| inter: int = field(default=10000) | ||
| total: int = field(default=-1) | ||
| # total: int = field(default=-1) | ||
| data: Iterable | None = field(default=None) | ||
@@ -600,3 +630,3 @@ file: FileOption | None = field(default=None) | ||
| output: OutputOption = field() | ||
| option: OptionData | None = field(default=None) | ||
| option: BaseModel | None = None | ||
@@ -603,0 +633,0 @@ def __post_init__(self): |
@@ -20,2 +20,3 @@ from __future__ import annotations | ||
| import tqdm.std as tqdm_std | ||
| from pydantic import BaseModel | ||
| from sqlalchemy.util import OrderedSet | ||
@@ -154,6 +155,12 @@ | ||
| def to_dataframe(raw, index=None, exclude=None, columns=None, data_exclude=None, data_prefix=None): | ||
| if dataclasses.is_dataclass(raw): | ||
| if isinstance(raw, BaseModel): | ||
| if not columns: | ||
| columns = ["key", "value"] | ||
| raw = {(f"{data_prefix}.{k}" if data_prefix else k): v | ||
| for k, v in raw.model_dump(exclude=data_exclude).items()} | ||
| return to_dataframe(raw, index=index, exclude=exclude, columns=columns) | ||
| elif dataclasses.is_dataclass(raw): | ||
| if not columns: | ||
| columns = ["key", "value"] | ||
| raw = {(f"{data_prefix}.{k}" if data_prefix else k): v | ||
| for k, v in asdict(raw).items() | ||
@@ -160,0 +167,0 @@ if not data_exclude or k not in data_exclude} |
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
69621
2.09%1500
2.39%