pyobs-core 2.7.2__tar.gz → 2.8.0__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.2 → pyobs_core-2.8.0}/PKG-INFO +1 -1
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/instruments.py +45 -19
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyproject.toml +1 -1
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/.gitignore +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/LICENSE +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/application.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/background_task.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/cli/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/cli/_cli.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/cli/pyobs.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/cli/pyobsd.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/cli/pyobsw.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/comm.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/commlogging.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/dummy/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/dummy/dummycomm.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/local/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/local/localcomm.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/local/localnetwork.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/proxy.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/rpc.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/serializer.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/xep_0009/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/xep_0009/binding.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/xep_0009/rpc.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/xep_0009_timeout/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/xep_0009_timeout/rpc.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/xep_0009_timeout/stanza/RPC.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/xep_0009_timeout/stanza/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/xmppclient.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/comm/xmpp/xmppcomm.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/badweather.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/event.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/exposurestatuschanged.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/filterchanged.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/focusfound.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/goodweather.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/log.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/modechanged.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/moduleclosed.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/moduleopened.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/motionstatuschanged.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/move.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/newimage.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/newspectrum.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/offsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/roofclosing.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/roofopened.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/taskfailed.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/taskfinished.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/taskstarted.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/events/testevent.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/image.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/meta/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/meta/altazoffsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/meta/exptime.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/meta/genericoffset.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/meta/onskydistance.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/meta/pixeloffsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/meta/radecoffsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/meta/skyoffsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processor.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/_daobackgroundremover.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/annotation/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/annotation/_pillow.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/annotation/circle.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/annotation/crosshair.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/annotation/text.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/astrometry/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/astrometry/_dotnet_request.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/astrometry/_dotnet_request_builder.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/astrometry/_dotnet_request_logger.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/astrometry/_dotnet_response_saver.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/astrometry/astrometry.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/astrometry/dotnet.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/calibration/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/calibration/_calibration_cache.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/calibration/_ccddata_calibrator.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/calibration/calibration.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/detection/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/detection/_pysep_stats_calculator.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/detection/_source_catalog.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/detection/daophot.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/detection/pysep.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/detection/simpledisk.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/detection/sourcedetection.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/exptime/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/exptime/exptime.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/exptime/star.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/image/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/image/addfitsheaders.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/image/download.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/image/flip.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/image/grayscale.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/image/httpserver.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/image/normalize.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/image/save.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/image/saveimage.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/image/smooth.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/image/softbin.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/misc/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/misc/addmask.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/misc/catalogcircularmask.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/misc/circularmask.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/misc/createfilename.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/misc/imagesourcefilter.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/misc/removebackground.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/modules/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/modules/getfitsheaders.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/offsets/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/offsets/astrometry.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/offsets/brighteststar.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/offsets/brighteststar_guiding.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/offsets/dummyoffsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/offsets/dummyskyoffsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/offsets/fitsheader.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/offsets/offsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/offsets/pixeloffsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/offsets/projected.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/offsets/spilled_light.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/photometry/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/photometry/_photometry_calculator.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/photometry/_photutil_aperture_photometry.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/photometry/_sep_aperture_photometry.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/photometry/aperture_photometry.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/photometry/photometry.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/photometry/photutil.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/photometry/pysep.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/wcs/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/wcs/solarhelioprojective.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IAbortable.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IAcquisition.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IAutoFocus.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IAutoGuiding.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IAutonomous.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IBinning.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/ICalibrate.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/ICamera.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IConfig.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/ICooling.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IData.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IDataSequence.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IDome.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IExposure.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IExposureTime.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IFilters.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IFitsHeaderAfter.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IFitsHeaderBefore.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IFlatField.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IFocusModel.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IFocuser.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IGain.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IImageFormat.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IImageType.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IMode.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IModule.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IMotion.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IMultiFiber.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IOffsetsAltAz.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IOffsetsRaDec.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IPointingAltAz.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IPointingBody.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IPointingHeliocentricPolar.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IPointingHeliographicStonyhurst.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IPointingHelioprojective.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IPointingOrbitalElements.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IPointingRaDec.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IPointingSeries.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IReady.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IRobotic.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IRoboticScheduler.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IRoof.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IRotation.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IRunnable.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IRunning.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IScriptRunner.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/ISpectrograph.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IStartStop.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IStructuredConfig.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/ISyncTarget.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/ITelescope.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/ITemperatures.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/ITrackingMode.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/ITrackingRate.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IVideo.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IWeather.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/IWindow.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/interfaces/interface.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/mixins/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/mixins/camerasettings.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/mixins/fitsheader.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/mixins/fitsnamespace.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/mixins/follow.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/mixins/motionstatus.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/mixins/pipeline.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/mixins/waitformotion.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/mixins/weatheraware.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/camera/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/camera/adaptive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/camera/basecamera.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/camera/basespectrograph.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/camera/basevideo.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/camera/dummycamera.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/camera/dummyspectrograph.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/camera/dummyvideo.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/camera/pipelinecamera.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/flatfield/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/flatfield/flatfield.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/flatfield/pointing.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/flatfield/scheduler.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/focus/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/focus/dummyautofocus.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/focus/focusmodel.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/focus/focusseries.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/image/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/image/imagewatcher.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/image/imagewriter.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/image/pipeline.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/image/seeing.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/module.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/_base.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/_baseguiding.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/acquisition.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/autoguiding.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/dummyacquisition.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/dummyguiding.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/guidingstatistics/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/guidingstatistics/guidingstatistics.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/guidingstatistics/pixeloffset.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/guidingstatistics/skyoffsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/guidingstatistics/uptime.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/pointing/scienceframeguiding.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/robotic/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/robotic/dummymastermind.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/robotic/dummyscheduler.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/robotic/mastermind.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/robotic/pointing.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/robotic/scheduler.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/robotic/scriptrunner.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/roof/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/roof/basedome.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/roof/baseroof.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/roof/dummyroof.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/telescope/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/telescope/_dummytelescopebase.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/telescope/basetelescope.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/telescope/dummyaltaztelescope.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/telescope/dummyradectelescope.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/telescope/dummysolartelescope.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/test/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/test/standalone.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/utils/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/utils/dummymode.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/utils/dummystructuredconfig.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/utils/fluentlogger.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/utils/httpfilecache.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/utils/kiosk.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/utils/matrix.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/utils/stellarium.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/utils/telegram.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/utils/trigger.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/weather/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/weather/mockweather.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/weather/weather.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/weather/weather_api.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/modules/weather/weather_state.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/object.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/py.typed +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/observation.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/_executor.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/astroplanscheduler.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/constraints/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/constraints/airmassconstraint.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/constraints/constraint.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/constraints/moonilluminationconstraint.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/constraints/moonseparationconstraint.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/constraints/solarelevationconstraint.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/constraints/timeconstraint.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/dataprovider.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/merits/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/merits/aftertime.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/merits/beforetime.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/merits/constant.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/merits/follow.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/merits/interval.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/merits/merit.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/merits/pernight.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/merits/random.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/merits/timewindow.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/merits/transit.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/observationarchiveevolution.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/ondemandscheduler.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/targets/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/targets/dynamictarget.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/targets/heliocentricpolartarget.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/targets/helioprojectivetarget.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/targets/picker/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/targets/picker/csvpicker.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/targets/picker/picker.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/targets/siderealtarget.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/targets/target.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scheduler/taskscheduler.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/calibration/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/calibration/darkbias.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/calibration/pointing.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/calibration/skyflats.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/control/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/control/cases.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/control/conditional.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/control/parallel.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/control/selector.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/control/sequential.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/exceptions.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/imaging/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/imaging/autofocus.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/imaging/imaging.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/imaging/transitimaging.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/script.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/utils/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/utils/callmodule.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/utils/debugtrigger.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/scripts/utils/log.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/filesystem/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/filesystem/observationarchive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/filesystem/taskarchive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/_portal.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/_schedulereader.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/_schedulewriter.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/configdb.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/mockobservationarchive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/observationarchive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/scripts/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/scripts/autofocus.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/scripts/default.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/scripts/script.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/task.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/taskarchive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/lco/taskrunner.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/memory/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/memory/observationarchive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/memory/taskarchive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/observationarchive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/portal/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/portal/observationarchive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/portal/taskarchive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/storage/taskarchive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/task.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/taskrunner.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/archive/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/archive/archive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/archive/local_archive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/archive/pyobs_archive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/calibration.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/exptime/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/exptime/exptime.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/exptime/stellarexptime.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/skyflats/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/skyflats/exptimeeval.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/skyflats/flatfielder.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/skyflats/pointing/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/skyflats/pointing/base.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/skyflats/pointing/static.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/skyflats/priorities/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/skyflats/priorities/archive.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/skyflats/priorities/base.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/skyflats/priorities/const.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/robotic/utils/skyflats/scheduler.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/average.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/cache.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/config.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/config_schema.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/coordinates.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/curvefit.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/enums.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/exceptions.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/exptime_grouping.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/fits.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/focusseries/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/focusseries/base.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/focusseries/photometry.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/focusseries/projection.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/grids/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/grids/filters.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/grids/grid.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/grids/gridnode.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/grids/pipeline.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/gui/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/gui/camera/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/gui/camera/binningwidget.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/gui/camera/datadisplaywidget.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/gui/camera/exposewidget.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/gui/camera/exposuretimewidget.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/gui/camera/imageformatwidget.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/gui/camera/listpickerdialog.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/gui/camera/windowingwidget.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/http.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/influxdb.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/logger.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/logging/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/logging/context.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/logging/resolvableerror.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/modulegui.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/offsets/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/offsets/applyaltazoffsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/offsets/applyoffsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/offsets/applyradecoffsets.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/parallel.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/pipeline/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/pipeline/pipeline.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/pipeline/progress.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/pipeline/reduction.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/pipeline/reduction_base.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/publisher/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/publisher/csv.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/publisher/http.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/publisher/log.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/publisher/multi.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/publisher/publisher.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/serialization.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/shellcommand.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/threads/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/threads/lockwithabort.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/time.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/units.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/utils/versions.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/version.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/archivefile.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/bufferedfile.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/file.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/filelists/__init__.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/filelists/filelist.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/filelists/testing.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/httpfile.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/localfile.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/memfile.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/sftpfile.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/smbfile.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/sshfile.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/tempfile.py +0 -0
- {pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/vfs/vfs.py +0 -0
|
@@ -10,12 +10,29 @@ from __future__ import annotations
|
|
|
10
10
|
|
|
11
11
|
from typing import Any
|
|
12
12
|
|
|
13
|
-
from pydantic import Field
|
|
13
|
+
from pydantic import ConfigDict, Field
|
|
14
14
|
|
|
15
15
|
from pyobs.utils.serialization import BaseModel
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
class
|
|
18
|
+
class _ForwardCompatibleModel(BaseModel):
|
|
19
|
+
"""Base for the capability models below, relaxing `BaseModel`'s `extra="forbid"` to
|
|
20
|
+
`extra="ignore"`.
|
|
21
|
+
|
|
22
|
+
A running process (e.g. `mastermind`) can be on an older pyobs-core release than whatever
|
|
23
|
+
portal it polls -- the portal gaining a field (as it will over time; `model`/`sensor_type`
|
|
24
|
+
already did once) must not turn into a hard parse failure that starves it of every other
|
|
25
|
+
field in the response. `extra="forbid"` is a deliberate, useful default elsewhere in pyobs
|
|
26
|
+
(catching config typos, `2026-08-15-pydantic-extra-validation.md`) but wrong here: this
|
|
27
|
+
module only ever consumes portal-controlled data, not user-authored config, and the two
|
|
28
|
+
sides (portal, and every fleet site's own pyobs-core version) are never guaranteed to be on
|
|
29
|
+
the same release.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
model_config = ConfigDict(extra="ignore")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class Filter(_ForwardCompatibleModel):
|
|
19
36
|
"""A single filter position in a filter wheel."""
|
|
20
37
|
|
|
21
38
|
name: str
|
|
@@ -23,7 +40,7 @@ class Filter(BaseModel):
|
|
|
23
40
|
updated_at: str | None = None
|
|
24
41
|
|
|
25
42
|
|
|
26
|
-
class BinningOption(
|
|
43
|
+
class BinningOption(_ForwardCompatibleModel):
|
|
27
44
|
"""Readout time for one binning mode of a camera."""
|
|
28
45
|
|
|
29
46
|
x: int
|
|
@@ -32,25 +49,35 @@ class BinningOption(BaseModel):
|
|
|
32
49
|
updated_at: str | None = None
|
|
33
50
|
|
|
34
51
|
|
|
35
|
-
class FilterWheelCapability(
|
|
36
|
-
"""Planning-time capability data for one filter wheel
|
|
52
|
+
class FilterWheelCapability(_ForwardCompatibleModel):
|
|
53
|
+
"""Planning-time capability data for one filter wheel, keyed by `module_name`.
|
|
37
54
|
|
|
38
|
-
`module_name` is
|
|
39
|
-
|
|
55
|
+
`module_name` is required and non-empty, same as every other device here -- a wheel with
|
|
56
|
+
filter selection exposed through the camera's own module (no independent XMPP identity)
|
|
57
|
+
should be entered with the *camera's* module_name, not left blank. It used to be nullable
|
|
58
|
+
(pyobs-portal#142) but a blank value made the row permanently unreachable via
|
|
59
|
+
`InstrumentCapabilities.filter_wheel()`, which indexes by module_name -- there was no valid
|
|
60
|
+
case for it in practice. `min_length=1` closes the same gap for `""`, which `str` alone
|
|
61
|
+
wouldn't catch (only non-`None`, not non-empty) and which the portal side's `blank=False`
|
|
62
|
+
can't fully guarantee either (pre-#142 `blank=True` rows, or a direct ORM write bypassing
|
|
63
|
+
`full_clean()`).
|
|
40
64
|
"""
|
|
41
65
|
|
|
42
66
|
name: str = ""
|
|
43
|
-
module_name: str
|
|
67
|
+
module_name: str = Field(min_length=1)
|
|
68
|
+
model: str = ""
|
|
44
69
|
filter_change_time_s: float | None = None
|
|
45
70
|
updated_at: str | None = None
|
|
46
71
|
filters: list[Filter] = Field(default_factory=list)
|
|
47
72
|
|
|
48
73
|
|
|
49
|
-
class CameraCapability(
|
|
74
|
+
class CameraCapability(_ForwardCompatibleModel):
|
|
50
75
|
"""Planning-time capability data for one camera, keyed by `module_name`."""
|
|
51
76
|
|
|
52
|
-
module_name: str
|
|
77
|
+
module_name: str = Field(min_length=1)
|
|
53
78
|
code: str
|
|
79
|
+
model: str = ""
|
|
80
|
+
sensor_type: str = ""
|
|
54
81
|
pixel_size_um: float | None = None
|
|
55
82
|
sensor_width_px: int | None = None
|
|
56
83
|
sensor_height_px: int | None = None
|
|
@@ -79,10 +106,10 @@ class CameraCapability(BaseModel):
|
|
|
79
106
|
DEFAULT_SLEW_DISTANCE_DEG = 90.0
|
|
80
107
|
|
|
81
108
|
|
|
82
|
-
class TelescopeCapability(
|
|
109
|
+
class TelescopeCapability(_ForwardCompatibleModel):
|
|
83
110
|
"""Planning-time capability data for one telescope, keyed by `module_name`."""
|
|
84
111
|
|
|
85
|
-
module_name: str
|
|
112
|
+
module_name: str = Field(min_length=1)
|
|
86
113
|
aperture_mm: float | None = None
|
|
87
114
|
focal_length_mm: float | None = None
|
|
88
115
|
mount_type: str = ""
|
|
@@ -103,10 +130,10 @@ class TelescopeCapability(BaseModel):
|
|
|
103
130
|
return distance_deg / self.slew_rate_deg_per_s
|
|
104
131
|
|
|
105
132
|
|
|
106
|
-
class DomeCapability(
|
|
133
|
+
class DomeCapability(_ForwardCompatibleModel):
|
|
107
134
|
"""Planning-time capability data for one dome, keyed by `module_name`."""
|
|
108
135
|
|
|
109
|
-
module_name: str
|
|
136
|
+
module_name: str = Field(min_length=1)
|
|
110
137
|
rotate_rate_deg_per_s: float | None = None
|
|
111
138
|
updated_at: str | None = None
|
|
112
139
|
|
|
@@ -120,7 +147,7 @@ class DomeCapability(BaseModel):
|
|
|
120
147
|
return distance_deg / self.rotate_rate_deg_per_s
|
|
121
148
|
|
|
122
149
|
|
|
123
|
-
class RoofCapability(
|
|
150
|
+
class RoofCapability(_ForwardCompatibleModel):
|
|
124
151
|
"""Planning-time capability data for one plain open/close roof, keyed by `module_name`.
|
|
125
152
|
|
|
126
153
|
A plain roof (`IRoof`, no `IPointingAltAz`) has no rate/distance concept -- nothing to rotate
|
|
@@ -131,12 +158,12 @@ class RoofCapability(BaseModel):
|
|
|
131
158
|
directly.
|
|
132
159
|
"""
|
|
133
160
|
|
|
134
|
-
module_name: str
|
|
161
|
+
module_name: str = Field(min_length=1)
|
|
135
162
|
open_close_time_s: float | None = None
|
|
136
163
|
updated_at: str | None = None
|
|
137
164
|
|
|
138
165
|
|
|
139
|
-
class Instrument(
|
|
166
|
+
class Instrument(_ForwardCompatibleModel):
|
|
140
167
|
"""One telescope + dome/roof + camera(s) grouping, as returned by `GET /api/instruments/`.
|
|
141
168
|
|
|
142
169
|
Purely an organizational grouping on the portal side -- it carries no module identity of its
|
|
@@ -176,8 +203,7 @@ class InstrumentCapabilities:
|
|
|
176
203
|
self._cameras[camera.module_name] = camera
|
|
177
204
|
self._cameras_by_code[camera.code] = camera
|
|
178
205
|
for wheel in camera.filter_wheels:
|
|
179
|
-
|
|
180
|
-
self._filter_wheels[wheel.module_name] = wheel
|
|
206
|
+
self._filter_wheels[wheel.module_name] = wheel
|
|
181
207
|
if instrument.telescope is not None:
|
|
182
208
|
self._telescopes[instrument.telescope.module_name] = instrument.telescope
|
|
183
209
|
if instrument.dome is not None:
|
|
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.2 → pyobs_core-2.8.0}/pyobs/images/processors/astrometry/_dotnet_request_builder.py
RENAMED
|
File without changes
|
{pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/astrometry/_dotnet_request_logger.py
RENAMED
|
File without changes
|
{pyobs_core-2.7.2 → pyobs_core-2.8.0}/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.2 → pyobs_core-2.8.0}/pyobs/images/processors/calibration/_calibration_cache.py
RENAMED
|
File without changes
|
{pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/calibration/_ccddata_calibrator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.7.2 → pyobs_core-2.8.0}/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.2 → pyobs_core-2.8.0}/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.2 → pyobs_core-2.8.0}/pyobs/images/processors/photometry/_photometry_calculator.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.7.2 → pyobs_core-2.8.0}/pyobs/images/processors/photometry/_sep_aperture_photometry.py
RENAMED
|
File without changes
|
{pyobs_core-2.7.2 → pyobs_core-2.8.0}/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
|