This release is a pre-release and may not be stable for production use.
det — Data Engineering Toolkit
by det Labs
A modular, Python-first data engineering framework built by det Labs for modern analytical workflows.
Current Status: Version 0.1.0 (Catalog MVP Released)
det (developed by det Labs) has completed its Version 0.1.0 milestone with the release of the Catalog Module (det.catalog):
- Concurrency-safe, atomic YAML metadata persistence with file locks.
- Automated schema discovery for Parquet, CSV, TSV, JSON, NDJSON, Excel, and directory datasets using Polars and PyArrow.
- Leverages Python 3.15 stable native
lazy importsyntax for instantaneous engine load times. - Full Python programmatic Command API (
CatalogService). - Interactive Local Browser Web GUI with vertical category explorer, draggable resizer, quick circular action buttons, Discover Schema modal, inline column description editing, and a 3-way theme switcher (Light / Dark / Auto System).
- Typer CLI (
det catalog ...anddet-gui).
Architectural Vision & Module Roadmap
det is built from the ground up by det Labs to be modular, extensible, and Python-native:
┌─────────────────────────────────────────────────────────────┐
│ User Interfaces │
│ CLI (`det`) │ Web GUI (`det-gui`) │ API │
└──────────────┬──────────────────┬──────────────────┬────────┘
│ │ │
┌──────────────▼──────────────────▼──────────────────▼────────┐
│ det Core Modules (det Labs) │
│ │
│ [ Released v0.1 ] │
│ ├── det.catalog Metadata, schemas, YAML store & GUI │
│ │
│ [ Planned Roadmap ] │
│ ├── det.engine Execution abstraction (DuckDB, Polars) │
│ ├── det.pipeline DAG orchestration & SQL/Python models │
│ ├── det.quality Schema contracts, profiling & tests │
│ ├── det.lineage Table & column-level dependency graphs │
│ └── det.connectors Ingestion & sync (Iceberg, Delta, S3) │
└─────────────────────────────────────────────────────────────┘
Module Roadmap
| Module | Purpose | Status |
|---|---|---|
det.catalog |
Dataset discovery, typed schema inference, categories/namespaces, and visual catalog manager | Released in v0.1.0 |
det.engine |
Unified query execution interface abstracting Polars, DuckDB, and Arrow in-memory compute | Planned (v0.2) |
det.pipeline |
Pipeline DAG execution, dbt-style transforms in SQL & Python, incremental materialization | Planned (v0.3) |
det.quality |
Data validation checks, statistical profiling, anomaly detection, and schema contracts | Planned (v0.4) |
det.lineage |
Column-level and dataset-level upstream/downstream lineage graphs | Planned (v0.5) |
det.connectors |
Multi-source extractors and destination sinks (S3, GCS, PostgreSQL, Snowflake, Iceberg, Delta) | Planned (v0.6) |
Quickstart
Prerequisites
- Python:
>= 3.15(Stable released October 9, 2026)
Installation
From PyPI:
pip install det-core
Or from source:
# Clone the repository
git clone https://github.com/saurabhr2/det.git
cd det
# Create virtual environment with Python 3.15
py -3.15 -m venv .venv
.venv\Scripts\activate # On Windows
# source .venv/bin/activate # On Linux/macOS
# Install in editable mode with development tools
pip install -e ".[dev]"
# Verify test suite
pytest
1. Launch the Catalog Web GUI
Experience the interactive visual catalog manager directly in your local browser:
det-gui
Navigate to http://127.0.0.1:8501:
- Group datasets into categories / namespaces.
- Point to local files or folders and click Discover Schema to auto-infer columns and types.
- Drag the sidebar border to resize the explorer bar manually (double-click to reset).
- Switch themes between Light, Dark, or Auto (System Default).
- Edit column descriptions inline by clicking on them.
- Switch between different YAML catalog files or create brand new catalogs.
2. Using the CLI
# View system & version info
det version
det info
# Scan a dataset to inspect its inferred schema without registering
det catalog scan sample_data/orders.parquet
# List all registered tables in active catalog
det catalog list
# Set a catalog file as the persistent default
det catalog set-default catalogs/main.yaml
3. Programmatic Python API
from det.catalog import CatalogService, DatasetMetadata
# Connect to catalog
service = CatalogService("catalogs/main.yaml")
# Discover schema from a Parquet or CSV file
scan = service.scan_path("data/customers.parquet")
# Register into catalog
service.register_dataset(DatasetMetadata(
id="crm.customers",
name="customers",
namespace="crm",
format="parquet",
location="data/customers.parquet",
description="Customer master records",
columns=scan.columns,
row_count=scan.row_count,
))
# Retrieve and inspect
dataset = service.get_dataset("crm.customers")
print(f"Table {dataset.name} has {len(dataset.columns)} columns and {dataset.row_count} rows.")
Testing & Quality
All code adheres to strict standards:
- PEP 257 docstrings on all public functions, classes, and methods.
- Explicit type annotations.
- Python 3.15
lazy importintegration. - Fast, automated pytest test suite:
pytest -v
ruff check .
License
Distributed under the Apache License 2.0. Copyright (c) 2026 det Labs. See LICENSE for details.
Metadata
Release files for det-core 0.1.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| det_core-0.1.0a1.tar.gz | 46.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| det_core-0.1.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 87.7 kB
Release files / det_core-0.1.0a1.tar.gz
| Download URL | det_core-0.1.0a1.tar.gz |
|---|---|
| Size | 46.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d16791ddca701628c7c75b5a8cd1647c81cf20c52fe8d7aba2c8ab5bf90f5ba0
|
|
BLAKE2b-256 checksum How to use checksums |
1b305963a6b86328cd243ee676812c188dc49b1ebd92b94e70819be46461825c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.15.0
|
Release files / det_core-0.1.0a1-py3-none-any.whl
| Download URL | det_core-0.1.0a1-py3-none-any.whl |
|---|---|
| Size | 41.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
50e385e0291cf51255933043cf915fb17027a49f205d0ba3c7dcebea5ca21e02
|
|
BLAKE2b-256 checksum How to use checksums |
b478ffc9dbf4084c18e157808b4321b27a708221f7caea80dc073426331a5742
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.15.0
|