pyobs-core 2.0.0.dev53__tar.gz → 2.0.0.dev55__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.0.0.dev53 → pyobs_core-2.0.0.dev55}/PKG-INFO +1 -1
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/application.py +23 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/comm.py +11 -5
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/xmppcomm.py +22 -4
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyproject.toml +1 -1
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/.gitignore +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/LICENSE +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/background_task.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/cli/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/cli/_cli.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/cli/pyobs.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/cli/pyobsd.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/cli/pyobsw.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/commlogging.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/dummy/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/dummy/dummycomm.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/local/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/local/localcomm.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/local/localnetwork.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/proxy.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/rpc.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/serializer.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/xep_0009/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/xep_0009/binding.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/xep_0009/rpc.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/xep_0009_timeout/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/xep_0009_timeout/rpc.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/xep_0009_timeout/stanza/RPC.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/xep_0009_timeout/stanza/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/xmppclient.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/badweather.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/event.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/exposurestatuschanged.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/filterchanged.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/focusfound.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/goodweather.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/log.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/modechanged.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/moduleclosed.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/moduleopened.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/motionstatuschanged.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/move.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/newimage.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/newspectrum.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/offsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/roofclosing.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/roofopened.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/taskfailed.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/taskfinished.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/taskstarted.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/events/testevent.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/image.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/meta/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/meta/altazoffsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/meta/exptime.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/meta/genericoffset.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/meta/onskydistance.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/meta/pixeloffsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/meta/radecoffsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/meta/skyoffsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processor.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/_daobackgroundremover.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/annotation/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/annotation/_pillow.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/annotation/circle.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/annotation/crosshair.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/annotation/text.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/astrometry/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/astrometry/_dotnet_request.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/astrometry/_dotnet_request_builder.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/astrometry/_dotnet_request_logger.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/astrometry/_dotnet_response_saver.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/astrometry/astrometry.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/astrometry/dotnet.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/calibration/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/calibration/_calibration_cache.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/calibration/_ccddata_calibrator.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/calibration/calibration.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/detection/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/detection/_pysep_stats_calculator.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/detection/_source_catalog.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/detection/daophot.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/detection/pysep.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/detection/simpledisk.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/detection/sourcedetection.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/exptime/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/exptime/exptime.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/exptime/star.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/addfitsheaders.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/download.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/flip.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/grayscale.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/httpserver.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/normalize.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/save.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/saveimage.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/smooth.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/softbin.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/misc/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/misc/addmask.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/misc/catalogcircularmask.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/misc/circularmask.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/misc/createfilename.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/misc/imagesourcefilter.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/misc/removebackground.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/modules/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/modules/getfitsheaders.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/astrometry.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/brighteststar.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/brighteststar_guiding.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/dummyoffsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/dummyskyoffsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/fitsheader.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/offsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/pixeloffsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/projected.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/spilled_light.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/_photometry_calculator.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/_photutil_aperture_photometry.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/_sep_aperture_photometry.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/aperture_photometry.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/photometry.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/photutil.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/pysep.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/wcs/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/wcs/solarhelioprojective.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IAbortable.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IAcquisition.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IAutoFocus.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IAutoGuiding.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IAutonomous.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IBinning.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/ICalibrate.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/ICamera.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IConfig.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/ICooling.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IData.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IDataSequence.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IDome.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IExposure.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IExposureTime.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IFilters.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IFitsHeaderAfter.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IFitsHeaderBefore.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IFlatField.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IFocusModel.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IFocuser.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IGain.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IImageFormat.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IImageType.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IMode.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IModule.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IMotion.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IMultiFiber.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IOffsetsAltAz.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IOffsetsRaDec.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IPointingAltAz.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IPointingBody.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IPointingHeliocentricPolar.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IPointingHeliographicStonyhurst.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IPointingHelioprojective.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IPointingOrbitalElements.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IPointingRaDec.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IPointingSeries.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IReady.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IRoof.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IRotation.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IRunnable.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IRunning.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IScriptRunner.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/ISpectrograph.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IStartStop.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IStructuredConfig.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/ISyncTarget.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/ITelescope.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/ITemperatures.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/ITrackingMode.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/ITrackingRate.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IVideo.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IWeather.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IWindow.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/interface.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/mixins/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/mixins/camerasettings.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/mixins/fitsheader.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/mixins/fitsnamespace.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/mixins/follow.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/mixins/motionstatus.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/mixins/pipeline.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/mixins/waitformotion.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/mixins/weatheraware.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/camera/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/camera/adaptive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/camera/basecamera.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/camera/basespectrograph.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/camera/basevideo.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/camera/dummycamera.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/camera/dummyspectrograph.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/camera/dummyvideo.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/camera/pipelinecamera.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/flatfield/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/flatfield/flatfield.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/flatfield/pointing.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/flatfield/scheduler.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/focus/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/focus/dummyautofocus.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/focus/focusmodel.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/focus/focusseries.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/image/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/image/imagewatcher.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/image/imagewriter.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/image/pipeline.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/image/seeing.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/module.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/_base.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/_baseguiding.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/acquisition.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/autoguiding.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/dummyacquisition.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/dummyguiding.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/guidingstatistics/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/guidingstatistics/guidingstatistics.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/guidingstatistics/pixeloffset.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/guidingstatistics/skyoffsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/guidingstatistics/uptime.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/pointing/scienceframeguiding.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/robotic/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/robotic/mastermind.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/robotic/pointing.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/robotic/scheduler.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/robotic/scriptrunner.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/roof/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/roof/basedome.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/roof/baseroof.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/roof/dummyroof.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/telescope/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/telescope/_dummytelescopebase.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/telescope/basetelescope.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/telescope/dummyaltaztelescope.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/telescope/dummyradectelescope.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/telescope/dummysolartelescope.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/test/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/test/standalone.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/utils/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/utils/dummymode.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/utils/fluentlogger.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/utils/httpfilecache.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/utils/kiosk.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/utils/matrix.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/utils/stellarium.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/utils/telegram.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/utils/trigger.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/weather/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/weather/mockweather.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/weather/weather.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/weather/weather_api.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/modules/weather/weather_state.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/object.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/py.typed +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/observation.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/_executor.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/astroplanscheduler.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/constraints/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/constraints/airmassconstraint.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/constraints/constraint.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/constraints/moonilluminationconstraint.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/constraints/moonseparationconstraint.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/constraints/solarelevationconstraint.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/constraints/timeconstraint.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/dataprovider.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/merits/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/merits/aftertime.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/merits/beforetime.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/merits/constant.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/merits/follow.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/merits/interval.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/merits/merit.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/merits/pernight.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/merits/random.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/merits/timewindow.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/merits/transit.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/observationarchiveevolution.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/ondemandscheduler.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/targets/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/targets/dynamictarget.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/targets/heliocentricpolartarget.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/targets/helioprojectivetarget.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/targets/picker/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/targets/picker/csvpicker.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/targets/picker/picker.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/targets/siderealtarget.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/targets/target.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scheduler/taskscheduler.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/calibration/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/calibration/darkbias.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/calibration/pointing.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/calibration/skyflats.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/control/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/control/cases.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/control/conditional.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/control/parallel.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/control/selector.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/control/sequential.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/exceptions.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/imaging/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/imaging/autofocus.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/imaging/imaging.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/imaging/transitimaging.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/script.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/utils/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/utils/callmodule.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/utils/debugtrigger.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/scripts/utils/log.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/backend/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/backend/observationarchive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/backend/taskarchive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/filesystem/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/filesystem/observationarchive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/filesystem/taskarchive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/_portal.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/_schedulereader.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/_schedulewriter.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/configdb.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/mockobservationarchive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/observationarchive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/scripts/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/scripts/autofocus.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/scripts/default.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/scripts/script.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/task.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/taskarchive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/lco/taskrunner.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/memory/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/memory/observationarchive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/memory/taskarchive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/observationarchive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/storage/taskarchive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/task.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/taskrunner.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/archive/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/archive/archive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/archive/local_archive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/archive/pyobs_archive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/exptime/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/exptime/exptime.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/exptime/stellarexptime.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/skyflats/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/skyflats/exptimeeval.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/skyflats/flatfielder.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/skyflats/pointing/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/skyflats/pointing/base.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/skyflats/pointing/static.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/skyflats/priorities/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/skyflats/priorities/archive.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/skyflats/priorities/base.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/skyflats/priorities/const.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/robotic/utils/skyflats/scheduler.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/average.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/cache.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/config.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/config_schema.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/coordinates.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/curvefit.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/enums.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/exceptions.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/fits.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/focusseries/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/focusseries/base.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/focusseries/photometry.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/focusseries/projection.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/grids/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/grids/filters.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/grids/grid.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/grids/gridnode.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/grids/pipeline.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/gui/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/gui/camera/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/gui/camera/binningwidget.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/gui/camera/datadisplaywidget.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/gui/camera/exposewidget.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/gui/camera/exposuretimewidget.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/gui/camera/imageformatwidget.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/gui/camera/listpickerdialog.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/gui/camera/windowingwidget.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/http.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/influxdb.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/logger.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/logging/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/logging/context.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/logging/resolvableerror.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/modulegui.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/offsets/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/offsets/applyaltazoffsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/offsets/applyoffsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/offsets/applyradecoffsets.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/parallel.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/pipeline/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/pipeline/night.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/pipeline/pipeline.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/publisher/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/publisher/csv.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/publisher/http.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/publisher/log.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/publisher/multi.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/publisher/publisher.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/serialization.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/shellcommand.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/threads/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/threads/lockwithabort.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/time.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/utils/units.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/version.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/archivefile.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/bufferedfile.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/file.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/filelists/__init__.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/filelists/filelist.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/filelists/testing.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/httpfile.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/localfile.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/memfile.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/sftpfile.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/smbfile.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/sshfile.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/tempfile.py +0 -0
- {pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/vfs/vfs.py +0 -0
|
@@ -45,6 +45,17 @@ if os.environ.get("PYOBS_IERS_OFFLINE", "").lower() in ("1", "true", "yes"):
|
|
|
45
45
|
warnings.filterwarnings("error", category=RuntimeWarning)
|
|
46
46
|
|
|
47
47
|
|
|
48
|
+
def _warm_iers_cache() -> None:
|
|
49
|
+
"""Force astropy's IERS-A table to be loaded/downloaded now, synchronously.
|
|
50
|
+
|
|
51
|
+
Meant to run inside an executor thread (see Application._main) -- calling this directly
|
|
52
|
+
on the event loop would defeat the point.
|
|
53
|
+
"""
|
|
54
|
+
from astropy.utils.iers import IERS_Auto
|
|
55
|
+
|
|
56
|
+
IERS_Auto.open()
|
|
57
|
+
|
|
58
|
+
|
|
48
59
|
class InfluxLogConfig(TypedDict):
|
|
49
60
|
url: str
|
|
50
61
|
token: str
|
|
@@ -311,6 +322,18 @@ class Application:
|
|
|
311
322
|
|
|
312
323
|
# everything in a try/except/finally, so that we can shut down gracefully
|
|
313
324
|
try:
|
|
325
|
+
# prime astropy's IERS earth-orientation cache now, before any module/comm/network
|
|
326
|
+
# setup below -- left implicit, the first UT1-UTC lookup (e.g. basetelescope.py's
|
|
327
|
+
# periodic celestial-header task, ~10-15s after startup) triggers astropy's
|
|
328
|
+
# auto_download synchronously and blocks the event loop for however long that
|
|
329
|
+
# download takes, at an unpredictable point during normal operation. Doing it here
|
|
330
|
+
# in an executor keeps the download latency off the loop and confined to startup.
|
|
331
|
+
# No-op (near-instant) when PYOBS_IERS_OFFLINE disabled auto_download above.
|
|
332
|
+
try:
|
|
333
|
+
await asyncio.get_running_loop().run_in_executor(None, _warm_iers_cache)
|
|
334
|
+
except Exception:
|
|
335
|
+
log.warning("Could not prime IERS earth-orientation data, continuing anyway.", exc_info=True)
|
|
336
|
+
|
|
314
337
|
# resolve the module from the factory, if we're in that mode and haven't yet --
|
|
315
338
|
# runs inside the running loop, so the factory can await anything it needs to
|
|
316
339
|
# (e.g. a login dialog's submit signal) before the module/comm connection exists
|
|
@@ -39,7 +39,8 @@ class Comm:
|
|
|
39
39
|
self._log_queue: asyncio.Queue[LogEvent] = asyncio.Queue()
|
|
40
40
|
self._logging_task: asyncio.Task[Any] | None = None
|
|
41
41
|
self._event_handlers: dict[type[Event], list[Callable[[Event, str], Coroutine[Any, Any, bool]]]] = {}
|
|
42
|
-
self.
|
|
42
|
+
self._events_sent: set[type[Event]] = set()
|
|
43
|
+
self._events_subscribed: set[type[Event]] = set()
|
|
43
44
|
self._closing = asyncio.Event()
|
|
44
45
|
self._published_state: set[type[Interface]] = set()
|
|
45
46
|
|
|
@@ -434,10 +435,10 @@ class Comm:
|
|
|
434
435
|
|
|
435
436
|
# we also want to register all events derived from the given one
|
|
436
437
|
event_classes = self._get_derived_events(event_class)
|
|
437
|
-
self._registered_events.update(event_classes)
|
|
438
438
|
|
|
439
|
-
# do we have a handler?
|
|
439
|
+
# do we have a handler? then we subscribe, otherwise we just declare that we send it
|
|
440
440
|
if handler:
|
|
441
|
+
self._events_subscribed.update(event_classes)
|
|
441
442
|
# loop classes
|
|
442
443
|
for ev in event_classes:
|
|
443
444
|
# initialize list
|
|
@@ -447,6 +448,8 @@ class Comm:
|
|
|
447
448
|
if handler not in self._event_handlers[ev]:
|
|
448
449
|
# add handler
|
|
449
450
|
self._event_handlers[ev].append(handler)
|
|
451
|
+
else:
|
|
452
|
+
self._events_sent.update(event_classes)
|
|
450
453
|
|
|
451
454
|
# if event is not a local one, we also need to do some XMPP stuff
|
|
452
455
|
if not event_class.local:
|
|
@@ -457,8 +460,9 @@ class Comm:
|
|
|
457
460
|
) -> None:
|
|
458
461
|
"""Remove a handler previously added via register_event().
|
|
459
462
|
|
|
460
|
-
Leaves the event type itself registered
|
|
461
|
-
|
|
463
|
+
Leaves the event type itself registered as *sent* if the module also declared it via a
|
|
464
|
+
handler-less register_event() call, only stops calling this handler and, once no handler
|
|
465
|
+
is left for the event, drops it from what's advertised as *subscribed*.
|
|
462
466
|
|
|
463
467
|
Args:
|
|
464
468
|
event_class: Class of event that was registered.
|
|
@@ -470,6 +474,8 @@ class Comm:
|
|
|
470
474
|
handlers = self._event_handlers.get(ev)
|
|
471
475
|
if handlers is not None and handler in handlers:
|
|
472
476
|
handlers.remove(handler)
|
|
477
|
+
if not handlers:
|
|
478
|
+
self._events_subscribed.discard(ev)
|
|
473
479
|
|
|
474
480
|
async def _register_events(
|
|
475
481
|
self, events: list[type[Event]], handler: Callable[[Event, str], Coroutine[Any, Any, bool]] | None = None
|
|
@@ -37,6 +37,18 @@ if TYPE_CHECKING:
|
|
|
37
37
|
log = logging.getLogger(__name__)
|
|
38
38
|
|
|
39
39
|
|
|
40
|
+
def _event_role(ev_cls: type[Event], events_sent: set[type[Event]], events_subscribed: set[type[Event]]) -> str:
|
|
41
|
+
"""Space-separated role(s) ("send", "subscribe", or both) for an event class, for the
|
|
42
|
+
disco#info `role` attribute -- lets consumers with no access to the pyobs.events catalog
|
|
43
|
+
(e.g. pyobs-web-client) tell producers from consumers instead of guessing from the union."""
|
|
44
|
+
roles = []
|
|
45
|
+
if ev_cls in events_sent:
|
|
46
|
+
roles.append("send")
|
|
47
|
+
if ev_cls in events_subscribed:
|
|
48
|
+
roles.append("subscribe")
|
|
49
|
+
return " ".join(roles)
|
|
50
|
+
|
|
51
|
+
|
|
40
52
|
def _retry_delay(attempt: int, cap: float = 30.0, base: float = 1.0) -> float:
|
|
41
53
|
"""Capped exponential backoff with full jitter.
|
|
42
54
|
|
|
@@ -984,10 +996,16 @@ class XmppComm(Comm):
|
|
|
984
996
|
for interface in self._module.interfaces:
|
|
985
997
|
info.xml.append(_interface_schema_to_xml(interface))
|
|
986
998
|
|
|
987
|
-
# Append event schemas
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
999
|
+
# Append event schemas, tagged with a role attribute so consumers that have no access
|
|
1000
|
+
# to the pyobs.events catalog themselves (e.g. pyobs-web-client) can tell which events
|
|
1001
|
+
# a module actually sends vs. which it only subscribes to receive.
|
|
1002
|
+
registered_events = self._events_sent | self._events_subscribed
|
|
1003
|
+
for ev_cls in sorted(registered_events, key=lambda e: e.__name__):
|
|
1004
|
+
if ev_cls.local:
|
|
1005
|
+
continue
|
|
1006
|
+
event_xml = _event_schema_to_xml(ev_cls)
|
|
1007
|
+
event_xml.attrib["role"] = _event_role(ev_cls, self._events_sent, self._events_subscribed)
|
|
1008
|
+
info.xml.append(event_xml)
|
|
991
1009
|
|
|
992
1010
|
return info
|
|
993
1011
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/xep_0009_timeout/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/comm/xmpp/xep_0009_timeout/stanza/RPC.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
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/_daobackgroundremover.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/annotation/__init__.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/annotation/_pillow.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/annotation/circle.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/annotation/crosshair.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/annotation/text.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/astrometry/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/astrometry/astrometry.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/astrometry/dotnet.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/calibration/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/calibration/calibration.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/detection/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/detection/daophot.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/detection/pysep.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/detection/simpledisk.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/exptime/__init__.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/exptime/exptime.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/addfitsheaders.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/grayscale.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/httpserver.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/normalize.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/image/saveimage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/misc/circularmask.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/misc/createfilename.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/misc/imagesourcefilter.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/misc/removebackground.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/modules/__init__.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/modules/getfitsheaders.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/__init__.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/astrometry.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/brighteststar.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/dummyoffsets.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/dummyskyoffsets.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/fitsheader.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/offsets.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/pixeloffsets.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/projected.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/offsets/spilled_light.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/photometry.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/photutil.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/images/processors/photometry/pysep.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
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IPointingHeliocentricPolar.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IPointingHelioprojective.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev53 → pyobs_core-2.0.0.dev55}/pyobs/interfaces/IPointingOrbitalElements.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|