Contract-Driven Data Control Layer
Project description
cat << 'EOF' > README.md
AcidEngine — Contract-Driven Data Control Layer
Контрактно-ориентированная платформа для Data Engineering.
Описывайте правила, структуру и жизненный цикл данных в декларативном стиле. AcidEngine автоматически обеспечивает их соблюдение, сгенерирует код, тесты и отчёты.
Быстрый пример
Создайте файл спецификации orders.ae:
spec_version "1.0"
project "Orders Validation"
version "1.0"
INPUT:
source orders
source customers
OUTPUT:
source validated_orders
IMPLEMENTATION:
stage validate:
input orders
output validated_orders
use contract
schema:
order_id is integer
price is float
quantity is integer
require:
price > 0
quantity between 1 and 100
join customers with orders by customer_email
enrich phone from customers.phone
Запустите валидацию через CLI или Python:
$ acid run orders.ae --input orders.csv
Stage: validate
PASS: 150, FAIL: 12, SKIPPED: 3
Ключевые возможности
| Возможность | Описание |
|---|---|
| Field Contracts | Типы, диапазоны, regex, choices, 8 встроенных пресетов (Email, Url, UUID…) |
| Cross‑Field Rules | Бизнес-правила, связывающие поля (age >= 18 if ...) |
| QualityGate | 4 режима обработки: strict, recovery, audit, quarantine |
| Explain Engine | Читаемый отчёт (Markdown, HTML) с топом ошибок и примерами |
| Pipeline Generator | Автоматическая генерация Python-пайплайна прямо из контракта |
| AI Guard | Валидация и фильтрация ответов LLM через контракт |
| LangChain Plugin | Нативный компонент AcidOutputGuard для LangChain-пайплайнов |
| YAML Support | Бесшовный импорт и экспорт контрактов |
| Derived Fields | Объявление и расчет вычисляемых полей внутри контракта |
| Join & Enrich | Описание связей и обогащения между источниками данных |
| Contract Testing | Автоматическая генерация готовых pytest-тестов для данных |
| HTML Reports | Визуальные профессиональные отчёты в один клик |
Быстрый старт
-
Установите пакет:
pip install acid-engine
-
Запустите пайплайн:
acid run my_pipeline.ae --input data.csv
Документация и ссылки
Статус проекта
- ✅ v1.0 (Стабилен): Ядро полностью готово к пилотным внедрениям в production.
- 🔄 В разработке: Polars adapter, Contract Registry, Audit Trail.
Автор и лицензия
© 2025 Alexey Rodkin. Распространяется под лицензией Apache 2.0. Подробности в файле LICENSE. EOF
cat << 'EOF' > ROADMAP.md
AcidEngine Roadmap
v1.0 (Текущая версия) — Стабильное ядро
- Field Contracts: Типы, диапазоны, regex, пресеты.
- Container Contracts: Проверки на уникальность (unique), упорядоченность (ordered), неизменяемость (frozen).
- Cross‑Field Validation: Кросс-полевая валидация и условная логика.
- QualityGate: Режимы strict, recovery, audit, quarantine.
- Explain Engine: Генерация понятных отчетов в Markdown и HTML.
- YAML Support: Экспорт/импорт декларативных спецификаций.
- Pipeline Generator: Конвертация контрактов в исполняемый Python-код.
- Pandas Integration & CSV Loader: Базовый движок для работы с табличными данными.
- AI Guard & LangChain Plugin: Инструменты контроля качества для LLM-агентов.
- Join & Enrich & Derived Fields: Трансформация данных на уровне контракта.
- Contract Testing: Автогенерация тестовых сценариев для
pytest. - AcidLogger: Структурированное JSON-логирование для интеграции с SIEM/ELK.
v1.1 (Ближайшие планы) — Расширение экосистемы
- Polars Integration: Поддержка высокопроизвого движка Polars для больших датасетов.
- JSON Schema / Pydantic export: Генерация стандартных схем данных из
.ae-файлов. - Contract Diff: Утилита для сравнения двух версий контрактов.
- Excel Export: Выгрузка отчетов Explain Engine в формат
.xlsx.
v1.5 (В проектировании) — Жизненный цикл контрактов
- Full Pipeline Generation: Полная сборка сложных направленных графов (DAG) из контрактов.
- Contract Versioning: Систематизация версий и обратная совместимость схем.
- Soft Contracts: Уровни строгости правил (
INFO,WARNING,ERROR). - Contract Fingerprint: Хеширование состояния контракта для контроля целостности данных.
v2.0 (Перспектива) — Enterprise & Стриминг
- Rust Runtime: Перенос критического движка валидации на Rust для максимальной скорости.
- Kafka / Spark Streaming Plugins: Валидация потоковых данных «на лету».
- Marketplace of Contracts: Публичный и приватный хаб готовых контрактов (Data Presets).
- Enterprise Features: Интеграция SSO, RBAC (ролевая модель) и сквозной аудит (Audit Trail). EOF
cat << 'EOF' > ARCHITECTURE.md
AcidEngine — Architecture Overview
Базовый принцип
Контракт является единственным источником истины (Single Source of Truth).
Все правила, ограничения, типы данных и связи хранятся исключительно в файле контракта (.ae / .yaml). Никакая другая сущность, компонент рантайма или сторонний сервис не должны содержать собственную копию правил. Изменения в контракте автоматически каскадируются на код, тесты и аналитику.
Основные компоненты
1. Парсер (Lark)
Отвечает за чтение текстовых файлов спецификации .ae и построение абстрактного синтаксического дерева (AST).
Грамматика описывает декларативные блоки:
INPUT:/OUTPUT:/IMPLEMENTATION:— макроструктура пайплайна.stage,input,output,use,schema,require— контекст исполнения и логические блоки.join,enrich,derive— правила трансформации.- Набор операторов валидации:
is,>,>=,<,<=,!=,between.
2. Рантайм (StageRunner)
Оркестратор жизненного цикла данных на конкретном этапе пайплайна. Выполняет следующие шаги:
- Загружает сырые данные из источников.
- Применяет трансформации (
join/enrich/derive). - Конструирует объект
Contractна основе AST. - Пропускает данные через движок валидации (
Field Validation&QualityGate). - Агрегирует метрики для формирования финального отчета.
3. Генераторы (Группа расширений)
- HTMLReporter: Отвечает за компиляцию результатов валидации в интерактивные HTML/Markdown бизнес-отчеты.
- ContractTestGenerator: Анализирует ограничения контракта и автоматически создаёт тестовые люксы (свиты) для
pytest, снижая рутину написания тестов. - AcidLogger: Обеспечивает стандартизированный вывод логов в формате JSON.
Поток данных (Data Flow)
[ .ae contract file ]
│
▼
Parser (Lark) ──► Builds AST
│
▼
StageRunner ──► 1. Join & Enrich Data
│ 2. Compute Derived Fields
│ 3. Validate (Field / QualityGate)
▼
[ Executive Output ] ──► (Validated Data, Error Tables)
│
├──► HTMLReporter ──► [ Interactive HTML/MD Reports ]
└──► ContractTestGen ──► [ Automated pytest Files ]
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
File details
Details for the file acid_engine-0.2.0.tar.gz.
File metadata
- Download URL: acid_engine-0.2.0.tar.gz
- Upload date:
- Size: 31.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc1367cc95bd42b009f530b017ace44edf1329a2093b1be4811256cc887e8ec8
|
|
| MD5 |
5e5240ab20d5f012f7b867482c85b8aa
|
|
| BLAKE2b-256 |
f5268e6a739debe684436a2367cdecacf25ee4f8eac56c695ec4890df5a8ad6d
|
File details
Details for the file acid_engine-0.2.0-py3-none-any.whl.
File metadata
- Download URL: acid_engine-0.2.0-py3-none-any.whl
- Upload date:
- Size: 31.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4d35097fc861fd7b2b64e61ed07dbdbb57c4cdde0f57a0e6fd57cfb9c779674
|
|
| MD5 |
8cf61143facc2fbbb970c161c9637b0d
|
|
| BLAKE2b-256 |
f884b65ca29220388a7b01e16c82053d5dd56c724b5bff1e77390c9e58694424
|