python-mister-fpga 0.1.0__tar.gz → 0.1.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.
Files changed (20) hide show
  1. python_mister_fpga-0.1.1/.github/workflows/release.yml +26 -0
  2. python_mister_fpga-0.1.1/CHANGELOG.md +7 -0
  3. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/PKG-INFO +1 -1
  4. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/pyproject.toml +1 -1
  5. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/src/mister_fpga/__init__.py +13 -2
  6. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/tests/test_client.py +7 -0
  7. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/.github/workflows/tests.yml +0 -0
  8. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/.gitignore +0 -0
  9. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/LICENSE +0 -0
  10. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/README.md +0 -0
  11. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/assets/dark_logo.png +0 -0
  12. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/assets/icon.png +0 -0
  13. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/assets/logo.png +0 -0
  14. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/src/mister_fpga/client.py +0 -0
  15. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/src/mister_fpga/const.py +0 -0
  16. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/src/mister_fpga/py.typed +0 -0
  17. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/src/mister_fpga/ssh.py +0 -0
  18. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/src/mister_fpga/websocket.py +0 -0
  19. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/tests/test_ssh.py +0 -0
  20. {python_mister_fpga-0.1.0 → python_mister_fpga-0.1.1}/tests/test_websocket.py +0 -0
@@ -0,0 +1,26 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ pypi-publish:
12
+ name: Build and publish to PyPI
13
+ runs-on: ubuntu-latest
14
+ permissions:
15
+ id-token: write # required for PyPI Trusted Publishing (OIDC)
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ - uses: actions/setup-python@v5
19
+ with:
20
+ python-version: "3.12"
21
+ - name: Build distributions
22
+ run: |
23
+ python -m pip install --upgrade build
24
+ python -m build
25
+ - name: Publish to PyPI
26
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,7 @@
1
+ # Changelog
2
+
3
+ ## 0.1.1
4
+ - Export `DEFAULT_SSH_PORT`, `DEFAULT_SSH_USERNAME` and `SSH_PROBE_CMD` from the top-level package so consumers can reuse them without duplicating.
5
+
6
+ ## 0.1.0
7
+ - Initial release: async REST client (`MisterClient`/`MisterStatus`/`MisterConnectionError`), WebSocket reducer + client (`apply_ws_message`/`MisterWebSocketClient`), and SSH telemetry (`parse_ssh_probe`/`MisterSSH`) for the MiSTer FPGA mrext Remote API.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-mister-fpga
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: Async Python client for the MiSTer FPGA mrext Remote API (REST + WebSocket) and SSH telemetry
5
5
  Project-URL: Homepage, https://github.com/hudsonbrendon/python-mister-fpga
6
6
  Project-URL: Issues, https://github.com/hudsonbrendon/python-mister-fpga/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "python-mister-fpga"
7
- version = "0.1.0"
7
+ version = "0.1.1"
8
8
  description = "Async Python client for the MiSTer FPGA mrext Remote API (REST + WebSocket) and SSH telemetry"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,6 +1,14 @@
1
1
  """Async Python client for the MiSTer FPGA mrext Remote API."""
2
2
  from .client import MisterClient, MisterConnectionError, MisterStatus
3
- from .const import DEFAULT_PORT, INI_VIDEO_KEYS, KEYBOARD_NAMES, WS_PATH
3
+ from .const import (
4
+ DEFAULT_PORT,
5
+ DEFAULT_SSH_PORT,
6
+ DEFAULT_SSH_USERNAME,
7
+ INI_VIDEO_KEYS,
8
+ KEYBOARD_NAMES,
9
+ SSH_PROBE_CMD,
10
+ WS_PATH,
11
+ )
4
12
  from .ssh import MisterSSH, parse_ssh_probe
5
13
  from .websocket import MisterWebSocketClient, apply_ws_message
6
14
 
@@ -16,5 +24,8 @@ __all__ = [
16
24
  "INI_VIDEO_KEYS",
17
25
  "WS_PATH",
18
26
  "DEFAULT_PORT",
27
+ "DEFAULT_SSH_PORT",
28
+ "DEFAULT_SSH_USERNAME",
29
+ "SSH_PROBE_CMD",
19
30
  ]
20
- __version__ = "0.1.0"
31
+ __version__ = "0.1.1"
@@ -341,3 +341,10 @@ async def test_send_keyboard_raw(client):
341
341
  with aioresponses() as m:
342
342
  m.post(f"{BASE}/controls/keyboard-raw/16", status=200)
343
343
  await client.async_send_keyboard_raw(16)
344
+
345
+
346
+ def test_ssh_defaults_exported():
347
+ from mister_fpga import DEFAULT_SSH_PORT, DEFAULT_SSH_USERNAME, SSH_PROBE_CMD
348
+ assert DEFAULT_SSH_PORT == 22
349
+ assert DEFAULT_SSH_USERNAME == "root"
350
+ assert "CORENAME" in SSH_PROBE_CMD