edge-containers-cli 5.2.1__tar.gz → 5.3.0a3__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.
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.copier-answers.yml +2 -2
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/CONTRIBUTING.md +1 -1
- edge_containers_cli-5.3.0a3/.github/workflows/_docs.yml +55 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/workflows/ci.yml +7 -2
- edge_containers_cli-5.3.0a3/.github/workflows/periodic.yml +13 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/Dockerfile +3 -3
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/PKG-INFO +12 -4
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/README.md +10 -3
- edge_containers_cli-5.3.0a3/docs/_api.rst +16 -0
- edge_containers_cli-5.3.0a3/docs/_templates/custom-module-template.rst +37 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/docs/conf.py +25 -29
- edge_containers_cli-5.3.0a3/docs/explanations/decisions/0001-record-architecture-decisions.md +18 -0
- edge_containers_cli-5.3.0a3/docs/explanations/decisions/0002-switched-to-python-copier-template.md +28 -0
- edge_containers_cli-5.3.0a3/docs/explanations/decisions/COPYME +19 -0
- edge_containers_cli-5.3.0a3/docs/explanations/decisions.md +12 -0
- edge_containers_cli-5.3.0a3/docs/explanations.md +10 -0
- edge_containers_cli-5.3.0a3/docs/genindex.md +3 -0
- edge_containers_cli-5.3.0a3/docs/how-to/contribute.md +2 -0
- edge_containers_cli-5.3.0a3/docs/how-to/run-container.md +14 -0
- edge_containers_cli-5.3.0a3/docs/how-to.md +10 -0
- edge_containers_cli-5.3.0a3/docs/images/dls-logo.svg +11 -0
- edge_containers_cli-5.3.0a3/docs/index.md +56 -0
- edge_containers_cli-5.3.0a3/docs/reference/cli.md +258 -0
- edge_containers_cli-5.3.0a3/docs/reference/environment-variables.md +88 -0
- edge_containers_cli-5.3.0a3/docs/reference.md +13 -0
- edge_containers_cli-5.3.0a3/docs/tutorials/installation.md +42 -0
- edge_containers_cli-5.3.0a3/docs/tutorials.md +10 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/pyproject.toml +39 -2
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/renovate.json +2 -1
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/_version.py +3 -3
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/cmds/argo_commands.py +138 -48
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli.egg-info/PKG-INFO +12 -4
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli.egg-info/SOURCES.txt +21 -22
- edge_containers_cli-5.3.0a3/src/edge_containers_cli.egg-info/scm_file_list.json +102 -0
- edge_containers_cli-5.3.0a3/src/edge_containers_cli.egg-info/scm_version.json +8 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/argocd.yaml +2 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/uv.lock +516 -6
- edge_containers_cli-5.2.1/docs/developer/explanations/decisions/0001-record-architecture-decisions.rst +0 -26
- edge_containers_cli-5.2.1/docs/developer/explanations/decisions/0002-switched-to-pip-skeleton.rst +0 -35
- edge_containers_cli-5.2.1/docs/developer/explanations/decisions.rst +0 -17
- edge_containers_cli-5.2.1/docs/developer/how-to/build-docs.rst +0 -38
- edge_containers_cli-5.2.1/docs/developer/how-to/contribute.rst +0 -1
- edge_containers_cli-5.2.1/docs/developer/how-to/lint.rst +0 -39
- edge_containers_cli-5.2.1/docs/developer/how-to/make-release.rst +0 -16
- edge_containers_cli-5.2.1/docs/developer/how-to/pin-requirements.rst +0 -74
- edge_containers_cli-5.2.1/docs/developer/how-to/run-tests.rst +0 -12
- edge_containers_cli-5.2.1/docs/developer/how-to/static-analysis.rst +0 -8
- edge_containers_cli-5.2.1/docs/developer/how-to/test-container.rst +0 -25
- edge_containers_cli-5.2.1/docs/developer/how-to/update-tools.rst +0 -16
- edge_containers_cli-5.2.1/docs/developer/index.rst +0 -64
- edge_containers_cli-5.2.1/docs/developer/reference/standards.rst +0 -63
- edge_containers_cli-5.2.1/docs/developer/tutorials/dev-install.rst +0 -68
- edge_containers_cli-5.2.1/docs/genindex.rst +0 -5
- edge_containers_cli-5.2.1/docs/images/dls-logo.svg +0 -11
- edge_containers_cli-5.2.1/docs/index.rst +0 -29
- edge_containers_cli-5.2.1/docs/user/explanations/docs-structure.rst +0 -18
- edge_containers_cli-5.2.1/docs/user/how-to/run-container.rst +0 -15
- edge_containers_cli-5.2.1/docs/user/index.rst +0 -57
- edge_containers_cli-5.2.1/docs/user/reference/api.rst +0 -14
- edge_containers_cli-5.2.1/docs/user/tutorials/installation.rst +0 -38
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.devcontainer/devcontainer.json +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.dockerignore +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/ISSUE_TEMPLATE/issue.md +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/pages/index.html +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/pages/make_switcher.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/workflows/_container.yml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/workflows/_dist.yml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/workflows/_pypi.yml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/workflows/_release.yml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/workflows/_test.yml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.github/workflows/_tox.yml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.gitignore +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.gitleaks.toml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.pre-commit-config.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.python-version +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.vscode/extensions.json +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.vscode/launch.json +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.vscode/settings.json +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/.vscode/tasks.json +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/LICENSE +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/docs/images/dls-favicon.ico +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/docs/images/ec-logs.png +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/docs/images/ec-web.png +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/setup.cfg +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/__init__.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/__main__.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/autocomplete.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/backend.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/cli.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/cmds/__init__.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/cmds/commands.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/cmds/demo_commands.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/cmds/helm.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/cmds/k8s_commands.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/cmds/monitor.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/cmds/monitor.tcss +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/definitions.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/git.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/globals.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/logging.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/shell.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli/utils.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli.egg-info/dependency_links.txt +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli.egg-info/entry_points.txt +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli.egg-info/requires.txt +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/src/edge_containers_cli.egg-info/top_level.txt +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/__init__.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/conftest.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-deployment/apps/values.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/bl01t-ea-test-01/Chart.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/bl01t-ea-test-01/config/ioc.db +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/bl01t-ea-test-01/config/ioc.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/bl01t-ea-test-01/templates/configmap.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/bl01t-ea-test-01/values.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/bl01t-ea-test-02/Chart.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/bl01t-ea-test-02/values.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/dls-aravis/Chart.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/dls-aravis/config/ioc.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/dls-aravis/templates/configmap.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/dls-aravis/values.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/bl01t-services/services/values.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/cli.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/k8s.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/data/yaml.yaml +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/test_argocd.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/test_cli.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/test_demo.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/test_k8s.py +0 -0
- {edge_containers_cli-5.2.1 → edge_containers_cli-5.3.0a3}/tests/test_unit.py +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Changes here will be overwritten by Copier
|
|
2
|
-
_commit: 5.0
|
|
2
|
+
_commit: 5.2.0
|
|
3
3
|
_src_path: gh:DiamondLightSource/python-copier-template
|
|
4
4
|
author_email: giles.knap@gmail.com
|
|
5
5
|
author_name: Giles Knap
|
|
@@ -7,7 +7,7 @@ description: CLI for deploying and managing epics containers IOCs and services
|
|
|
7
7
|
distribution_name: edge-containers-cli
|
|
8
8
|
docker: true
|
|
9
9
|
docker_debug: false
|
|
10
|
-
docs_type:
|
|
10
|
+
docs_type: sphinx
|
|
11
11
|
git_platform: github.com
|
|
12
12
|
github_org: epics-containers
|
|
13
13
|
package_name: edge_containers_cli
|
|
@@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua
|
|
|
24
24
|
|
|
25
25
|
This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects.
|
|
26
26
|
|
|
27
|
-
For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/5.0
|
|
27
|
+
For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/5.2.0/how-to.html).
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
on:
|
|
2
|
+
workflow_call:
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
|
|
9
|
+
steps:
|
|
10
|
+
- name: Avoid git conflicts when tag and branch pushed at same time
|
|
11
|
+
if: github.ref_type == 'tag'
|
|
12
|
+
run: sleep 60
|
|
13
|
+
|
|
14
|
+
- name: Checkout
|
|
15
|
+
uses: actions/checkout@v5
|
|
16
|
+
with:
|
|
17
|
+
# Need this to get version number from last tag
|
|
18
|
+
fetch-depth: 0
|
|
19
|
+
|
|
20
|
+
- name: Install system packages
|
|
21
|
+
run: sudo apt-get install graphviz
|
|
22
|
+
|
|
23
|
+
- name: Install uv
|
|
24
|
+
uses: astral-sh/setup-uv@v7
|
|
25
|
+
|
|
26
|
+
- name: Build docs
|
|
27
|
+
run: uv run --locked tox -e docs
|
|
28
|
+
|
|
29
|
+
- name: Remove environment.pickle
|
|
30
|
+
run: rm build/html/.doctrees/environment.pickle
|
|
31
|
+
|
|
32
|
+
- name: Upload built docs artifact
|
|
33
|
+
uses: actions/upload-artifact@v4
|
|
34
|
+
with:
|
|
35
|
+
name: docs
|
|
36
|
+
path: build
|
|
37
|
+
|
|
38
|
+
- name: Sanitize ref name for docs version
|
|
39
|
+
run: echo "DOCS_VERSION=${GITHUB_REF_NAME//[^A-Za-z0-9._-]/_}" >> $GITHUB_ENV
|
|
40
|
+
|
|
41
|
+
- name: Move to versioned directory
|
|
42
|
+
run: mv build/html .github/pages/$DOCS_VERSION
|
|
43
|
+
|
|
44
|
+
- name: Write switcher.json
|
|
45
|
+
run: python .github/pages/make_switcher.py --add $DOCS_VERSION ${{ github.repository }} .github/pages/switcher.json
|
|
46
|
+
|
|
47
|
+
- name: Publish Docs to gh-pages
|
|
48
|
+
if: github.ref_type == 'tag' || github.ref_name == 'main'
|
|
49
|
+
# We pin to the SHA, not the tag, for security reasons.
|
|
50
|
+
# https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
|
|
51
|
+
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0
|
|
52
|
+
with:
|
|
53
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
54
|
+
publish_dir: .github/pages
|
|
55
|
+
keep_files: true
|
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
strategy:
|
|
20
20
|
matrix:
|
|
21
21
|
runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest
|
|
22
|
-
python-version: ["3.11", "3.12", "3.13"]
|
|
22
|
+
python-version: ["3.11", "3.12", "3.13", "3.14"]
|
|
23
23
|
fail-fast: false
|
|
24
24
|
uses: ./.github/workflows/_test.yml
|
|
25
25
|
with:
|
|
@@ -36,6 +36,11 @@ jobs:
|
|
|
36
36
|
contents: read
|
|
37
37
|
packages: write
|
|
38
38
|
|
|
39
|
+
docs:
|
|
40
|
+
uses: ./.github/workflows/_docs.yml
|
|
41
|
+
permissions:
|
|
42
|
+
contents: write
|
|
43
|
+
|
|
39
44
|
dist:
|
|
40
45
|
uses: ./.github/workflows/_dist.yml
|
|
41
46
|
|
|
@@ -47,7 +52,7 @@ jobs:
|
|
|
47
52
|
id-token: write
|
|
48
53
|
|
|
49
54
|
release:
|
|
50
|
-
needs: [dist, test]
|
|
55
|
+
needs: [dist, test, docs]
|
|
51
56
|
if: github.ref_type == 'tag'
|
|
52
57
|
uses: ./.github/workflows/_release.yml
|
|
53
58
|
permissions:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# The devcontainer should use the developer target and run as root with podman
|
|
2
2
|
# or docker with user namespaces.
|
|
3
|
-
FROM ghcr.io/diamondlightsource/ubuntu-devcontainer:
|
|
3
|
+
FROM ghcr.io/diamondlightsource/ubuntu-devcontainer:resolute AS developer
|
|
4
4
|
|
|
5
5
|
# Add any system dependencies for the developer/build environment here
|
|
6
6
|
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
|
@@ -21,11 +21,11 @@ ENV UV_PYTHON_INSTALL_DIR=/python
|
|
|
21
21
|
|
|
22
22
|
# Sync the project without its dev dependencies
|
|
23
23
|
RUN --mount=type=cache,target=/root/.cache/uv \
|
|
24
|
-
uv sync --locked --no-editable --no-dev
|
|
24
|
+
uv sync --locked --no-editable --no-dev --managed-python
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# The runtime stage copies the built venv into a runtime container
|
|
28
|
-
FROM ubuntu:
|
|
28
|
+
FROM ubuntu:resolute AS runtime
|
|
29
29
|
|
|
30
30
|
# Add apt-get system dependecies for runtime here if needed
|
|
31
31
|
# RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: edge-containers-cli
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.3.0a3
|
|
4
4
|
Summary: CLI for deploying and managing epics containers IOCs and services
|
|
5
5
|
Author-email: Giles Knap <giles.knap@gmail.com>
|
|
6
6
|
License: Apache License
|
|
@@ -211,6 +211,7 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
211
211
|
Classifier: Programming Language :: Python :: 3.11
|
|
212
212
|
Classifier: Programming Language :: Python :: 3.12
|
|
213
213
|
Classifier: Programming Language :: Python :: 3.13
|
|
214
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
214
215
|
Requires-Python: >=3.11
|
|
215
216
|
Description-Content-Type: text/markdown
|
|
216
217
|
License-File: LICENSE
|
|
@@ -242,9 +243,12 @@ For detailed documentation on the framework that this supports see:
|
|
|
242
243
|
https://epics-containers.github.io/
|
|
243
244
|
|
|
244
245
|
|
|
245
|
-
|
|
246
|
+
What | Where
|
|
246
247
|
:---: | :---:
|
|
248
|
+
Source | <https://github.com/epics-containers/edge-containers-cli>
|
|
247
249
|
PyPI | `pip install edge-containers-cli`
|
|
250
|
+
Docker | `docker run ghcr.io/epics-containers/edge-containers-cli:latest`
|
|
251
|
+
Documentation | <https://epics-containers.github.io/edge-containers-cli>
|
|
248
252
|
Releases | <https://github.com/epics-containers/edge-containers-cli/releases>
|
|
249
253
|
|
|
250
254
|
|
|
@@ -265,8 +269,12 @@ To demo the TUI as a web application:
|
|
|
265
269
|
|
|
266
270
|
Dashboard:
|
|
267
271
|
|
|
268
|
-

