arcsecond 3.18.0__tar.gz → 3.18.1__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.
- {arcsecond-3.18.0 → arcsecond-3.18.1}/PKG-INFO +1 -1
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/sources/filewatch.py +13 -2
- {arcsecond-3.18.0 → arcsecond-3.18.1}/pyproject.toml +1 -1
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_imagesources_detection.py +29 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/uv.lock +1 -1
- {arcsecond-3.18.0 → arcsecond-3.18.1}/.docker/Dockerfile_postgres +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/.docker/Dockerfile_redis +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/.flake8 +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/.github/dependabot.yml +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/.github/workflows/pythonpublish.yml +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/.github/workflows/tests.yml +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/.gitignore +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/LICENSE +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/Makefile +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/README.md +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/__version__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/alpaca/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/alpaca/commands.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/alpaca/dome_probe.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/api/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/api/config.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/api/constants.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/api/endpoint.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/api/main.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/api/resources.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cli.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/auth.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/resources.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/constants.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/context.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/datafiles/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/datafiles/context.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/datafiles/errors.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/datafiles/uploader.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/datafiles/utils.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/errors.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/logger.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/uploader.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/utils.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploader/walker.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/cloud/uploads.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/errors.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/backups.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/checks.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/constants.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/database.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/docker/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/docker/constants.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/docker/containers.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/docker/docker-compose.yml +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/docker/images.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/docker/utils.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/keygen/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/keygen/client.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/keygen/utils.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/local.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/main.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/postgres/init-db.sh +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/setup.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/utils.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/hosting/validation.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/commands.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/detection.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/proxy.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/registry.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/runtime.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/sources/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/sources/base.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/sources/network.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/sources/opencv.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/imagesources/store.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/options.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/arcsecond/targets.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/examples/example_upload_files.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/requirements.txt +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/setup.cfg +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/setup.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/sonar-project.properties +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/api/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/api/test_api.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/api/test_api_endpoint.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/api/test_config.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/api/test_targets.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/uploader/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/uploader/datafiles/__init__.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/uploader/datafiles/test_uploader_errors.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/uploader/datafiles/test_uploader_full_process.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/uploader/datafiles/test_uploader_init.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/uploader/datafiles/test_uploader_prepare.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/uploader/datafiles/test_uploader_upload.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/conftest.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/fixtures/file1.fits +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_alpaca_probe.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_cli.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_hosting_backups_restore.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_hosting_database.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_hosting_local.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_hosting_utils_secret_key.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_imagesources_commands.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_imagesources_network.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_imagesources_proxy.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_imagesources_store.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_imagesources_webcam.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/test_targets_planning.py +0 -0
- {arcsecond-3.18.0 → arcsecond-3.18.1}/tests/utils.py +0 -0
|
@@ -21,10 +21,21 @@ logger = logging.getLogger(__name__)
|
|
|
21
21
|
_POLL_INTERVAL = 5.0 # seconds — image cadence is much slower; this is fine
|
|
22
22
|
|
|
23
23
|
# Common locations to probe at startup. First match wins per software.
|
|
24
|
+
#
|
|
25
|
+
# For Thomas Jacquin's allsky these are its own variables, resolved: since the
|
|
26
|
+
# 2023 rearrangement everything lives under ALLSKY_HOME (``~/allsky``), with
|
|
27
|
+
# ALLSKY_TMP at ``${ALLSKY_HOME}/tmp`` and the local website at
|
|
28
|
+
# ``${ALLSKY_HOME}/html/allsky``. Installs older than that kept the website in
|
|
29
|
+
# ``/var/www/html/allsky`` instead. Beware the ``/current/tmp/`` in the URL its
|
|
30
|
+
# web interface uses: that is a lighttpd alias for ALLSKY_TMP, not a directory,
|
|
31
|
+
# and pasting it in here as a path is how this list went stale before.
|
|
24
32
|
ALLSKY_DISCOVERY_PATHS: list[Path] = [
|
|
25
|
-
# Thomas Jacquin's allsky (https://github.com/AllskyTeam/allsky)
|
|
33
|
+
# Thomas Jacquin's allsky (https://github.com/AllskyTeam/allsky).
|
|
34
|
+
# ALLSKY_TMP first: the capture loop rewrites it every cycle, and it is
|
|
35
|
+
# there whether or not the local website is enabled.
|
|
26
36
|
Path.home() / "allsky" / "tmp" / "image.jpg",
|
|
27
|
-
Path("/
|
|
37
|
+
Path.home() / "allsky" / "html" / "allsky" / "image.jpg",
|
|
38
|
+
Path("/var/www/html/allsky/image.jpg"),
|
|
28
39
|
# indi-allsky (https://github.com/aaronwmorris/indi-allsky)
|
|
29
40
|
Path("/var/lib/indi-allsky/images/latest.jpg"),
|
|
30
41
|
Path.home() / "indi-allsky" / "latest.jpg",
|
|
@@ -227,6 +227,35 @@ def test_an_all_sky_address_is_never_looked_for_on_this_disk():
|
|
|
227
227
|
looked_at_disk.assert_not_called()
|
|
228
228
|
|
|
229
229
|
|
|
230
|
+
# ---------------------------------------------------------------------------
|
|
231
|
+
# Probing the well-known locations
|
|
232
|
+
# ---------------------------------------------------------------------------
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
def test_an_image_at_a_well_known_location_is_detected(tmp_path, monkeypatch):
|
|
236
|
+
from arcsecond.imagesources.sources import filewatch
|
|
237
|
+
|
|
238
|
+
image = tmp_path / "image.jpg"
|
|
239
|
+
image.write_bytes(b"x")
|
|
240
|
+
monkeypatch.setattr(filewatch, "ALLSKY_DISCOVERY_PATHS", [image])
|
|
241
|
+
|
|
242
|
+
(device,) = filewatch.detect_allsky()
|
|
243
|
+
assert device.identity == (ALLSKY, str(image))
|
|
244
|
+
assert device.extra["path"] == str(image)
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def test_a_well_known_location_with_nothing_at_it_is_not_reported(
|
|
248
|
+
tmp_path, monkeypatch
|
|
249
|
+
):
|
|
250
|
+
"""Probing reports what is there — an empty list is an answer, not a fault."""
|
|
251
|
+
from arcsecond.imagesources.sources import filewatch
|
|
252
|
+
|
|
253
|
+
monkeypatch.setattr(
|
|
254
|
+
filewatch, "ALLSKY_DISCOVERY_PATHS", [tmp_path / "nothing-here.jpg"]
|
|
255
|
+
)
|
|
256
|
+
assert filewatch.detect_allsky() == []
|
|
257
|
+
|
|
258
|
+
|
|
230
259
|
# ---------------------------------------------------------------------------
|
|
231
260
|
# Probing must never take the report down
|
|
232
261
|
# ---------------------------------------------------------------------------
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/uploader/datafiles/test_uploader_errors.py
RENAMED
|
File without changes
|
{arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/uploader/datafiles/test_uploader_full_process.py
RENAMED
|
File without changes
|
|
File without changes
|
{arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/uploader/datafiles/test_uploader_prepare.py
RENAMED
|
File without changes
|
{arcsecond-3.18.0 → arcsecond-3.18.1}/tests/cloud/uploader/datafiles/test_uploader_upload.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
|