Dev.log [ex-Comics]: post #2285 — TG.ME

Это я, пишу xlea

Ну что, меня можно поздравить с первой библиотекой на pypi!
🥳

Ну как с первой… с первой, которую я придумал и написал с нуля, а не обертка над чужим api.

▶️Как пришла идея
На работе я постоянно пишу приложения, которые читают excel файлы.
С каждым разом я совершенствовал подход так, чтобы это выглядело более читаемым и легко поддерживаемым.

Буквально на прошлой неделе на ревью кода я понял, что очень большой кусок логики - это чтение и парсинг этих файлов. И мне стало немного больно от того, что целая команда разработчиков делает одно и то же действие, но каждый по своему.

▶️Поэтому я написал xlea
Это легковесная библиотека, которая в стиле каких-нибудь SQLAlchemy или pydantic дает возможность легко и ненапряжно спарсить таблицу в файле.

Не важно на какой она строке - на первой или на двадцать пятой.
Не важно сколько строк в заголовке - одна или семь.

Вы просто описываете схему и далее происходит магия.

🧑‍💻 Вот пример:
class Person(Schema):
id: str = Column("Номер сотрудника")
fullname: str = Column("ф.+и.+о.+", regexp=True)
age: int = Column(lambda n: n.startswith("Возраст"), validator=lambda v: v.isnumeric(), skip_invalid_row=True)


persons = xlea.autoread("persons.xlsx", schema=Person)

for p in person:
print(p.id, p.fullname, p.age)
print(p.asdict())

Названия столбцов можно писать строкой, или передавать регулярку, или даже собственную функцию.
Строки можно валидировать и в случае некорректной строки - пропускать ее или вызывать ошибку.

Есть и еще фичи, но как говорит чел из комикса выше - ее все равно никто не будет юзать…

Или нет?
😰

pip install xlea,
btw🌚

автор комикса: xkcd
@Dev.log
❤13
January 31, 2026 1K 10 12