Read and process Python subset
Project description
PLG-SHARED
PLG-SHARED - это общий инфраструктурный слой для всех проектов организации py-love-gmod.
Он предоставляет:
- Парсер Python с преобразованием в IR (промежуточное представление)
- Общие утилиты: бинарный дампер, CLI-обёртку, многопоточность
- Единый формат данных для обмена между компонентами экосистемы
Библиотека не выполняет код, который парсит. Она только анализирует и структурирует его.
Зачем нужен этот модуль?
В экосистеме py-love-gmod многие проекты используют общие механизмы:
- чтение и анализ Python-кода
- сериализацию данных
- построение CLI-интерфейсов
- параллельную обработку
Вместо того чтобы дублировать код в каждом репозитории, все эти механизмы вынесены в PLG-SHARED.
Поддерживаемые типы файлов
Парсер умеет читать:
| Расширение | Описание |
|---|---|
.py |
Обычный Python-код |
.pyi |
Файл-описатель (stub) |
На выходе - единое IR-дерево, с которым работают все остальные инструменты.
Бинарный дампер
Модуль BinaryRW позволяет безопасно сериализовать и десериализовать стандартные типы Python:
None,bool,int,float,str,byteslist,tuple,dict,set
Формат упаковки - бинарный.
CLI-утилита
В состав входит модифицированная версия clii - микро-обёртка над argparse.
Позволяет быстро создавать консольные команды с минимальным кодом. Используется во всех CLI-инструментах экосистемы.
В отличии от самого проекта который лицензирован под GNU Affero General Public License v3.0 (AGPL-3.0), clii лицензирован под MIT
Технический долг
- Выводить ошибки более человеческим языком
- Улучшить позиционирование ошибок (аналог Python-трейсбэков)
Установка
pip install plg-shared
Для разработки:
git clone https://github.com/py-love-gmod/plg-shared
cd plg-shared
pip install -e .
Лицензия
Этот проект распространяется под лицензией GNU Affero General Public License v3.0 (AGPL-3.0).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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