Skip to main content

Одна строка — любой формат данных

Project description

py-morpher

Одна строчка — любой формат данных

from morph import morph

df = morph(data, to="pandas") # → pandas.DataFrame users = morph(data, to=User) # → List[User] (Pydantic) dicts = morph(users, to=dict) # → list[dict] / dict

Больше никаких ручных циклов, model_dump(), DataFrame(data), if-ов и «а вдруг список, а вдруг словарь». Одна функция — всё.

Установка

pip install py-morpher

10 секунд магии

from morph import morph from pydantic import BaseModel

Обычные данные (из API, JSON, БД…)

data = [ {"name": "Аня", "age": 17, "city": "Москва"}, {"name": "Дима", "age": 19, "city": "Питер"}, ]

1. В таблицу

df = morph(data, to="pandas") print(df) name age city 0 Аня 17 Москва 1 Дима 19 Питер

2. В умные объекты (с валидацией)

class User(BaseModel): name: str age: int city: str

users = morph(data, to=User) print(users[0].name) # Аня

3. Обратно в словари (для JSON/API)

clean_dicts = morph(users, to=dict) → [{'name': 'Аня', 'age': 17, 'city': 'Москва'}, ...]

4. Кривые данные? Сама поймает

bad = {"name": "Вася", "age": "age": "не число"} try: morph(bad, to=User) except Exception as e: print("Ошибка поймана →", e)

Поддерживаемые преобразования (пока)

Откуда → Куда,Работает?,Команда list[dict] → DataFrame,Yes,"to=""pandas"" или to=""df""" dict → DataFrame,Yes,"to=""pandas""" list[dict] → List[Model],Yes,`to=MyModel Model / List[Model] → dict,Yes,"to=dict или to=""json""" DataFrame → list[dict],Yes,to=dict любой примитив → dict,Yes,"to=dict (обернёт в {""data"": value})"

Почему это круто

Ноль ручного маппинга Автоматическая валидация через Pydantic Минимум кода — максимум читаемости Идеально для FastAPI, скриптов аналитики, парсеров, ботов

Автор: busyaaa_1 GitHub: https://github.com/busyaaa-1/py-morph/ PyPI: https://pypi.org/project/py-morpher/

Заливай, пользуйся, кайфуй. Твои данные теперь слушаются с одного слова.

⭐ Если понравилось — звёздочка на GitHub будет самой приятной благодарностью

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_morpher-1.0.1.tar.gz (2.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_morpher-1.0.1-py3-none-any.whl (3.4 kB view details)

Uploaded Python 3

File details

Details for the file py_morpher-1.0.1.tar.gz.

File metadata

  • Download URL: py_morpher-1.0.1.tar.gz
  • Upload date:
  • Size: 2.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for py_morpher-1.0.1.tar.gz
Algorithm Hash digest
SHA256 7ee62cbc45abdcb0ff2f5d30803f05e3a54f14255fbca7aa0d056311dbb78943
MD5 56f1978fd4457ce2a10bc454991f39a6
BLAKE2b-256 7ad988727d21370ad2e33d97da48bab1588d455fe0a24097a0b5979f7b4c3910

See more details on using hashes here.

File details

Details for the file py_morpher-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: py_morpher-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 3.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for py_morpher-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f85627ed7261d691e6d1c3234b9ecbd91edbc009eeea6e74b79ba4454c8af8b2
MD5 f96302b08ff77ddad4068e781a35e724
BLAKE2b-256 7d54d0d0bccff7449865caef12b7ad54f03209a53ef755b5952c027a993b22a3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page