pyobs-core 2.7.0__tar.gz → 2.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/PKG-INFO +1 -1
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/config_schema.py +40 -3
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyproject.toml +1 -1
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/.gitignore +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/LICENSE +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/application.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/background_task.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/cli/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/cli/_cli.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/cli/pyobs.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/cli/pyobsd.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/cli/pyobsw.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/comm.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/commlogging.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/dummy/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/dummy/dummycomm.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/local/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/local/localcomm.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/local/localnetwork.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/proxy.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/rpc.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/serializer.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/xep_0009/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/xep_0009/binding.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/xep_0009/rpc.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/xep_0009_timeout/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/xep_0009_timeout/rpc.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/xep_0009_timeout/stanza/RPC.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/xep_0009_timeout/stanza/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/xmppclient.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/comm/xmpp/xmppcomm.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/badweather.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/event.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/exposurestatuschanged.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/filterchanged.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/focusfound.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/goodweather.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/log.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/modechanged.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/moduleclosed.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/moduleopened.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/motionstatuschanged.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/move.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/newimage.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/newspectrum.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/offsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/roofclosing.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/roofopened.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/taskfailed.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/taskfinished.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/taskstarted.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/events/testevent.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/image.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/meta/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/meta/altazoffsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/meta/exptime.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/meta/genericoffset.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/meta/onskydistance.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/meta/pixeloffsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/meta/radecoffsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/meta/skyoffsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processor.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/_daobackgroundremover.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/annotation/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/annotation/_pillow.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/annotation/circle.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/annotation/crosshair.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/annotation/text.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/astrometry/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/astrometry/_dotnet_request.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/astrometry/_dotnet_request_builder.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/astrometry/_dotnet_request_logger.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/astrometry/_dotnet_response_saver.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/astrometry/astrometry.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/astrometry/dotnet.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/calibration/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/calibration/_calibration_cache.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/calibration/_ccddata_calibrator.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/calibration/calibration.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/detection/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/detection/_pysep_stats_calculator.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/detection/_source_catalog.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/detection/daophot.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/detection/pysep.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/detection/simpledisk.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/detection/sourcedetection.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/exptime/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/exptime/exptime.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/exptime/star.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/image/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/image/addfitsheaders.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/image/download.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/image/flip.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/image/grayscale.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/image/httpserver.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/image/normalize.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/image/save.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/image/saveimage.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/image/smooth.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/image/softbin.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/misc/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/misc/addmask.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/misc/catalogcircularmask.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/misc/circularmask.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/misc/createfilename.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/misc/imagesourcefilter.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/misc/removebackground.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/modules/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/modules/getfitsheaders.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/astrometry.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/brighteststar.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/brighteststar_guiding.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/dummyoffsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/dummyskyoffsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/fitsheader.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/offsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/pixeloffsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/projected.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/spilled_light.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/photometry/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/photometry/_photometry_calculator.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/photometry/_photutil_aperture_photometry.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/photometry/_sep_aperture_photometry.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/photometry/aperture_photometry.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/photometry/photometry.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/photometry/photutil.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/photometry/pysep.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/wcs/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/wcs/solarhelioprojective.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IAbortable.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IAcquisition.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IAutoFocus.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IAutoGuiding.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IAutonomous.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IBinning.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/ICalibrate.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/ICamera.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IConfig.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/ICooling.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IData.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IDataSequence.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IDome.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IExposure.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IExposureTime.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IFilters.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IFitsHeaderAfter.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IFitsHeaderBefore.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IFlatField.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IFocusModel.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IFocuser.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IGain.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IImageFormat.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IImageType.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IMode.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IModule.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IMotion.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IMultiFiber.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IOffsetsAltAz.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IOffsetsRaDec.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IPointingAltAz.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IPointingBody.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IPointingHeliocentricPolar.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IPointingHeliographicStonyhurst.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IPointingHelioprojective.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IPointingOrbitalElements.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IPointingRaDec.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IPointingSeries.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IReady.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IRobotic.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IRoboticScheduler.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IRoof.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IRotation.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IRunnable.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IRunning.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IScriptRunner.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/ISpectrograph.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IStartStop.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IStructuredConfig.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/ISyncTarget.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/ITelescope.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/ITemperatures.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/ITrackingMode.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/ITrackingRate.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IVideo.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IWeather.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/IWindow.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/interfaces/interface.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/mixins/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/mixins/camerasettings.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/mixins/fitsheader.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/mixins/fitsnamespace.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/mixins/follow.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/mixins/motionstatus.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/mixins/pipeline.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/mixins/waitformotion.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/mixins/weatheraware.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/camera/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/camera/adaptive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/camera/basecamera.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/camera/basespectrograph.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/camera/basevideo.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/camera/dummycamera.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/camera/dummyspectrograph.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/camera/dummyvideo.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/camera/pipelinecamera.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/flatfield/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/flatfield/flatfield.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/flatfield/pointing.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/flatfield/scheduler.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/focus/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/focus/dummyautofocus.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/focus/focusmodel.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/focus/focusseries.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/image/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/image/imagewatcher.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/image/imagewriter.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/image/pipeline.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/image/seeing.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/module.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/_base.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/_baseguiding.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/acquisition.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/autoguiding.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/dummyacquisition.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/dummyguiding.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/guidingstatistics/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/guidingstatistics/guidingstatistics.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/guidingstatistics/pixeloffset.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/guidingstatistics/skyoffsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/guidingstatistics/uptime.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/pointing/scienceframeguiding.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/robotic/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/robotic/dummymastermind.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/robotic/dummyscheduler.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/robotic/mastermind.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/robotic/pointing.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/robotic/scheduler.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/robotic/scriptrunner.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/roof/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/roof/basedome.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/roof/baseroof.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/roof/dummyroof.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/telescope/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/telescope/_dummytelescopebase.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/telescope/basetelescope.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/telescope/dummyaltaztelescope.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/telescope/dummyradectelescope.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/telescope/dummysolartelescope.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/test/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/test/standalone.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/utils/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/utils/dummymode.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/utils/dummystructuredconfig.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/utils/fluentlogger.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/utils/httpfilecache.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/utils/kiosk.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/utils/matrix.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/utils/stellarium.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/utils/telegram.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/utils/trigger.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/weather/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/weather/mockweather.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/weather/weather.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/weather/weather_api.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/modules/weather/weather_state.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/object.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/py.typed +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/instruments.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/observation.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/_executor.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/astroplanscheduler.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/constraints/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/constraints/airmassconstraint.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/constraints/constraint.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/constraints/moonilluminationconstraint.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/constraints/moonseparationconstraint.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/constraints/solarelevationconstraint.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/constraints/timeconstraint.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/dataprovider.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/merits/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/merits/aftertime.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/merits/beforetime.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/merits/constant.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/merits/follow.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/merits/interval.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/merits/merit.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/merits/pernight.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/merits/random.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/merits/timewindow.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/merits/transit.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/observationarchiveevolution.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/ondemandscheduler.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/targets/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/targets/dynamictarget.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/targets/heliocentricpolartarget.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/targets/helioprojectivetarget.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/targets/picker/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/targets/picker/csvpicker.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/targets/picker/picker.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/targets/siderealtarget.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/targets/target.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scheduler/taskscheduler.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/calibration/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/calibration/darkbias.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/calibration/pointing.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/calibration/skyflats.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/control/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/control/cases.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/control/conditional.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/control/parallel.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/control/selector.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/control/sequential.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/exceptions.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/imaging/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/imaging/autofocus.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/imaging/imaging.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/imaging/transitimaging.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/script.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/utils/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/utils/callmodule.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/utils/debugtrigger.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/scripts/utils/log.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/filesystem/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/filesystem/observationarchive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/filesystem/taskarchive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/_portal.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/_schedulereader.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/_schedulewriter.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/configdb.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/mockobservationarchive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/observationarchive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/scripts/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/scripts/autofocus.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/scripts/default.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/scripts/script.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/task.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/taskarchive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/lco/taskrunner.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/memory/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/memory/observationarchive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/memory/taskarchive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/observationarchive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/portal/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/portal/observationarchive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/portal/taskarchive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/storage/taskarchive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/task.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/taskrunner.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/archive/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/archive/archive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/archive/local_archive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/archive/pyobs_archive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/calibration.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/exptime/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/exptime/exptime.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/exptime/stellarexptime.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/skyflats/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/skyflats/exptimeeval.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/skyflats/flatfielder.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/skyflats/pointing/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/skyflats/pointing/base.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/skyflats/pointing/static.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/skyflats/priorities/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/skyflats/priorities/archive.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/skyflats/priorities/base.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/skyflats/priorities/const.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/robotic/utils/skyflats/scheduler.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/average.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/cache.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/config.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/coordinates.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/curvefit.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/enums.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/exceptions.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/exptime_grouping.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/fits.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/focusseries/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/focusseries/base.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/focusseries/photometry.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/focusseries/projection.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/grids/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/grids/filters.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/grids/grid.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/grids/gridnode.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/grids/pipeline.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/gui/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/gui/camera/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/gui/camera/binningwidget.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/gui/camera/datadisplaywidget.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/gui/camera/exposewidget.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/gui/camera/exposuretimewidget.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/gui/camera/imageformatwidget.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/gui/camera/listpickerdialog.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/gui/camera/windowingwidget.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/http.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/influxdb.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/logger.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/logging/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/logging/context.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/logging/resolvableerror.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/modulegui.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/offsets/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/offsets/applyaltazoffsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/offsets/applyoffsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/offsets/applyradecoffsets.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/parallel.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/pipeline/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/pipeline/pipeline.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/pipeline/progress.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/pipeline/reduction.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/pipeline/reduction_base.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/publisher/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/publisher/csv.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/publisher/http.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/publisher/log.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/publisher/multi.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/publisher/publisher.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/serialization.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/shellcommand.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/threads/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/threads/lockwithabort.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/time.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/units.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/utils/versions.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/version.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/archivefile.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/bufferedfile.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/file.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/filelists/__init__.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/filelists/filelist.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/filelists/testing.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/httpfile.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/localfile.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/memfile.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/sftpfile.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/smbfile.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/sshfile.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/tempfile.py +0 -0
- {pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/vfs/vfs.py +0 -0
|
@@ -10,7 +10,19 @@ from typing import Annotated, Any, get_args, get_origin, get_type_hints
|
|
|
10
10
|
from pydantic import BaseModel
|
|
11
11
|
from pydantic_core import PydanticUndefined
|
|
12
12
|
|
|
13
|
-
from pyobs.utils.enums import Unit
|
|
13
|
+
from pyobs.utils.enums import AccessLevel, Unit
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _coerce_level(value: Any) -> AccessLevel:
|
|
17
|
+
"""Coerce a raw level value (an int, or any IntEnum with matching member values -- e.g. a
|
|
18
|
+
consumer's own local AccessLevel copy per specs/steering/gui-field-access-levels.md) into
|
|
19
|
+
this module's AccessLevel. Falls back to BASIC for anything missing or unrecognized, so a
|
|
20
|
+
field that never opted into this feature keeps rendering exactly as before.
|
|
21
|
+
"""
|
|
22
|
+
try:
|
|
23
|
+
return AccessLevel(int(value))
|
|
24
|
+
except (TypeError, ValueError):
|
|
25
|
+
return AccessLevel.BASIC
|
|
14
26
|
|
|
15
27
|
|
|
16
28
|
@dataclasses.dataclass
|
|
@@ -20,6 +32,8 @@ class ConfigFieldSchema:
|
|
|
20
32
|
options: list[str] | None = None
|
|
21
33
|
default: Any | None = None
|
|
22
34
|
nested: dict[str, ConfigFieldSchema] | None = None
|
|
35
|
+
level: AccessLevel = AccessLevel.BASIC
|
|
36
|
+
description: str | None = None
|
|
23
37
|
|
|
24
38
|
|
|
25
39
|
@dataclasses.dataclass
|
|
@@ -44,7 +58,10 @@ def dataclass_to_schema(cls: type) -> ConfigSchema:
|
|
|
44
58
|
hints = get_type_hints(cls, include_extras=True)
|
|
45
59
|
fields: dict[str, ConfigFieldSchema] = {}
|
|
46
60
|
for f in dataclasses.fields(cls):
|
|
47
|
-
|
|
61
|
+
schema = _field_schema(hints[f.name], f.default)
|
|
62
|
+
schema.level = _coerce_level(f.metadata.get("level", AccessLevel.BASIC))
|
|
63
|
+
schema.description = f.metadata.get("description")
|
|
64
|
+
fields[f.name] = schema
|
|
48
65
|
return ConfigSchema(fields=fields)
|
|
49
66
|
|
|
50
67
|
|
|
@@ -97,10 +114,30 @@ def pydantic_to_schema(cls: type[BaseModel]) -> ConfigSchema:
|
|
|
97
114
|
fields: dict[str, ConfigFieldSchema] = {}
|
|
98
115
|
for name, info in cls.model_fields.items():
|
|
99
116
|
default = None if info.default is PydanticUndefined else info.default
|
|
100
|
-
|
|
117
|
+
schema = _pydantic_field_schema(info.annotation, default)
|
|
118
|
+
schema.level = _pydantic_field_level(info.json_schema_extra)
|
|
119
|
+
schema.description = _pydantic_field_description(info)
|
|
120
|
+
fields[name] = schema
|
|
101
121
|
return ConfigSchema(fields=fields)
|
|
102
122
|
|
|
103
123
|
|
|
124
|
+
def _pydantic_field_level(json_schema_extra: Any) -> AccessLevel:
|
|
125
|
+
if isinstance(json_schema_extra, dict) and "level" in json_schema_extra:
|
|
126
|
+
return _coerce_level(json_schema_extra["level"])
|
|
127
|
+
return AccessLevel.BASIC
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def _pydantic_field_description(info: Any) -> str | None:
|
|
131
|
+
"""FTSConfigMain (pyftscontrol) puts the description inside json_schema_extra alongside
|
|
132
|
+
level, rather than using Pydantic's own Field(description=...) -- prefer that convention
|
|
133
|
+
when present, but fall back to the native `description` for a model that uses it directly.
|
|
134
|
+
"""
|
|
135
|
+
extra = info.json_schema_extra
|
|
136
|
+
if isinstance(extra, dict) and isinstance(extra.get("description"), str):
|
|
137
|
+
return extra["description"]
|
|
138
|
+
return info.description
|
|
139
|
+
|
|
140
|
+
|
|
104
141
|
def _pydantic_field_schema(annotation: Any, default: Any) -> ConfigFieldSchema:
|
|
105
142
|
origin = get_origin(annotation)
|
|
106
143
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/astrometry/_dotnet_request_builder.py
RENAMED
|
File without changes
|
{pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/astrometry/_dotnet_request_logger.py
RENAMED
|
File without changes
|
{pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/astrometry/_dotnet_response_saver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/calibration/_calibration_cache.py
RENAMED
|
File without changes
|
{pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/calibration/_ccddata_calibrator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/detection/_pysep_stats_calculator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/offsets/brighteststar_guiding.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/photometry/_photometry_calculator.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/photometry/_sep_aperture_photometry.py
RENAMED
|
File without changes
|
{pyobs_core-2.7.0 → pyobs_core-2.7.2}/pyobs/images/processors/photometry/aperture_photometry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|