1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# pylint: disable=invalid-name,missing-docstring,pointless-statement
from datetime import datetime
from typing import Union
value = "Hello World"
value.isoformat() # [no-member]
if isinstance(value, datetime):
value.isoformat()
else:
value.isoformat() # [no-member]
def func():
if hasattr(value, "load"):
value.load()
if getattr(value, "load", None):
value.load
if value.none_existent(): # [no-member]
pass
res = value.isoformat() if isinstance(value, datetime) else value
class Base:
_attr_state: Union[str, datetime] = "Unknown"
@property
def state(self) -> Union[str, datetime]:
return self._attr_state
def some_function(self) -> str:
state = self.state
if isinstance(state, datetime):
return state.isoformat()
return str(state)
# https://github.com/PyCQA/pylint/issues/1990
# Attribute access after 'isinstance' should not cause 'no-member' error
import subprocess # pylint: disable=wrong-import-position # noqa: E402
try:
subprocess.check_call(['ls', '-']) # Deliberately made error in this line
except Exception as err:
if isinstance(err, subprocess.CalledProcessError):
print(f'Subprocess error occurred. Return code: {err.returncode}')
else:
print(f'An error occurred: {str(err)}')
raise
# https://github.com/PyCQA/pylint/issues/4168
# 'encode' for 'arg' should not cause 'no-member' error
mixed_tuple = (b"a", b"b", b"c", b"d")
byte_tuple = [arg.encode('utf8') if isinstance(arg, str) else arg for arg in mixed_tuple]
for arg in mixed_tuple:
if isinstance(arg, str):
print(arg.encode('utf8'))
else:
print(arg)
# https://github.com/PyCQA/pylint/issues/1162
# Attribute access after 'isinstance' should not cause 'no-member' error
class FoobarException(Exception):
foobar = None
try: # noqa: E305
pass
except Exception as ex:
if isinstance(ex, FoobarException):
ex.foobar
raise
|