pyhubblenetwork 0.2.0__tar.gz → 0.4.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.
Files changed (23) hide show
  1. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/.gitignore +4 -1
  2. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/PKG-INFO +15 -2
  3. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/README.md +13 -1
  4. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/pyproject.toml +3 -1
  5. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/src/hubblenetwork/__init__.py +4 -1
  6. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/src/hubblenetwork/cli.py +344 -63
  7. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/src/hubblenetwork/cloud.py +13 -3
  8. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/src/hubblenetwork/crypto.py +17 -7
  9. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/src/hubblenetwork/device.py +12 -0
  10. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/src/hubblenetwork/errors.py +10 -0
  11. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/src/hubblenetwork/org.py +34 -5
  12. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/src/hubblenetwork/packets.py +14 -0
  13. pyhubblenetwork-0.4.0/src/hubblenetwork/sat.py +229 -0
  14. pyhubblenetwork-0.4.0/tests/test_cli_payload.py +249 -0
  15. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/tests/test_cloud_integration.py +90 -0
  16. pyhubblenetwork-0.4.0/tests/test_counter_eid.py +214 -0
  17. pyhubblenetwork-0.4.0/tests/test_sat.py +257 -0
  18. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/LICENSE +0 -0
  19. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/plugins/pyhubblenetwork/skills/hubble-ready-test/README.md +0 -0
  20. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/src/hubblenetwork/ble.py +0 -0
  21. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/src/hubblenetwork/ready.py +0 -0
  22. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/tests/__init__.py +0 -0
  23. {pyhubblenetwork-0.2.0 → pyhubblenetwork-0.4.0}/tests/conftest.py +0 -0
@@ -157,4 +157,7 @@ cython_debug/
157
157
  # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158
158
  # and can be added to the global gitignore or merged into this file. For a more nuclear
159
159
  # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160
- #.idea/
160
+ #.idea/
161
+
162
+ # Git worktrees
163
+ .worktrees/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyhubblenetwork
3
- Version: 0.2.0
3
+ Version: 0.4.0
4
4
  Summary: Hubble SDK host-side tools
5
5
  Author-email: Paul Buckley <paul@hubble.com>
6
6
  License-Expression: Apache-2.0
@@ -10,6 +10,7 @@ Classifier: Programming Language :: Python :: 3
10
10
  Requires-Python: >=3.9
11
11
  Requires-Dist: bleak
12
12
  Requires-Dist: click
13
+ Requires-Dist: docker>=7.0
13
14
  Requires-Dist: httpx>=0.27
14
15
  Requires-Dist: pycryptodome
15
16
  Requires-Dist: questionary>=2.0.0
@@ -139,8 +140,20 @@ If installed, the `hubblenetwork` command is available:
139
140
  ```bash
140
141
  hubblenetwork --help
141
142
  hubblenetwork ble scan
143
+ hubblenetwork ble scan --payload-format hex
144
+ hubblenetwork org get-packets --payload-format string
142
145
  ```
143
146
 
147
+ ### Payload format option
148
+
149
+ Commands that output packet data (`ble scan`, `ble detect`, `org get-packets`) support the `--payload-format` flag to control how payloads are displayed:
150
+
151
+ * `base64` (default) — encode payloads as base64
152
+ * `hex` — display payloads as hexadecimal
153
+ * `string` — decode payloads as UTF-8 text (falls back to `<invalid UTF-8>` if bytes are not valid UTF-8)
154
+
155
+ This applies to all output formats (tabular, json, csv).
156
+
144
157
  ## Configuration
145
158
 
146
159
  Some functions read defaults from environment variables if not provided explicitly. Suggested variables:
@@ -207,5 +220,5 @@ ruff check src
207
220
  ## Releases & versioning
208
221
 
209
222
  * Follows **SemVer** (MAJOR.MINOR.PATCH).
210
- * Tagged releases (e.g., `v0.2.0`) publish wheels/sdists to PyPI.
223
+ * Tagged releases (e.g., `v0.3.0`) publish wheels/sdists to PyPI.
211
224
  * Release process: (add short steps for how to cut a release—tagging, CI release job, PyPI publish credentials).
@@ -116,8 +116,20 @@ If installed, the `hubblenetwork` command is available:
116
116
  ```bash
117
117
  hubblenetwork --help
118
118
  hubblenetwork ble scan
119
+ hubblenetwork ble scan --payload-format hex
120
+ hubblenetwork org get-packets --payload-format string
119
121
  ```
120
122
 
123
+ ### Payload format option
124
+
125
+ Commands that output packet data (`ble scan`, `ble detect`, `org get-packets`) support the `--payload-format` flag to control how payloads are displayed:
126
+
127
+ * `base64` (default) — encode payloads as base64
128
+ * `hex` — display payloads as hexadecimal
129
+ * `string` — decode payloads as UTF-8 text (falls back to `<invalid UTF-8>` if bytes are not valid UTF-8)
130
+
131
+ This applies to all output formats (tabular, json, csv).
132
+
121
133
  ## Configuration
122
134
 
123
135
  Some functions read defaults from environment variables if not provided explicitly. Suggested variables:
@@ -184,5 +196,5 @@ ruff check src
184
196
  ## Releases & versioning
185
197
 
186
198
  * Follows **SemVer** (MAJOR.MINOR.PATCH).
187
- * Tagged releases (e.g., `v0.2.0`) publish wheels/sdists to PyPI.
199
+ * Tagged releases (e.g., `v0.3.0`) publish wheels/sdists to PyPI.
188
200
  * Release process: (add short steps for how to cut a release—tagging, CI release job, PyPI publish credentials).
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pyhubblenetwork"
7
- version = "0.2.0"
7
+ version = "0.4.0"
8
8
  requires-python = ">=3.9"
9
9
  authors = [
10
10
  { name="Paul Buckley", email="paul@hubble.com" },
@@ -21,6 +21,7 @@ dependencies = [
21
21
  "httpx>=0.27",
22
22
  "bleak",
23
23
  "click",
24
+ "docker>=7.0",
24
25
  "pycryptodome",
25
26
  "questionary>=2.0.0",
26
27
  "tabulate>=0.9.0",
@@ -45,6 +46,7 @@ include = [
45
46
  # ---- Testing & dev tooling ----
46
47
  [tool.pytest.ini_options]
47
48
  testpaths = ["tests"]
49
+ pythonpath = ["src"]
48
50
  markers = [
49
51
  "ble: tests that require BLE hardware/permissions",
50
52
  "integration: slow or environment-dependent tests",
@@ -7,8 +7,9 @@ Import from here; internal module layout may change without notice.
7
7
  from . import ble
8
8
  from . import cloud
9
9
  from . import ready
10
+ from . import sat
10
11
 
11
- from .packets import Location, EncryptedPacket, DecryptedPacket
12
+ from .packets import Location, EncryptedPacket, DecryptedPacket, SatellitePacket
12
13
  from .device import Device
13
14
  from .org import Organization
14
15
  from .crypto import decrypt
@@ -19,7 +20,9 @@ __all__ = [
19
20
  "ble",
20
21
  "cloud",
21
22
  "ready",
23
+ "sat",
22
24
  "decrypt",
25
+ "SatellitePacket",
23
26
  "Location",
24
27
  "EncryptedPacket",
25
28
  "DecryptedPacket",