From 7b3290abc13917973565486aeac2e4d26dfa76b3 Mon Sep 17 00:00:00 2001 From: Dmitry Pershin Date: Sat, 15 Nov 2025 13:32:08 +0500 Subject: [PATCH 1/3] fix: exceptions not frozen dataclasses anymore. --- pjrpc/client/exceptions.py | 2 +- pjrpc/common/exceptions.py | 2 +- pjrpc/server/exceptions.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pjrpc/client/exceptions.py b/pjrpc/client/exceptions.py index e3dd4fa..a0ccca2 100644 --- a/pjrpc/client/exceptions.py +++ b/pjrpc/client/exceptions.py @@ -20,7 +20,7 @@ ] -@dc.dataclass(frozen=True) +@dc.dataclass class JsonRpcError(exceptions.JsonRpcError): """ Client JSON-RPC error. diff --git a/pjrpc/common/exceptions.py b/pjrpc/common/exceptions.py index 115efdd..97cccef 100644 --- a/pjrpc/common/exceptions.py +++ b/pjrpc/common/exceptions.py @@ -35,7 +35,7 @@ class DeserializationError(ProtocolError, ValueError): """ -@dc.dataclass(frozen=True) +@dc.dataclass class JsonRpcError(BaseError): """ `JSON-RPC `_ protocol error. diff --git a/pjrpc/server/exceptions.py b/pjrpc/server/exceptions.py index 1474c98..760a63f 100644 --- a/pjrpc/server/exceptions.py +++ b/pjrpc/server/exceptions.py @@ -20,7 +20,7 @@ ] -@dc.dataclass(frozen=True) +@dc.dataclass class JsonRpcError(exceptions.JsonRpcError): """ Server JSON-RPC error. From 70f580dae67166ab2ef22282f9ab2d9fb8551d8f Mon Sep 17 00:00:00 2001 From: Dmitry Pershin Date: Sat, 15 Nov 2025 13:47:05 +0500 Subject: [PATCH 2/3] fix: '.' replaced by '_' in openapi model prefix. --- pjrpc/server/specs/openapi/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pjrpc/server/specs/openapi/__init__.py b/pjrpc/server/specs/openapi/__init__.py index 73168b2..e1fb91d 100644 --- a/pjrpc/server/specs/openapi/__init__.py +++ b/pjrpc/server/specs/openapi/__init__.py @@ -352,7 +352,7 @@ def _extract_errors_schema( ) -> tuple[dict[int, dict[str, Any]], dict[str, JsonSchema]]: status_error_schema_map: dict[int, dict[str, Any]] = {} component_schemas: dict[str, JsonSchema] = {} - component_name_prefix = method_metadata.component_name_prefix or f"{method.__module__}_" + component_name_prefix = method_metadata.component_name_prefix or f"{method.__module__.replace('.', '_')}_" for status, errors in status_errors_map.items(): if result := self._extractor.extract_error_response_schema( @@ -378,7 +378,7 @@ def _extract_request_schema( method_metadata: MethodMetadata, ) -> tuple[MaybeSet[dict[str, Any]], dict[str, JsonSchema]]: component_schemas: dict[str, JsonSchema] = {} - component_name_prefix = method_metadata.component_name_prefix or f"{method.__module__}_" + component_name_prefix = method_metadata.component_name_prefix or f"{method.__module__.replace('.', '_')}_" request_schema: MaybeSet[dict[str, Any]] = UNSET if params_schema := method_metadata.params_schema: @@ -406,7 +406,7 @@ def _extract_response_schema( errors: list[type[exceptions.TypedError]], ) -> tuple[MaybeSet[dict[str, Any]], dict[str, JsonSchema]]: component_schemas: dict[str, JsonSchema] = {} - component_name_prefix = method_metadata.component_name_prefix or f"{method.__module__}_" + component_name_prefix = method_metadata.component_name_prefix or f"{method.__module__.replace('.', '_')}_" response_schema: MaybeSet[dict[str, Any]] = UNSET if result_schema := method_metadata.result_schema: From c4f83c93b57eb9f249e0f08127c57927f756a019 Mon Sep 17 00:00:00 2001 From: Dmitry Pershin Date: Sat, 15 Nov 2025 13:54:28 +0500 Subject: [PATCH 3/3] bump version 2.1.2. --- CHANGELOG.rst | 7 +++++++ pyproject.toml | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 642e98a..e5abf36 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,13 @@ Changelog ========= +2.1.2 (2025-11-15) +------------------- + +- fix: exceptions not frozen dataclasses anymore (cause errors in pytest). +- fix: '.' replaced by '_' in openapi model prefix. + + 2.1.1 (2025-11-08) ------------------- diff --git a/pyproject.toml b/pyproject.toml index b3efc3b..20a727d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pjrpc" -version = "2.1.1" +version = "2.1.2" description = "Extensible JSON-RPC library" authors = ["Dmitry Pershin "] license = "Unlicense"