pyobs-core 2.0.0.dev23__tar.gz → 2.0.0.dev24__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.dev23 → pyobs_core-2.0.0.dev24}/PKG-INFO +1 -1
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/comm.py +12 -9
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/proxy.py +29 -1
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/xmppclient.py +1 -1
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/xmppcomm.py +25 -11
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyproject.toml +1 -1
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/.gitignore +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/LICENSE +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/application.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/background_task.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/cli/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/cli/_cli.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/cli/pyobs.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/cli/pyobsd.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/cli/pyobsw.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/commlogging.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/dummy/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/dummy/dummycomm.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/local/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/local/localcomm.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/local/localnetwork.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/rpc.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/serializer.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/xep_0009/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/xep_0009/binding.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/xep_0009/rpc.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/xep_0009_timeout/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/xep_0009_timeout/rpc.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/xep_0009_timeout/stanza/RPC.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/xep_0009_timeout/stanza/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/badweather.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/event.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/exposurestatuschanged.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/filterchanged.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/focusfound.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/goodweather.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/log.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/modechanged.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/moduleclosed.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/moduleopened.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/motionstatuschanged.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/move.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/newimage.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/newspectrum.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/offsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/roofclosing.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/roofopened.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/taskfailed.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/taskfinished.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/taskstarted.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/events/testevent.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/image.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/meta/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/meta/altazoffsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/meta/exptime.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/meta/genericoffset.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/meta/onskydistance.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/meta/pixeloffsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/meta/radecoffsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/meta/skyoffsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processor.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/_daobackgroundremover.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/annotation/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/annotation/_pillow.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/annotation/circle.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/annotation/crosshair.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/annotation/text.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/astrometry/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/astrometry/_dotnet_request.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/astrometry/_dotnet_request_builder.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/astrometry/_dotnet_request_logger.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/astrometry/_dotnet_response_saver.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/astrometry/astrometry.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/astrometry/dotnet.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/calibration/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/calibration/_calibration_cache.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/calibration/_ccddata_calibrator.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/calibration/calibration.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/detection/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/detection/_pysep_stats_calculator.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/detection/_source_catalog.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/detection/daophot.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/detection/pysep.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/detection/simpledisk.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/detection/sourcedetection.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/exptime/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/exptime/exptime.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/exptime/star.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/addfitsheaders.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/download.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/flip.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/grayscale.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/httpserver.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/normalize.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/save.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/saveimage.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/smooth.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/softbin.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/misc/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/misc/addmask.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/misc/catalogcircularmask.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/misc/circularmask.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/misc/createfilename.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/misc/imagesourcefilter.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/misc/removebackground.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/modules/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/modules/getfitsheaders.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/astrometry.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/brighteststar.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/brighteststar_guiding.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/dummyoffsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/dummyskyoffsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/fitsheader.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/offsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/pixeloffsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/projected.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/spilled_light.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/photometry/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/photometry/_photometry_calculator.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/photometry/_photutil_aperture_photometry.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/photometry/_sep_aperture_photometry.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/photometry/aperture_photometry.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/photometry/photometry.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/photometry/photutil.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/photometry/pysep.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/wcs/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/wcs/solarhelioprojective.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IAbortable.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IAcquisition.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IAutoFocus.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IAutoGuiding.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IAutonomous.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IBinning.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/ICalibrate.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/ICamera.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IConfig.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/ICooling.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IData.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IDataSequence.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IDome.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IExposure.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IExposureTime.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IFilters.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IFitsHeaderAfter.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IFitsHeaderBefore.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IFlatField.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IFocusModel.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IFocuser.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IGain.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IImageFormat.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IImageType.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IMode.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IModule.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IMotion.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IMultiFiber.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IOffsetsAltAz.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IOffsetsRaDec.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IPointingAltAz.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IPointingBody.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IPointingHeliocentricPolar.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IPointingHeliographicStonyhurst.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IPointingHelioprojective.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IPointingOrbitalElements.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IPointingRaDec.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IPointingSeries.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IReady.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IRoof.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IRotation.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IRunnable.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IRunning.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IScriptRunner.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/ISpectrograph.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IStartStop.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IStructuredConfig.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/ISyncTarget.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/ITelescope.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/ITemperatures.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/ITrackingMode.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/ITrackingRate.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IVideo.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IWeather.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IWindow.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/interface.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/mixins/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/mixins/camerasettings.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/mixins/fitsheader.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/mixins/fitsnamespace.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/mixins/follow.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/mixins/motionstatus.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/mixins/pipeline.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/mixins/waitformotion.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/mixins/weatheraware.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/camera/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/camera/adaptive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/camera/basecamera.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/camera/basespectrograph.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/camera/basevideo.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/camera/dummycamera.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/camera/dummyspectrograph.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/camera/dummyvideo.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/camera/pipelinecamera.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/flatfield/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/flatfield/flatfield.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/flatfield/pointing.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/flatfield/scheduler.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/focus/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/focus/dummyautofocus.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/focus/focusmodel.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/focus/focusseries.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/image/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/image/imagewatcher.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/image/imagewriter.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/image/pipeline.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/image/seeing.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/module.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/_base.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/_baseguiding.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/acquisition.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/autoguiding.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/dummyacquisition.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/dummyguiding.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/guidingstatistics/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/guidingstatistics/guidingstatistics.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/guidingstatistics/pixeloffset.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/guidingstatistics/skyoffsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/guidingstatistics/uptime.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/pointing/scienceframeguiding.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/robotic/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/robotic/mastermind.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/robotic/pointing.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/robotic/scheduler.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/robotic/scriptrunner.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/roof/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/roof/basedome.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/roof/baseroof.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/roof/dummyroof.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/telescope/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/telescope/_dummytelescopebase.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/telescope/basetelescope.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/telescope/dummyaltaztelescope.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/telescope/dummyradectelescope.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/telescope/dummysolartelescope.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/test/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/test/standalone.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/utils/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/utils/dummymode.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/utils/fluentlogger.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/utils/httpfilecache.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/utils/kiosk.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/utils/matrix.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/utils/stellarium.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/utils/telegram.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/utils/trigger.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/weather/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/weather/mockweather.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/weather/weather.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/weather/weather_api.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/modules/weather/weather_state.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/object.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/py.typed +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/observation.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/astroplanscheduler.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/constraints/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/constraints/airmassconstraint.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/constraints/constraint.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/constraints/moonilluminationconstraint.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/constraints/moonseparationconstraint.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/constraints/solarelevationconstraint.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/constraints/timeconstraint.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/dataprovider.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/merits/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/merits/aftertime.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/merits/beforetime.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/merits/constant.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/merits/follow.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/merits/interval.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/merits/merit.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/merits/pernight.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/merits/random.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/merits/timewindow.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/merits/transit.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/observationarchiveevolution.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/ondemandscheduler.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/targets/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/targets/dynamictarget.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/targets/heliocentricpolartarget.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/targets/helioprojectivetarget.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/targets/picker/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/targets/picker/csvpicker.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/targets/picker/picker.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/targets/siderealtarget.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/targets/target.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scheduler/taskscheduler.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/calibration/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/calibration/darkbias.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/calibration/pointing.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/calibration/skyflats.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/control/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/control/cases.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/control/conditional.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/control/parallel.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/control/selector.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/control/sequential.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/imaging/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/imaging/autofocus.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/imaging/imaging.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/imaging/transitimaging.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/script.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/utils/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/utils/callmodule.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/utils/debugtrigger.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/scripts/utils/log.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/backend/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/backend/observationarchive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/backend/taskarchive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/filesystem/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/filesystem/observationarchive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/filesystem/taskarchive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/_portal.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/_schedulereader.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/_schedulewriter.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/configdb.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/mockobservationarchive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/observationarchive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/scripts/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/scripts/autofocus.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/scripts/default.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/scripts/script.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/task.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/taskarchive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/lco/taskrunner.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/memory/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/memory/observationarchive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/memory/taskarchive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/observationarchive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/storage/taskarchive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/task.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/taskrunner.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/archive/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/archive/archive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/archive/local_archive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/archive/pyobs_archive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/exptime/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/exptime/exptime.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/exptime/stellarexptime.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/skyflats/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/skyflats/exptimeeval.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/skyflats/flatfielder.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/skyflats/pointing/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/skyflats/pointing/base.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/skyflats/pointing/static.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/skyflats/priorities/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/skyflats/priorities/archive.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/skyflats/priorities/base.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/skyflats/priorities/const.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/robotic/utils/skyflats/scheduler.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/average.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/cache.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/config.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/config_schema.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/coordinates.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/curvefit.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/enums.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/exceptions.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/fits.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/focusseries/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/focusseries/base.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/focusseries/photometry.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/focusseries/projection.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/grids/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/grids/filters.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/grids/grid.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/grids/gridnode.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/grids/pipeline.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/gui/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/gui/camera/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/gui/camera/binningwidget.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/gui/camera/datadisplaywidget.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/gui/camera/exposewidget.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/gui/camera/exposuretimewidget.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/gui/camera/imageformatwidget.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/gui/camera/listpickerdialog.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/gui/camera/windowingwidget.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/http.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/influxdb.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/logger.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/logging/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/logging/context.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/logging/resolvableerror.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/modulegui.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/offsets/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/offsets/applyaltazoffsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/offsets/applyoffsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/offsets/applyradecoffsets.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/parallel.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/pipeline/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/pipeline/night.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/pipeline/pipeline.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/publisher/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/publisher/csv.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/publisher/http.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/publisher/log.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/publisher/multi.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/publisher/publisher.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/serialization.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/shellcommand.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/threads/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/threads/lockwithabort.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/time.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/utils/units.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/version.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/archivefile.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/bufferedfile.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/file.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/filelists/__init__.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/filelists/filelist.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/filelists/testing.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/httpfile.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/localfile.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/memfile.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/sftpfile.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/smbfile.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/sshfile.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/tempfile.py +0 -0
- {pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/vfs/vfs.py +0 -0
|
@@ -133,16 +133,14 @@ class Comm:
|
|
|
133
133
|
except IndexError:
|
|
134
134
|
return None
|
|
135
135
|
|
|
136
|
-
#
|
|
137
|
-
|
|
136
|
+
# create new proxy
|
|
137
|
+
proxy = Proxy(self, client, interfaces)
|
|
138
|
+
|
|
139
|
+
# fetch capabilities in the background, so a peer that isn't fully up yet doesn't block
|
|
140
|
+
# proxy construction -- Proxy.wait_for_capabilities() can be used to wait for the result
|
|
138
141
|
for interface in interfaces:
|
|
139
142
|
if interface.capabilities is not None:
|
|
140
|
-
|
|
141
|
-
if cap is not None:
|
|
142
|
-
capabilities[interface] = cap
|
|
143
|
-
|
|
144
|
-
# create new proxy
|
|
145
|
-
proxy = Proxy(self, client, interfaces, capabilities)
|
|
143
|
+
asyncio.create_task(self._fetch_and_update_capabilities(client, interface, proxy))
|
|
146
144
|
|
|
147
145
|
# subscribe to state
|
|
148
146
|
for interface in interfaces:
|
|
@@ -151,9 +149,14 @@ class Comm:
|
|
|
151
149
|
|
|
152
150
|
self._proxies[client] = proxy
|
|
153
151
|
|
|
154
|
-
# return proxy
|
|
155
152
|
return self._proxies[client]
|
|
156
153
|
|
|
154
|
+
async def _fetch_and_update_capabilities(self, client: str, interface: type[Interface], proxy: Proxy) -> None:
|
|
155
|
+
"""Fetch capabilities for a single interface and push them into the given proxy once available."""
|
|
156
|
+
cap = await self._get_capabilities(client, interface)
|
|
157
|
+
if cap is not None:
|
|
158
|
+
proxy.update_capabilities(interface, cap)
|
|
159
|
+
|
|
157
160
|
async def _resolve_proxy(
|
|
158
161
|
self, name_or_object: str | object, obj_type: type[ProxyType] | None = None
|
|
159
162
|
) -> Any | ProxyType:
|
|
@@ -62,6 +62,7 @@ class Proxy:
|
|
|
62
62
|
# store state and capabilities
|
|
63
63
|
self._state: dict[type[Interface], Any] = {}
|
|
64
64
|
self._capabilities: dict[type[Interface], Any] = capabilities if capabilities is not None else {}
|
|
65
|
+
self._capabilities_events: dict[type[Interface], asyncio.Event] = {}
|
|
65
66
|
|
|
66
67
|
@property
|
|
67
68
|
def name(self) -> str:
|
|
@@ -175,8 +176,18 @@ class Proxy:
|
|
|
175
176
|
"""Latest known state for the given interface, or None if nothing has arrived yet."""
|
|
176
177
|
return self._state.get(interface)
|
|
177
178
|
|
|
179
|
+
def update_capabilities(self, interface: type[Interface], capabilities: Any) -> None:
|
|
180
|
+
"""Called by Comm once capabilities for an interface arrive.
|
|
181
|
+
|
|
182
|
+
Not intended to be called directly by module code.
|
|
183
|
+
"""
|
|
184
|
+
self._capabilities[interface] = capabilities
|
|
185
|
+
event = self._capabilities_events.get(interface)
|
|
186
|
+
if event is not None:
|
|
187
|
+
event.set()
|
|
188
|
+
|
|
178
189
|
def get_capabilities(self, interface: type[Interface]) -> Any | None:
|
|
179
|
-
"""Capabilities for the given interface,
|
|
190
|
+
"""Capabilities for the given interface, or None if not (yet) fetched."""
|
|
180
191
|
return self._capabilities.get(interface)
|
|
181
192
|
|
|
182
193
|
async def wait_for_state(
|
|
@@ -203,6 +214,23 @@ class Proxy:
|
|
|
203
214
|
|
|
204
215
|
return self._state.get(interface)
|
|
205
216
|
|
|
217
|
+
async def wait_for_capabilities(
|
|
218
|
+
self,
|
|
219
|
+
interface: type[Interface],
|
|
220
|
+
timeout: float = 10.0,
|
|
221
|
+
) -> Any | None:
|
|
222
|
+
"""Return capabilities immediately if available, otherwise wait for the background fetch to complete."""
|
|
223
|
+
if self._capabilities.get(interface) is not None:
|
|
224
|
+
return self._capabilities[interface]
|
|
225
|
+
|
|
226
|
+
event = self._capabilities_events.setdefault(interface, asyncio.Event())
|
|
227
|
+
try:
|
|
228
|
+
await asyncio.wait_for(event.wait(), timeout=timeout)
|
|
229
|
+
except TimeoutError:
|
|
230
|
+
pass
|
|
231
|
+
|
|
232
|
+
return self._capabilities.get(interface)
|
|
233
|
+
|
|
206
234
|
|
|
207
235
|
class _ProxyContext(Generic[ProxyType]):
|
|
208
236
|
"""Returned by Comm.proxy() / Object.proxy() / Comm.safe_proxy(). Must be used as:
|
|
@@ -48,7 +48,7 @@ class XmppClient(slixmpp.ClientXMPP):
|
|
|
48
48
|
self.register_plugin("xep_0199") # XMPP Ping
|
|
49
49
|
|
|
50
50
|
# enable keep alive pings
|
|
51
|
-
self["xep_0199"].enable_keepalive()
|
|
51
|
+
self.plugin["xep_0199"].enable_keepalive()
|
|
52
52
|
|
|
53
53
|
# handle session_start and message events
|
|
54
54
|
self.add_event_handler("session_start", self.session_start)
|
|
@@ -909,20 +909,34 @@ class XmppComm(Comm):
|
|
|
909
909
|
return self._capabilities.get(interface)
|
|
910
910
|
|
|
911
911
|
async def _get_capabilities(self, module: str, interface: type[Interface]) -> Any | None:
|
|
912
|
-
"""Fetch and deserialize capabilities for a remote module's interface.
|
|
912
|
+
"""Fetch and deserialize capabilities for a remote module's interface.
|
|
913
|
+
|
|
914
|
+
Retries a few times, since this may run right as the peer is still starting up and hasn't
|
|
915
|
+
published its capabilities yet.
|
|
916
|
+
"""
|
|
913
917
|
if interface.capabilities is None:
|
|
914
918
|
return None
|
|
915
|
-
# Use full JID (with resource) if we know it — bare JID may not route correctly
|
|
916
|
-
full_jid = next(
|
|
917
|
-
(jid for jid in self._online_clients if jid.startswith(f"{module}@")),
|
|
918
|
-
f"{module}@{self._domain}",
|
|
919
|
-
)
|
|
920
|
-
jid = full_jid
|
|
921
919
|
ns = f"urn:pyobs:capabilities:{interface.__name__}:{interface.version}"
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
920
|
+
|
|
921
|
+
result = None
|
|
922
|
+
last_error: BaseException | None = None
|
|
923
|
+
for attempt in range(3):
|
|
924
|
+
# Use full JID (with resource) if we know it — bare JID may not route correctly
|
|
925
|
+
full_jid = next(
|
|
926
|
+
(jid for jid in self._online_clients if jid.startswith(f"{module}@")),
|
|
927
|
+
f"{module}@{self._domain}",
|
|
928
|
+
)
|
|
929
|
+
try:
|
|
930
|
+
result = await asyncio.wait_for(
|
|
931
|
+
self.client.plugin["xep_0030"].get_info(jid=JID(full_jid)), timeout=10.0
|
|
932
|
+
)
|
|
933
|
+
break
|
|
934
|
+
except (TimeoutError, Exception) as e:
|
|
935
|
+
last_error = e
|
|
936
|
+
if attempt < 2:
|
|
937
|
+
await asyncio.sleep(2)
|
|
938
|
+
else:
|
|
939
|
+
log.warning("Failed to get capabilities for %s from %s: %s", interface.__name__, module, last_error)
|
|
926
940
|
return None
|
|
927
941
|
log.debug("get_capabilities disco result XML: %s", ET.tostring(result.xml).decode()[:500])
|
|
928
942
|
# result.xml is the <iq> — the <query> is its child, capabilities are grandchildren
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.dev23 → pyobs_core-2.0.0.dev24}/pyobs/comm/xmpp/xep_0009_timeout/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/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
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/_daobackgroundremover.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/annotation/__init__.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/annotation/_pillow.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/annotation/circle.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/annotation/crosshair.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/annotation/text.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/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.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/astrometry/astrometry.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/astrometry/dotnet.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/calibration/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/calibration/calibration.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/detection/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/detection/daophot.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/detection/pysep.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/detection/simpledisk.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/exptime/__init__.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/exptime/exptime.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/addfitsheaders.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/grayscale.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/httpserver.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/image/normalize.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/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.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/misc/circularmask.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/misc/createfilename.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/misc/imagesourcefilter.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/misc/removebackground.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/modules/__init__.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/modules/getfitsheaders.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/__init__.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/astrometry.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/brighteststar.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/dummyoffsets.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/dummyskyoffsets.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/fitsheader.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/offsets.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/pixeloffsets.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/projected.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/offsets/spilled_light.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/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.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/photometry/photometry.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/images/processors/photometry/photutil.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/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.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IPointingHeliocentricPolar.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IPointingHelioprojective.py
RENAMED
|
File without changes
|
{pyobs_core-2.0.0.dev23 → pyobs_core-2.0.0.dev24}/pyobs/interfaces/IPointingOrbitalElements.py
RENAMED
|
File without changes
|