|
|
272
|
+

|
|
269
273
|
|
|
270
274
|
IOC logs:
|
|
271
275
|
|
|
272
|
-

|
|
276
|
+

|
|
277
|
+
|
|
278
|
+
<!-- README only content. Anything below this line won't be included in index.md -->
|
|
279
|
+
|
|
280
|
+
See https://epics-containers.github.io/edge-containers-cli for more detailed documentation.
|
|
@@ -16,9 +16,12 @@ For detailed documentation on the framework that this supports see:
|
|
|
16
16
|
https://epics-containers.github.io/
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
What | Where
|
|
20
20
|
:---: | :---:
|
|
21
|
+
Source | <https://github.com/epics-containers/edge-containers-cli>
|
|
21
22
|
PyPI | `pip install edge-containers-cli`
|
|
23
|
+
Docker | `docker run ghcr.io/epics-containers/edge-containers-cli:latest`
|
|
24
|
+
Documentation | <https://epics-containers.github.io/edge-containers-cli>
|
|
22
25
|
Releases | <https://github.com/epics-containers/edge-containers-cli/releases>
|
|
23
26
|
|
|
24
27
|
|
|
@@ -39,8 +42,12 @@ To demo the TUI as a web application:
|
|
|
39
42
|
|
|
40
43
|
Dashboard:
|
|
41
44
|
|
|
42
|
-

|
|
45
|
+

|
|
43
46
|
|
|
44
47
|
IOC logs:
|
|
45
48
|
|
|
46
|
-

|
|
49
|
+

|
|
50
|
+
|
|
51
|
+
<!-- README only content. Anything below this line won't be included in index.md -->
|
|
52
|
+
|
|
53
|
+
See https://epics-containers.github.io/edge-containers-cli for more detailed documentation.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
:orphan:
|
|
2
|
+
|
|
3
|
+
..
|
|
4
|
+
This page is not included in the TOC tree, but must exist so that the
|
|
5
|
+
autosummary pages are generated for edge_containers_cli and all its
|
|
6
|
+
subpackages
|
|
7
|
+
|
|
8
|
+
API
|
|
9
|
+
===
|
|
10
|
+
|
|
11
|
+
.. autosummary::
|
|
12
|
+
:toctree: _api
|
|
13
|
+
:template: custom-module-template.rst
|
|
14
|
+
:recursive:
|
|
15
|
+
|
|
16
|
+
edge_containers_cli
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{{ ('``' + fullname + '``') | underline }}
|
|
2
|
+
|
|
3
|
+
{%- set filtered_members = [] %}
|
|
4
|
+
{%- for item in members %}
|
|
5
|
+
{%- if item in functions + classes + exceptions + attributes %}
|
|
6
|
+
{% set _ = filtered_members.append(item) %}
|
|
7
|
+
{%- endif %}
|
|
8
|
+
{%- endfor %}
|
|
9
|
+
|
|
10
|
+
.. automodule:: {{ fullname }}
|
|
11
|
+
:members:
|
|
12
|
+
|
|
13
|
+
{% block modules %}
|
|
14
|
+
{% if modules %}
|
|
15
|
+
.. rubric:: Submodules
|
|
16
|
+
|
|
17
|
+
.. autosummary::
|
|
18
|
+
:toctree:
|
|
19
|
+
:template: custom-module-template.rst
|
|
20
|
+
:recursive:
|
|
21
|
+
{% for item in modules %}
|
|
22
|
+
{{ item }}
|
|
23
|
+
{%- endfor %}
|
|
24
|
+
{% endif %}
|
|
25
|
+
{% endblock %}
|
|
26
|
+
|
|
27
|
+
{% block members %}
|
|
28
|
+
{% if filtered_members %}
|
|
29
|
+
.. rubric:: Members
|
|
30
|
+
|
|
31
|
+
.. autosummary::
|
|
32
|
+
:nosignatures:
|
|
33
|
+
{% for item in filtered_members %}
|
|
34
|
+
{{ item }}
|
|
35
|
+
{%- endfor %}
|
|
36
|
+
{% endif %}
|
|
37
|
+
{% endblock %}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"""Configuration file for the Sphinx documentation builder.
|
|
2
|
+
|
|
3
|
+
This file only contains a selection of the most common options. For a full
|
|
4
|
+
list see the documentation:
|
|
5
|
+
https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
6
|
+
"""
|
|
6
7
|
|
|
7
8
|
import sys
|
|
8
9
|
from pathlib import Path
|
|
@@ -32,6 +33,8 @@ else:
|
|
|
32
33
|
extensions = [
|
|
33
34
|
# Use this for generating API docs
|
|
34
35
|
"sphinx.ext.autodoc",
|
|
36
|
+
# and making summary tables at the top of API docs
|
|
37
|
+
"sphinx.ext.autosummary",
|
|
35
38
|
# This can parse google style docstrings
|
|
36
39
|
"sphinx.ext.napoleon",
|
|
37
40
|
# For linking to external sphinx documentation
|
|
@@ -44,8 +47,13 @@ extensions = [
|
|
|
44
47
|
"sphinx_copybutton",
|
|
45
48
|
# For the card element
|
|
46
49
|
"sphinx_design",
|
|
50
|
+
# So we can write markdown files
|
|
51
|
+
"myst_parser",
|
|
47
52
|
]
|
|
48
53
|
|
|
54
|
+
# So we can use the ::: syntax
|
|
55
|
+
myst_enable_extensions = ["colon_fence"]
|
|
56
|
+
|
|
49
57
|
# If true, Sphinx will warn about all references where the target cannot
|
|
50
58
|
# be found.
|
|
51
59
|
nitpicky = True
|
|
@@ -75,6 +83,12 @@ autodoc_member_order = "bysource"
|
|
|
75
83
|
# Don't inherit docstrings from baseclasses
|
|
76
84
|
autodoc_inherit_docstrings = False
|
|
77
85
|
|
|
86
|
+
# Document only what is in __all__
|
|
87
|
+
autosummary_ignore_module_all = False
|
|
88
|
+
|
|
89
|
+
# Add any paths that contain templates here, relative to this directory.
|
|
90
|
+
templates_path = ["_templates"]
|
|
91
|
+
|
|
78
92
|
# Output graphviz directive produced images in a scalable format
|
|
79
93
|
graphviz_output_format = "svg"
|
|
80
94
|
|
|
@@ -82,9 +96,6 @@ graphviz_output_format = "svg"
|
|
|
82
96
|
# role, that is, for text marked up `like this`
|
|
83
97
|
default_role = "any"
|
|
84
98
|
|
|
85
|
-
# The suffix of source filenames.
|
|
86
|
-
source_suffix = ".rst"
|
|
87
|
-
|
|
88
99
|
# The master toctree document.
|
|
89
100
|
master_doc = "index"
|
|
90
101
|
|
|
@@ -103,15 +114,6 @@ intersphinx_mapping = {"python": ("https://docs.python.org/3/", None)}
|
|
|
103
114
|
# A dictionary of graphviz graph attributes for inheritance diagrams.
|
|
104
115
|
inheritance_graph_attrs = {"rankdir": "TB"}
|
|
105
116
|
|
|
106
|
-
# Common links that should be available on every page
|
|
107
|
-
rst_epilog = """
|
|
108
|
-
.. _Diamond Light Source: http://www.diamond.ac.uk
|
|
109
|
-
.. _black: https://github.com/psf/black
|
|
110
|
-
.. _ruff: https://beta.ruff.rs/docs/
|
|
111
|
-
.. _mypy: http://mypy-lang.org/
|
|
112
|
-
.. _pre-commit: https://pre-commit.com/
|
|
113
|
-
"""
|
|
114
|
-
|
|
115
117
|
# Ignore localhost links for periodic check that links in docs are valid
|
|
116
118
|
linkcheck_ignore = [r"http://localhost:\d+/"]
|
|
117
119
|
|
|
@@ -126,7 +128,7 @@ copybutton_prompt_is_regexp = True
|
|
|
126
128
|
# a list of builtin themes.
|
|
127
129
|
#
|
|
128
130
|
html_theme = "pydata_sphinx_theme"
|
|
129
|
-
github_repo =
|
|
131
|
+
github_repo = "edge-containers-cli"
|
|
130
132
|
github_user = "epics-containers"
|
|
131
133
|
switcher_json = f"https://{github_user}.github.io/{github_repo}/switcher.json"
|
|
132
134
|
switcher_exists = requests.get(switcher_json).ok
|
|
@@ -142,10 +144,10 @@ if not switcher_exists:
|
|
|
142
144
|
# Theme options for pydata_sphinx_theme
|
|
143
145
|
# We don't check switcher because there are 3 possible states for a repo:
|
|
144
146
|
# 1. New project, docs are not published so there is no switcher
|
|
145
|
-
# 2. Existing project with latest
|
|
146
|
-
# 3. Existing project with old
|
|
147
|
+
# 2. Existing project with latest copier template, switcher exists and works
|
|
148
|
+
# 3. Existing project with old copier template that makes broken switcher,
|
|
147
149
|
# switcher exists but is broken
|
|
148
|
-
# Point 3 makes checking switcher difficult, because the updated
|
|
150
|
+
# Point 3 makes checking switcher difficult, because the updated copier template
|
|
149
151
|
# will fix the switcher at the end of the docs workflow, but never gets a chance
|
|
150
152
|
# to complete as the docs build warns and fails.
|
|
151
153
|
html_theme_options = {
|
|
@@ -167,19 +169,13 @@ html_theme_options = {
|
|
|
167
169
|
},
|
|
168
170
|
"check_switcher": False,
|
|
169
171
|
"navbar_end": ["theme-switcher", "icon-links", "version-switcher"],
|
|
170
|
-
"external_links": [
|
|
171
|
-
{
|
|
172
|
-
"name": "Release Notes",
|
|
173
|
-
"url": f"https://github.com/{github_user}/{github_repo}/releases",
|
|
174
|
-
}
|
|
175
|
-
],
|
|
176
172
|
"navigation_with_keys": False,
|
|
177
173
|
}
|
|
178
174
|
|
|
179
175
|
# A dictionary of values to pass into the template engine’s context for all pages
|
|
180
176
|
html_context = {
|
|
181
177
|
"github_user": github_user,
|
|
182
|
-
"github_repo":
|
|
178
|
+
"github_repo": github_repo,
|
|
183
179
|
"github_version": version,
|
|
184
180
|
"doc_path": "docs",
|
|
185
181
|
}
|
|
@@ -192,4 +188,4 @@ html_show_copyright = False
|
|
|
192
188
|
|
|
193
189
|
# Logo
|
|
194
190
|
html_logo = "images/dls-logo.svg"
|
|
195
|
-
html_favicon =
|
|
191
|
+
html_favicon = html_logo
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# 1. Record architecture decisions
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Accepted
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
We need to record the architectural decisions made on this project.
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
We will use Architecture Decision Records, as [described by Michael Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions).
|
|
14
|
+
|
|
15
|
+
## Consequences
|
|
16
|
+
|
|
17
|
+
See Michael Nygard's article, linked above. To create new ADRs we will copy and
|
|
18
|
+
paste from existing ones.
|
edge_containers_cli-5.3.0a3/docs/explanations/decisions/0002-switched-to-python-copier-template.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# 2. Adopt python-copier-template for project structure
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Accepted
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
We should use the following [python-copier-template](https://github.com/DiamondLightSource/python-copier-template).
|
|
10
|
+
The template will ensure consistency in developer
|
|
11
|
+
environments and package management.
|
|
12
|
+
|
|
13
|
+
## Decision
|
|
14
|
+
|
|
15
|
+
We have switched to using the template.
|
|
16
|
+
|
|
17
|
+
## Consequences
|
|
18
|
+
|
|
19
|
+
This module will use a fixed set of tools as developed in `python-copier-template`
|
|
20
|
+
and can pull from this template to update the packaging to the latest techniques.
|
|
21
|
+
|
|
22
|
+
As such, the developer environment may have changed, the following could be
|
|
23
|
+
different:
|
|
24
|
+
|
|
25
|
+
- linting
|
|
26
|
+
- formatting
|
|
27
|
+
- pip venv setup
|
|
28
|
+
- CI/CD
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# 3. Short descriptive title
|
|
2
|
+
|
|
3
|
+
Date: Today's date
|
|
4
|
+
|
|
5
|
+
## Status
|
|
6
|
+
|
|
7
|
+
Accepted
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
Background to allow us to make the decision, to show how we arrived at our conclusions.
|
|
12
|
+
|
|
13
|
+
## Decision
|
|
14
|
+
|
|
15
|
+
What decision we made.
|
|
16
|
+
|
|
17
|
+
## Consequences
|
|
18
|
+
|
|
19
|
+
What we will do as a result of this decision.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Architectural Decision Records
|
|
2
|
+
|
|
3
|
+
Architectural decisions are made throughout a project's lifetime. As a way of keeping track of these decisions, we record these decisions in Architecture Decision Records (ADRs) listed below.
|
|
4
|
+
|
|
5
|
+
```{toctree}
|
|
6
|
+
:glob: true
|
|
7
|
+
:maxdepth: 1
|
|
8
|
+
|
|
9
|
+
decisions/*
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
For more information on ADRs see this [blog by Michael Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions).
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Run in a container
|
|
2
|
+
|
|
3
|
+
Pre-built containers with edge-containers-cli and its dependencies already
|
|
4
|
+
installed are available on [Github Container Registry](https://ghcr.io/epics-containers/edge-containers-cli).
|
|
5
|
+
|
|
6
|
+
## Starting the container
|
|
7
|
+
|
|
8
|
+
To pull the container from github container registry and run:
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
$ docker run ghcr.io/epics-containers/edge-containers-cli:latest --version
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
To get a released version, use a numbered release instead of `latest`.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="120" height="120" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<g transform="matrix(.37271 0 0 .37271 -3.343e-7 .0014878)" stroke-width="2.6831">
|
|
4
|
+
<path d="m0 160.98c0-88.908 72.073-160.98 160.98-160.98 88.911 0 160.99 72.073 160.99 160.98 0 88.907-72.075 160.98-160.99 160.98-88.908 0-160.98-72.073-160.98-160.98" fill="#fff"/>
|
|
5
|
+
<path d="m222.71 254.64c-8.56 1.2229-11.317 7.8871-6.1307 14.802l23.701 31.598c23.669-13.431 43.611-32.657 57.855-55.791l-75.425 9.3905" fill="#facf07"/>
|
|
6
|
+
<path d="m99.553 220.97c8.5615-1.2224 11.319-7.8813 6.1319-14.797l-61.997-82.665c-5.1911-6.916-3.7729-8.3307 3.1437-3.144l82.652 61.988c6.9161 5.192 13.575 2.4293 14.797-6.1267l14.613-150.7c1.2187-8.5613 3.2227-8.5613 4.4467 0l14.612 150.72c1.224 8.5573 7.8827 11.315 14.799 6.128l82.684-62.011c6.916-5.1867 8.3293-3.772 3.1427 3.144l-62.001 82.669c-5.1867 6.9161-2.4293 13.575 6.132 14.799l83.085 10.343c10.348-21.254 16.16-45.119 16.16-70.35 0-88.897-72.069-160.97-160.97-160.97-88.902 0-160.97 72.069-160.97 160.97 0 25.244 5.8208 49.123 16.173 70.381l83.369-10.38" fill="#facf07"/>
|
|
7
|
+
<path d="m144.28 299.39c-1.2227-8.5563-7.8813-11.314-14.798-6.1307l-24.743 18.561c13.459 5.0198 27.784 8.2651 42.676 9.5104l-3.136-21.941" fill="#facf07"/>
|
|
8
|
+
<path d="m177.95 299.37-3.1347 21.941c14.869-1.2682 29.163-4.5323 42.604-9.5682l-24.667-18.504c-6.9213-5.188-13.58-2.4255-14.803 6.1308" fill="#facf07"/>
|
|
9
|
+
<path d="m99.553 254.65-75.744-9.4307c14.288 23.215 34.315 42.503 58.086 55.946l23.79-31.718c5.1875-6.9145 2.4296-13.573-6.1319-14.797" fill="#facf07"/>
|
|
10
|
+
</g>
|
|
11
|
+
</svg>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
html_theme.sidebar_secondary.remove: true
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
```{include} ../README.md
|
|
6
|
+
:end-before: <!-- README only content
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
How the documentation is structured
|
|
11
|
+
-----------------------------------
|
|
12
|
+
|
|
13
|
+
Documentation is split into [four categories](https://diataxis.fr), also accessible from links in the top bar.
|
|
14
|
+
|
|
15
|
+
<!-- https://sphinx-design.readthedocs.io/en/latest/grids.html -->
|
|
16
|
+
|
|
17
|
+
::::{grid} 2
|
|
18
|
+
:gutter: 4
|
|
19
|
+
|
|
20
|
+
:::{grid-item-card} {material-regular}`directions_walk;2em`
|
|
21
|
+
```{toctree}
|
|
22
|
+
:maxdepth: 2
|
|
23
|
+
tutorials
|
|
24
|
+
```
|
|
25
|
+
+++
|
|
26
|
+
Tutorials for installation and typical usage. New users start here.
|
|
27
|
+
:::
|
|
28
|
+
|
|
29
|
+
:::{grid-item-card} {material-regular}`directions;2em`
|
|
30
|
+
```{toctree}
|
|
31
|
+
:maxdepth: 2
|
|
32
|
+
how-to
|
|
33
|
+
```
|
|
34
|
+
+++
|
|
35
|
+
Practical step-by-step guides for the more experienced user.
|
|
36
|
+
:::
|
|
37
|
+
|
|
38
|
+
:::{grid-item-card} {material-regular}`info;2em`
|
|
39
|
+
```{toctree}
|
|
40
|
+
:maxdepth: 2
|
|
41
|
+
explanations
|
|
42
|
+
```
|
|
43
|
+
+++
|
|
44
|
+
Explanations of how it works and why it works that way.
|
|
45
|
+
:::
|
|
46
|
+
|
|
47
|
+
:::{grid-item-card} {material-regular}`menu_book;2em`
|
|
48
|
+
```{toctree}
|
|
49
|
+
:maxdepth: 2
|
|
50
|
+
reference
|
|
51
|
+
```
|
|
52
|
+
+++
|
|
53
|
+
Technical reference material including APIs and release notes.
|
|
54
|
+
:::
|
|
55
|
+
|
|
56
|
+
::::
|