Skip to content

Commit 1559bb2

Browse files
committed
update to python 3.13
1 parent 25159fd commit 1559bb2

15 files changed

Lines changed: 350 additions & 249 deletions

File tree

docker-compose.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ services:
1313
environment:
1414
INFLUX_CONFIG_FILE: /run/secrets/influx_config
1515
TMM_BUCKET_FILE: /run/secrets/tmm_bucket
16-
TMM_API_KEY_FILE: /run/secrets/tmm_api_key
16+
TMM_AUTH_SECRET_FILE: /run/secrets/tmm_auth_secret
1717
DEVELOPMENT_MODE: true
1818
ENABLE_WRITE: true
1919
secrets:
2020
- influx_config
2121
- tmm_bucket
22-
- tmm_api_key
22+
- tmm_auth_secret
2323
ports:
2424
- "5000:5000"
2525

@@ -92,5 +92,5 @@ secrets:
9292
file: ./examples/influx_config.ini
9393
tmm_bucket:
9494
file: ./examples/tmm_bucket
95-
tmm_api_key:
96-
file: ./examples/tmm_api_key
95+
tmm_auth_secret:
96+
file: ./examples/tmm_auth_secret

examples/tmm_api_key

Lines changed: 0 additions & 1 deletion
This file was deleted.

examples/tmm_auth_secret

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
secret

services/tmm-api/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM python:3.11-alpine as base
1+
FROM python:3.13-alpine as base
22

33
ENV PYTHONFAULTHANDLER=1 \
44
PYTHONHASHSEED=random \

services/tmm-api/noxfile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def black(session):
1818
@nox.session(python=False)
1919
def ruff(session):
2020
session.run("uv", "sync", "--quiet", external=True)
21-
session.run("uv", "run", "ruff", ".", external=True)
21+
session.run("uv", "run", "ruff", "check", external=True)
2222

2323

2424
@nox.session(python=False)

services/tmm-api/pyproject.toml

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,27 @@ name = "tmm-api"
33
version = "0.1.0"
44
description = "Teuto Moisture Map Api"
55
authors = [{ name = "code4bielefeld" }]
6-
requires-python = "~=3.11.0"
6+
requires-python = "~=3.13.0"
77
license = "MIT"
88
dependencies = [
9-
"influxdb-client>=1.31.0,<2",
10-
"fastapi>=0.87.0,<0.88",
11-
"uvicorn>=0.19.0,<0.20",
12-
"python-multipart>=0.0.5,<0.0.6",
13-
"mangum>=0.17.0,<0.18",
14-
"cachetools>=5.3.0,<6",
15-
"boto3>=1.28.26,<2",
9+
"influxdb-client>=1.31.0",
10+
"fastapi>=0.87.0",
11+
"uvicorn>=0.19.0",
12+
"python-multipart>=0.0.5",
13+
"mangum>=0.17.0",
14+
"cachetools>=5.3.0",
15+
"boto3>=1.28.26",
1616
]
1717

1818
[dependency-groups]
1919
dev = [
20-
"black>=22.10.0,<23",
21-
"boto3-stubs>=1.28.26,<2",
22-
"mypy>=0.982,<0.983",
23-
"nox>=2023.4.22,<2024",
24-
"ruff>=0.0.128,<0.0.129",
25-
"pytest>=7.1.2,<8",
26-
"watchfiles>=0.18.1,<0.19",
20+
"black>=22.10.0",
21+
"boto3-stubs>=1.28.26",
22+
"mypy>=0.982",
23+
"nox>=2023.4.22",
24+
"ruff>=0.0.128",
25+
"pytest>=7.1.2",
26+
"watchfiles>=0.18.1",
2727
]
2828

2929
[build-system]
@@ -32,6 +32,19 @@ build-backend = "hatchling.build"
3232

3333
[tool.ruff]
3434
line-length = 120
35+
exclude = [
36+
".git",
37+
"__pycache__",
38+
"*.egg-info",
39+
".nox",
40+
".pytest_cache",
41+
".mypy_cache",
42+
"dist",
43+
".venv",
44+
"scratch",
45+
]
46+
47+
[tool.ruff.lint]
3548
select = [
3649
"C",
3750
"E",
@@ -44,17 +57,6 @@ select = [
4457
#,"D" # todo
4558
]
4659
ignore = ["E501"]
47-
exclude = [
48-
".git",
49-
"__pycache__",
50-
"*.egg-info",
51-
".nox",
52-
".pytest_cache",
53-
".mypy_cache",
54-
"dist",
55-
".venv",
56-
"scratch",
57-
]
5860

5961
[tool.black]
6062
line-length = 120

services/tmm-api/test/ttn/test_TTNMessage.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ class TestTTNMessageParsing(unittest.TestCase):
1010
def test_parse_payload(self):
1111
filepath = f"{dirname(__file__)}/../dragino_ttn_payload.json"
1212

13-
message = TTNMessage.parse_file(filepath)
13+
with open(filepath) as f:
14+
json_str = f.read()
15+
message = TTNMessage.model_validate_json(json_str)
1416
measurement = message.to_measurement()
1517

1618
self.assertEqual(measurement.battery, 3.304, "Battery value not ok")

services/tmm-api/tmm_api/app.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
responses={401: {}},
4646
)
4747
def ttn_dragino(message: TTNMessage, TMM_APIKEY: str = Header()): # noqa: B008,N803
48+
logger.info(f"Device: {message.end_device_ids.device_id}, API_KEY: {TMM_APIKEY}")
4849
if not is_auth(message.end_device_ids.device_id, TMM_APIKEY):
4950
return JSONResponse(status_code=401, content={"error": "Unauthorized"})
5051
measurement = message.to_measurement()

services/tmm-api/tmm_api/common/secrets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
@cached(cache={})
88
def get_secret(name: str) -> str | None:
99
if secret_file := os.environ.get(f"{name}_FILE"):
10-
return open(secret_file, "r").read().strip()
10+
return open(secret_file).read().strip()
1111
elif ssm_param_name := os.environ.get(f"{name}_SSM_NAME"):
1212
return get_aws_ssm_parameter(ssm_param_name)
1313
else:

services/tmm-api/tmm_api/common/sensor_metadata.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def get_sensors_metadata():
2323
}
2424
except Exception as e:
2525
print(f"Error retrieving sensor metadata: {e}")
26-
raise HTTPException(status_code=500, detail="Error retrieving sensor metadata")
26+
raise HTTPException(status_code=500, detail="Error retrieving sensor metadata") from e
2727

2828

2929
def convert_dyno_to_plain(dynamo_item):
@@ -47,4 +47,4 @@ def write_sensor_metadata(sensor):
4747
return response
4848
except Exception as e:
4949
print(f"Error saving sensor metadata: {e}")
50-
raise HTTPException(status_code=500, detail="Error saving sensor metadata")
50+
raise HTTPException(status_code=500, detail="Error saving sensor metadata") from e

0 commit comments

Comments
 (0)