ci: add mypy type checking and fix/exclude minor issues (#255)

* add mypy type checking and fix/exclude minor issues

Signed-off-by: gruebel <anton.gruebel@gmail.com>

* enable explicit_package_bases for mypy

Signed-off-by: gruebel <anton.gruebel@gmail.com>

---------

Signed-off-by: gruebel <anton.gruebel@gmail.com>
This commit is contained in:
Anton Grübel 2024-01-07 16:56:32 +01:00 committed by GitHub
parent a853b85514
commit b3c67b6ab3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 7 deletions

View File

@ -14,3 +14,9 @@ repos:
- id: check-yaml
- id: trailing-whitespace
- id: check-merge-conflict
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.8.0
hooks:
- id: mypy
files: openfeature

View File

@ -1,6 +1,8 @@
try:
import sys
if sys.version_info >= (3, 11):
from enum import StrEnum
except ImportError:
else:
from enum import Enum
class StrEnum(str, Enum):

View File

@ -1,3 +1,6 @@
import typing
class MappingProxyType(dict):
"""
MappingProxyType is an immutable dictionary type, written to
@ -14,16 +17,16 @@ class MappingProxyType(dict):
`from types import MappingProxyType`
"""
def __hash__(self):
def __hash__(self) -> int: # type:ignore[override]
return id(self)
def _immutable(self, *args, **kws):
def _immutable(self, *args: typing.Any, **kws: typing.Any) -> typing.NoReturn:
raise TypeError("immutable instance of dictionary")
__setitem__ = _immutable
__delitem__ = _immutable
clear = _immutable
update = _immutable
setdefault = _immutable
pop = _immutable
update = _immutable # type:ignore[assignment]
setdefault = _immutable # type:ignore[assignment]
pop = _immutable # type:ignore[assignment]
popitem = _immutable

View File

@ -25,6 +25,11 @@ dev = ["pip-tools", "pytest", "pre-commit"]
[project.urls]
Homepage = "https://github.com/open-feature/python-sdk"
[tool.mypy]
files = "openfeature"
namespace_packages = true
explicit_package_bases = true
[tool.ruff]
exclude = [
".git",