data2model 0.2.1b0

Creator: bigcodingguy24

Last updated:

Add to Cart

Description:

data2model 0.2.1b0

data2model



Python library and CLI tool for generating different Python data classes from data.
Supported data formats:

CSV

Supported data classes:

dataclasses

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

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.