Skip to main content

Shared type definitions for the KRL Analytics Platform

Project description

KRL Types

Version: 0.1.0
License: MIT
Python: ≥3.9
Status: ⚠️ CRITICAL DEPENDENCY RISK


⚠️ CRITICAL: NOT PUBLISHED TO PyPI

This package is NOT published to PyPI but is declared as a dependency by other packages.

If krl-data-connectors or krl-premium-backend declare krl-types as a dependency in their pyproject.toml, then:

pip install krl-data-connectors  # WILL FAIL

Impact

Package Declares krl-types? Installation Impact
krl-data-connectors ⚠️ Yes Installation will fail
krl-premium-backend ⚠️ Possibly Installation may fail

Resolution Required

  1. Option A: Publish krl-types to PyPI immediately
  2. Option B: Remove krl-types dependency from other packages and inline the types
  3. Option C: Use a private PyPI index

SECTION A — Executive & Strategic Overview

What This Repository Does

KRL Types provides shared type definitions used across the KRL suite:

  1. Billing EnumsLicenseTier, BillingCycle, UsageType
  2. Connector EnumsConnectorTier, DataSourceType
  3. Model EnumsModelCategory, ModelTier
  4. Pydantic Models — Shared request/response schemas

Why This Matters

Type consistency across packages:

  • Ensures frontend and backend use same tier names
  • Prevents "Community" vs "COMMUNITY" vs "community" bugs
  • Enables IDE autocomplete across all packages

Current State: BROKEN DEPENDENCY

Criterion Status
Types defined ✅ Yes
Package structure ✅ Yes
Published to PyPI NO
Git repository NO (no .git folder)
Version pinned 0.1.0

SECTION B — Contents

Billing Types

from krl_types.billing import LicenseTier, BillingCycle

class LicenseTier(str, Enum):
    COMMUNITY = "community"
    PROFESSIONAL = "professional"
    ENTERPRISE = "enterprise"

class BillingCycle(str, Enum):
    MONTHLY = "monthly"
    ANNUAL = "annual"

Connector Types

from krl_types.connectors import ConnectorTier

class ConnectorTier(str, Enum):
    COMMUNITY = "community"
    PROFESSIONAL = "professional"
    ENTERPRISE = "enterprise"

SECTION C — Engineering Notes

Package Structure

krl-types/
├── src/
│   └── krl_types/
│       ├── __init__.py
│       ├── billing.py      # Billing enums
│       ├── connectors.py   # Connector enums
│       └── models.py       # Model enums
│
├── tests/                  # Minimal tests
├── pyproject.toml          # Package definition
└── README.md               # This file

Local Installation

Since this is not on PyPI, install locally:

# From the krl-types directory
pip install -e .

# Or from another package directory
pip install -e ../krl-types

pyproject.toml Fix

Until krl-types is on PyPI, other packages should use:

[project]
dependencies = [
    # krl-types @ git+https://github.com/KR-Labs/krl-types.git  # When git repo exists
    # OR remove dependency and inline types
]

SECTION D — Action Required

Immediate Priority: HIGH

  1. Create git repository for krl-types
  2. Publish to PyPI (or private index)
  3. Update dependent packages to use published version

Owner

Risk If Not Addressed

  • pip install krl-data-connectors fails
  • pip install krl-premium-backend may fail
  • Customer onboarding blocked
  • CI/CD pipelines fail

Last updated: December 14, 2025 — Forensic audit identified CRITICAL deployment blocker

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

krl_types-0.2.1.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

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

krl_types-0.2.1-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

Details for the file krl_types-0.2.1.tar.gz.

File metadata

  • Download URL: krl_types-0.2.1.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for krl_types-0.2.1.tar.gz
Algorithm Hash digest
SHA256 7bf35edebe62399f4c2cf4f6b6242c4058ab4f0770b2dc3862d3b4f831d54e2c
MD5 b6021dae8ff6a3df0c36b52b8f1bad7a
BLAKE2b-256 c68824ad1c5442e756b9db4794ada3d7cbafbe25b99d6a4ebd0ed9a799ea3748

See more details on using hashes here.

File details

Details for the file krl_types-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: krl_types-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 30.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for krl_types-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3e93f5e4781185a625953cdaeef7aca1207b9dd0d80cbef9a5f678ef578b9251
MD5 f1a03da8dc3d5ffc1b668865079d563a
BLAKE2b-256 4cf4a8191bdbcca3fc0fa5039c7ca46d504ef714b36d10d34c02246c130ef6f6

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