Skip to content

Tier 2 carryover: collapse 6 more re-export dirs (parallel/path/db/audio/notification/container) #269

Description

@ywatanabe1989

Context

Releases 2.28.5–2.28.9 collapsed 17 directories from src/scitex/:

  • 4 deprecated alias dirs (ml, reproduce, rng, verify) — v2.28.5
  • dt/ alias to datetime — v2.28.6
  • 7 pure re-export dirs (etc, gists, audit, compat, repro, app, scholar) — v2.28.7
  • pin tightening — v2.28.8
  • 5 more re-export dirs (dict, notebook, str, logging, browser) — v2.28.9

Net: −7,939 lines of redundancy. Mechanism: _LazyModule(external="scitex_<short>") + eager sys.modules registration so both scitex.repro.X and from scitex.repro import X work.

Carryover

These dirs are pure delegations to scitex_<pkg> but have test mirrors or local files that need separate handling before the same collapse pattern can apply:

Dir src files test mirror workflow Action needed
parallel/ 0 tests/scitex/parallel/ (2 files) none migrate or delete tests, then collapse
path/ 0 tests/scitex/path/ (2 files) none migrate or delete tests, then collapse
db/ 0 tests/scitex/db/ (1 file) none migrate or delete tests, then collapse
audio/ 0 tests/scitex/audio/ (11 files) test-audio.yml biggest cleanup — tests likely belong in scitex-audio
notification/ 2 (_backends.py, _backends/, _mcp/, mcp_server.py) none NOT pure delegation despite docstring; needs investigation
container/ 5 none NOT pure delegation; needs investigation

Tier 3 deferred — DO NOT collapse without rework

  • schema/ — incomplete migration to io.bundle. Local _canvas.py, _encoding.py, _figure_elements.py, _plot.py are still source-of-truth. Finish the io.bundle migration first.
  • module/ — has legitimate fallback for users without [cloud] extra. Public API contract change.

Tier 3 with real local logic (keep as directories — these do umbrella-only integration)

linalg/, tex/, os/, git/, events/, context/, resource/, plt/, gen/, dsp/, nn/, msword/, ai/, cli/, _dev/, bridge/, social/, diagram/, tunnel/, decorators/, config/, cv/, capture/, pd/, ui/, session/, introspect/.

Acceptance criteria

For each carryover dir:

  • Verify __init__.py is still pure delegation (from scitex_<pkg> import (...))
  • Decide test fate: migrate to leaf package, or delete if covered there
  • Add to _EXTERNAL_REEXPORTS in src/scitex/__init__.py
  • Switch binding to _LazyModule(..., external="scitex_<pkg>")
  • Delete src/scitex/<short>/
  • Delete tests/scitex/<short>/
  • Delete corresponding .github/workflows/test-<short>.yml if any
  • Tighten pyproject.toml pin to current PyPI version (umbrella eagerly imports — old leaf will break umbrella import)

Metadata

Metadata

Assignees

No one assigned

    Labels

    refactorCode improvement without behavior change

    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