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/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. 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: 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"