Skip to content
Open
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
6 changes: 2 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -635,10 +635,8 @@ security = []

# Session Module - Session management
# Use: pip install scitex[session]
session = [
"matplotlib",
"PyYAML",
]
# Real implementation lives in the standalone scitex-session package.
session = ["scitex-session>=0.1.0"]

# Sh Module - Shell utilities
# Use: pip install scitex[sh]
Expand Down
252 changes: 0 additions & 252 deletions src/scitex/session/README.md

This file was deleted.

83 changes: 14 additions & 69 deletions src/scitex/session/__init__.py
Original file line number Diff line number Diff line change
@@ -1,75 +1,20 @@
#!/usr/bin/env python3
# Timestamp: "2025-08-21 20:36:45 (ywatanabe)"
# File: /home/ywatanabe/proj/SciTeX-Code/src/scitex/session/__init__.py
# ----------------------------------------
from __future__ import annotations
"""SciTeX session — thin compatibility shim for scitex-session.

import os
Aliases ``scitex.session`` to the standalone ``scitex_session`` package via
``sys.modules``. ``scitex.session is scitex_session``.

__FILE__ = __file__
__DIR__ = os.path.dirname(__FILE__)
# ----------------------------------------

"""Experiment session management for SciTeX.

This module provides session lifecycle management functionality that was previously
in scitex.session.start and scitex.session.close, now as a dedicated session management system.

Usage:
# Session management (replaces scitex.session.start/close)
import sys
import matplotlib.pyplot as plt
from scitex import session

# Start a session
CONFIG, sys.stdout, sys.stderr, plt, COLORS, rng = session.start(sys, plt)

# Your experiment code here

# Close the session
session.close(CONFIG)

# Session manager for advanced use cases
manager = session.SessionManager()
active_sessions = manager.get_active_sessions()

# Using INJECTED sentinel for decorator parameters
@stx.session
def main(CONFIG=stx.session.INJECTED, plt=stx.session.INJECTED):
...
Install: ``pip install scitex[session]`` (or ``pip install scitex-session``).
See: https://github.com/ywatanabe1989/scitex-session
"""

import sys as _sys

# Sentinel object for decorator-injected parameters
class _InjectedSentinel:
"""Sentinel value indicating a parameter will be injected by a decorator."""

def __repr__(self):
return "<INJECTED>"


INJECTED = _InjectedSentinel()


# Import session management functionality
# Use refactored _lifecycle subpackage (verification hooks included)
from ._decorator import run, session
from ._lifecycle import close, running2finished, start
from ._manager import SessionManager

# Export public API
__all__ = [
# Sentinel for injected parameters
"INJECTED",
# Session lifecycle (main functions)
"start",
"close",
"running2finished",
# Session decorator (new simplified API)
"session",
"run",
# Advanced session management
"SessionManager",
]
try:
import scitex_session as _real
except ImportError as _e: # pragma: no cover
raise ImportError(
"scitex.session requires the 'scitex-session' package. "
"Install with: pip install scitex[session] (or: pip install scitex-session)"
) from _e

# EOF
_sys.modules[__name__] = _real
Loading
Loading