Skip to content

[FEATURE]: lakeflow-framework Python package with contrib extras and absolute imports #75

Description

@rederik76

Is there an existing issue for this?

  • I have searched the existing issues

Problem statement

The framework has no formal namespace, no mechanism for shipping optional community-supported integrations, and no publishable distribution format. Specifically:

  1. No proper namespace — source files use bare module imports (from constants import ..., import utility) that have no scope, no discoverability, and break static analysis. There is no lakeflow_framework import prefix that identifies the framework as a distinct, versioned library.
  2. No contrib story — there is no formal location or support policy for optional, community-maintained integrations. These currently have no home and no dependency boundary from the core.
  3. No standard distribution — customers who want to install the framework from PyPI, Artifactory, or UC Volumes as a wheel cannot do so. Flat directory deployment is the only supported model, which limits adoption and integration patterns.

Proposed Solution

Proper namespace and absolute imports (primary)

  • Create src/lakeflow_framework/ as the canonical package namespace.
  • Convert source files from bare module imports to absolute imports (from lakeflow_framework.constants import FrameworkPaths). This is the definitive change — it gives the framework a real identity as an importable library.
  • Compat shims at the old bare import paths kept until v1.0.0 so existing flat-deploy customers are not broken during the transition window.

contrib/ subdirectory (primary)

  • Add src/lakeflow_framework/contrib/ with a README documenting the support policy (experimental, community-maintained, semver rules).
  • CI: contrib tests run in a separate optional job gated behind the [contrib] extra.

Python packaging (additional win)

  • Add pyproject.toml with [project.optional-dependencies]: contrib and all extras.
  • Enables pip install lakeflow-framework from PyPI, Artifactory, UC Volumes, or editable install (pip install -e ".[contrib]") for contributors.

Additional Context

No response

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions