aioecam 0.1.0b1__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.
Files changed (56) hide show
  1. aioecam-0.1.0b1/.github/dependabot.yml +13 -0
  2. aioecam-0.1.0b1/.github/workflows/ci.yml +30 -0
  3. aioecam-0.1.0b1/.github/workflows/publish.yml +57 -0
  4. aioecam-0.1.0b1/.gitignore +12 -0
  5. aioecam-0.1.0b1/LICENSE +661 -0
  6. aioecam-0.1.0b1/PKG-INFO +73 -0
  7. aioecam-0.1.0b1/README.md +46 -0
  8. aioecam-0.1.0b1/SECURITY.md +17 -0
  9. aioecam-0.1.0b1/docs/plan.md +159 -0
  10. aioecam-0.1.0b1/pyproject.toml +61 -0
  11. aioecam-0.1.0b1/src/aioecam/__init__.py +34 -0
  12. aioecam-0.1.0b1/src/aioecam/__main__.py +218 -0
  13. aioecam-0.1.0b1/src/aioecam/_util.py +16 -0
  14. aioecam-0.1.0b1/src/aioecam/cloud/__init__.py +1 -0
  15. aioecam-0.1.0b1/src/aioecam/cloud/api.py +157 -0
  16. aioecam-0.1.0b1/src/aioecam/cloud/auth.py +202 -0
  17. aioecam-0.1.0b1/src/aioecam/cloud/constants.json +24 -0
  18. aioecam-0.1.0b1/src/aioecam/cloud/onboarding.py +69 -0
  19. aioecam-0.1.0b1/src/aioecam/cloud/region.py +60 -0
  20. aioecam-0.1.0b1/src/aioecam/device.py +298 -0
  21. aioecam-0.1.0b1/src/aioecam/discovery.py +36 -0
  22. aioecam-0.1.0b1/src/aioecam/ecam/__init__.py +1 -0
  23. aioecam-0.1.0b1/src/aioecam/ecam/commands.py +49 -0
  24. aioecam-0.1.0b1/src/aioecam/ecam/frame.py +76 -0
  25. aioecam-0.1.0b1/src/aioecam/ecam/monitor.py +69 -0
  26. aioecam-0.1.0b1/src/aioecam/ecam/profile.py +127 -0
  27. aioecam-0.1.0b1/src/aioecam/ecam/profiles/__init__.py +1 -0
  28. aioecam-0.1.0b1/src/aioecam/ecam/profiles/ecam45x.json +160 -0
  29. aioecam-0.1.0b1/src/aioecam/ecam/profiles/ecam61x.json +151 -0
  30. aioecam-0.1.0b1/src/aioecam/ecam/statistics.py +129 -0
  31. aioecam-0.1.0b1/src/aioecam/ecam/value.py +44 -0
  32. aioecam-0.1.0b1/src/aioecam/exceptions.py +25 -0
  33. aioecam-0.1.0b1/src/aioecam/lan/__init__.py +1 -0
  34. aioecam-0.1.0b1/src/aioecam/lan/crypto.py +107 -0
  35. aioecam-0.1.0b1/src/aioecam/lan/link.py +345 -0
  36. aioecam-0.1.0b1/src/aioecam/lan/messages.py +52 -0
  37. aioecam-0.1.0b1/src/aioecam/lan/net.py +13 -0
  38. aioecam-0.1.0b1/src/aioecam/lan/server.py +152 -0
  39. aioecam-0.1.0b1/src/aioecam/py.typed +0 -0
  40. aioecam-0.1.0b1/tests/__init__.py +0 -0
  41. aioecam-0.1.0b1/tests/fake_cloud.py +145 -0
  42. aioecam-0.1.0b1/tests/fake_device.py +180 -0
  43. aioecam-0.1.0b1/tests/fake_machine.py +80 -0
  44. aioecam-0.1.0b1/tests/fixtures/frames.json +64 -0
  45. aioecam-0.1.0b1/tests/test_cli.py +15 -0
  46. aioecam-0.1.0b1/tests/test_cloud.py +95 -0
  47. aioecam-0.1.0b1/tests/test_commands.py +33 -0
  48. aioecam-0.1.0b1/tests/test_device.py +232 -0
  49. aioecam-0.1.0b1/tests/test_discovery.py +29 -0
  50. aioecam-0.1.0b1/tests/test_frame.py +77 -0
  51. aioecam-0.1.0b1/tests/test_lan_crypto.py +67 -0
  52. aioecam-0.1.0b1/tests/test_lan_link.py +207 -0
  53. aioecam-0.1.0b1/tests/test_monitor.py +58 -0
  54. aioecam-0.1.0b1/tests/test_package.py +10 -0
  55. aioecam-0.1.0b1/tests/test_profile.py +75 -0
  56. aioecam-0.1.0b1/tests/test_statistics.py +74 -0
@@ -0,0 +1,13 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: pip
4
+ directory: /
5
+ schedule:
6
+ interval: weekly
7
+ groups:
8
+ dev-tools:
9
+ patterns: ["ruff", "mypy", "pytest*"]
10
+ - package-ecosystem: github-actions
11
+ directory: /
12
+ schedule:
13
+ interval: weekly
@@ -0,0 +1,30 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ python-version: ["3.13", "3.14"]
18
+ steps:
19
+ # Actions are pinned to commit SHAs; Dependabot keeps them current.
20
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
21
+ with:
22
+ persist-credentials: false
23
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
24
+ with:
25
+ python-version: ${{ matrix.python-version }}
26
+ - run: python -m pip install -e ".[dev]"
27
+ - run: ruff check .
28
+ - run: ruff format --check .
29
+ - run: mypy
30
+ - run: pytest
@@ -0,0 +1,57 @@
1
+ name: Publish to PyPI
2
+
3
+ # Runs only for a published GitHub release. Uploads use PyPI Trusted Publishing
4
+ # (OIDC): there is no API token anywhere. PyPI trusts exactly this workflow file
5
+ # in Styx85/aioecam, running in the "pypi" environment.
6
+
7
+ on:
8
+ release:
9
+ types: [published]
10
+
11
+ permissions:
12
+ contents: read
13
+
14
+ jobs:
15
+ build:
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
19
+ with:
20
+ persist-credentials: false
21
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
22
+ with:
23
+ python-version: "3.14"
24
+ - name: Tag must match the package version
25
+ env:
26
+ TAG: ${{ github.event.release.tag_name }}
27
+ run: |
28
+ version=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])")
29
+ if [ "v$version" != "$TAG" ]; then
30
+ echo "release tag $TAG does not match pyproject version $version" >&2
31
+ exit 1
32
+ fi
33
+ - run: python -m pip install build
34
+ - run: python -m build
35
+ - name: Test the built wheel
36
+ run: |
37
+ python -m pip install "$(ls dist/*.whl)" pytest pytest-asyncio
38
+ python -m pytest -q
39
+ - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
40
+ with:
41
+ name: dist
42
+ path: dist/
43
+
44
+ publish:
45
+ needs: build
46
+ runs-on: ubuntu-latest
47
+ environment:
48
+ name: pypi
49
+ url: https://pypi.org/project/aioecam/
50
+ permissions:
51
+ id-token: write # OIDC for Trusted Publishing; the only elevated permission
52
+ steps:
53
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
54
+ with:
55
+ name: dist
56
+ path: dist/
57
+ - uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
@@ -0,0 +1,12 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ .venv/
4
+ dist/
5
+ build/
6
+ *.egg-info/
7
+ .pytest_cache/
8
+ .mypy_cache/
9
+ .ruff_cache/
10
+ # never commit machine secrets
11
+ *.key
12
+ cremalink-probe.json