diff --git a/CHANGELOG.md b/CHANGELOG.md index 013775bc6..5d263a851 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change log +## 0.25.0 (2024-01-08) + +- [#366](https://github.com/mobilityhouse/ocpp/issues/366) Fix type hint of OCPP 1.6 ChangeConfiguration.value +- [#431](https://github.com/mobilityhouse/ocpp/issues/431) Attributes with 'v2x' are serialized as 'V2x', but should be serialized as 'V2X' - [#554](https://github.com/mobilityhouse/ocpp/issues/554) OCPP 2.0.1 Edition 2 Errata 2023-12 document added - [#548](https://github.com/mobilityhouse/ocpp/issues/548) OCPP 2.0.1 MessageInfoType attribute name correction - [#300](https://github.com/mobilityhouse/ocpp/issues/300) OCPP 2.0.1 add reference components and variables diff --git a/docs/source/conf.py b/docs/source/conf.py index 94bd22556..592b903c2 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -23,7 +23,7 @@ author = "Auke Willem Oosterhoff" # The full version, including alpha/beta/rc tags -release = "0.24.0" +release = "0.25.0" # -- General configuration --------------------------------------------------- diff --git a/examples/v201/central_system.py b/examples/v201/central_system.py index 0f5fb515e..54a880d89 100644 --- a/examples/v201/central_system.py +++ b/examples/v201/central_system.py @@ -42,8 +42,6 @@ async def on_connect(websocket, path): try: requested_protocols = websocket.request_headers["Sec-WebSocket-Protocol"] except KeyError: - logging.info("Client hasn't requested any Subprotocol. " "Closing Connection") - return await websocket.close() logging.error("Client hasn't requested any Subprotocol. Closing Connection") return await websocket.close() if websocket.subprotocol: diff --git a/ocpp/charge_point.py b/ocpp/charge_point.py index c4a82d41c..997943de7 100644 --- a/ocpp/charge_point.py +++ b/ocpp/charge_point.py @@ -44,7 +44,7 @@ def camel_to_snake_case(data): def snake_to_camel_case(data): """ - Convert all keys of a all dictionaries inside given argument from + Convert all keys of all dictionaries inside given argument from snake_case to camelCase. Inspired by: https://stackoverflow.com/a/19053800/1073222 @@ -53,6 +53,7 @@ def snake_to_camel_case(data): camel_case_dict = {} for key, value in data.items(): key = key.replace("soc", "SoC") + key = key.replace("_v2x", "V2X") components = key.split("_") key = components[0] + "".join(x[:1].upper() + x[1:] for x in components[1:]) camel_case_dict[key] = snake_to_camel_case(value) diff --git a/ocpp/v16/call.py b/ocpp/v16/call.py index 54e35c4d6..fe07e7d6d 100644 --- a/ocpp/v16/call.py +++ b/ocpp/v16/call.py @@ -1,5 +1,5 @@ from dataclasses import dataclass, field -from typing import Any, Dict, List, Optional +from typing import Dict, List, Optional from ocpp.v16.enums import ( AvailabilityType, @@ -55,7 +55,7 @@ class ChangeAvailabilityPayload: @dataclass class ChangeConfigurationPayload: key: str - value: Any + value: str @dataclass diff --git a/pyproject.toml b/pyproject.toml index b3e991d40..fa17c9d27 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "ocpp" -version = "0.24.0" +version = "0.25.0" description = "Python package implementing the JSON version of the Open Charge Point Protocol (OCPP)." authors = [ "André Duarte ", diff --git a/tests/test_charge_point.py b/tests/test_charge_point.py index de505baad..e6b320ef0 100644 --- a/tests/test_charge_point.py +++ b/tests/test_charge_point.py @@ -65,6 +65,8 @@ def test_camel_to_snake_case(test_input, expected): [ ({"transaction_id": "74563478"}, {"transactionId": "74563478"}), ({"full_soc": 100}, {"fullSoC": 100}), + ({"ev_min_v2x_energy_request": 200}, {"evMinV2XEnergyRequest": 200}), + ({"v2x_charging_ctrlr": 200}, {"v2xChargingCtrlr": 200}), ], ) def test_snake_to_camel_case(test_input, expected):