From efbcb17e8336b5da8688594b47be5f6efefa30dc Mon Sep 17 00:00:00 2001 From: Alex McLarty Date: Tue, 9 Jan 2024 08:30:52 +0000 Subject: [PATCH 01/11] Remove unreachable code from 2.0.1 CSMS example. (#561) --- examples/v201/central_system.py | 2 -- 1 file changed, 2 deletions(-) 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: From 71fee9c7f102d836f744d4d50e21adaa97f398dd Mon Sep 17 00:00:00 2001 From: Jared-Newell-Mobility <119603687+Jared-Newell-Mobility@users.noreply.github.com> Date: Tue, 9 Jan 2024 09:39:14 +0100 Subject: [PATCH 02/11] Attributes with 'v2x' are serialized as 'V2x', but should be serialized as 'V2X' (#522) --- CHANGELOG.md | 1 + ocpp/charge_point.py | 3 ++- tests/test_charge_point.py | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 013775bc6..32e052bb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Change log +- [#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/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/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): From 5f27521b5c7b83abfb61217036ae5776e1fb6998 Mon Sep 17 00:00:00 2001 From: Jared-Newell-Mobility <119603687+Jared-Newell-Mobility@users.noreply.github.com> Date: Tue, 9 Jan 2024 09:43:06 +0100 Subject: [PATCH 03/11] Fix type hint of OCPP 1.6 ChangeConfiguration.value (#525) --- CHANGELOG.md | 2 ++ ocpp/v16/call.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32e052bb8..e83bb5514 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Change log +- [#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 @@ -8,6 +9,7 @@ ## 0.24.0 (2023-12-07) + - [#539](https://github.com/mobilityhouse/ocpp/issues/539) feat: Add ChargePoint._handle_call return value. Thanks [@wafa-yah](https://github.com/wafa-yah) - [#266](https://github.com/mobilityhouse/ocpp/issues/266) fix: Central System documentation link. - [#516](https://github.com/mobilityhouse/ocpp/issues/516) OCPP 2.0.1 add additional security events from v1.3. 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 From a9df8ebdaee922c323be1d06eace2d5a35a5f747 Mon Sep 17 00:00:00 2001 From: Jared-Newell-Mobility <119603687+Jared-Newell-Mobility@users.noreply.github.com> Date: Tue, 9 Jan 2024 10:03:44 +0100 Subject: [PATCH 04/11] Bump to 0.25.0 (#558) --- CHANGELOG.md | 3 ++- docs/source/conf.py | 2 +- pyproject.toml | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e83bb5514..5d263a851 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # 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 @@ -9,7 +11,6 @@ ## 0.24.0 (2023-12-07) - - [#539](https://github.com/mobilityhouse/ocpp/issues/539) feat: Add ChargePoint._handle_call return value. Thanks [@wafa-yah](https://github.com/wafa-yah) - [#266](https://github.com/mobilityhouse/ocpp/issues/266) fix: Central System documentation link. - [#516](https://github.com/mobilityhouse/ocpp/issues/516) OCPP 2.0.1 add additional security events from v1.3. 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/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 ", From 7d50b6cc3dfc173f9e72727107cfacfe34893c41 Mon Sep 17 00:00:00 2001 From: Jared-Newell-Mobility <119603687+Jared-Newell-Mobility@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:59:13 +0100 Subject: [PATCH 05/11] Fix type hint v16.datatypes.SampledValue.context (#495) Co-authored-by: Auke Willem Oosterhoff <1565144+OrangeTux@users.noreply.github.com> --- CHANGELOG.md | 2 ++ ocpp/v16/datatypes.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d263a851..7bc698c14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Change log +- [#421](https://github.com/mobilityhouse/ocpp/issues/421) Type of v16.datatypes.SampledValue.context is incorrect + ## 0.25.0 (2024-01-08) - [#366](https://github.com/mobilityhouse/ocpp/issues/366) Fix type hint of OCPP 1.6 ChangeConfiguration.value diff --git a/ocpp/v16/datatypes.py b/ocpp/v16/datatypes.py index aa652f80d..36c751a7c 100644 --- a/ocpp/v16/datatypes.py +++ b/ocpp/v16/datatypes.py @@ -105,7 +105,7 @@ class SampledValue: """ value: str - context: ReadingContext + context: Optional[ReadingContext] = None format: Optional[ValueFormat] = None measurand: Optional[Measurand] = None phase: Optional[Phase] = None From fab6536c648f4a10f957bdeb0701ce99817f2757 Mon Sep 17 00:00:00 2001 From: Jared-Newell-Mobility <119603687+Jared-Newell-Mobility@users.noreply.github.com> Date: Mon, 15 Jan 2024 15:59:17 +0100 Subject: [PATCH 06/11] Make formatting of enums in py3.11 consistent with earlier Python versions (#550) Python 3.11 changes the behavior of `enum.Enum.__format__()` slightly. f-strings (and a few other string formatting methods) rely on dunder method `__format___()`. This change makes the formatting of enums as strings consistent among all supported Python versions. Fixes #447 --- CHANGELOG.md | 2 + ocpp/v16/enums.py | 105 +++++++------ ocpp/v201/enums.py | 361 +++++++++++++++++++++++---------------------- 3 files changed, 242 insertions(+), 226 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bc698c14..b1afefabc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Change log +- [#447](https://github.com/mobilityhouse/ocpp/issues/447) Make formatting of enums in py3.11 consistent with earlier Python versions - [#421](https://github.com/mobilityhouse/ocpp/issues/421) Type of v16.datatypes.SampledValue.context is incorrect ## 0.25.0 (2024-01-08) @@ -13,6 +14,7 @@ ## 0.24.0 (2023-12-07) + - [#539](https://github.com/mobilityhouse/ocpp/issues/539) feat: Add ChargePoint._handle_call return value. Thanks [@wafa-yah](https://github.com/wafa-yah) - [#266](https://github.com/mobilityhouse/ocpp/issues/266) fix: Central System documentation link. - [#516](https://github.com/mobilityhouse/ocpp/issues/516) OCPP 2.0.1 add additional security events from v1.3. diff --git a/ocpp/v16/enums.py b/ocpp/v16/enums.py index 8071fe17c..1d84ba10b 100644 --- a/ocpp/v16/enums.py +++ b/ocpp/v16/enums.py @@ -1,7 +1,14 @@ -from enum import Enum +try: + # breaking change introduced in python 3.11 + from enum import StrEnum +except ImportError: # pragma: no cover + from enum import Enum # pragma: no cover + class StrEnum(str, Enum): # pragma: no cover + pass # pragma: no cover -class Action(str, Enum): + +class Action(StrEnum): """An Action is a required part of a Call message.""" Authorize = "Authorize" @@ -45,7 +52,7 @@ class Action(str, Enum): UpdateFirmware = "UpdateFirmware" -class AuthorizationStatus(str, Enum): +class AuthorizationStatus(StrEnum): """ Elements that constitute an entry of a Local Authorization List update. """ @@ -57,7 +64,7 @@ class AuthorizationStatus(str, Enum): concurrent_tx = "ConcurrentTx" -class AvailabilityStatus(str, Enum): +class AvailabilityStatus(StrEnum): """ Status returned in response to ChangeAvailability.req. """ @@ -67,7 +74,7 @@ class AvailabilityStatus(str, Enum): scheduled = "Scheduled" -class AvailabilityType(str, Enum): +class AvailabilityType(StrEnum): """ Requested availability change in ChangeAvailability.req. """ @@ -76,7 +83,7 @@ class AvailabilityType(str, Enum): operative = "Operative" -class CancelReservationStatus(str, Enum): +class CancelReservationStatus(StrEnum): """ Status in CancelReservation.conf. """ @@ -85,7 +92,7 @@ class CancelReservationStatus(str, Enum): rejected = "Rejected" -class CertificateSignedStatus(str, Enum): +class CertificateSignedStatus(StrEnum): """ CertificateSignedStatusEnumType is used by: CertificateSigned.conf """ @@ -94,7 +101,7 @@ class CertificateSignedStatus(str, Enum): rejected = "Rejected" -class CertificateStatus(str, Enum): +class CertificateStatus(StrEnum): """ CertificateStatusEnumType is used by: InstallCertificate.conf """ @@ -104,7 +111,7 @@ class CertificateStatus(str, Enum): failed = "Failed" -class CertificateUse(str, Enum): +class CertificateUse(StrEnum): """ CertificateUseEnumType is used by: GetInstalledCertificateIds.req, InstallCertificate.req @@ -114,7 +121,7 @@ class CertificateUse(str, Enum): manufacturer_root_certificate = "ManufacturerRootCertificate" -class ChargePointErrorCode(str, Enum): +class ChargePointErrorCode(StrEnum): """ Charge Point status reported in StatusNotification.req. """ @@ -155,7 +162,7 @@ class ChargePointErrorCode(str, Enum): weakSignal = "WeakSignal" -class ChargePointStatus(str, Enum): +class ChargePointStatus(StrEnum): """ Status reported in StatusNotification.req. A status can be reported for the Charge Point main controller (connectorId = 0) or for a specific @@ -182,7 +189,7 @@ class ChargePointStatus(str, Enum): suspendedev = "SuspendedEV" -class ChargingProfileKindType(str, Enum): +class ChargingProfileKindType(StrEnum): """ "Absolute": Schedule periods are relative to a fixed point in time defined in the schedule. @@ -196,7 +203,7 @@ class ChargingProfileKindType(str, Enum): relative = "Relative" -class ChargingProfilePurposeType(str, Enum): +class ChargingProfilePurposeType(StrEnum): """ In load balancing scenarios, the Charge Point has one or more local charging profiles that limit the power or current to be shared by all @@ -242,7 +249,7 @@ class ChargingProfilePurposeType(str, Enum): txprofile = "TxProfile" -class ChargingProfileStatus(str, Enum): +class ChargingProfileStatus(StrEnum): """ Status returned in response to SetChargingProfile.req. """ @@ -254,7 +261,7 @@ class ChargingProfileStatus(str, Enum): notSupported = "NotSupported" -class ChargingRateUnitType(str, Enum): +class ChargingRateUnitType(StrEnum): """ Unit in which a charging schedule is defined, as used in: GetCompositeSchedule.req and ChargingSchedule @@ -276,7 +283,7 @@ class CiStringType(int): ci_string_500 = 500 -class ClearCacheStatus(str, Enum): +class ClearCacheStatus(StrEnum): """ Status returned in response to ClearCache.req. """ @@ -285,7 +292,7 @@ class ClearCacheStatus(str, Enum): rejected = "Rejected" -class ClearChargingProfileStatus(str, Enum): +class ClearChargingProfileStatus(StrEnum): """ Status returned in response to ClearChargingProfile.req. """ @@ -294,7 +301,7 @@ class ClearChargingProfileStatus(str, Enum): unknown = "Unknown" -class ConfigurationStatus(str, Enum): +class ConfigurationStatus(StrEnum): """ Status in ChangeConfiguration.conf. """ @@ -309,7 +316,7 @@ class ConfigurationStatus(str, Enum): notSupported = "NotSupported" -class ConfigurationKey(str, Enum): +class ConfigurationKey(StrEnum): """ Configuration Key Names. """ @@ -383,7 +390,7 @@ class ConfigurationKey(str, Enum): security_profile = "SecurityProfile" -class DataTransferStatus(str, Enum): +class DataTransferStatus(StrEnum): """ Status in DataTransfer.conf. """ @@ -398,7 +405,7 @@ class DataTransferStatus(str, Enum): unknownVendorId = "UnknownVendorId" -class DeleteCertificateStatus(str, Enum): +class DeleteCertificateStatus(StrEnum): """ DeleteCertificateStatusEnumType is used by: DeleteCertificate.conf """ @@ -408,7 +415,7 @@ class DeleteCertificateStatus(str, Enum): not_found = "NotFound" -class DiagnosticsStatus(str, Enum): +class DiagnosticsStatus(StrEnum): """ Status in DiagnosticsStatusNotification.req. """ @@ -422,7 +429,7 @@ class DiagnosticsStatus(str, Enum): uploadFailed = "UploadFailed" -class FirmwareStatus(str, Enum): +class FirmwareStatus(StrEnum): """ Status of a firmware download as reported in FirmwareStatusNotification.req """ @@ -451,7 +458,7 @@ class FirmwareStatus(str, Enum): installationFailed = "InstallationFailed" -class GenericStatus(str, Enum): +class GenericStatus(StrEnum): """ Generic message response status """ @@ -460,7 +467,7 @@ class GenericStatus(str, Enum): rejected = "Rejected" -class GetCompositeScheduleStatus(str, Enum): +class GetCompositeScheduleStatus(StrEnum): """ Status returned in response to GetCompositeSchedule.req """ @@ -469,7 +476,7 @@ class GetCompositeScheduleStatus(str, Enum): rejected = "Rejected" -class GetInstalledCertificateStatus(str, Enum): +class GetInstalledCertificateStatus(StrEnum): """ GetInstalledCertificateStatusEnumType is used by: GetInstalledCertificateIds.conf @@ -479,7 +486,7 @@ class GetInstalledCertificateStatus(str, Enum): not_found = "NotFound" -class HashAlgorithm(str, Enum): +class HashAlgorithm(StrEnum): """ HashAlgorithmEnumType is used by: CertificateHashDataType """ @@ -489,7 +496,7 @@ class HashAlgorithm(str, Enum): sha512 = "SHA512" -class Location(str, Enum): +class Location(StrEnum): """ Allowable values of the optional "location" field of a value element in SampledValue. @@ -502,7 +509,7 @@ class Location(str, Enum): ev = "EV" -class Log(str, Enum): +class Log(StrEnum): """ LogEnumType is used by GetLog.req """ @@ -511,7 +518,7 @@ class Log(str, Enum): security_log = "SecurityLog" -class LogStatus(str, Enum): +class LogStatus(StrEnum): """ LogStatusEnumType is used by: GetLog.conf """ @@ -521,7 +528,7 @@ class LogStatus(str, Enum): accepted_canceled = "AcceptedCanceled" -class Measurand(str, Enum): +class Measurand(StrEnum): """ Allowable values of the optional "measurand" field of a Value element, as used in MeterValues.req and StopTransaction.req messages. Default value of @@ -571,7 +578,7 @@ class Measurand(str, Enum): powerReactiveImport = "Power.Reactive.Import" -class MessageTrigger(str, Enum): +class MessageTrigger(StrEnum): """ Type of request to be triggered in a TriggerMessage.req """ @@ -598,7 +605,7 @@ class MessageTrigger(str, Enum): statusNotification = "StatusNotification" -class Phase(str, Enum): +class Phase(StrEnum): """ Phase as used in SampledValue. Phase specifies how a measured value is to be interpreted. Please note that not all values of Phase are applicable to @@ -625,7 +632,7 @@ class Phase(str, Enum): l3l1 = "L3-L1" -class ReadingContext(str, Enum): +class ReadingContext(StrEnum): """ Values of the context field of a value in SampledValue. """ @@ -648,7 +655,7 @@ class ReadingContext(str, Enum): transactionEnd = "Transaction.End" -class Reason(str, Enum): +class Reason(StrEnum): """ Reason for stopping a transaction in StopTransaction.req. """ @@ -675,7 +682,7 @@ class Reason(str, Enum): deAuthorized = "DeAuthorized" -class RecurrencyKind(str, Enum): +class RecurrencyKind(StrEnum): """ "Daily": The schedule restarts at the beginning of the next day. "Weekly": The schedule restarts at the beginning of the next week @@ -686,7 +693,7 @@ class RecurrencyKind(str, Enum): weekly = "Weekly" -class RegistrationStatus(str, Enum): +class RegistrationStatus(StrEnum): """ Result of registration in response to BootNotification.req. """ @@ -696,7 +703,7 @@ class RegistrationStatus(str, Enum): rejected = "Rejected" -class RemoteStartStopStatus(str, Enum): +class RemoteStartStopStatus(StrEnum): """ The result of a RemoteStartTransaction.req or RemoteStopTransaction.req request. @@ -706,7 +713,7 @@ class RemoteStartStopStatus(str, Enum): rejected = "Rejected" -class ReservationStatus(str, Enum): +class ReservationStatus(StrEnum): """ Status in ReserveNow.conf. """ @@ -718,7 +725,7 @@ class ReservationStatus(str, Enum): unavailable = "Unavailable" -class ResetStatus(str, Enum): +class ResetStatus(StrEnum): """ Result of Reset.req """ @@ -727,7 +734,7 @@ class ResetStatus(str, Enum): rejected = "Rejected" -class ResetType(str, Enum): +class ResetType(StrEnum): """ Type of reset requested by Reset.req """ @@ -736,7 +743,7 @@ class ResetType(str, Enum): soft = "Soft" -class TriggerMessageStatus(str, Enum): +class TriggerMessageStatus(StrEnum): """ Status in TriggerMessage.conf. """ @@ -749,7 +756,7 @@ class TriggerMessageStatus(str, Enum): notImplemented = "NotImplemented" -class UnitOfMeasure(str, Enum): +class UnitOfMeasure(StrEnum): """ Allowable values of the optional "unit" field of a Value element, as used in MeterValues.req and StopTransaction.req messages. Default value of @@ -775,7 +782,7 @@ class UnitOfMeasure(str, Enum): hertz = "Hertz" -class UnlockStatus(str, Enum): +class UnlockStatus(StrEnum): """ Status in response to UnlockConnector.req. """ @@ -789,7 +796,7 @@ class UnlockStatus(str, Enum): notSupported = "NotSupported" -class UpdateFirmwareStatus(str, Enum): +class UpdateFirmwareStatus(StrEnum): """ UpdateFirmwareStatusEnumType is used by: SignedUpdateFirmware.conf """ @@ -801,7 +808,7 @@ class UpdateFirmwareStatus(str, Enum): revoked_certificate = "RevokedCertificate" -class UploadLogStatus(str, Enum): +class UploadLogStatus(StrEnum): """ UploadLogStatusEnumType is used by: LogStatusNotification.req """ @@ -815,7 +822,7 @@ class UploadLogStatus(str, Enum): uploading = "Uploading" -class UpdateStatus(str, Enum): +class UpdateStatus(StrEnum): """ Type of update for a SendLocalList.req. """ @@ -830,7 +837,7 @@ class UpdateStatus(str, Enum): versionMismatch = "VersionMismatch" -class UpdateType(str, Enum): +class UpdateType(StrEnum): """ Type of update for a SendLocalList.req. """ @@ -839,7 +846,7 @@ class UpdateType(str, Enum): full = "Full" -class ValueFormat(str, Enum): +class ValueFormat(StrEnum): """ Format that specifies how the value element in SampledValue is to be interpreted. diff --git a/ocpp/v201/enums.py b/ocpp/v201/enums.py index 625fafbf3..60b2fb533 100644 --- a/ocpp/v201/enums.py +++ b/ocpp/v201/enums.py @@ -1,7 +1,14 @@ -from enum import Enum +try: + # breaking change introduced in python 3.11 + from enum import StrEnum +except ImportError: # pragma: no cover + from enum import Enum # pragma: no cover + class StrEnum(str, Enum): # pragma: no cover + pass # pragma: no cover -class Action(str, Enum): + +class Action(StrEnum): """An Action is a required part of a Call message.""" Authorize = "Authorize" @@ -73,7 +80,7 @@ class Action(str, Enum): # Enums -class APNAuthenticationType(str, Enum): +class APNAuthenticationType(StrEnum): """ APNAuthenticationEnumType is used by setNetworkProfileSetNetworkProfileRequest.APNType @@ -85,7 +92,7 @@ class APNAuthenticationType(str, Enum): auto = "AUTO" -class AttributeType(str, Enum): +class AttributeType(StrEnum): """ AttributeEnumType is used by Common:VariableAttributeType, getVariables:GetVariablesRequest.GetVariableDataType , @@ -101,7 +108,7 @@ class AttributeType(str, Enum): maxSet = "MaxSet" -class AuthorizationStatusType(str, Enum): +class AuthorizationStatusType(StrEnum): """ Elements that constitute an entry of a Local Authorization List update. """ @@ -121,7 +128,7 @@ class AuthorizationStatusType(str, Enum): unknown = "Unknown" -class AuthorizeCertificateStatusType(str, Enum): +class AuthorizeCertificateStatusType(StrEnum): """ Status of the EV Contract certificate. """ @@ -135,7 +142,7 @@ class AuthorizeCertificateStatusType(str, Enum): contract_cancelled = "ContractCancelled" -class BootReasonType(str, Enum): +class BootReasonType(StrEnum): """ BootReasonEnumType is used by bootNotificationBootNotificationRequest """ @@ -151,7 +158,7 @@ class BootReasonType(str, Enum): watchdog = "Watchdog" -class CancelReservationStatusType(str, Enum): +class CancelReservationStatusType(StrEnum): """ Status in CancelReservationResponse. """ @@ -160,7 +167,7 @@ class CancelReservationStatusType(str, Enum): rejected = "Rejected" -class CertificateActionType(str, Enum): +class CertificateActionType(StrEnum): """ CertificateActionEnumType is used by get15118EVCertificateGet15118EVCertificateRequest @@ -170,12 +177,12 @@ class CertificateActionType(str, Enum): update = "Update" -class CertificateSignedStatusType(str, Enum): +class CertificateSignedStatusType(StrEnum): accepted = "Accepted" rejected = "Rejected" -class CertificateSigningUseType(str, Enum): +class CertificateSigningUseType(StrEnum): """ CertificateSigningUseEnumType is used by signCertificate SignCertificateRequest , @@ -186,7 +193,7 @@ class CertificateSigningUseType(str, Enum): v2g_certificate = "V2GCertificate" -class ChangeAvailabilityStatusType(str, Enum): +class ChangeAvailabilityStatusType(StrEnum): """ Status returned in response to ChangeAvailability.req. """ @@ -196,7 +203,7 @@ class ChangeAvailabilityStatusType(str, Enum): scheduled = "Scheduled" -class ChargingLimitSourceType(str, Enum): +class ChargingLimitSourceType(StrEnum): """ Enumeration for indicating from which source a charging limit originates. """ @@ -207,7 +214,7 @@ class ChargingLimitSourceType(str, Enum): cso = "CSO" -class ChargingProfileKindType(str, Enum): +class ChargingProfileKindType(StrEnum): """ "Absolute" Schedule periods are relative to a fixed point in time defined in the schedule. @@ -221,7 +228,7 @@ class ChargingProfileKindType(str, Enum): relative = "Relative" -class ChargingProfilePurposeType(str, Enum): +class ChargingProfilePurposeType(StrEnum): """ In load balancing scenarios, the Charge Point has one or more local charging profiles that limit the power or current to be shared by all @@ -265,7 +272,7 @@ class ChargingProfilePurposeType(str, Enum): tx_profile = "TxProfile" -class ChargingProfileStatus(str, Enum): +class ChargingProfileStatus(StrEnum): """ Status returned in response to SetChargingProfile.req. """ @@ -274,7 +281,7 @@ class ChargingProfileStatus(str, Enum): rejected = "Rejected" -class ChargingRateUnitType(str, Enum): +class ChargingRateUnitType(StrEnum): """ Unit in which a charging schedule is defined, as used in GetCompositeSchedule.req and ChargingSchedule @@ -284,7 +291,7 @@ class ChargingRateUnitType(str, Enum): amps = "A" -class ChargingStateType(str, Enum): +class ChargingStateType(StrEnum): """ The state of the charging process. """ @@ -296,7 +303,7 @@ class ChargingStateType(str, Enum): idle = "Idle" -class ClearCacheStatusType(str, Enum): +class ClearCacheStatusType(StrEnum): """ Status returned in response to ClearCache.req. """ @@ -305,7 +312,7 @@ class ClearCacheStatusType(str, Enum): rejected = "Rejected" -class ClearChargingProfileStatusType(str, Enum): +class ClearChargingProfileStatusType(StrEnum): """ Status returned in response to ClearChargingProfile.req. """ @@ -314,7 +321,7 @@ class ClearChargingProfileStatusType(str, Enum): unknown = "Unknown" -class ClearMessageStatusType(str, Enum): +class ClearMessageStatusType(StrEnum): """ Status returned in response to ClearDisplayMessageRequest. """ @@ -323,7 +330,7 @@ class ClearMessageStatusType(str, Enum): unknown = "Unknown" -class ClearMonitoringStatusType(str, Enum): +class ClearMonitoringStatusType(StrEnum): """ ClearMonitoringStatusEnumType is used by CommonClearMonitoringResultType """ @@ -333,7 +340,7 @@ class ClearMonitoringStatusType(str, Enum): not_found = "NotFound" -class ComponentCriterionType(str, Enum): +class ComponentCriterionType(StrEnum): """ ComponentCriterionEnumType is used by getReportGetReportRequest """ @@ -344,7 +351,7 @@ class ComponentCriterionType(str, Enum): problem = "Problem" -class ConnectorStatusType(str, Enum): +class ConnectorStatusType(StrEnum): """ Status reported in StatusNotification.req. A status can be reported for the Charge Point main controller (connectorId = 0) or for a specific @@ -363,7 +370,7 @@ class ConnectorStatusType(str, Enum): faulted = "Faulted" -class ConnectorType(str, Enum): +class ConnectorType(StrEnum): """ Allowed values of ConnectorCode. """ @@ -422,7 +429,7 @@ class ConnectorType(str, Enum): unknown = "Unknown" -class CostKindType(str, Enum): +class CostKindType(StrEnum): """ CostKindEnumType is used by CommonCostType """ @@ -432,7 +439,7 @@ class CostKindType(str, Enum): renewable_generation_percentage = "RenewableGenerationPercentage" -class CustomerInformationStatusType(str, Enum): +class CustomerInformationStatusType(StrEnum): """ Status in CustomerInformationResponse """ @@ -442,7 +449,7 @@ class CustomerInformationStatusType(str, Enum): invalid = "Invalid" -class DataTransferStatusType(str, Enum): +class DataTransferStatusType(StrEnum): """ Status in DataTransferResponse. """ @@ -453,7 +460,7 @@ class DataTransferStatusType(str, Enum): unknown_vendor_id = "UnknownVendorId" -class DataType(str, Enum): +class DataType(StrEnum): """ DataEnumType is used by CommonVariableCharacteristicsType """ @@ -469,7 +476,7 @@ class DataType(str, Enum): password_string = "passwordString" -class DeleteCertificateStatusType(str, Enum): +class DeleteCertificateStatusType(StrEnum): """ DeleteCertificateStatusEnumType is used by deleteCertificateDeleteCertificateResponse @@ -480,7 +487,7 @@ class DeleteCertificateStatusType(str, Enum): not_found = "NotFound" -class DisplayMessageStatusType(str, Enum): +class DisplayMessageStatusType(StrEnum): """ Result for a SetDisplayMessageRequest as used in a SetDisplayMessageResponse. @@ -494,7 +501,7 @@ class DisplayMessageStatusType(str, Enum): unknown_transaction = "UnknownTransaction" -class EnergyTransferModeType(str, Enum): +class EnergyTransferModeType(StrEnum): """ Enumeration of energy transfer modes. """ @@ -505,7 +512,7 @@ class EnergyTransferModeType(str, Enum): ac_three_phase = "AC_three_phase" -class EventNotificationType(str, Enum): +class EventNotificationType(StrEnum): """ Specifies the event notification type of the message. """ @@ -516,7 +523,7 @@ class EventNotificationType(str, Enum): custom_monitor = "CustomMonitor" -class EventTriggerType(str, Enum): +class EventTriggerType(StrEnum): """ EventTriggerEnumType is used by notifyEventNotifyEventRequest.EventDataType @@ -527,7 +534,7 @@ class EventTriggerType(str, Enum): periodic = "Periodic" -class FirmwareStatusType(str, Enum): +class FirmwareStatusType(StrEnum): """ Status of a firmware download as reported in FirmwareStatusNotificationRequest @@ -549,7 +556,7 @@ class FirmwareStatusType(str, Enum): signature_verified = "SignatureVerified" -class GenericDeviceModelStatusType(str, Enum): +class GenericDeviceModelStatusType(StrEnum): """ Status of a firmware download as reported in GetBaseReportResponse """ @@ -560,7 +567,7 @@ class GenericDeviceModelStatusType(str, Enum): empty_result_set = "EmptyResultSet" -class GenericStatusType(str, Enum): +class GenericStatusType(StrEnum): """ Generic message response status """ @@ -569,7 +576,7 @@ class GenericStatusType(str, Enum): rejected = "Rejected" -class GetCertificateIdUseType(str, Enum): +class GetCertificateIdUseType(StrEnum): v2g_root_certificate = "V2GRootCertificate" mo_root_certificate = "MORootCertificate" csms_root_certificate = "CSMSRootCertificate" @@ -577,7 +584,7 @@ class GetCertificateIdUseType(str, Enum): manufacturer_root_certificate = "ManufacturerRootCertificate" -class GetCertificateStatusType(str, Enum): +class GetCertificateStatusType(StrEnum): """ GetCertificateStatusEnumType is used by getCertificateStatusGetCertificateStatusResponse @@ -587,7 +594,7 @@ class GetCertificateStatusType(str, Enum): failed = "Failed" -class GetChargingProfileStatusType(str, Enum): +class GetChargingProfileStatusType(StrEnum): """ GetChargingProfileStatusEnumType is used by getChargingProfilesGetChargingProfilesResponse @@ -597,7 +604,7 @@ class GetChargingProfileStatusType(str, Enum): no_profiles = "NoProfiles" -class GetDisplayMessagesStatusType(str, Enum): +class GetDisplayMessagesStatusType(StrEnum): """ GetDisplayMessagesStatusEnumType is used by getDisplayMessagesGetDisplayMessagesResponse @@ -607,7 +614,7 @@ class GetDisplayMessagesStatusType(str, Enum): unknown = "Unknown" -class GetInstalledCertificateStatusType(str, Enum): +class GetInstalledCertificateStatusType(StrEnum): """ GetInstalledCertificateStatusEnumType is used by getInstalledCertificateIdsGetInstalledCertificateIdsResponse @@ -617,7 +624,7 @@ class GetInstalledCertificateStatusType(str, Enum): notFound = "NotFound" -class GetVariableStatusType(str, Enum): +class GetVariableStatusType(StrEnum): """ GetVariableStatusEnumType is used by getVariablesGetVariablesResponse.GetVariableResultType @@ -630,7 +637,7 @@ class GetVariableStatusType(str, Enum): not_supported_attribute_type = "NotSupportedAttributeType" -class HashAlgorithmType(str, Enum): +class HashAlgorithmType(StrEnum): """ HashAlgorithmEnumType is used by CommonCertificateHashDataType , CommonOCSPRequestDataType @@ -641,7 +648,7 @@ class HashAlgorithmType(str, Enum): sha512 = "SHA512" -class IdTokenType(str, Enum): +class IdTokenType(StrEnum): """ Allowable values of the IdTokenType field. """ @@ -656,7 +663,7 @@ class IdTokenType(str, Enum): no_authorization = "NoAuthorization" -class InstallCertificateStatusType(str, Enum): +class InstallCertificateStatusType(StrEnum): """ InstallCertificateStatusEnumType is used by installCertificateInstallCertificateResponse @@ -667,7 +674,7 @@ class InstallCertificateStatusType(str, Enum): failed = "Failed" -class InstallCertificateUseType(str, Enum): +class InstallCertificateUseType(StrEnum): """ InstallCertificateUseEnumType is used by installCertificateInstallCertificateRequest @@ -679,7 +686,7 @@ class InstallCertificateUseType(str, Enum): manufacturer_root_certificate = "ManufacturerRootCertificate" -class Iso15118EVCertificateStatusType(str, Enum): +class Iso15118EVCertificateStatusType(StrEnum): """ Iso15118EVCertificateStatusEnumType is used by get15118EVCertificateGet15118EVCertificateResponse @@ -689,7 +696,7 @@ class Iso15118EVCertificateStatusType(str, Enum): failed = "Failed" -class LocationType(str, Enum): +class LocationType(StrEnum): """ Allowable values of the optional "location" field of a value element in SampledValue. @@ -702,7 +709,7 @@ class LocationType(str, Enum): outlet = "Outlet" -class LogType(str, Enum): +class LogType(StrEnum): """ LogEnumType is used by getLogGetLogRequest """ @@ -711,7 +718,7 @@ class LogType(str, Enum): security_log = "SecurityLog" -class LogStatusType(str, Enum): +class LogStatusType(StrEnum): """ Generic message response status """ @@ -721,7 +728,7 @@ class LogStatusType(str, Enum): accepted_canceled = "AcceptedCanceled" -class MeasurandType(str, Enum): +class MeasurandType(StrEnum): """ Allowable values of the optional "measurand" field of a Value element, as used in MeterValues.req and StopTransaction.req messages. Default value of @@ -755,7 +762,7 @@ class MeasurandType(str, Enum): voltage = "Voltage" -class MessageFormatType(str, Enum): +class MessageFormatType(StrEnum): """ Format of a message to be displayed on the display of the Charging Station. """ @@ -766,7 +773,7 @@ class MessageFormatType(str, Enum): utf8 = "UTF8" -class MessagePriorityType(str, Enum): +class MessagePriorityType(StrEnum): """ Priority with which a message should be displayed on a Charging Station. """ @@ -776,7 +783,7 @@ class MessagePriorityType(str, Enum): normal_cycle = "NormalCycle" -class MessageStateType(str, Enum): +class MessageStateType(StrEnum): """ State of the Charging Station during which a message SHALL be displayed. """ @@ -786,7 +793,7 @@ class MessageStateType(str, Enum): idle = "Idle" -class MessageTriggerType(str, Enum): +class MessageTriggerType(StrEnum): """ Type of request to be triggered in a TriggerMessage.req """ @@ -807,7 +814,7 @@ class MessageTriggerType(str, Enum): publish_firmware_status_notification = "PublishFirmwareStatusNotification" -class MonitorType(str, Enum): +class MonitorType(StrEnum): """ MonitorEnumType is used by CommonVariableMonitoringType """ @@ -819,7 +826,7 @@ class MonitorType(str, Enum): periodic_clock_aligned = "PeriodicClockAligned" -class MonitorBaseType(str, Enum): +class MonitorBaseType(StrEnum): """ MonitoringBaseEnumType is used by setMonitoringBaseSetMonitoringBaseRequest @@ -830,7 +837,7 @@ class MonitorBaseType(str, Enum): hard_wired_only = "HardWiredOnly" -class MonitoringCriterionType(str, Enum): +class MonitoringCriterionType(StrEnum): """ MonitoringCriterionEnumType is used by getMonitoringReportGetMonitoringReportRequest @@ -841,7 +848,7 @@ class MonitoringCriterionType(str, Enum): periodic_monitoring = "PeriodicMonitoring" -class MutabilityType(str, Enum): +class MutabilityType(StrEnum): """ MutabilityEnumType is used by CommonVariableAttributeType """ @@ -851,7 +858,7 @@ class MutabilityType(str, Enum): read_write = "ReadWrite" -class NotifyEVChargingNeedsStatusType(str, Enum): +class NotifyEVChargingNeedsStatusType(StrEnum): """ Accepted a SASchedule will be provided momentarily. Rejected Servoce is Not Available @@ -863,7 +870,7 @@ class NotifyEVChargingNeedsStatusType(str, Enum): processing = "Processing" -class OCPPInterfaceType(str, Enum): +class OCPPInterfaceType(StrEnum): """ Enumeration of network interfaces. """ @@ -878,7 +885,7 @@ class OCPPInterfaceType(str, Enum): wireless3 = "Wireless3" -class OCPPTransportType(str, Enum): +class OCPPTransportType(StrEnum): """ Enumeration of OCPP transport mechanisms. SOAP is currently not a valid value for OCPP 2.0. @@ -888,7 +895,7 @@ class OCPPTransportType(str, Enum): soap = "SOAP" -class OCPPVersionType(str, Enum): +class OCPPVersionType(StrEnum): """ Enumeration of OCPP transport mechanisms. SOAP is currently not a valid value for OCPP 2.0. @@ -900,7 +907,7 @@ class OCPPVersionType(str, Enum): ocpp20 = "OCPP20" -class OperationalStatusType(str, Enum): +class OperationalStatusType(StrEnum): """ Requested availability change in ChangeAvailability.req. """ @@ -909,7 +916,7 @@ class OperationalStatusType(str, Enum): operative = "Operative" -class PhaseType(str, Enum): +class PhaseType(StrEnum): """ Phase as used in SampledValue. Phase specifies how a measured value is to be interpreted. Please note that not all values of Phase are applicable to @@ -928,7 +935,7 @@ class PhaseType(str, Enum): l3_l1 = "L3-L1" -class PublishFirmwareStatusType(str, Enum): +class PublishFirmwareStatusType(StrEnum): """ Status for when publishing a Firmware """ @@ -945,7 +952,7 @@ class PublishFirmwareStatusType(str, Enum): publish_failed = "PublishFailed" -class ReadingContextType(str, Enum): +class ReadingContextType(StrEnum): """ Values of the context field of a value in SampledValue. """ @@ -960,7 +967,7 @@ class ReadingContextType(str, Enum): trigger = "Trigger" -class ReasonType(str, Enum): +class ReasonType(StrEnum): """ Reason for stopping a transaction in StopTransactionRequest """ @@ -986,7 +993,7 @@ class ReasonType(str, Enum): timeout = "Timeout" -class RecurrencyKindType(str, Enum): +class RecurrencyKindType(StrEnum): """ "Daily" The schedule restarts at the beginning of the next day. "Weekly" The schedule restarts at the beginning of the next week @@ -997,7 +1004,7 @@ class RecurrencyKindType(str, Enum): weekly = "Weekly" -class RegistrationStatusType(str, Enum): +class RegistrationStatusType(StrEnum): """ Result of registration in response to BootNotification.req. """ @@ -1007,7 +1014,7 @@ class RegistrationStatusType(str, Enum): rejected = "Rejected" -class ReportBaseType(str, Enum): +class ReportBaseType(StrEnum): """ Report Base Type required in GetBaseReportRequest """ @@ -1017,7 +1024,7 @@ class ReportBaseType(str, Enum): summary_inventory = "SummaryInventory" -class RequestStartStopStatusType(str, Enum): +class RequestStartStopStatusType(StrEnum): """ The result of a RemoteStartTransaction.req or RemoteStopTransaction.req request. @@ -1027,12 +1034,12 @@ class RequestStartStopStatusType(str, Enum): rejected = "Rejected" -class ReservationUpdateStatusType(str, Enum): +class ReservationUpdateStatusType(StrEnum): expired = "Expired" removed = "Removed" -class ReserveNowStatusType(str, Enum): +class ReserveNowStatusType(StrEnum): """ Status in ReserveNowResponse. """ @@ -1044,7 +1051,7 @@ class ReserveNowStatusType(str, Enum): unavailable = "Unavailable" -class ResetStatusType(str, Enum): +class ResetStatusType(StrEnum): """ Result of Reset.req """ @@ -1054,7 +1061,7 @@ class ResetStatusType(str, Enum): scheduled = "Scheduled" -class ResetType(str, Enum): +class ResetType(StrEnum): """ Type of reset requested by Reset.req """ @@ -1063,7 +1070,7 @@ class ResetType(str, Enum): on_idle = "OnIdle" -class SendLocalListStatusType(str, Enum): +class SendLocalListStatusType(StrEnum): """ Type of update for a SendLocalList Request. """ @@ -1073,7 +1080,7 @@ class SendLocalListStatusType(str, Enum): version_mismatch = "VersionMismatch" -class SetMonitoringStatusType(str, Enum): +class SetMonitoringStatusType(StrEnum): """ Status in SetVariableMonitoringResponse """ @@ -1086,7 +1093,7 @@ class SetMonitoringStatusType(str, Enum): duplicate = "Duplicate" -class SetNetworkProfileStatusType(str, Enum): +class SetNetworkProfileStatusType(StrEnum): """ Status in SetNetworkProfileResponse """ @@ -1096,7 +1103,7 @@ class SetNetworkProfileStatusType(str, Enum): failed = "Failed" -class SetVariableStatusType(str, Enum): +class SetVariableStatusType(StrEnum): """ Status in ChangeConfigurationResponse. """ @@ -1109,7 +1116,7 @@ class SetVariableStatusType(str, Enum): reboot_required = "RebootRequired" -class TransactionEventType(str, Enum): +class TransactionEventType(StrEnum): """ Type of Event in TransactionEventRequest """ @@ -1119,7 +1126,7 @@ class TransactionEventType(str, Enum): updated = "Updated" -class TriggerMessageStatusType(str, Enum): +class TriggerMessageStatusType(StrEnum): """ Status in TriggerMessageResponse. """ @@ -1129,7 +1136,7 @@ class TriggerMessageStatusType(str, Enum): not_implemented = "NotImplemented" -class TriggerReasonType(str, Enum): +class TriggerReasonType(StrEnum): """ Reason that triggered a transactionEventRequest """ @@ -1157,7 +1164,7 @@ class TriggerReasonType(str, Enum): reset_command = "ResetCommand" -class TxStartStopPointType(str, Enum): +class TxStartStopPointType(StrEnum): """ The values allowed for the TxStartPoint and TxStopPoint variables. """ @@ -1170,7 +1177,7 @@ class TxStartStopPointType(str, Enum): power_path_closed = "PowerPathClosed" -class UnlockStatusType(str, Enum): +class UnlockStatusType(StrEnum): """ Status in response to UnlockConnector.req. """ @@ -1181,7 +1188,7 @@ class UnlockStatusType(str, Enum): unknown_connector = "UnknownConnector" -class UnpublishFirmwareStatusType(str, Enum): +class UnpublishFirmwareStatusType(StrEnum): """ Status for when unpublishing a Firmware (used by UnpublishFirmwareResponse) """ @@ -1191,7 +1198,7 @@ class UnpublishFirmwareStatusType(str, Enum): unpublished = "Unpublished" -class UpdateFirmwareStatusType(str, Enum): +class UpdateFirmwareStatusType(StrEnum): """ Generic message response status for UpdateFirmwareResponse """ @@ -1203,7 +1210,7 @@ class UpdateFirmwareStatusType(str, Enum): revoked_certificate = "RevokedCertificate" -class UpdateType(str, Enum): +class UpdateType(StrEnum): """ Type of update for a SendLocalList Request. """ @@ -1212,7 +1219,7 @@ class UpdateType(str, Enum): full = "Full" -class UploadLogStatusType(str, Enum): +class UploadLogStatusType(StrEnum): """ Status in LogStatusNotificationRequest. """ @@ -1227,7 +1234,7 @@ class UploadLogStatusType(str, Enum): accepted_canceled = "AcceptedCanceled" -class VPNType(str, Enum): +class VPNType(StrEnum): """ Enumeration of VPN Types used in SetNetworkProfileRequest.VPNType """ @@ -1241,7 +1248,7 @@ class VPNType(str, Enum): # DataTypes -class UnitOfMeasureType(str, Enum): +class UnitOfMeasureType(StrEnum): """ Allowable values of the optional "unit" field of a Value element, as used in MeterValues.req and StopTransaction.req messages. Default value of @@ -1284,7 +1291,7 @@ class UnitOfMeasureType(str, Enum): k = "K" -class StatusInfoReasonType(str, Enum): +class StatusInfoReasonType(StrEnum): """ Standardized reason codes for StatusInfo defined in Appendix 5. v1.3 """ @@ -1334,7 +1341,7 @@ class StatusInfoReasonType(str, Enum): write_only = "WriteOnly" -class SecurityEventType(str, Enum): +class SecurityEventType(StrEnum): """ Security Events as listed in Appendices (Appendix 1. Security Events) v1.3 """ @@ -1361,7 +1368,7 @@ class SecurityEventType(str, Enum): maintenance_login_failed = "MaintenanceLoginFailed" -class ControllerComponentName(str, Enum): +class ControllerComponentName(StrEnum): """ Referenced Controller Components (Logical Components) Sourced from ocpp 2.0.1 part 2 appendices 3.1 v1.3, in @@ -1388,7 +1395,7 @@ class ControllerComponentName(str, Enum): tx_ctrlr = "TxCtrlr" -class PhysicalComponentName(str, Enum): +class PhysicalComponentName(StrEnum): """ Referenced Physical Components - sourced from dm_components_vars.csv. Note: specific variables for each component are sourced from a union of @@ -1456,7 +1463,7 @@ class PhysicalComponentName(str, Enum): vehicle_id_sensor = "VehicleIdSensor" -class GenericVariableName(str, Enum): +class GenericVariableName(StrEnum): """ Variable names where the component type is non-specific derived from a union of in appendices_CSV_v1.3.zip, @@ -1555,7 +1562,7 @@ class GenericVariableName(str, Enum): voltage_imbalance = "VoltageImbalance" -class AlignedDataCtrlrVariableName(str, Enum): +class AlignedDataCtrlrVariableName(StrEnum): """ Variable names where the component type is AlignedDataCtrlr See ControllerComponentName for referenced logical component @@ -1571,7 +1578,7 @@ class AlignedDataCtrlrVariableName(str, Enum): tx_ended_measurands = "TxEndedMeasurands" -class AuthCacheCtrlrVariableName(str, Enum): +class AuthCacheCtrlrVariableName(StrEnum): """ Variable names where the component type is AuthCacheCtrlr See ControllerComponentName for referenced logical component @@ -1585,7 +1592,7 @@ class AuthCacheCtrlrVariableName(str, Enum): disable_post_authorize = "DisablePostAuthorize" -class AuthCtrlrVariableName(str, Enum): +class AuthCtrlrVariableName(StrEnum): """ Variable names where the component type is AuthCtrlr See ControllerComponentName for referenced logical component @@ -1601,7 +1608,7 @@ class AuthCtrlrVariableName(str, Enum): disable_remote_authorization = "DisableRemoteAuthorization" -class CHAdeMOCtrlrVariableName(str, Enum): +class CHAdeMOCtrlrVariableName(StrEnum): """ Variable names where the component type is CHAdeMOCtrlr See ControllerComponentName for referenced logical component @@ -1622,7 +1629,7 @@ class CHAdeMOCtrlrVariableName(str, Enum): auto_manufacturer_code = "AutoManufacturerCode" -class ClockCtrlrVariableName(str, Enum): +class ClockCtrlrVariableName(StrEnum): """ Variable names where the component type is ClockCtrlr See ControllerComponentName for referenced logical component @@ -1638,7 +1645,7 @@ class ClockCtrlrVariableName(str, Enum): time_zone = "TimeZone" -class CustomizationCtrlrVariableName(str, Enum): +class CustomizationCtrlrVariableName(StrEnum): """ Variable names where the component type is CustomizationCtrlr See ControllerComponentName for referenced logical component @@ -1647,7 +1654,7 @@ class CustomizationCtrlrVariableName(str, Enum): custom_implementation_enabled = "CustomImplementationEnabled" -class DeviceDataCtrlrVariableName(str, Enum): +class DeviceDataCtrlrVariableName(StrEnum): """ Variable names where the component type is DeviceDataCtrlr See ControllerComponentName for referenced logical component @@ -1660,7 +1667,7 @@ class DeviceDataCtrlrVariableName(str, Enum): value_size = "ValueSize" -class DeviceDataCtrlrInstanceName(str, Enum): +class DeviceDataCtrlrInstanceName(StrEnum): """ Instance names where the component type is DeviceDataCtrlr """ @@ -1670,7 +1677,7 @@ class DeviceDataCtrlrInstanceName(str, Enum): set_variables = "SetVariables" -class DisplayMessageCtrlrVariableName(str, Enum): +class DisplayMessageCtrlrVariableName(StrEnum): """ Variable names where the component type is DisplayMessageCtrlr See ControllerComponentName for referenced logical component @@ -1684,7 +1691,7 @@ class DisplayMessageCtrlrVariableName(str, Enum): supported_priorities = "SupportedPriorities" -class ISO15118CtrlrVariableName(str, Enum): +class ISO15118CtrlrVariableName(StrEnum): """ Variable names where the component type is ISO15118Ctrlr See ControllerComponentName for referenced logical component @@ -1710,7 +1717,7 @@ class ISO15118CtrlrVariableName(str, Enum): contract_certificate_installation_enabled = "ContractCertificateInstallationEnabled" -class LocalAuthListCtrlrVariableName(str, Enum): +class LocalAuthListCtrlrVariableName(StrEnum): """ Variable names where the component type is LocalAuthListCtrlr See ControllerComponentName for referenced logical component @@ -1725,7 +1732,7 @@ class LocalAuthListCtrlrVariableName(str, Enum): disable_post_authorize = "DisablePostAuthorize" -class MonitoringCtrlrVariableName(str, Enum): +class MonitoringCtrlrVariableName(StrEnum): """ Variable names where the component type is MonitoringCtrlr See ControllerComponentName for referenced logical component @@ -1742,7 +1749,7 @@ class MonitoringCtrlrVariableName(str, Enum): active_monitoring_level = "ActiveMonitoringLevel" -class MonitoringCtrlrInstanceName(str, Enum): +class MonitoringCtrlrInstanceName(StrEnum): """ Instance names where the component type is MonitoringCtrlr """ @@ -1751,7 +1758,7 @@ class MonitoringCtrlrInstanceName(str, Enum): set_variable_monitoring = "SetVariableMonitoring" -class OCPPCommCtrlrVariableName(str, Enum): +class OCPPCommCtrlrVariableName(StrEnum): """ Variable names where the component type is OCPPCommCtrlr See ControllerComponentName for referenced logical component @@ -1778,7 +1785,7 @@ class OCPPCommCtrlrVariableName(str, Enum): field_length = "FieldLength" -class OCPPCommCtrlrInstanceName(str, Enum): +class OCPPCommCtrlrInstanceName(StrEnum): """ Instance names where the component type is OCPPCommCtrlr """ @@ -1787,7 +1794,7 @@ class OCPPCommCtrlrInstanceName(str, Enum): transaction_event = "TransactionEvent" -class ReservationCtrlrVariableName(str, Enum): +class ReservationCtrlrVariableName(StrEnum): """ Variable names where the component type is ReservationCtrlr See ControllerComponentName for referenced logical component @@ -1798,7 +1805,7 @@ class ReservationCtrlrVariableName(str, Enum): non_evse_specific = "NonEvseSpecific" -class SampledDataCtrlrVariableName(str, Enum): +class SampledDataCtrlrVariableName(StrEnum): """ Variable names where the component type is SampledDataCtrlr See ControllerComponentName for referenced logical component @@ -1815,7 +1822,7 @@ class SampledDataCtrlrVariableName(str, Enum): register_values_without_phases = "RegisterValuesWithoutPhases" -class SecurityCtrlrVariableName(str, Enum): +class SecurityCtrlrVariableName(StrEnum): """ Variable names where the component type is SampledDataCtrlr See ControllerComponentName for referenced logical component @@ -1832,7 +1839,7 @@ class SecurityCtrlrVariableName(str, Enum): security_profile = "SecurityProfile" -class SmartChargingCtrlrVariableName(str, Enum): +class SmartChargingCtrlrVariableName(StrEnum): """ Variable names where the component type is SmartChargingCtrlr See ControllerComponentName for referenced logical component @@ -1851,7 +1858,7 @@ class SmartChargingCtrlrVariableName(str, Enum): rate_unit = "RateUnit" -class SmartChargingCtrlrInstanceName(str, Enum): +class SmartChargingCtrlrInstanceName(StrEnum): """ Instance names where the component type is SmartChargingCtrlr """ @@ -1859,7 +1866,7 @@ class SmartChargingCtrlrInstanceName(str, Enum): charging_profiles = "ChargingProfiles" -class TariffCostCtrlrVariableName(str, Enum): +class TariffCostCtrlrVariableName(StrEnum): """ Variable names where the component type is TariffCostCtrlr See ControllerComponentName for referenced logical component @@ -1872,7 +1879,7 @@ class TariffCostCtrlrVariableName(str, Enum): total_cost_fallback_message = "TotalCostFallbackMessage" -class TariffCostCtrlrInstanceName(str, Enum): +class TariffCostCtrlrInstanceName(StrEnum): """ Instance names where the component type is TariffCostCtrlr """ @@ -1881,7 +1888,7 @@ class TariffCostCtrlrInstanceName(str, Enum): cost = "Cost" -class TxCtrlrVariableName(str, Enum): +class TxCtrlrVariableName(StrEnum): """ Instance names where the component type is TxCtrlr See ControllerComponentName for referenced logical component @@ -1897,7 +1904,7 @@ class TxCtrlrVariableName(str, Enum): tx_stop_point = "TxStopPoint" -class AccessBarrierVariableName(str, Enum): +class AccessBarrierVariableName(StrEnum): """ Variable names where the component type is AccessBarrier See PhysicalComponentName for referenced physical component @@ -1908,7 +1915,7 @@ class AccessBarrierVariableName(str, Enum): problem = "Problem" -class AcDcConverterVariableName(str, Enum): +class AcDcConverterVariableName(StrEnum): """ Variable names where the component type is AcDcConverter See PhysicalComponentName for referenced physical component @@ -1925,7 +1932,7 @@ class AcDcConverterVariableName(str, Enum): tripped = "Tripped" -class AcPhaseSelectorVariableName(str, Enum): +class AcPhaseSelectorVariableName(StrEnum): """ Variable names where the component type is AcPhaseSelector See PhysicalComponentName for referenced physical component @@ -1937,7 +1944,7 @@ class AcPhaseSelectorVariableName(str, Enum): problem = "Problem" -class ActuatorVariableName(str, Enum): +class ActuatorVariableName(StrEnum): """ Variable names where the component type is Actuator See PhysicalComponentName for referenced physical component @@ -1949,7 +1956,7 @@ class ActuatorVariableName(str, Enum): state = "State" -class AirCoolingSystemVariableName(str, Enum): +class AirCoolingSystemVariableName(StrEnum): """ Variable names where the component type is AirCoolingSystem See PhysicalComponentName for referenced physical component @@ -1961,7 +1968,7 @@ class AirCoolingSystemVariableName(str, Enum): fan_speed = "FanSpeed" -class AreaVentilationVariableName(str, Enum): +class AreaVentilationVariableName(StrEnum): """ Variable names where the component type is AreaVentilation See PhysicalComponentName for referenced physical component @@ -1973,7 +1980,7 @@ class AreaVentilationVariableName(str, Enum): fan_speed = "FanSpeed" -class BayOccupancySensorVariableName(str, Enum): +class BayOccupancySensorVariableName(StrEnum): """ Variable names where the component type is BayOccupancySensor See PhysicalComponentName for referenced physical component @@ -1984,7 +1991,7 @@ class BayOccupancySensorVariableName(str, Enum): percent = "Percent" -class BeaconLightingVariableName(str, Enum): +class BeaconLightingVariableName(StrEnum): """ Variable names where the component type is BeaconLighting See PhysicalComponentName for referenced physical component @@ -2000,7 +2007,7 @@ class BeaconLightingVariableName(str, Enum): problem = "Problem" -class CableBreakawaySensorVariableName(str, Enum): +class CableBreakawaySensorVariableName(StrEnum): """ Variable names where the component type is CableBreakawaySensor See PhysicalComponentName for referenced physical component @@ -2011,7 +2018,7 @@ class CableBreakawaySensorVariableName(str, Enum): tripped = "Tripped" -class CaseAccessSensorVariableName(str, Enum): +class CaseAccessSensorVariableName(StrEnum): """ Variable names where the component type is CaseAccessSensor See PhysicalComponentName for referenced physical component @@ -2024,7 +2031,7 @@ class CaseAccessSensorVariableName(str, Enum): tripped = "Tripped" -class ChargingStationVariableName(str, Enum): +class ChargingStationVariableName(StrEnum): """ Variable names where the component type is ChargingStation See PhysicalComponentName for referenced physical component @@ -2056,7 +2063,7 @@ class ChargingStationVariableName(str, Enum): voltage_imbalance = "VoltageImbalance" -class ChargingStatusIndicatorVariableName(str, Enum): +class ChargingStatusIndicatorVariableName(StrEnum): """ Variable names where the component type is ChargingStatusIndicator See PhysicalComponentName for referenced physical component @@ -2066,7 +2073,7 @@ class ChargingStatusIndicatorVariableName(str, Enum): color = "Color" -class ConnectedEVVariableName(str, Enum): +class ConnectedEVVariableName(StrEnum): """ Variable names where the component type is ConnectedEV See PhysicalComponentName for referenced physical component @@ -2093,7 +2100,7 @@ class ConnectedEVVariableName(str, Enum): charging_complete_full = "ChargingCompleteFull" -class ChargingStateVariableName(str, Enum): +class ChargingStateVariableName(StrEnum): """ Variable names where the component type is ChargingState """ @@ -2111,7 +2118,7 @@ class ChargingStateVariableName(str, Enum): charger_connector_lock_fault = "ChargerConnectorLockFault" -class ConnectorVariableName(str, Enum): +class ConnectorVariableName(StrEnum): """ Variable names where the component type is Connector See PhysicalComponentName for referenced physical component @@ -2129,7 +2136,7 @@ class ConnectorVariableName(str, Enum): tripped = "Tripped" -class ConnectorHolsterReleaseVariableName(str, Enum): +class ConnectorHolsterReleaseVariableName(StrEnum): """ Variable names where the component type is ConnectorHolsterRelease See PhysicalComponentName for referenced physical component @@ -2141,7 +2148,7 @@ class ConnectorHolsterReleaseVariableName(str, Enum): state = "State" -class ConnectorHolsterSensorVariableName(str, Enum): +class ConnectorHolsterSensorVariableName(StrEnum): """ Variable names where the component type is ConnectorHolsterSensor See PhysicalComponentName for referenced physical component @@ -2152,7 +2159,7 @@ class ConnectorHolsterSensorVariableName(str, Enum): problem = "Problem" -class ConnectorPlugRetentionLockVariableName(str, Enum): +class ConnectorPlugRetentionLockVariableName(StrEnum): """ Variable names where the component type is ConnectorPlugRetentionLock See PhysicalComponentName for referenced physical component @@ -2167,7 +2174,7 @@ class ConnectorPlugRetentionLockVariableName(str, Enum): tries_max_limit = "Tries(MaxLimit)" -class ConnectorProtectionReleaseVariableName(str, Enum): +class ConnectorProtectionReleaseVariableName(StrEnum): """ Variable names where the component type is ConnectorProtectionRelease See PhysicalComponentName for referenced physical component @@ -2179,7 +2186,7 @@ class ConnectorProtectionReleaseVariableName(str, Enum): tripped = "Tripped" -class ControllerVariableName(str, Enum): +class ControllerVariableName(StrEnum): """ Variable names where the component type is Controller See PhysicalComponentName for referenced physical component @@ -2200,7 +2207,7 @@ class ControllerVariableName(str, Enum): version_number = "VersionNumber" -class ControlMeteringVariableName(str, Enum): +class ControlMeteringVariableName(StrEnum): """ Variable names where the component type is ControlMetering See PhysicalComponentName for referenced physical component @@ -2212,7 +2219,7 @@ class ControlMeteringVariableName(str, Enum): dc_voltage = "DCVoltage" -class CPPWMControllerVariableName(str, Enum): +class CPPWMControllerVariableName(StrEnum): """ Variable names where the component type is CPPWMController See PhysicalComponentName for referenced physical component @@ -2228,7 +2235,7 @@ class CPPWMControllerVariableName(str, Enum): state = "State" -class DataLinkVariableName(str, Enum): +class DataLinkVariableName(StrEnum): """ Variable names where the component type is DataLink See PhysicalComponentName for referenced physical component @@ -2245,7 +2252,7 @@ class DataLinkVariableName(str, Enum): signal_strength = "SignalStrength" -class DisplayVariableName(str, Enum): +class DisplayVariableName(StrEnum): """ Variable names where the component type is Display See PhysicalComponentName for referenced physical component @@ -2260,7 +2267,7 @@ class DisplayVariableName(str, Enum): state = "State" -class DistributionPanelVariableName(str, Enum): +class DistributionPanelVariableName(StrEnum): """ Variable names where the component type is DistributionPanel See PhysicalComponentName for referenced physical component @@ -2272,7 +2279,7 @@ class DistributionPanelVariableName(str, Enum): instance_name = "InstanceName" -class ElectricalFeedVariableName(str, Enum): +class ElectricalFeedVariableName(StrEnum): """ Variable names where the component type is ElectricalFeed See PhysicalComponentName for referenced physical component @@ -2290,7 +2297,7 @@ class ElectricalFeedVariableName(str, Enum): supply_phases = "SupplyPhases" -class ELVSupplyVariableName(str, Enum): +class ELVSupplyVariableName(StrEnum): """ Variable names where the component type is ELVSupply See PhysicalComponentName for referenced physical component @@ -2305,7 +2312,7 @@ class ELVSupplyVariableName(str, Enum): time = "Time" -class EmergencyStopSensorVariableName(str, Enum): +class EmergencyStopSensorVariableName(StrEnum): """ Variable names where the component type is EmergencyStopSensor See PhysicalComponentName for referenced physical component @@ -2316,7 +2323,7 @@ class EmergencyStopSensorVariableName(str, Enum): tripped = "Tripped" -class EnvironmentalLightingVariableName(str, Enum): +class EnvironmentalLightingVariableName(StrEnum): """ Variable names where the component type is EnvironmentalLighting See PhysicalComponentName for referenced physical component @@ -2332,7 +2339,7 @@ class EnvironmentalLightingVariableName(str, Enum): problem = "Problem" -class EVRetentionLockVariableName(str, Enum): +class EVRetentionLockVariableName(StrEnum): """ Variable names where the component type is EVRetentionLock See PhysicalComponentName for referenced physical component @@ -2344,7 +2351,7 @@ class EVRetentionLockVariableName(str, Enum): problem = "Problem" -class EVSEVariableName(str, Enum): +class EVSEVariableName(StrEnum): """ Variable names where the component type is EVSE See PhysicalComponentName for referenced physical component @@ -2375,7 +2382,7 @@ class EVSEVariableName(str, Enum): voltage_imbalance = "VoltageImbalance" -class ExternalTemperatureSensorVariableName(str, Enum): +class ExternalTemperatureSensorVariableName(StrEnum): """ Variable names where the component type is ExternalTemperatureSensor See PhysicalComponentName for referenced physical component @@ -2386,7 +2393,7 @@ class ExternalTemperatureSensorVariableName(str, Enum): temperature = "Temperature" -class FiscalMeteringVariableName(str, Enum): +class FiscalMeteringVariableName(StrEnum): """ Variable names where the component type is FiscalMetering See PhysicalComponentName for referenced physical component @@ -2409,7 +2416,7 @@ class FiscalMeteringVariableName(str, Enum): serial_number_meter = "SerialNumber[Meter]" -class FloodSensorVariableName(str, Enum): +class FloodSensorVariableName(StrEnum): """ Variable names where the component type is FloodSensor See PhysicalComponentName for referenced physical component @@ -2422,7 +2429,7 @@ class FloodSensorVariableName(str, Enum): tripped = "Tripped" -class GroundIsolationProtectionVariableName(str, Enum): +class GroundIsolationProtectionVariableName(StrEnum): """ Variable names where the component type is GroundIsolationProtection See PhysicalComponentName for referenced physical component @@ -2435,7 +2442,7 @@ class GroundIsolationProtectionVariableName(str, Enum): problem = "Problem" -class HeaterVariableName(str, Enum): +class HeaterVariableName(StrEnum): """ Variable names where the component type is Heater See PhysicalComponentName for referenced physical component @@ -2452,7 +2459,7 @@ class HeaterVariableName(str, Enum): temperature_max_set = "Temperature(MaxSet)" -class HumiditySensorVariableName(str, Enum): +class HumiditySensorVariableName(StrEnum): """ Variable names where the component type is HumiditySensor See PhysicalComponentName for referenced physical component @@ -2463,7 +2470,7 @@ class HumiditySensorVariableName(str, Enum): problem = "Problem" -class LightSensorVariableName(str, Enum): +class LightSensorVariableName(StrEnum): """ Variable names where the component type is LightSensor See PhysicalComponentName for referenced physical component @@ -2474,7 +2481,7 @@ class LightSensorVariableName(str, Enum): problem = "Problem" -class LiquidCoolingSystemVariableName(str, Enum): +class LiquidCoolingSystemVariableName(StrEnum): """ Variable names where the component type is LiquidCoolingSystem See PhysicalComponentName for referenced physical component @@ -2486,7 +2493,7 @@ class LiquidCoolingSystemVariableName(str, Enum): temperature = "Temperature" -class LocalAvailabilitySensorVariableName(str, Enum): +class LocalAvailabilitySensorVariableName(StrEnum): """ Variable names where the component type is LocalAvailabilitySensor See PhysicalComponentName for referenced physical component @@ -2497,7 +2504,7 @@ class LocalAvailabilitySensorVariableName(str, Enum): problem = "Problem" -class LocalControllerVariableName(str, Enum): +class LocalControllerVariableName(StrEnum): """ Variable names where the component type is LocalController See PhysicalComponentName for referenced physical component @@ -2515,7 +2522,7 @@ class LocalControllerVariableName(str, Enum): tripped = "Tripped" -class LocalEnergyStorageVariableName(str, Enum): +class LocalEnergyStorageVariableName(StrEnum): """ Variable names where the component type is LocalEnergyStorage See PhysicalComponentName for referenced physical component @@ -2526,7 +2533,7 @@ class LocalEnergyStorageVariableName(str, Enum): identity = "Identity" -class OverCurrentProtectionVariableName(str, Enum): +class OverCurrentProtectionVariableName(StrEnum): """ Variable names where the component type is OverCurrentProtection See PhysicalComponentName for referenced physical component @@ -2537,7 +2544,7 @@ class OverCurrentProtectionVariableName(str, Enum): operated = "Operated" -class OverCurrentProtectionRecloserVariableName(str, Enum): +class OverCurrentProtectionRecloserVariableName(StrEnum): """ Variable names where the component type is OverCurrentProtectionRecloser See PhysicalComponentName for referenced physical component @@ -2554,7 +2561,7 @@ class OverCurrentProtectionRecloserVariableName(str, Enum): tries_max_limit = "Tries(MaxLimit)" -class PowerContactorVariableName(str, Enum): +class PowerContactorVariableName(StrEnum): """ Variable names where the component type is PowerContactor See PhysicalComponentName for referenced physical component @@ -2565,7 +2572,7 @@ class PowerContactorVariableName(str, Enum): tripped = "Tripped" -class RCDVariableName(str, Enum): +class RCDVariableName(StrEnum): """ Variable names where the component type is RCD See PhysicalComponentName for referenced physical component @@ -2575,7 +2582,7 @@ class RCDVariableName(str, Enum): tripped = "Tripped" -class RCDRecloserVariableName(str, Enum): +class RCDRecloserVariableName(StrEnum): """ Variable names where the component type is RCDRecloser See PhysicalComponentName for referenced physical component @@ -2591,7 +2598,7 @@ class RCDRecloserVariableName(str, Enum): tries_set_limit = "Tries(SetLimit)" -class RealTimeClockVariableName(str, Enum): +class RealTimeClockVariableName(StrEnum): """ Variable names where the component type is RealTimeClock See PhysicalComponentName for referenced physical component @@ -2604,7 +2611,7 @@ class RealTimeClockVariableName(str, Enum): problem = "Problem" -class ShockSensorVariableName(str, Enum): +class ShockSensorVariableName(StrEnum): """ Variable names where the component type is ShockSensor See PhysicalComponentName for referenced physical component @@ -2615,7 +2622,7 @@ class ShockSensorVariableName(str, Enum): force = "Force" -class SpacesCountSignageVariableName(str, Enum): +class SpacesCountSignageVariableName(StrEnum): """ Variable names where the component type is SpacesCountSignage See PhysicalComponentName for referenced physical component @@ -2626,7 +2633,7 @@ class SpacesCountSignageVariableName(str, Enum): enabled = "Enabled" -class SwitchVariableName(str, Enum): +class SwitchVariableName(StrEnum): """ Variable names where the component type is Switch See PhysicalComponentName for referenced physical component @@ -2637,7 +2644,7 @@ class SwitchVariableName(str, Enum): state = "State" -class TemperatureSensorVariableName(str, Enum): +class TemperatureSensorVariableName(StrEnum): """ Variable names where the component type is TemperatureSensor See PhysicalComponentName for referenced physical component @@ -2648,7 +2655,7 @@ class TemperatureSensorVariableName(str, Enum): temperature = "Temperature" -class TiltSensorVariableName(str, Enum): +class TiltSensorVariableName(StrEnum): """ Variable names where the component type is TiltSensor See PhysicalComponentName for referenced physical component @@ -2659,7 +2666,7 @@ class TiltSensorVariableName(str, Enum): angle = "Angle" -class TokenReaderVariableName(str, Enum): +class TokenReaderVariableName(StrEnum): """ Variable names where the component type is TokenReader See PhysicalComponentName for referenced physical component @@ -2673,7 +2680,7 @@ class TokenReaderVariableName(str, Enum): token_type = "TokenType" -class UIInputVariableName(str, Enum): +class UIInputVariableName(StrEnum): """ Variable names where the component type is UIInput See PhysicalComponentName for referenced physical component @@ -2684,7 +2691,7 @@ class UIInputVariableName(str, Enum): operated = "Operated" -class UpstreamProtectionTriggerVariableName(str, Enum): +class UpstreamProtectionTriggerVariableName(StrEnum): """ Variable names where the component type is UpstreamProtectionTrigger See PhysicalComponentName for referenced physical component @@ -2696,7 +2703,7 @@ class UpstreamProtectionTriggerVariableName(str, Enum): tripped = "Tripped" -class VehicleIdSensorVariableName(str, Enum): +class VehicleIdSensorVariableName(StrEnum): """ Variable names where the component type is VehicleIdSensor See PhysicalComponentName for referenced physical component From 6a6c7aeb54cb53626f5434b6f32cb214582d0333 Mon Sep 17 00:00:00 2001 From: Jared-Newell-Mobility <119603687+Jared-Newell-Mobility@users.noreply.github.com> Date: Wed, 17 Jan 2024 13:12:46 +0100 Subject: [PATCH 07/11] Update project dependencies as of 22-12-2023 (#560) Update project dependencies as of 22-12-2023 See https://github.com/mobilityhouse/ocpp/issues/559 for packages updated --- CHANGELOG.md | 2 + poetry.lock | 633 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 387 insertions(+), 248 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b1afefabc..824eb74b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Change log + +- [#559](https://github.com/mobilityhouse/ocpp/issues/559) Update project dependencies as of 22-12-2023 - [#447](https://github.com/mobilityhouse/ocpp/issues/447) Make formatting of enums in py3.11 consistent with earlier Python versions - [#421](https://github.com/mobilityhouse/ocpp/issues/421) Type of v16.datatypes.SampledValue.context is incorrect diff --git a/poetry.lock b/poetry.lock index 1d0d78257..b11664c88 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,14 +2,14 @@ [[package]] name = "alabaster" -version = "0.7.12" +version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.6" files = [ - {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, - {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, ] [[package]] @@ -26,37 +26,44 @@ files = [ [[package]] name = "attrs" -version = "22.2.0" +version = "23.2.0" description = "Classes Without Boilerplate" category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, - {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, + {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"}, + {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"}, ] +[package.dependencies] +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} + [package.extras] -cov = ["attrs[tests]", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope.interface"] -tests = ["attrs[tests-no-zope]", "zope.interface"] -tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"] +cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] +dev = ["attrs[tests]", "pre-commit"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] +tests = ["attrs[tests-no-zope]", "zope-interface"] +tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] +tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] [[package]] name = "babel" -version = "2.11.0" +version = "2.14.0" description = "Internationalization utilities" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "Babel-2.11.0-py3-none-any.whl", hash = "sha256:1ad3eca1c885218f6dce2ab67291178944f810a10a9b5f3cb8382a5a232b64fe"}, - {file = "Babel-2.11.0.tar.gz", hash = "sha256:5ef4b3226b0180dedded4229651c8b0e1a3a6a2837d45a073272f313e4cf97f6"}, + {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, + {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, ] [package.dependencies] -pytz = ">=2015.7" +pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] [[package]] name = "black" @@ -97,41 +104,126 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2022.12.7" +version = "2023.11.17" description = "Python package for providing Mozilla's CA Bundle." category = "dev" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, + {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"}, + {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"}, ] [[package]] name = "charset-normalizer" -version = "2.1.1" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "dev" optional = false -python-versions = ">=3.6.0" +python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, - {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] -[package.extras] -unicode-backport = ["unicodedata2"] - [[package]] name = "click" -version = "8.1.3" +version = "8.1.7" description = "Composable command line interface toolkit" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] @@ -152,63 +244,72 @@ files = [ [[package]] name = "coverage" -version = "7.0.0" +version = "7.2.7" description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "coverage-7.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f2569682d6ea9628da8d6ba38579a48b1e53081226ec7a6c82b5024b3ce5009f"}, - {file = "coverage-7.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3ec256a592b497f26054195f7d7148892aca8c4cdcc064a7cc66ef7a0455b811"}, - {file = "coverage-7.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5885a4ceb6dde34271bb0adafa4a248a7f589c89821e9da3110c39f92f41e21b"}, - {file = "coverage-7.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d43d406a4d73aa7f855fa44fa77ff47e739b565b2af3844600cdc016d01e46b9"}, - {file = "coverage-7.0.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b18df11efa615b79b9ecc13035a712957ff6283f7b244e57684e1c092869f541"}, - {file = "coverage-7.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f6a4bf5bdee93f6817797beba7086292c2ebde6df0d5822e0c33f8b05415c339"}, - {file = "coverage-7.0.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:33efe89cd0efef016db19d8d05aa46631f76793de90a61b6717acb202b36fe60"}, - {file = "coverage-7.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:96b5b1f1079e48f56bfccf103bcf44d48b9eb5163f1ea523fad580f15d3fe5e0"}, - {file = "coverage-7.0.0-cp310-cp310-win32.whl", hash = "sha256:fb85b7a7a4b204bd59d6d0b0c8d87d9ffa820da225e691dfaffc3137dc05b5f6"}, - {file = "coverage-7.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:793dcd9d42035746fc7637df4336f7581df19d33c5c5253cf988c99d8e93a8ba"}, - {file = "coverage-7.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d564142a03d3bc8913499a458e931b52ddfe952f69b6cd4b24d810fd2959044a"}, - {file = "coverage-7.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0a8b0e86bede874bf5da566b02194fbb12dd14ce3585cabd58452007f272ba81"}, - {file = "coverage-7.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e645c73cbfc4577d93747d3f793115acf6f907a7eb9208fa807fdcf2da1964a4"}, - {file = "coverage-7.0.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de06e7585abe88c6d38c1b73ce4c3cb4c1a79fbb0da0d0f8e8689ef5729ec60d"}, - {file = "coverage-7.0.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a30b646fbdd5bc52f506e149fa4fbdef82432baf6b81774e61ec4e3b43b9cbde"}, - {file = "coverage-7.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:db8141856dc9be0917413df7200f53accf1d84c8b156868e6af058a1ea8e903a"}, - {file = "coverage-7.0.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:59e71912c7fc78d08a567ee65656123878f49ca1b5672e660ea70bf8dfbebf8f"}, - {file = "coverage-7.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b8f7cd942dda3795fc9eadf303cc53a422ac057e3b70c2ad6d4276ec6a83a541"}, - {file = "coverage-7.0.0-cp311-cp311-win32.whl", hash = "sha256:bf437a04b9790d3c9cd5b48e9ce9aa84229040e3ae7d6c670a55118906113c5a"}, - {file = "coverage-7.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:a7e1bb36b4e57a2d304322021b35d4e4a25fa0d501ba56e8e51efaebf4480556"}, - {file = "coverage-7.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:215f40ef86f1958a1151fa7fad2b4f2f99534c4e10a34a1e065eba3f19ef8868"}, - {file = "coverage-7.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae088eb1cbdad8206931b1bf3f11dee644e038a9300be84d3e705e29356e5b1d"}, - {file = "coverage-7.0.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9071e197faa24837b967bc9aa0b9ef961f805a75f1ee3ea1f3367f55cd46c3c"}, - {file = "coverage-7.0.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f1e6d9c70d45a960d3f3d781ea62b167fdf2e0e1f6bb282b96feea653adb923"}, - {file = "coverage-7.0.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9fadd15f9fcfd7b16d9cccce9f5e6ec6f9b8df860633ad9aa62c2b14c259560f"}, - {file = "coverage-7.0.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:10b6246cae61896ab4c7568e498e492cbb73a2dfa4c3af79141c43cf806f929a"}, - {file = "coverage-7.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a8785791c2120af114ea7a06137f7778632e568a5aa2bbfc3b46c573b702af74"}, - {file = "coverage-7.0.0-cp37-cp37m-win32.whl", hash = "sha256:30220518dd89c4878908d73f5f3d1269f86e9e045354436534587a18c7b9da85"}, - {file = "coverage-7.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:bc904aa96105d73357de03de76336b1e3db28e2b12067d36625fd9646ab043fd"}, - {file = "coverage-7.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2331b7bd84a1be79bd17ca8e103ce38db8cbf7cb354dc56e651ba489cf849212"}, - {file = "coverage-7.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e907db8bdd0ad1253a33c20fdc5f0f6209d271114a9c6f1fcdf96617343f7ca0"}, - {file = "coverage-7.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c0deee68e0dae1d6e3fe6943c76d7e66fbeb6519bd08e4e5366bcc28a8a9aca"}, - {file = "coverage-7.0.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6fff0f08bc5ffd0d78db821971472b4adc2ee876b86f743e46d634fb8e3c22f"}, - {file = "coverage-7.0.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a290b7921c1c05787b953e5854d394e887df40696f21381cc33c4e2179bf50ac"}, - {file = "coverage-7.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:100546219af59d2ad82d4575de03a303eb27b75ea36ffbd1677371924d50bcbc"}, - {file = "coverage-7.0.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:c1ba6e63b831112b9484ff5905370d89e43d4316bac76d403031f60d61597466"}, - {file = "coverage-7.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c685fc17d6f4f1a3833e9dac27d0b931f7ccb52be6c30d269374203c7d0204a2"}, - {file = "coverage-7.0.0-cp38-cp38-win32.whl", hash = "sha256:8938f3a10f45019b502020ba9567b97b6ecc8c76b664b421705c5406d4f92fe8"}, - {file = "coverage-7.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:c4b63888bef2928d0eca12cbce0760cfb696acb4fe226eb55178b6a2a039328a"}, - {file = "coverage-7.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cda63459eb20652b22e038729a8f5063862c189a3963cb042a764b753172f75e"}, - {file = "coverage-7.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e06abac1a4aec1ff989131e43ca917fc7bd296f34bf0cfe86cbf74343b21566d"}, - {file = "coverage-7.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32b94ad926e933976627f040f96dd1d9b0ac91f8d27e868c30a28253b9b6ac2d"}, - {file = "coverage-7.0.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6b4af31fb49a2ae8de1cd505fa66c403bfcc5066e845ac19d8904dcfc9d40da"}, - {file = "coverage-7.0.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36b62f0220459e528ad5806cc7dede71aa716e067d2cb10cb4a09686b8791fba"}, - {file = "coverage-7.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:43ec1935c6d6caab4f3bc126d20bd709c0002a175d62208ebe745be37a826a41"}, - {file = "coverage-7.0.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8593c9baf1f0f273afa22f5b45508b76adc7b8e94e17e7d98fbe1e3cd5812af2"}, - {file = "coverage-7.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fee283cd36c3f14422d9c1b51da24ddbb5e1eed89ad2480f6a9f115df38b5df8"}, - {file = "coverage-7.0.0-cp39-cp39-win32.whl", hash = "sha256:97c0b001ff15b8e8882995fc07ac0a08c8baf8b13c1145f3f12e0587bbb0e335"}, - {file = "coverage-7.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:8dbf83a4611c591b5de65069b6fd4dd3889200ed270cd2f7f5ac765d3842889f"}, - {file = "coverage-7.0.0-pp36.pp37.pp38-none-any.whl", hash = "sha256:bcaf18e46668057051a312c714a4548b81f7e8fb3454116ad97be7562d2a99e4"}, - {file = "coverage-7.0.0.tar.gz", hash = "sha256:9a175da2a7320e18fc3ee1d147639a2b3a8f037e508c96aa2da160294eb50e17"}, + {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"}, + {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"}, + {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"}, + {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"}, + {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"}, + {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"}, + {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"}, + {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"}, + {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"}, + {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"}, + {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"}, + {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"}, + {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"}, + {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"}, + {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"}, + {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"}, + {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"}, + {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, ] [package.dependencies] @@ -231,14 +332,14 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.1.0" +version = "1.2.0" description = "Backport of PEP 654 (exception groups)" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.0-py3-none-any.whl", hash = "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e"}, - {file = "exceptiongroup-1.1.0.tar.gz", hash = "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23"}, + {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, + {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, ] [package.extras] @@ -264,14 +365,14 @@ pyflakes = ">=2.5.0,<2.6.0" [[package]] name = "idna" -version = "3.4" +version = "3.6" description = "Internationalized Domain Names in Applications (IDNA)" category = "dev" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, + {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, + {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, ] [[package]] @@ -308,63 +409,63 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pep517", [[package]] name = "importlib-resources" -version = "5.10.1" +version = "5.12.0" description = "Read resources from Python packages" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "importlib_resources-5.10.1-py3-none-any.whl", hash = "sha256:c09b067d82e72c66f4f8eb12332f5efbebc9b007c0b6c40818108c9870adc363"}, - {file = "importlib_resources-5.10.1.tar.gz", hash = "sha256:32bb095bda29741f6ef0e5278c42df98d135391bee5f932841efc0041f748dc3"}, + {file = "importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a"}, + {file = "importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6"}, ] [package.dependencies] zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [[package]] name = "iniconfig" -version = "1.1.1" -description = "iniconfig: brain-dead simple config-ini parsing" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.7" files = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] [[package]] name = "isort" -version = "5.11.4" +version = "5.11.5" description = "A Python utility / library to sort Python imports." category = "dev" optional = false python-versions = ">=3.7.0" files = [ - {file = "isort-5.11.4-py3-none-any.whl", hash = "sha256:c033fd0edb91000a7f09527fe5c75321878f98322a77ddcc81adbd83724afb7b"}, - {file = "isort-5.11.4.tar.gz", hash = "sha256:6db30c5ded9815d813932c04c2f85a360bcdd35fed496f4d8f35495ef0a261b6"}, + {file = "isort-5.11.5-py3-none-any.whl", hash = "sha256:ba1d72fb2595a01c7895a5128f9585a5cc4b6d395f1c8d514989b9a7eb2a8746"}, + {file = "isort-5.11.5.tar.gz", hash = "sha256:6be1f76a507cb2ecf16c7cf14a37e41609ca082330be4e3436a18ef74add55db"}, ] [package.extras] colors = ["colorama (>=0.4.3,<0.5.0)"] -pipfile-deprecated-finder = ["pipreqs", "requirementslib"] +pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] plugins = ["setuptools"] requirements-deprecated-finder = ["pip-api", "pipreqs"] [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.3" description = "A very fast and expressive template engine." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, + {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, ] [package.dependencies] @@ -399,52 +500,62 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "markupsafe" -version = "2.1.1" +version = "2.1.3" description = "Safely add untrusted strings to HTML/XML markup." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, - {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, - {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, - {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, - {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, - {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, + {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, + {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, ] [[package]] @@ -461,38 +572,38 @@ files = [ [[package]] name = "mypy-extensions" -version = "0.4.3" -description = "Experimental type system extensions for programs checked with the mypy typechecker." +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.5" files = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] [[package]] name = "packaging" -version = "22.0" +version = "23.2" description = "Core utilities for Python packages" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-22.0-py3-none-any.whl", hash = "sha256:957e2148ba0e1a3b282772e791ef1d8083648bc131c8ab0c1feba110ce1146c3"}, - {file = "packaging-22.0.tar.gz", hash = "sha256:2198ec20bd4c017b8f9717e00f0c8714076fc2fd93816750ab48e2c41de2cfd3"}, + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, ] [[package]] name = "pathspec" -version = "0.10.3" +version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pathspec-0.10.3-py3-none-any.whl", hash = "sha256:3c95343af8b756205e2aba76e843ba9520a24dd84f68c22b9f93251507509dd6"}, - {file = "pathspec-0.10.3.tar.gz", hash = "sha256:56200de4077d9d0791465aa9095a01d421861e405b5096955051deefd697d6f6"}, + {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, + {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, ] [[package]] @@ -509,30 +620,33 @@ files = [ [[package]] name = "platformdirs" -version = "2.6.0" +version = "4.0.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-2.6.0-py3-none-any.whl", hash = "sha256:1a89a12377800c81983db6be069ec068eee989748799b946cce2a6e80dcc54ca"}, - {file = "platformdirs-2.6.0.tar.gz", hash = "sha256:b46ffafa316e6b83b47489d240ce17173f123a9b9c83282141c3daf26ad9ac2e"}, + {file = "platformdirs-4.0.0-py3-none-any.whl", hash = "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b"}, + {file = "platformdirs-4.0.0.tar.gz", hash = "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731"}, ] +[package.dependencies] +typing-extensions = {version = ">=4.7.1", markers = "python_version < \"3.8\""} + [package.extras] -docs = ["furo (>=2022.9.29)", "proselint (>=0.13)", "sphinx (>=5.3)", "sphinx-autodoc-typehints (>=1.19.4)"] -test = ["appdirs (==1.4.4)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] [[package]] name = "pluggy" -version = "1.0.0" +version = "1.2.0" description = "plugin and hook calling mechanisms for python" category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, + {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, + {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, ] [package.dependencies] @@ -568,65 +682,70 @@ files = [ [[package]] name = "pygments" -version = "2.13.0" +version = "2.17.2" description = "Pygments is a syntax highlighting package written in Python." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"}, - {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"}, + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, ] [package.extras] plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyrsistent" -version = "0.19.2" +version = "0.19.3" description = "Persistent/Functional/Immutable data structures" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "pyrsistent-0.19.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d6982b5a0237e1b7d876b60265564648a69b14017f3b5f908c5be2de3f9abb7a"}, - {file = "pyrsistent-0.19.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:187d5730b0507d9285a96fca9716310d572e5464cadd19f22b63a6976254d77a"}, - {file = "pyrsistent-0.19.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:055ab45d5911d7cae397dc418808d8802fb95262751872c841c170b0dbf51eed"}, - {file = "pyrsistent-0.19.2-cp310-cp310-win32.whl", hash = "sha256:456cb30ca8bff00596519f2c53e42c245c09e1a4543945703acd4312949bfd41"}, - {file = "pyrsistent-0.19.2-cp310-cp310-win_amd64.whl", hash = "sha256:b39725209e06759217d1ac5fcdb510e98670af9e37223985f330b611f62e7425"}, - {file = "pyrsistent-0.19.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2aede922a488861de0ad00c7630a6e2d57e8023e4be72d9d7147a9fcd2d30712"}, - {file = "pyrsistent-0.19.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:879b4c2f4d41585c42df4d7654ddffff1239dc4065bc88b745f0341828b83e78"}, - {file = "pyrsistent-0.19.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c43bec251bbd10e3cb58ced80609c5c1eb238da9ca78b964aea410fb820d00d6"}, - {file = "pyrsistent-0.19.2-cp37-cp37m-win32.whl", hash = "sha256:d690b18ac4b3e3cab73b0b7aa7dbe65978a172ff94970ff98d82f2031f8971c2"}, - {file = "pyrsistent-0.19.2-cp37-cp37m-win_amd64.whl", hash = "sha256:3ba4134a3ff0fc7ad225b6b457d1309f4698108fb6b35532d015dca8f5abed73"}, - {file = "pyrsistent-0.19.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a178209e2df710e3f142cbd05313ba0c5ebed0a55d78d9945ac7a4e09d923308"}, - {file = "pyrsistent-0.19.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e371b844cec09d8dc424d940e54bba8f67a03ebea20ff7b7b0d56f526c71d584"}, - {file = "pyrsistent-0.19.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111156137b2e71f3a9936baf27cb322e8024dac3dc54ec7fb9f0bcf3249e68bb"}, - {file = "pyrsistent-0.19.2-cp38-cp38-win32.whl", hash = "sha256:e5d8f84d81e3729c3b506657dddfe46e8ba9c330bf1858ee33108f8bb2adb38a"}, - {file = "pyrsistent-0.19.2-cp38-cp38-win_amd64.whl", hash = "sha256:9cd3e9978d12b5d99cbdc727a3022da0430ad007dacf33d0bf554b96427f33ab"}, - {file = "pyrsistent-0.19.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f1258f4e6c42ad0b20f9cfcc3ada5bd6b83374516cd01c0960e3cb75fdca6770"}, - {file = "pyrsistent-0.19.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21455e2b16000440e896ab99e8304617151981ed40c29e9507ef1c2e4314ee95"}, - {file = "pyrsistent-0.19.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd880614c6237243ff53a0539f1cb26987a6dc8ac6e66e0c5a40617296a045e"}, - {file = "pyrsistent-0.19.2-cp39-cp39-win32.whl", hash = "sha256:71d332b0320642b3261e9fee47ab9e65872c2bd90260e5d225dabeed93cbd42b"}, - {file = "pyrsistent-0.19.2-cp39-cp39-win_amd64.whl", hash = "sha256:dec3eac7549869365fe263831f576c8457f6c833937c68542d08fde73457d291"}, - {file = "pyrsistent-0.19.2-py3-none-any.whl", hash = "sha256:ea6b79a02a28550c98b6ca9c35b9f492beaa54d7c5c9e9949555893c8a9234d0"}, - {file = "pyrsistent-0.19.2.tar.gz", hash = "sha256:bfa0351be89c9fcbcb8c9879b826f4353be10f58f8a677efab0c017bf7137ec2"}, + {file = "pyrsistent-0.19.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a"}, + {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64"}, + {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf"}, + {file = "pyrsistent-0.19.3-cp310-cp310-win32.whl", hash = "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a"}, + {file = "pyrsistent-0.19.3-cp310-cp310-win_amd64.whl", hash = "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da"}, + {file = "pyrsistent-0.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9"}, + {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393"}, + {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19"}, + {file = "pyrsistent-0.19.3-cp311-cp311-win32.whl", hash = "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3"}, + {file = "pyrsistent-0.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-win32.whl", hash = "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1"}, + {file = "pyrsistent-0.19.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b"}, + {file = "pyrsistent-0.19.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8"}, + {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a"}, + {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c"}, + {file = "pyrsistent-0.19.3-cp38-cp38-win32.whl", hash = "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c"}, + {file = "pyrsistent-0.19.3-cp38-cp38-win_amd64.whl", hash = "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7"}, + {file = "pyrsistent-0.19.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc"}, + {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2"}, + {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3"}, + {file = "pyrsistent-0.19.3-cp39-cp39-win32.whl", hash = "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2"}, + {file = "pyrsistent-0.19.3-cp39-cp39-win_amd64.whl", hash = "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98"}, + {file = "pyrsistent-0.19.3-py3-none-any.whl", hash = "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64"}, + {file = "pyrsistent-0.19.3.tar.gz", hash = "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440"}, ] [[package]] name = "pytest" -version = "7.2.0" +version = "7.4.4" description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.2.0-py3-none-any.whl", hash = "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71"}, - {file = "pytest-7.2.0.tar.gz", hash = "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59"}, + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, ] [package.dependencies] -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} @@ -636,7 +755,7 @@ pluggy = ">=0.12,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-asyncio" @@ -660,14 +779,14 @@ testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy [[package]] name = "pytest-cov" -version = "4.0.0" +version = "4.1.0" description = "Pytest plugin for measuring coverage." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "pytest-cov-4.0.0.tar.gz", hash = "sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470"}, - {file = "pytest_cov-4.0.0-py3-none-any.whl", hash = "sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b"}, + {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, + {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, ] [package.dependencies] @@ -679,14 +798,14 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale [[package]] name = "pytz" -version = "2022.7" +version = "2023.3.post1" description = "World timezone definitions, modern and historical" category = "dev" optional = false python-versions = "*" files = [ - {file = "pytz-2022.7-py2.py3-none-any.whl", hash = "sha256:93007def75ae22f7cd991c84e02d434876818661f8df9ad5df9e950ff4e52cfd"}, - {file = "pytz-2022.7.tar.gz", hash = "sha256:7ccfae7b4b2c067464a6733c6261673fdb8fd1be905460396b97a073e9fa683a"}, + {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, + {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, ] [[package]] @@ -713,14 +832,14 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "setuptools" -version = "67.8.0" +version = "68.0.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"}, - {file = "setuptools-67.8.0.tar.gz", hash = "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102"}, + {file = "setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f"}, + {file = "setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"}, ] [package.extras] @@ -884,82 +1003,100 @@ files = [ [[package]] name = "typed-ast" -version = "1.5.4" +version = "1.5.5" description = "a fork of Python 2 and 3 ast modules with type comment support" category = "dev" optional = false python-versions = ">=3.6" files = [ - {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, - {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, - {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, - {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, - {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, - {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, - {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, - {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, - {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, - {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, + {file = "typed_ast-1.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b"}, + {file = "typed_ast-1.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:597fc66b4162f959ee6a96b978c0435bd63791e31e4f410622d19f1686d5e769"}, + {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d41b7a686ce653e06c2609075d397ebd5b969d821b9797d029fccd71fdec8e04"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5fe83a9a44c4ce67c796a1b466c270c1272e176603d5e06f6afbc101a572859d"}, + {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d5c0c112a74c0e5db2c75882a0adf3133adedcdbfd8cf7c9d6ed77365ab90a1d"}, + {file = "typed_ast-1.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:e1a976ed4cc2d71bb073e1b2a250892a6e968ff02aa14c1f40eba4f365ffec02"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c631da9710271cb67b08bd3f3813b7af7f4c69c319b75475436fcab8c3d21bee"}, + {file = "typed_ast-1.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b445c2abfecab89a932b20bd8261488d574591173d07827c1eda32c457358b18"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc95ffaaab2be3b25eb938779e43f513e0e538a84dd14a5d844b8f2932593d88"}, + {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61443214d9b4c660dcf4b5307f15c12cb30bdfe9588ce6158f4a005baeb167b2"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6eb936d107e4d474940469e8ec5b380c9b329b5f08b78282d46baeebd3692dc9"}, + {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e48bf27022897577d8479eaed64701ecaf0467182448bd95759883300ca818c8"}, + {file = "typed_ast-1.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:83509f9324011c9a39faaef0922c6f720f9623afe3fe220b6d0b15638247206b"}, + {file = "typed_ast-1.5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f214394fc1af23ca6d4e9e744804d890045d1643dd7e8229951e0ef39429b5"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:118c1ce46ce58fda78503eae14b7664163aa735b620b64b5b725453696f2a35c"}, + {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be4919b808efa61101456e87f2d4c75b228f4e52618621c77f1ddcaae15904fa"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fc2b8c4e1bc5cd96c1a823a885e6b158f8451cf6f5530e1829390b4d27d0807f"}, + {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:16f7313e0a08c7de57f2998c85e2a69a642e97cb32f87eb65fbfe88381a5e44d"}, + {file = "typed_ast-1.5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:2b946ef8c04f77230489f75b4b5a4a6f24c078be4aed241cfabe9cbf4156e7e5"}, + {file = "typed_ast-1.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2188bc33d85951ea4ddad55d2b35598b2709d122c11c75cffd529fbc9965508e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0635900d16ae133cab3b26c607586131269f88266954eb04ec31535c9a12ef1e"}, + {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57bfc3cf35a0f2fdf0a88a3044aafaec1d2f24d8ae8cd87c4f58d615fb5b6311"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fe58ef6a764de7b4b36edfc8592641f56e69b7163bba9f9c8089838ee596bfb2"}, + {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d09d930c2d1d621f717bb217bf1fe2584616febb5138d9b3e8cdd26506c3f6d4"}, + {file = "typed_ast-1.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d40c10326893ecab8a80a53039164a224984339b2c32a6baf55ecbd5b1df6431"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd946abf3c31fb50eee07451a6aedbfff912fcd13cf357363f5b4e834cc5e71a"}, + {file = "typed_ast-1.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ed4a1a42df8a3dfb6b40c3d2de109e935949f2f66b19703eafade03173f8f437"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:045f9930a1550d9352464e5149710d56a2aed23a2ffe78946478f7b5416f1ede"}, + {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381eed9c95484ceef5ced626355fdc0765ab51d8553fec08661dce654a935db4"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bfd39a41c0ef6f31684daff53befddae608f9daf6957140228a08e51f312d7e6"}, + {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8c524eb3024edcc04e288db9541fe1f438f82d281e591c548903d5b77ad1ddd4"}, + {file = "typed_ast-1.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:7f58fabdde8dcbe764cef5e1a7fcb440f2463c1bbbec1cf2a86ca7bc1f95184b"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:042eb665ff6bf020dd2243307d11ed626306b82812aba21836096d229fdc6a10"}, + {file = "typed_ast-1.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:622e4a006472b05cf6ef7f9f2636edc51bda670b7bbffa18d26b255269d3d814"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1efebbbf4604ad1283e963e8915daa240cb4bf5067053cf2f0baadc4d4fb51b8"}, + {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0aefdd66f1784c58f65b502b6cf8b121544680456d1cebbd300c2c813899274"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:48074261a842acf825af1968cd912f6f21357316080ebaca5f19abbb11690c8a"}, + {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:429ae404f69dc94b9361bb62291885894b7c6fb4640d561179548c849f8492ba"}, + {file = "typed_ast-1.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:335f22ccb244da2b5c296e6f96b06ee9bed46526db0de38d2f0e5a6597b81155"}, + {file = "typed_ast-1.5.5.tar.gz", hash = "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd"}, ] [[package]] name = "typing-extensions" -version = "4.4.0" +version = "4.7.1" description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"}, - {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"}, + {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, + {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, ] [[package]] name = "urllib3" -version = "1.26.13" +version = "2.0.7" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.7" files = [ - {file = "urllib3-1.26.13-py2.py3-none-any.whl", hash = "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc"}, - {file = "urllib3-1.26.13.tar.gz", hash = "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8"}, + {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, + {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] -secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] [[package]] name = "zipp" -version = "3.11.0" +version = "3.15.0" description = "Backport of pathlib-compatible object wrapper for zip files" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "zipp-3.11.0-py3-none-any.whl", hash = "sha256:83a28fcb75844b5c0cdaf5aa4003c2d728c77e05f5aeabe8e95e56727005fbaa"}, - {file = "zipp-3.11.0.tar.gz", hash = "sha256:a7a22e05929290a67401440b39690ae6563279bced5f314609d9d03798f56766"}, + {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, + {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"] -testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [metadata] lock-version = "2.0" From f32a86d31e3bc6937b8ff55bf5869d87d95218e2 Mon Sep 17 00:00:00 2001 From: Wafa Yahyaoui <143813203+wafa-yah@users.noreply.github.com> Date: Wed, 17 Jan 2024 13:21:40 +0100 Subject: [PATCH 08/11] Add call unique id to handler kwargs (#545) Issue Link: https://github.com/mobilityhouse/ocpp/issues/544 The `call_unique_id` is passed to the `on` and `after` handlers only if it is explicitly set in the handler signature. --- CHANGELOG.md | 1 + ocpp/charge_point.py | 19 +++++- tests/test_charge_point.py | 115 +++++++++++++++++++++++++++++++++++-- 3 files changed, 126 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 824eb74b6..30df6c189 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Change log +- [#544](https://github.com/mobilityhouse/ocpp/issues/544) Pass `Call.unique_id` to the `on` and `after` routing handlers. - [#559](https://github.com/mobilityhouse/ocpp/issues/559) Update project dependencies as of 22-12-2023 - [#447](https://github.com/mobilityhouse/ocpp/issues/447) Make formatting of enums in py3.11 consistent with earlier Python versions - [#421](https://github.com/mobilityhouse/ocpp/issues/421) Type of v16.datatypes.SampledValue.context is incorrect diff --git a/ocpp/charge_point.py b/ocpp/charge_point.py index 997943de7..4d7cb9676 100644 --- a/ocpp/charge_point.py +++ b/ocpp/charge_point.py @@ -225,9 +225,15 @@ async def _handle_call(self, msg): handler = handlers["_on_action"] except KeyError: _raise_key_error(msg.action, self._ocpp_version) - + handler_signature = inspect.signature(handler) + call_unique_id_required = "call_unique_id" in handler_signature.parameters try: - response = handler(**snake_case_payload) + # call_unique_id should be passed as kwarg only if is defined explicitly + # in the handler signature + if call_unique_id_required: + response = handler(**snake_case_payload, call_unique_id=msg.unique_id) + else: + response = handler(**snake_case_payload) if inspect.isawaitable(response): response = await response except Exception as e: @@ -259,9 +265,16 @@ async def _handle_call(self, msg): try: handler = handlers["_after_action"] + handler_signature = inspect.signature(handler) + call_unique_id_required = "call_unique_id" in handler_signature.parameters + # call_unique_id should be passed as kwarg only if is defined explicitly + # in the handler signature + if call_unique_id_required: + response = handler(**snake_case_payload, call_unique_id=msg.unique_id) + else: + response = handler(**snake_case_payload) # Create task to avoid blocking when making a call inside the # after handler - response = handler(**snake_case_payload) if inspect.isawaitable(response): asyncio.ensure_future(response) except KeyError: diff --git a/tests/test_charge_point.py b/tests/test_charge_point.py index e6b320ef0..897fabc2b 100644 --- a/tests/test_charge_point.py +++ b/tests/test_charge_point.py @@ -3,22 +3,27 @@ import pytest from ocpp.charge_point import camel_to_snake_case, remove_nones, snake_to_camel_case -from ocpp.routing import create_route_map, on +from ocpp.messages import Call +from ocpp.routing import after, create_route_map, on +from ocpp.v16 import ChargePoint as cp_16 from ocpp.v16.call import ( BootNotificationPayload, GetConfigurationPayload, MeterValuesPayload, ) +from ocpp.v16.call_result import ( + BootNotificationPayload as BootNotificationResultPayload, +) from ocpp.v16.datatypes import MeterValue, SampledValue -from ocpp.v16.enums import Action -from ocpp.v20 import ChargePoint as cp +from ocpp.v16.enums import Action, RegistrationStatus +from ocpp.v20 import ChargePoint as cp_20 from ocpp.v201.call import SetNetworkProfilePayload from ocpp.v201.datatypes import NetworkConnectionProfileType from ocpp.v201.enums import OCPPInterfaceType, OCPPTransportType, OCPPVersionType def test_getters_should_not_be_called_during_routemap_setup(): - class ChargePoint(cp): + class ChargePoint(cp_20): @property def foo(self): raise RuntimeError("this will be raised") @@ -31,12 +36,12 @@ def foo(self): def test_multiple_classes_with_same_name_for_handler(): - class ChargerA(cp): + class ChargerA(cp_20): @on(Action.Heartbeat) def heartbeat(self, **kwargs): pass - class ChargerB(cp): + class ChargerB(cp_20): @on(Action.Heartbeat) def heartbeat(self, **kwargs): pass @@ -232,3 +237,101 @@ def test_remove_nones_with_list_of_strings(): assert remove_nones(payload) == { "key": ["ClockAlignedDataInterval", "ConnectionTimeOut"] } + + +@pytest.mark.asyncio +async def test_call_unique_id_added_to_handler_args_correctly(connection): + """ + This test ensures that the `call_unique_id` is getting passed to the + `on` and `after` handlers only if it is explicitly set in the handler signature. + + To cover all possible cases, we define two chargers: + + ChargerA: + `call_unique_id` not required on `on` handler but required on `after` handler. + + ChargerB: + `call_unique_id` required on `on` handler but not required on `after` handler. + + Each handler verifies a set of asserts to verify that the `call_unique_id` + is passed correctly. + To confirm that the handlers are actually being called and hence the asserts + are being ran, we introduce a set of counters that increase each time a specific + handler runs. + """ + charger_a_test_call_unique_id = "charger_a_1234" + charger_b_test_call_unique_id = "charger_b_5678" + payload_a = {"chargePointVendor": "foo_a", "chargePointModel": "bar_a"} + payload_b = {"chargePointVendor": "foo_b", "chargePointModel": "bar_b"} + + class ChargerA(cp_16): + on_boot_notification_call_count = 0 + after_boot_notification_call_count = 0 + + @on(Action.BootNotification) + def on_boot_notification(self, *args, **kwargs): + # call_unique_id should not be passed as arg nor kwarg + assert kwargs == camel_to_snake_case(payload_a) + assert args == () + ChargerA.on_boot_notification_call_count += 1 + return BootNotificationResultPayload( + current_time="foo", interval=1, status=RegistrationStatus.accepted + ) + + @after(Action.BootNotification) + def after_boot_notification(self, call_unique_id, *args, **kwargs): + assert call_unique_id == charger_a_test_call_unique_id + assert kwargs == camel_to_snake_case(payload_a) + # call_unique_id should not be passed as arg + assert args == () + ChargerA.after_boot_notification_call_count += 1 + return BootNotificationResultPayload( + current_time="foo", interval=1, status=RegistrationStatus.accepted + ) + + class ChargerB(cp_16): + on_boot_notification_call_count = 0 + after_boot_notification_call_count = 0 + + @on(Action.BootNotification) + def on_boot_notification(self, call_unique_id, *args, **kwargs): + assert call_unique_id == charger_b_test_call_unique_id + assert kwargs == camel_to_snake_case(payload_b) + # call_unique_id should not be passed as arg + assert args == () + ChargerB.on_boot_notification_call_count += 1 + return BootNotificationResultPayload( + current_time="foo", interval=1, status=RegistrationStatus.accepted + ) + + @after(Action.BootNotification) + def after_boot_notification(self, *args, **kwargs): + # call_unique_id should not be passed as arg nor kwarg + assert kwargs == camel_to_snake_case(payload_b) + assert args == () + ChargerB.after_boot_notification_call_count += 1 + return BootNotificationResultPayload( + current_time="foo", interval=1, status=RegistrationStatus.accepted + ) + + charger_a = ChargerA("charger_a_id", connection) + charger_b = ChargerB("charger_b_id", connection) + + msg_a = Call( + unique_id=charger_a_test_call_unique_id, + action=Action.BootNotification.value, + payload=payload_a, + ) + await charger_a._handle_call(msg_a) + + msg_b = Call( + unique_id=charger_b_test_call_unique_id, + action=Action.BootNotification.value, + payload=payload_b, + ) + await charger_b._handle_call(msg_b) + + assert ChargerA.on_boot_notification_call_count == 1 + assert ChargerA.after_boot_notification_call_count == 1 + assert ChargerB.on_boot_notification_call_count == 1 + assert ChargerB.after_boot_notification_call_count == 1 From 9f1ab29a4827b2a7ae4ed8a953ea0741b2e00442 Mon Sep 17 00:00:00 2001 From: Jared-Newell-Mobility <119603687+Jared-Newell-Mobility@users.noreply.github.com> Date: Wed, 17 Jan 2024 14:04:23 +0100 Subject: [PATCH 09/11] Bump 0.26.0 (#572) - [#544](https://github.com/mobilityhouse/ocpp/issues/544) Pass `Call.unique_id` to the `on` and `after` routing handlers. - [#559](https://github.com/mobilityhouse/ocpp/issues/559) Update project dependencies as of 22-12-2023 - [#447](https://github.com/mobilityhouse/ocpp/issues/447) Make formatting of enums in py3.11 consistent with earlier Python versions - [#421](https://github.com/mobilityhouse/ocpp/issues/421) Type of v16.datatypes.SampledValue.context is incorrect --- CHANGELOG.md | 5 +++-- docs/source/conf.py | 2 +- pyproject.toml | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 30df6c189..06e14504c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,10 @@ # Change log +## 0.26.0 (2024-01-17) -- [#544](https://github.com/mobilityhouse/ocpp/issues/544) Pass `Call.unique_id` to the `on` and `after` routing handlers. +- [#544](https://github.com/mobilityhouse/ocpp/issues/544) ocpp/charge_point.py - Pass `Call.unique_id` to the `on` and `after` routing handlers. - [#559](https://github.com/mobilityhouse/ocpp/issues/559) Update project dependencies as of 22-12-2023 -- [#447](https://github.com/mobilityhouse/ocpp/issues/447) Make formatting of enums in py3.11 consistent with earlier Python versions +- [#447](https://github.com/mobilityhouse/ocpp/issues/447) v16, v201 - Make formatting of enums in py3.11 consistent with earlier Python versions - [#421](https://github.com/mobilityhouse/ocpp/issues/421) Type of v16.datatypes.SampledValue.context is incorrect ## 0.25.0 (2024-01-08) diff --git a/docs/source/conf.py b/docs/source/conf.py index 592b903c2..603c4e017 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.25.0" +release = "0.26.0" # -- General configuration --------------------------------------------------- diff --git a/pyproject.toml b/pyproject.toml index fa17c9d27..92d56c745 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "ocpp" -version = "0.25.0" +version = "0.26.0" description = "Python package implementing the JSON version of the Open Charge Point Protocol (OCPP)." authors = [ "André Duarte ", From 30b69d3cd8b65b9e9d794bd8caa124def7aaf7ff Mon Sep 17 00:00:00 2001 From: Jared Newell Date: Wed, 17 Jan 2024 16:28:17 +0100 Subject: [PATCH 10/11] Enums Updates + change log --- CHANGELOG.md | 2 + ocpp/v201/enums.py | 128 ++++++++++++++++++++++----------------------- 2 files changed, 66 insertions(+), 64 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06e14504c..87ccd19c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Change log +- [#579](https://github.com/mobilityhouse/ocpp/issues/579) v2.0.1 Action enums corrected + ## 0.26.0 (2024-01-17) - [#544](https://github.com/mobilityhouse/ocpp/issues/544) ocpp/charge_point.py - Pass `Call.unique_id` to the `on` and `after` routing handlers. diff --git a/ocpp/v201/enums.py b/ocpp/v201/enums.py index 60b2fb533..758234318 100644 --- a/ocpp/v201/enums.py +++ b/ocpp/v201/enums.py @@ -11,70 +11,70 @@ class StrEnum(str, Enum): # pragma: no cover class Action(StrEnum): """An Action is a required part of a Call message.""" - Authorize = "Authorize" - BootNotification = "BootNotification" - CancelReservation = "CancelReservation" - CertificateSigned = "CertificateSigned" - ChangeAvailability = "ChangeAvailability" - ClearCache = "ClearCache" - ClearChargingProfile = "ClearChargingProfile" - ClearDisplayMessage = "ClearDisplayMessage" - ClearedChargingLimit = "ClearedChargingLimit" - ClearVariableMonitoring = "ClearVariableMonitoring" - CostUpdate = "CostUpdate" - CustomerInformation = "CustomerInformation" - DataTransfer = "DataTransfer" - DeleteCertificate = "DeleteCertificate" - FirmwareStatusNotification = "FirmwareStatusNotification" - Get15118EVCertificate = "Get15118EVCertificate" - GetBaseReport = "GetBaseReport" - GetCertificateStatus = "GetCertificateStatus" - GetChargingProfiles = "GetChargingProfiles" - GetCompositeSchedule = "GetCompositeSchedule" - GetDisplayMessages = "GetDisplayMessages" - GetInstalledCertificateIds = "GetInstalledCertificateIds" - GetLocalListVersion = "GetLocalListVersion" - GetLog = "GetLog" - GetMonitoringReport = "GetMonitoringReport" - GetReport = "GetReport" - GetTransactionStatus = "GetTransactionStatus" - GetVariables = "GetVariables" - Heartbeat = "Heartbeat" - InstallCertificate = "InstallCertificate" - LogStatusNotification = "LogStatusNotification" - MeterValues = "MeterValues" - NotifyChargingLimit = "NotifyChargingLimit" - NotifyCustomerInformation = "NotifyCustomerInformation" - NotifyDisplayMessages = "NotifyDisplayMessages" - NotifyEVChargingNeeds = "NotifyEVChargingNeeds" - NotifyEVChargingSchedule = "NotifyEVChargingSchedule" - NotifyEvent = "NotifyEvent" - NotifyMonitoringReport = "NotifyMonitoringReport" - NotifyReport = "NotifyReport" - PublishFirmware = "PublishFirmware" - PublishFirmwareStatusNotification = "PublishFirmwareStatusNotification" - ReportChargingProfiles = "ReportChargingProfiles" - RequestStartTransaction = "RequestStartTransaction" - RequestStopTransaction = "RequestStopTransaction" - ReservationStatusUpdate = "ReservationStatusUpdate" - ReserveNow = "ReserveNow" - Reset = "Reset" - SecurityEventNotification = "SecurityEventNotification" - SendLocalList = "SendLocalList" - SetChargingProfile = "SetChargingProfile" - SetDisplayMessage = "SetDisplayMessage" - SetMonitoringBase = "SetMonitoringBase" - SetMonitoringLevel = "SetMonitoringLevel" - SetNetworkProfile = "SetNetworkProfile" - SetVariableMonitoring = "SetVariableMonitoring" - SetVariables = "SetVariables" - SignCertificate = "SignCertificate" - StatusNotification = "StatusNotification" - TransactionEvent = "TransactionEvent" - TriggerMessage = "TriggerMessage" - UnlockConnector = "UnlockConnector" - UnpublishFirmware = "UnpublishFirmware" - UpdateFirmware = "UpdateFirmware" + authorize = "Authorize" + boot_notification = "BootNotification" + cancel_reservation = "CancelReservation" + certificate_signed = "CertificateSigned" + change_availability = "ChangeAvailability" + clear_cache = "ClearCache" + clear_charging_profile = "ClearChargingProfile" + clear_display_message = "ClearDisplayMessage" + cleared_charging_limit = "ClearedChargingLimit" + clear_variable_monitoring = "ClearVariableMonitoring" + cost_update = "CostUpdate" + customer_information = "CustomerInformation" + data_transfer = "DataTransfer" + delete_certificate = "DeleteCertificate" + firmware_status_notification = "FirmwareStatusNotification" + get_15118_ev_certificate = "Get15118EVCertificate" + get_base_report = "GetBaseReport" + get_certificate_status = "GetCertificateStatus" + get_charging_profiles = "GetChargingProfiles" + get_composite_schedule = "GetCompositeSchedule" + get_display_messages = "GetDisplayMessages" + get_installed_certificate_ids = "GetInstalledCertificateIds" + get_local_list_version = "GetLocalListVersion" + get_log = "GetLog" + get_monitoring_report = "GetMonitoringReport" + get_report = "GetReport" + get_transaction_status = "GetTransactionStatus" + get_variables = "GetVariables" + heartbeat = "Heartbeat" + install_certificate = "InstallCertificate" + log_status_notification = "LogStatusNotification" + meter_values = "MeterValues" + notify_charging_limit = "NotifyChargingLimit" + notify_customer_information = "NotifyCustomerInformation" + notify_display_messages = "NotifyDisplayMessages" + notify_ev_charging_needs = "NotifyEVChargingNeeds" + notify_ev_charging_schedule = "NotifyEVChargingSchedule" + notify_event = "NotifyEvent" + notify_monitoring_report = "NotifyMonitoringReport" + notify_report = "NotifyReport" + publish_firmware = "PublishFirmware" + publish_firmware_status_notification = "PublishFirmwareStatusNotification" + report_charging_profiles = "ReportChargingProfiles" + request_start_transaction = "RequestStartTransaction" + request_stop_transaction = "RequestStopTransaction" + reservation_status_update = "ReservationStatusUpdate" + reserve_now = "ReserveNow" + reset = "Reset" + security_event_notification = "SecurityEventNotification" + send_local_list = "SendLocalList" + set_charging_profile = "SetChargingProfile" + set_display_message = "SetDisplayMessage" + set_monitoring_base = "SetMonitoringBase" + set_monitoring_level = "SetMonitoringLevel" + set_network_profile = "SetNetworkProfile" + set_variable_monitoring = "SetVariableMonitoring" + set_variables = "SetVariables" + sign_certificate = "SignCertificate" + status_notification = "StatusNotification" + transaction_event = "TransactionEvent" + trigger_message = "TriggerMessage" + unlock_connector = "UnlockConnector" + unpublish_firmware = "UnpublishFirmware" + update_firmware = "UpdateFirmware" # Enums From 020188cb1d4d87478d2c69d8837e1c68568ddbc2 Mon Sep 17 00:00:00 2001 From: Jared Newell Date: Wed, 17 Jan 2024 16:31:34 +0100 Subject: [PATCH 11/11] Revert "Enums Updates + change log" This reverts commit 30b69d3cd8b65b9e9d794bd8caa124def7aaf7ff. --- CHANGELOG.md | 2 - ocpp/v201/enums.py | 128 ++++++++++++++++++++++----------------------- 2 files changed, 64 insertions(+), 66 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87ccd19c6..06e14504c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,5 @@ # Change log -- [#579](https://github.com/mobilityhouse/ocpp/issues/579) v2.0.1 Action enums corrected - ## 0.26.0 (2024-01-17) - [#544](https://github.com/mobilityhouse/ocpp/issues/544) ocpp/charge_point.py - Pass `Call.unique_id` to the `on` and `after` routing handlers. diff --git a/ocpp/v201/enums.py b/ocpp/v201/enums.py index 758234318..60b2fb533 100644 --- a/ocpp/v201/enums.py +++ b/ocpp/v201/enums.py @@ -11,70 +11,70 @@ class StrEnum(str, Enum): # pragma: no cover class Action(StrEnum): """An Action is a required part of a Call message.""" - authorize = "Authorize" - boot_notification = "BootNotification" - cancel_reservation = "CancelReservation" - certificate_signed = "CertificateSigned" - change_availability = "ChangeAvailability" - clear_cache = "ClearCache" - clear_charging_profile = "ClearChargingProfile" - clear_display_message = "ClearDisplayMessage" - cleared_charging_limit = "ClearedChargingLimit" - clear_variable_monitoring = "ClearVariableMonitoring" - cost_update = "CostUpdate" - customer_information = "CustomerInformation" - data_transfer = "DataTransfer" - delete_certificate = "DeleteCertificate" - firmware_status_notification = "FirmwareStatusNotification" - get_15118_ev_certificate = "Get15118EVCertificate" - get_base_report = "GetBaseReport" - get_certificate_status = "GetCertificateStatus" - get_charging_profiles = "GetChargingProfiles" - get_composite_schedule = "GetCompositeSchedule" - get_display_messages = "GetDisplayMessages" - get_installed_certificate_ids = "GetInstalledCertificateIds" - get_local_list_version = "GetLocalListVersion" - get_log = "GetLog" - get_monitoring_report = "GetMonitoringReport" - get_report = "GetReport" - get_transaction_status = "GetTransactionStatus" - get_variables = "GetVariables" - heartbeat = "Heartbeat" - install_certificate = "InstallCertificate" - log_status_notification = "LogStatusNotification" - meter_values = "MeterValues" - notify_charging_limit = "NotifyChargingLimit" - notify_customer_information = "NotifyCustomerInformation" - notify_display_messages = "NotifyDisplayMessages" - notify_ev_charging_needs = "NotifyEVChargingNeeds" - notify_ev_charging_schedule = "NotifyEVChargingSchedule" - notify_event = "NotifyEvent" - notify_monitoring_report = "NotifyMonitoringReport" - notify_report = "NotifyReport" - publish_firmware = "PublishFirmware" - publish_firmware_status_notification = "PublishFirmwareStatusNotification" - report_charging_profiles = "ReportChargingProfiles" - request_start_transaction = "RequestStartTransaction" - request_stop_transaction = "RequestStopTransaction" - reservation_status_update = "ReservationStatusUpdate" - reserve_now = "ReserveNow" - reset = "Reset" - security_event_notification = "SecurityEventNotification" - send_local_list = "SendLocalList" - set_charging_profile = "SetChargingProfile" - set_display_message = "SetDisplayMessage" - set_monitoring_base = "SetMonitoringBase" - set_monitoring_level = "SetMonitoringLevel" - set_network_profile = "SetNetworkProfile" - set_variable_monitoring = "SetVariableMonitoring" - set_variables = "SetVariables" - sign_certificate = "SignCertificate" - status_notification = "StatusNotification" - transaction_event = "TransactionEvent" - trigger_message = "TriggerMessage" - unlock_connector = "UnlockConnector" - unpublish_firmware = "UnpublishFirmware" - update_firmware = "UpdateFirmware" + Authorize = "Authorize" + BootNotification = "BootNotification" + CancelReservation = "CancelReservation" + CertificateSigned = "CertificateSigned" + ChangeAvailability = "ChangeAvailability" + ClearCache = "ClearCache" + ClearChargingProfile = "ClearChargingProfile" + ClearDisplayMessage = "ClearDisplayMessage" + ClearedChargingLimit = "ClearedChargingLimit" + ClearVariableMonitoring = "ClearVariableMonitoring" + CostUpdate = "CostUpdate" + CustomerInformation = "CustomerInformation" + DataTransfer = "DataTransfer" + DeleteCertificate = "DeleteCertificate" + FirmwareStatusNotification = "FirmwareStatusNotification" + Get15118EVCertificate = "Get15118EVCertificate" + GetBaseReport = "GetBaseReport" + GetCertificateStatus = "GetCertificateStatus" + GetChargingProfiles = "GetChargingProfiles" + GetCompositeSchedule = "GetCompositeSchedule" + GetDisplayMessages = "GetDisplayMessages" + GetInstalledCertificateIds = "GetInstalledCertificateIds" + GetLocalListVersion = "GetLocalListVersion" + GetLog = "GetLog" + GetMonitoringReport = "GetMonitoringReport" + GetReport = "GetReport" + GetTransactionStatus = "GetTransactionStatus" + GetVariables = "GetVariables" + Heartbeat = "Heartbeat" + InstallCertificate = "InstallCertificate" + LogStatusNotification = "LogStatusNotification" + MeterValues = "MeterValues" + NotifyChargingLimit = "NotifyChargingLimit" + NotifyCustomerInformation = "NotifyCustomerInformation" + NotifyDisplayMessages = "NotifyDisplayMessages" + NotifyEVChargingNeeds = "NotifyEVChargingNeeds" + NotifyEVChargingSchedule = "NotifyEVChargingSchedule" + NotifyEvent = "NotifyEvent" + NotifyMonitoringReport = "NotifyMonitoringReport" + NotifyReport = "NotifyReport" + PublishFirmware = "PublishFirmware" + PublishFirmwareStatusNotification = "PublishFirmwareStatusNotification" + ReportChargingProfiles = "ReportChargingProfiles" + RequestStartTransaction = "RequestStartTransaction" + RequestStopTransaction = "RequestStopTransaction" + ReservationStatusUpdate = "ReservationStatusUpdate" + ReserveNow = "ReserveNow" + Reset = "Reset" + SecurityEventNotification = "SecurityEventNotification" + SendLocalList = "SendLocalList" + SetChargingProfile = "SetChargingProfile" + SetDisplayMessage = "SetDisplayMessage" + SetMonitoringBase = "SetMonitoringBase" + SetMonitoringLevel = "SetMonitoringLevel" + SetNetworkProfile = "SetNetworkProfile" + SetVariableMonitoring = "SetVariableMonitoring" + SetVariables = "SetVariables" + SignCertificate = "SignCertificate" + StatusNotification = "StatusNotification" + TransactionEvent = "TransactionEvent" + TriggerMessage = "TriggerMessage" + UnlockConnector = "UnlockConnector" + UnpublishFirmware = "UnpublishFirmware" + UpdateFirmware = "UpdateFirmware" # Enums