Python 3.10 related fix
This commit is contained in:
parent
08d2960343
commit
f00a25ef21
52
fix-getting-type-hints-annotations-in-python-3.10.patch
Normal file
52
fix-getting-type-hints-annotations-in-python-3.10.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
From 9f7c50b9bfaafd5d8368eeb34014e65655318ac0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ondrej Mular <omular@redhat.com>
|
||||||
|
Date: Wed, 25 Nov 2020 10:16:26 +0100
|
||||||
|
Subject: [PATCH] fix getting type hints annotations in python 3.10
|
||||||
|
|
||||||
|
In Python 3.10 a postponed evaluation of type hint annotations [1] will
|
||||||
|
be a default [2]. To access annotated types as objects instead of
|
||||||
|
strings, we need to use function `typing.get_type_hints(...)`
|
||||||
|
|
||||||
|
[1]: https://www.python.org/dev/peps/pep-0563/
|
||||||
|
[2]: https://docs.python.org/3.10/whatsnew/3.10.html#pep-563-postponed-evaluation-of-annotations-becomes-default
|
||||||
|
---
|
||||||
|
pcs/cli/reports/messages.py | 11 +++++++----
|
||||||
|
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pcs/cli/reports/messages.py b/pcs/cli/reports/messages.py
|
||||||
|
index ecf74561..7582aec0 100644
|
||||||
|
--- a/pcs/cli/reports/messages.py
|
||||||
|
+++ b/pcs/cli/reports/messages.py
|
||||||
|
@@ -1,4 +1,5 @@
|
||||||
|
from typing import (
|
||||||
|
+ get_type_hints,
|
||||||
|
Any,
|
||||||
|
Dict,
|
||||||
|
Mapping,
|
||||||
|
@@ -44,7 +45,7 @@ class CliReportMessageCustom(CliReportMessage):
|
||||||
|
|
||||||
|
def __init__(self, dto_obj: dto.ReportItemMessageDto) -> None:
|
||||||
|
super().__init__(dto_obj)
|
||||||
|
- self._obj = self.__class__.__annotations__.get("_obj")( # type: ignore
|
||||||
|
+ self._obj = get_type_hints(self.__class__).get("_obj")( # type: ignore
|
||||||
|
**dto_obj.payload
|
||||||
|
)
|
||||||
|
|
||||||
|
@@ -446,9 +447,11 @@ def _create_report_msg_map() -> Dict[str, type]:
|
||||||
|
result: Dict[str, type] = {}
|
||||||
|
for report_msg_cls in get_all_subclasses(CliReportMessageCustom):
|
||||||
|
# pylint: disable=protected-access
|
||||||
|
- code = report_msg_cls.__annotations__.get(
|
||||||
|
- "_obj", item.ReportItemMessage
|
||||||
|
- )._code
|
||||||
|
+ code = (
|
||||||
|
+ get_type_hints(report_msg_cls)
|
||||||
|
+ .get("_obj", item.ReportItemMessage)
|
||||||
|
+ ._code
|
||||||
|
+ )
|
||||||
|
if code:
|
||||||
|
if code in result:
|
||||||
|
raise AssertionError()
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
9
pcs.spec
9
pcs.spec
@ -1,6 +1,6 @@
|
|||||||
Name: pcs
|
Name: pcs
|
||||||
Version: 0.10.7
|
Version: 0.10.7
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
# https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses
|
# https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses
|
||||||
# GPLv2: pcs
|
# GPLv2: pcs
|
||||||
# MIT: ember, handlebars, jquery, jquery-ui
|
# MIT: ember, handlebars, jquery, jquery-ui
|
||||||
@ -47,7 +47,7 @@ Source44: https://github.com/konradhalas/dacite/archive/v%{dacite_version}/dacit
|
|||||||
Source100: https://github.com/idevat/pcs-web-ui/archive/%{ui_commit}/%{ui_src_name}.tar.gz
|
Source100: https://github.com/idevat/pcs-web-ui/archive/%{ui_commit}/%{ui_src_name}.tar.gz
|
||||||
Source101: https://github.com/idevat/pcs-web-ui/releases/download/%{ui_commit}/pcs-web-ui-node-modules-%{ui_commit}.tar.xz
|
Source101: https://github.com/idevat/pcs-web-ui/releases/download/%{ui_commit}/pcs-web-ui-node-modules-%{ui_commit}.tar.xz
|
||||||
|
|
||||||
# Patch0: name.patch
|
Patch0: fix-getting-type-hints-annotations-in-python-3.10.patch
|
||||||
|
|
||||||
# git for patches
|
# git for patches
|
||||||
BuildRequires: git
|
BuildRequires: git
|
||||||
@ -207,7 +207,7 @@ update_times_patch(){
|
|||||||
update_times ${patch_file_name} `diffstat -p1 -l ${patch_file_name}`
|
update_times ${patch_file_name} `diffstat -p1 -l ${patch_file_name}`
|
||||||
}
|
}
|
||||||
|
|
||||||
# update_times_patch %%{PATCH0}
|
update_times_patch %{PATCH0}
|
||||||
|
|
||||||
# prepare dirs/files necessary for building web ui
|
# prepare dirs/files necessary for building web ui
|
||||||
# inside SOURCE100 is only directory %%{ui_src_name}
|
# inside SOURCE100 is only directory %%{ui_src_name}
|
||||||
@ -394,6 +394,9 @@ remove_all_tests
|
|||||||
%license pyagentx_LICENSE.txt
|
%license pyagentx_LICENSE.txt
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Nov 26 2020 Ondrej Mular <omular@redhat.com> - 0.10.7-2
|
||||||
|
- Python 3.10 related fix
|
||||||
|
|
||||||
* Wed Sep 30 2020 Miroslav Lisik <mlisik@redhat.com> - 0.10.7-1
|
* Wed Sep 30 2020 Miroslav Lisik <mlisik@redhat.com> - 0.10.7-1
|
||||||
- Rebased to latest upstream sources (see CHANGELOG.md)
|
- Rebased to latest upstream sources (see CHANGELOG.md)
|
||||||
- Added dependency on python packages pyparsing and dateutil
|
- Added dependency on python packages pyparsing and dateutil
|
||||||
|
Loading…
Reference in New Issue
Block a user