summaryrefslogtreecommitdiffstats
path: root/poc
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-19 14:39:38 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-19 14:39:38 +0200
commit9e7b75bb0f6f6649fb00f2dc97059e90b7d52875 (patch)
tree94463bba19b424fdce6db0d4dacbc1901af8ea95 /poc
parent86188385cbdae1ee90c1dca7a7b9db2edef1ecd4 (diff)
downloadmeshbay-9e7b75bb0f6f6649fb00f2dc97059e90b7d52875.tar.gz
style: the 98 ruff could not fix, so the linter is a signal again
The pass before this applied ruff's own fixes. These are the ones needing a decision, and the point of doing them is that `ruff check .` now passes: a linter reporting 98 known-acceptable findings reports nothing, because the next real one arrives invisible. **Lines over 100 (70).** Mostly wrapped where they stood. Two exceptions: the aligned trailing comments in `protocol.py`'s message table were shortened rather than wrapped, because wrapping one row of a table breaks the table; and in `models.py` the column comments moved above their columns for the same reason. **Imports below the first statement (14).** `csam.py` kept its FastAPI imports under a section header halfway down the file; two node tests had a constant and a `pytestmark` wedged between two import blocks. Moved, not suppressed. **Bindings nothing reads (4).** Three in tests, where the call stays and only the name goes — `_user(client, "listener")` is there to create the user, not to return one. The fourth was in `revocation.py` and was not a lint finding at all: `_connect_and_listen` opened an httpx stream to the WebSocket URL, did `pass`, and then opened the real connection through the `websockets` library. One pointless request per connect, left over from before that library was used directly. Removed, and `httpx` with it. **`l` as a name (4)**, **semicolons (6)** in the POC spikes, and the rest. 2893 passed, the same count as the two commits before it. `meshbay_node/revocation.py` is worth a decision separately: 154 lines that nothing imports, superseded by `hub_client.maintain_ws`'s `on_revocation`. This commit only stopped it failing the linter. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'poc')
-rw-r--r--poc/spike1_crypto.py3
-rw-r--r--poc/spike3_node.py3
-rw-r--r--poc/spike4_nat.py7
-rw-r--r--poc/spike5_client.py3
-rw-r--r--poc/spike5_node.py3
-rw-r--r--poc/spike6_gek.py7
6 files changed, 18 insertions, 8 deletions
diff --git a/poc/spike1_crypto.py b/poc/spike1_crypto.py
index 1e8491c..4006506 100644
--- a/poc/spike1_crypto.py
+++ b/poc/spike1_crypto.py
@@ -243,7 +243,8 @@ print("\n=== Test 7: AES-256-GCM — Keystore encryption ===")
def test_aes_gcm_keystore():
# Derive an AES key from Argon2id (as done for keystore unlock)
salt = os.urandom(16)
- aes_key = Argon2id(salt=salt, length=32, iterations=3, lanes=4, memory_cost=65536).derive(b"password")
+ aes_key = Argon2id(salt=salt, length=32, iterations=3, lanes=4,
+ memory_cost=65536).derive(b"password")
# Encrypt a mock keystore blob
keystore_data = b'{"sk_user": "base64...", "sk_group": "base64..."}'
diff --git a/poc/spike3_node.py b/poc/spike3_node.py
index 0b6d694..562239f 100644
--- a/poc/spike3_node.py
+++ b/poc/spike3_node.py
@@ -27,7 +27,8 @@ from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey
HUB_URL = "http://meshbay.org"
STATE_FILE = Path("node_state.json") # persists keys and tokens between runs
-PASS = "✓"; FAIL = "✗"
+PASS = "✓"
+FAIL = "✗"
# ── Key helpers ───────────────────────────────────────────────────────────────
diff --git a/poc/spike4_nat.py b/poc/spike4_nat.py
index e34a4c4..ee7485f 100644
--- a/poc/spike4_nat.py
+++ b/poc/spike4_nat.py
@@ -21,7 +21,9 @@ from pathlib import Path
import httpx
-PASS = "✓"; FAIL = "✗"; SKIP = "–"
+PASS = "✓"
+FAIL = "✗"
+SKIP = "–"
LOCAL_PORT = 19000
MESHBAY_IP = "164.132.246.44" # meshbay.org resolved
@@ -229,7 +231,8 @@ async def main():
# May differ from STUN if symmetric NAT
actual_ext = seen_ext_addr.replace("('", "").replace("'", "").replace(", ", ":")
if endpoint_hint and actual_ext != endpoint_hint:
- print(f" ⚠ STUN addr {endpoint_hint} ≠ actual {actual_ext} (symmetric NAT confirmed)")
+ print(f" ⚠ STUN addr {endpoint_hint} ≠ actual {actual_ext} "
+ f"(symmetric NAT confirmed)")
endpoint_hint = actual_ext
else:
print(f" {FAIL} No echo received (timeout)")
diff --git a/poc/spike5_client.py b/poc/spike5_client.py
index 6ac2fba..cc79ebf 100644
--- a/poc/spike5_client.py
+++ b/poc/spike5_client.py
@@ -27,7 +27,8 @@ from cryptography.hazmat.primitives.kdf.hkdf import HKDF
PORT = 19003
CHUNK_INDEX = 0
-PASS = "✓"; FAIL = "✗"
+PASS = "✓"
+FAIL = "✗"
# ── Wire helpers ───────────────────────────────────────────────────────────────
diff --git a/poc/spike5_node.py b/poc/spike5_node.py
index b560dc1..cded922 100644
--- a/poc/spike5_node.py
+++ b/poc/spike5_node.py
@@ -33,7 +33,8 @@ MESHBAY_PORT = 19003
CHUNK_SIZE = 1024 * 1024 # 1 MB
TEST_FILE = Path("testfile.bin")
STATE_FILE = Path("node_state.json")
-PASS = "✓"; FAIL = "✗"
+PASS = "✓"
+FAIL = "✗"
# ── Wire helpers ───────────────────────────────────────────────────────────────
diff --git a/poc/spike6_gek.py b/poc/spike6_gek.py
index 3595d6d..e58823b 100644
--- a/poc/spike6_gek.py
+++ b/poc/spike6_gek.py
@@ -33,7 +33,8 @@ from cryptography.hazmat.primitives.kdf.hkdf import HKDF
HUB_URL = "http://meshbay.org"
STATE_FILE = Path("node_state.json")
-PASS = "✓"; FAIL = "✗"
+PASS = "✓"
+FAIL = "✗"
# ── Key helpers ────────────────────────────────────────────────────────────────
@@ -200,7 +201,9 @@ async def main():
bundle_alice = wrap_gek(gek_raw, pk_alice_x_raw)
print(f" {PASS} Wrapped in {(time.perf_counter()-t0)*1000:.2f}ms")
print(f" pk_eph : {bundle_alice['pk_eph_b64'][:24]}...")
- print(f" wrapped : {bundle_alice['wrapped_b64'][:24]}... ({len(base64.b64decode(bundle_alice['wrapped_b64']))}B)")
+ wrapped = bundle_alice["wrapped_b64"]
+ print(f" wrapped : {wrapped[:24]}... "
+ f"({len(base64.b64decode(wrapped))}B)")
r = await c.post(
f"{HUB_URL}/v1/groups/{group_id}/members/{state.get('username','node_cbesson')}/gek",