Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

py7dt

py7dt is the unified public API for the 7-Dimensional Telescope software stack. It currently acts as a thin facade over the existing implementation packages:

Public API Implementation package
py7dt.pipeline pipeline
py7dt.phot7ds phot7ds

The facade lets new applications use a stable py7dt-qualified API without renaming the imports used by the production pipeline.

Intended use

from py7dt.pipeline import DataReduction, run_scidata_reduction
from py7dt.phot7ds import PhotometryConfig, run_photometry

The facade exports the original function and class objects. It does not load a second copy of the implementation under another module name.

Internal dependency rule

Code inside the existing pipeline implementation should import the sibling implementation by its bare name:

from phot7ds import PhotometryConfig, run_photometry

It should not import py7dt.phot7ds. The py7dt project is the public facade and depends on both implementations; making pipeline depend back on that facade would reverse the dependency direction.

The recommended home for the pipeline-specific adapter is a future module at pipeline/integrations/phot7ds.py. That adapter should translate pipeline configuration and scheduler inputs into the public phot7ds API, and translate results or failures back into scheduler state. This is separate from pipeline/external.py, whose responsibility is wrapping programs external to the py7dt software family.

No pipeline/integrations package is created by this scaffold because the production repositories are intentionally unchanged.

Development checkout

During the scaffold phase, install pipeline and phot7ds in the environment first, then install this directory in editable mode. The final py7dt release will declare both component distributions as dependencies.

Compatibility boundary

Supported facade imports are curated at the package boundary, for example from py7dt.pipeline import DataReduction. Arbitrary aliases of implementation internals such as py7dt.pipeline.services.scheduler are intentionally not created; doing that can load the same source module under two names and duplicate module-level state.

About

py7dt is the unified public API for the 7-Dimensional Telescope software stack.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages