Pre-release
This release is a pre-release and may not be stable for production use.
data2model
Python library and CLI tool for generating different Python data classes from data.
Supported data formats:
- CSV
Supported data classes:
Requirements
- Python 3.8+
Installation
pip install data2model
Usage
As library
import asyncio
import pathlib
from data_to_model import ModelGenerator
files = [
{"input": pathlib.Path("example.csv"), "output": pathlib.Path("example.py")},
]
async def model_generator(input_file: pathlib.Path, output_file: pathlib.Path):
mg = ModelGenerator(input_file)
model = await mg.get_model()
await model.save(output_file)
async def main():
tasks = [model_generator(i["input"], i["output"]) for i in files]
await asyncio.gather(*tasks)
if __name__ == "__main__":
asyncio.run(main())
As CLI
from single file
$ cat data.csv
col1,col2
1,2
,2.0
$ data2model file -if data.csv -of data.py
$ cat data.py
# This file was generated by data_to_model.
from dataclasses import dataclass
from typing import Any, Dict, Optional, Union
@dataclass
class Data:
col1: Optional[int]
col2: Union[float, int]
@classmethod
def from_dict(cls, data: Dict[str, Any]) -> "Data":
col1 = data["col1"]
col2 = data["col2"]
return cls(col1=col1, col2=col2)
def to_dict(self) -> Dict[str, Any]:
return {"col1": self.col1, "col2": self.col2}
from directory
$ data2model folder -if data -of models
$ ls data
data1.csv data2.csv
$ ls models
data1.py data2.py
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
data2model-0.2.1b0.tar.gz
(10.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file data2model-0.2.1b0.tar.gz.
File metadata
- Download URL: data2model-0.2.1b0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.2 Linux/5.15.19-1-MANJARO
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8002cd8706d47767db8c46d4fef4bb0f775d30019047fdac2614a6b1f5e10eb6
|
|
| MD5 |
00a544919f2018c6e5e9bf9f7bfd7d93
|
|
| BLAKE2b-256 |
f023603ddd4ff7db70f6fbe7675fcc03e37d9a0c4b1f7516f76f79476de59ff0
|
File details
Details for the file data2model-0.2.1b0-py3-none-any.whl.
File metadata
- Download URL: data2model-0.2.1b0-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.10.2 Linux/5.15.19-1-MANJARO
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a27e04547df0b67980173c02bfae81f57f5e599aaa5f7759a5ea41c457b7901
|
|
| MD5 |
cb5a66fbd667cc31cf4f973332c51b91
|
|
| BLAKE2b-256 |
fe7234124bb4dcf3980033f6921233d42ec30f287dcad6a7b51a946787c0963f
|