Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 43 additions & 36 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ dependencies = [
# App SDK — unified file storage for local + cloud
"scitex-app==0.2.8",
# Delegated core modules (thin re-exports)
"scitex-dev==0.15.0",
"scitex-dev>=0.16.0",
"scitex-io==0.2.19",
"scitex-stats==0.2.23",
"scitex-audio==0.2.13",
Expand All @@ -82,7 +82,7 @@ dependencies = [
"scitex-path==0.1.7",
"scitex-repro==0.1.6",
"scitex-compat==0.1.8",
"scitex-etc==0.1.10",
"scitex-etc>=0.2.0", # media shipped here (>=0.2.0); scitex.media re-exports scitex_etc.media
"scitex-genai==0.1.0",
"scitex-gists==0.1.7",
"scitex-audit==0.1.7",
Expand Down Expand Up @@ -128,13 +128,10 @@ scitex = "scitex"
[project.entry-points."scitex_dev.skills"]
scitex = "scitex"

[project.entry-points."scitex_dev.linter.plugins"]
scitex = "scitex._linter_plugin:get_plugin"

# Legacy entry-point group (dual-register during scitex-linter
# deprecation window — will be dropped after the final shim release).
[project.entry-points."scitex_linter.plugins"]
scitex = "scitex._linter_plugin:get_plugin"
# NOTE: the umbrella no longer ships linter rules. STX-I/STX-S rules now live
# in scitex-dev (>=0.16.0, `scitex_dev.linter._rules`); the in-tree
# `_linter_plugin.py` + its `scitex_dev.linter.plugins` / `scitex_linter.plugins`
# entry points were dropped (Phase B).

# ============================================
# Optional Dependencies - Module-Oriented
Expand Down Expand Up @@ -225,11 +222,20 @@ cli = [
"GitPython",
]

# Cloud Module - Cloud service integration
# Use: pip install scitex[cloud]
# Cloud Module - Cloud service integration (OPTIONAL peer: scitex-hub)
# Use: pip install scitex[cloud] (alias of scitex[hub])
# Kept OUT of [all] so CI's matrix skips cloud/module/project when scitex-hub
# (not yet released) is absent. scitex.cloud/.module/.project degrade with a
# friendly install hint when scitex-hub is missing.
cloud = [
"matplotlib",
"scitex-cloud==0.17.0",
"scitex-hub>=0.19.0",
]

# Hub Module - scitex-hub (formerly scitex-cloud) optional peer.
# Powers scitex.cloud / scitex.module / scitex.project.
hub = [
"scitex-hub>=0.19.0",
]

# Compat Module - Compatibility utilities
Expand Down Expand Up @@ -352,7 +358,7 @@ gen = [
# Use: pip install scitex[etc]
etc = [
"readchar",
"scitex-etc==0.1.10",
"scitex-etc>=0.2.0",
]

# Events Module - Event system
Expand Down Expand Up @@ -434,8 +440,8 @@ logging = [
"scitex-logging==0.1.7",
]

# Media Module - Media display utilities
# Use: pip install scitex[media]
# Media Module - Media display utilities (always available: scitex-etc is a
# core dep). scitex.media re-exports scitex_etc.media (shipped in >=0.2.0).
media = []

# ML Module - Machine learning
Expand All @@ -444,9 +450,11 @@ ml = [
"scitex-ml==0.2.0",
]

# Module Module - Module management
# Module Module - Module management (OPTIONAL peer: scitex-hub.module)
# Use: pip install scitex[module]
module = []
module = [
"scitex-hub>=0.19.0",
]

# MSWord Module - MS Word document handling
# Use: pip install scitex[msword]
Expand Down Expand Up @@ -529,9 +537,11 @@ plt = [
"figrecipe==0.28.13",
]

# Project Module - Project management
# Project Module - Project management (OPTIONAL peer: scitex-hub.project)
# Use: pip install scitex[project]
project = []
project = [
"scitex-hub>=0.19.0",
]

# Repro Module - Reproducibility tools
# Use: pip install scitex[repro]
Expand Down Expand Up @@ -712,15 +722,10 @@ types = [
# Use: pip install scitex[ui]
ui = ["scitex-ui==0.5.1"]

# Utils Module - General utilities
# Use: pip install scitex[utils]
utils = [
"h5py",
"natsort",
"matplotlib",
"xarray",
"tqdm",
]
# Utils Module - REMOVED (Phase B). The in-tree scitex.utils grab-bag was
# deleted; its public helpers live in their SoC owners (compress_hdf5 →
# scitex-io, count_grids/yield_grids/search → scitex-etc, notify →
# scitex-notification), all already core deps. Import from the owning package.

# Verify Module - Verification utilities
# Use: pip install scitex[verify]
Expand Down Expand Up @@ -914,11 +919,14 @@ dev = [
"scitex-audit==0.1.7",
"scitex-browser==0.1.15",
"scitex-clew==0.2.14",
"scitex-cloud==0.17.0",
# NOTE: scitex-hub (optional peer powering cloud/module/project; formerly
# scitex-cloud) is intentionally NOT in [dev] — it is unreleased, so listing
# it here would break CI's `.[all,dev]` resolve. Install explicitly via
# `pip install scitex[cloud]` when scitex-hub is available.
"scitex-container==0.2.1",
"scitex-dataset==0.3.10",
"scitex-dev==0.15.0",
"scitex-etc==0.1.10",
"scitex-dev>=0.16.0",
"scitex-etc>=0.2.0",
"scitex-genai==0.1.0",
"scitex-io==0.2.19",
"scitex-notification==0.2.8",
Expand Down Expand Up @@ -984,7 +992,9 @@ all = [
"scitex[capture]",
"scitex[clew]",
"scitex[cli]",
"scitex[cloud]",
# NOTE: scitex[cloud] / scitex[module] / scitex[project] (scitex-hub) are
# OPTIONAL peers deliberately kept OUT of [all] so CI's matrix runs without
# the unreleased scitex-hub. Install explicitly: pip install scitex[cloud].
"scitex[compat]",
"scitex[config]",
"scitex[container]",
Expand All @@ -1011,7 +1021,6 @@ all = [
"scitex[logging]",
"scitex[media]",
"scitex[ml]",
"scitex[module]",
"scitex[msword]",
"scitex[nn]",
"scitex[notebook]",
Expand All @@ -1021,7 +1030,6 @@ all = [
"scitex[path]",
"scitex[pd]",
"scitex[plt]",
"scitex[project]",
"scitex[repro]",
"scitex[reproduce]",
"scitex[resource]",
Expand All @@ -1041,7 +1049,6 @@ all = [
"scitex[tunnel]",
"scitex[types]",
"scitex[ui]",
"scitex[utils]",
"scitex[verify]",
"scitex[web]",
"scitex[writer]",
Expand All @@ -1054,7 +1061,7 @@ all = [
# ============================================
# Tool Configurations
# ============================================
linter = ["scitex-dev==0.15.0"]
linter = ["scitex-dev>=0.16.0"]
orochi = ["scitex-orochi==0.16.3"]
agent-container = ["scitex-agent-container==0.21.3"]

Expand Down
31 changes: 20 additions & 11 deletions src/scitex/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@
datetime = _LazyModule("datetime", external="scitex_datetime")
dt = datetime # Shorter alias — same lazy-loaded module instance.
types = _LazyModule("types", external="scitex_types")
utils = _LazyModule("utils")
etc = _LazyModule("etc", external="scitex_etc")
context = _LazyModule("context", external="scitex_context")
dev = _LazyModule("dev")
Expand All @@ -114,11 +113,19 @@
logging = _LazyModule("logging", external="scitex_logging")
session = _CallableModuleWrapper("session", main_decorator_name="session")
session._setup_persistence("scitex", "session")
module = _CallableModuleWrapper("module", main_decorator_name="module")
# `module` is an OPTIONAL peer: it proxies the `module` callable from
# scitex_hub.module (scitex-hub is NOT a hard dep). Callability
# (`@scitex.module(...)`) is preserved; a missing scitex-hub raises a friendly
# ImportError on first use rather than at `import scitex`.
module = _CallableModuleWrapper(
"module", main_decorator_name="module", external="scitex_hub.module"
)
module._setup_persistence("scitex", "module")
capture = _LazyModule("capture", external="scitex_capture")
template = _LazyModule("template", external="scitex_template")
cloud = _LazyModule("cloud")
# `cloud`/`project` are OPTIONAL peers proxying scitex-hub (NOT a hard dep).
# When scitex-hub is absent, attribute access raises a friendly install hint.
cloud = _LazyModule("cloud", external="scitex_hub")
tunnel = _LazyModule("tunnel", external="scitex_ssh") # tunnel merged into scitex-ssh
config = _LazyModule("config", external="scitex_config")
audio = _LazyModule("audio", external="scitex_audio")
Expand Down Expand Up @@ -151,13 +158,16 @@
compat = _LazyModule("compat", external="scitex_compat") # Compatibility utilities
audit = _LazyModule("audit", external="scitex_audit") # Security auditing
events = _LazyModule("events", external="scitex_events") # Event system
media = _LazyModule("media") # Media utilities
media = _LazyModule(
"media", external="scitex_etc.media"
) # in-tree dir removed; shipped in scitex-etc (>=0.2.0)
# `project` is an OPTIONAL peer proxying scitex_hub.project (scitex-hub is NOT a
# hard dep). A missing scitex-hub raises a friendly install hint on first access.
project = _LazyModule("project", external="scitex_hub.project")
cli = _LazyModule("cli") # Command-line interface
linter = _LazyModule(
"linter"
) # AST-based linter; in-tree linter.py shim delegates to scitex_dev.linter
# (the `scitex_linter` distribution is an archived re-export shim). The
# more-consistent scitex.dev.linter resolves to the same engine via dev→scitex_dev.
# scitex.linter — the umbrella ships no linter module; the AST linter engine
# lives in scitex-dev (>=0.16.0). Use `scitex.dev.linter` (resolves to
# scitex_dev.linter via the dev→scitex_dev alias) or the `scitex-dev linter` CLI.
clew = _LazyModule(
"clew", external="scitex_clew"
) # Hash-based verification (in-tree dir removed; pure re-export of scitex_clew)
Expand Down Expand Up @@ -265,12 +275,12 @@ def __getattr__(name):
"datetime",
"dt",
"types",
"utils",
"etc",
"context",
"dev",
"gists",
"cloud",
"project",
"tunnel",
"config",
"audio",
Expand Down Expand Up @@ -298,7 +308,6 @@ def __getattr__(name):
"notification",
"clew",
"notebook",
"linter",
"PATHS",
"__version__",
]
Expand Down
Loading
Loading