arcsecond 3.19.0__tar.gz → 3.20.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {arcsecond-3.19.0 → arcsecond-3.20.0}/PKG-INFO +1 -1
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/docker/docker-compose.yml +8 -11
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/local.py +4 -3
- {arcsecond-3.19.0 → arcsecond-3.20.0}/pyproject.toml +1 -1
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_imagesources_detection.py +1 -2
- {arcsecond-3.19.0 → arcsecond-3.20.0}/uv.lock +1 -1
- {arcsecond-3.19.0 → arcsecond-3.20.0}/.docker/Dockerfile_postgres +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/.docker/Dockerfile_redis +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/.flake8 +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/.github/dependabot.yml +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/.github/workflows/pythonpublish.yml +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/.github/workflows/tests.yml +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/.gitignore +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/LICENSE +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/Makefile +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/README.md +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/__version__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/alpaca/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/alpaca/commands.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/alpaca/dome_probe.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/api/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/api/config.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/api/constants.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/api/endpoint.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/api/main.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/api/resources.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cli.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/auth.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/resources.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/constants.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/context.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/datafiles/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/datafiles/context.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/datafiles/errors.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/datafiles/uploader.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/datafiles/utils.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/errors.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/logger.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/uploader.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/utils.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploader/walker.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/cloud/uploads.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/errors.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/backups.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/checks.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/constants.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/database.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/docker/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/docker/constants.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/docker/containers.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/docker/images.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/docker/utils.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/keygen/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/keygen/client.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/keygen/utils.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/main.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/postgres/init-db.sh +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/setup.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/utils.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/hosting/validation.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/commands.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/detection.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/proxy.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/registry.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/runtime.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/sources/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/sources/base.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/sources/filewatch.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/sources/mdns.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/sources/network.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/sources/opencv.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/imagesources/store.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/options.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/arcsecond/targets.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/examples/example_upload_files.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/requirements.txt +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/setup.cfg +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/setup.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/sonar-project.properties +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/api/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/api/test_api.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/api/test_api_endpoint.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/api/test_config.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/api/test_targets.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/cloud/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/cloud/uploader/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/cloud/uploader/datafiles/__init__.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/cloud/uploader/datafiles/test_uploader_errors.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/cloud/uploader/datafiles/test_uploader_full_process.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/cloud/uploader/datafiles/test_uploader_init.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/cloud/uploader/datafiles/test_uploader_prepare.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/cloud/uploader/datafiles/test_uploader_upload.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/conftest.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/fixtures/file1.fits +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_alpaca_probe.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_cli.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_hosting_backups_restore.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_hosting_database.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_hosting_local.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_hosting_utils_secret_key.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_imagesources_commands.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_imagesources_mdns.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_imagesources_network.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_imagesources_proxy.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_imagesources_store.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_imagesources_webcam.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/test_targets_planning.py +0 -0
- {arcsecond-3.19.0 → arcsecond-3.20.0}/tests/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# === Arcsecond.local config. ===
|
|
2
2
|
# *** DO NOT change any name or port number. ***
|
|
3
|
-
# Version 6.
|
|
3
|
+
# Version 6.4
|
|
4
4
|
|
|
5
5
|
services:
|
|
6
6
|
# Database (PostgresQL)
|
|
@@ -8,12 +8,11 @@ services:
|
|
|
8
8
|
image: postgres:16
|
|
9
9
|
container_name: arcsecond-db
|
|
10
10
|
restart: unless-stopped
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
- "127.0.0.1:5432:5432"
|
|
11
|
+
# No host port. The backend reaches the DB over the internal Docker
|
|
12
|
+
# network (hostname `arcsecond-db`), and every CLI command that needs
|
|
13
|
+
# the DB (backups, restore, password rotation) goes through `docker exec`
|
|
14
|
+
# into this container. Publishing 5432 on the host bought nothing and
|
|
15
|
+
# failed the whole stack whenever another Postgres already held it.
|
|
17
16
|
volumes:
|
|
18
17
|
- arcsecond_postgres_data:/var/lib/postgresql/data
|
|
19
18
|
env_file:
|
|
@@ -25,10 +24,8 @@ services:
|
|
|
25
24
|
image: redis:7.4
|
|
26
25
|
container_name: arcsecond-broker
|
|
27
26
|
restart: unless-stopped
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
ports:
|
|
31
|
-
- "127.0.0.1:6379:6379"
|
|
27
|
+
# No host port either: Redis with no auth must never be reachable from
|
|
28
|
+
# outside the stack, and the backend reaches it over the Docker network.
|
|
32
29
|
|
|
33
30
|
# Arcsecond backend (REST APIs). Can be used for API calls and external pipelines, scripts etc.
|
|
34
31
|
backend:
|
|
@@ -16,9 +16,10 @@ from .utils import (
|
|
|
16
16
|
|
|
17
17
|
ENV_FILENAME = ".env"
|
|
18
18
|
|
|
19
|
-
# Stable across installs —
|
|
20
|
-
#
|
|
21
|
-
# (generated per-install) and the
|
|
19
|
+
# Stable across installs — it is the username every `docker exec ... psql`
|
|
20
|
+
# in this package and in the docs uses. The actual security boundary is the
|
|
21
|
+
# password (generated per-install) and the fact that the database container
|
|
22
|
+
# publishes no host port at all.
|
|
22
23
|
POSTGRES_USER = "arcsecond_docker"
|
|
23
24
|
POSTGRES_DB = "arcsecond_docker"
|
|
24
25
|
|
|
@@ -6,6 +6,7 @@ buckets is asserted on its own, because the old command printed detection and
|
|
|
6
6
|
registration one after the other with no way to tell which was which.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
from contextlib import nullcontext
|
|
9
10
|
from unittest.mock import patch
|
|
10
11
|
|
|
11
12
|
import pytest
|
|
@@ -139,8 +140,6 @@ def _unresolvable(monkeypatch, answering=()):
|
|
|
139
140
|
"""Make the machine's resolver fail, except for addresses in ``answering``."""
|
|
140
141
|
import socket as socket_module
|
|
141
142
|
|
|
142
|
-
from contextlib import nullcontext
|
|
143
|
-
|
|
144
143
|
def connect(endpoint, timeout=None):
|
|
145
144
|
host, _ = endpoint
|
|
146
145
|
if host in answering:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.19.0 → arcsecond-3.20.0}/tests/cloud/uploader/datafiles/test_uploader_errors.py
RENAMED
|
File without changes
|
{arcsecond-3.19.0 → arcsecond-3.20.0}/tests/cloud/uploader/datafiles/test_uploader_full_process.py
RENAMED
|
File without changes
|
|
File without changes
|
{arcsecond-3.19.0 → arcsecond-3.20.0}/tests/cloud/uploader/datafiles/test_uploader_prepare.py
RENAMED
|
File without changes
|
{arcsecond-3.19.0 → arcsecond-3.20.0}/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
|
|
File without changes
|