github Laboratoire-de-Chemoinformatique/SynPlanner v1.4.3

14 hours ago

Changed

Parallelization

  • Removed Ray dependency entirely — all parallel pipelines now use
    ProcessPoolExecutor via the new process_pool_map_stream utility
  • process_pool_map_stream enhanced with ordered mode (submission-order
    yield), per-future timeout, initializer/initargs for non-picklable
    worker state, max_tasks_per_child (Python 3.11+), and on_timeout callback
  • New graceful_shutdown() context manager for SIGTERM/SIGINT handling with
    automatic signal handler restoration

Data Pipeline

  • Standardization, filtering, rule extraction, and ML preprocessing pipelines
    migrated from Ray to process_pool_map_stream with initializer pattern
  • Writer-side CGR dedup: hash(~rxn) (condensed graph of reaction hash) for
    mechanism-level reaction deduplication — 8 bytes per entry in memory
  • New shared result types: ProcessResult, ErrorEntry, FilteredEntry,
    PipelineSummary in synplan.chem.data.reaction_result

Compatibility

  • Removed from __future__ import annotations from all modules (Dagster
    compatibility)
  • Forward references quoted for self-referencing return types

Removed

  • ray dependency removed from pyproject.toml
  • init_ray_logging() removed from synplan.utils.logging
  • DedupActor Ray actor removed

Added

  • 10 unit tests for process_pool_map_stream and graceful_shutdown
    (tests/unit/utils/test_parallel.py)
  • 8 unit tests for ProcessResult, PipelineSummary, and CGR dedup
    (tests/unit/chem/data/test_pipeline.py)

Don't miss a new SynPlanner release

NewReleases is sending notifications on new releases.