40
40
41
41
OBJECT_DUNDER_NEW = "object.__new__"
42
42
43
-
44
- def _extend_str (class_node , rvalue ):
43
+ STR_CLASS = """
44
+ class whatever(object):
45
+ def join(self, iterable):
46
+ return {rvalue}
47
+ def replace(self, old, new, count=None):
48
+ return {rvalue}
49
+ def format(self, *args, **kwargs):
50
+ return {rvalue}
51
+ def encode(self, encoding='ascii', errors=None):
52
+ return b''
53
+ def decode(self, encoding='ascii', errors=None):
54
+ return u''
55
+ def capitalize(self):
56
+ return {rvalue}
57
+ def title(self):
58
+ return {rvalue}
59
+ def lower(self):
60
+ return {rvalue}
61
+ def upper(self):
62
+ return {rvalue}
63
+ def swapcase(self):
64
+ return {rvalue}
65
+ def index(self, sub, start=None, end=None):
66
+ return 0
67
+ def find(self, sub, start=None, end=None):
68
+ return 0
69
+ def count(self, sub, start=None, end=None):
70
+ return 0
71
+ def strip(self, chars=None):
72
+ return {rvalue}
73
+ def lstrip(self, chars=None):
74
+ return {rvalue}
75
+ def rstrip(self, chars=None):
76
+ return {rvalue}
77
+ def rjust(self, width, fillchar=None):
78
+ return {rvalue}
79
+ def center(self, width, fillchar=None):
80
+ return {rvalue}
81
+ def ljust(self, width, fillchar=None):
82
+ return {rvalue}
83
+ """
84
+
85
+
86
+ BYTES_CLASS = """
87
+ class whatever(object):
88
+ def join(self, iterable):
89
+ return {rvalue}
90
+ def replace(self, old, new, count=None):
91
+ return {rvalue}
92
+ def decode(self, encoding='ascii', errors=None):
93
+ return u''
94
+ def capitalize(self):
95
+ return {rvalue}
96
+ def title(self):
97
+ return {rvalue}
98
+ def lower(self):
99
+ return {rvalue}
100
+ def upper(self):
101
+ return {rvalue}
102
+ def swapcase(self):
103
+ return {rvalue}
104
+ def index(self, sub, start=None, end=None):
105
+ return 0
106
+ def find(self, sub, start=None, end=None):
107
+ return 0
108
+ def count(self, sub, start=None, end=None):
109
+ return 0
110
+ def strip(self, chars=None):
111
+ return {rvalue}
112
+ def lstrip(self, chars=None):
113
+ return {rvalue}
114
+ def rstrip(self, chars=None):
115
+ return {rvalue}
116
+ def rjust(self, width, fillchar=None):
117
+ return {rvalue}
118
+ def center(self, width, fillchar=None):
119
+ return {rvalue}
120
+ def ljust(self, width, fillchar=None):
121
+ return {rvalue}
122
+ """
123
+
124
+
125
+ def _extend_string_class (class_node , code , rvalue ):
45
126
"""function to extend builtin str/unicode class"""
46
- code = dedent (
47
- """
48
- class whatever(object):
49
- def join(self, iterable):
50
- return {rvalue}
51
- def replace(self, old, new, count=None):
52
- return {rvalue}
53
- def format(self, *args, **kwargs):
54
- return {rvalue}
55
- def encode(self, encoding='ascii', errors=None):
56
- return ''
57
- def decode(self, encoding='ascii', errors=None):
58
- return u''
59
- def capitalize(self):
60
- return {rvalue}
61
- def title(self):
62
- return {rvalue}
63
- def lower(self):
64
- return {rvalue}
65
- def upper(self):
66
- return {rvalue}
67
- def swapcase(self):
68
- return {rvalue}
69
- def index(self, sub, start=None, end=None):
70
- return 0
71
- def find(self, sub, start=None, end=None):
72
- return 0
73
- def count(self, sub, start=None, end=None):
74
- return 0
75
- def strip(self, chars=None):
76
- return {rvalue}
77
- def lstrip(self, chars=None):
78
- return {rvalue}
79
- def rstrip(self, chars=None):
80
- return {rvalue}
81
- def rjust(self, width, fillchar=None):
82
- return {rvalue}
83
- def center(self, width, fillchar=None):
84
- return {rvalue}
85
- def ljust(self, width, fillchar=None):
86
- return {rvalue}
87
- """
88
- )
89
127
code = code .format (rvalue = rvalue )
90
128
fake = AstroidBuilder (MANAGER ).string_build (code )["whatever" ]
91
129
for method in fake .mymethods ():
@@ -106,8 +144,8 @@ def _extend_builtins(class_transforms):
106
144
107
145
_extend_builtins (
108
146
{
109
- "bytes" : partial (_extend_str , rvalue = "b''" ),
110
- "str" : partial (_extend_str , rvalue = "''" ),
147
+ "bytes" : partial (_extend_string_class , code = BYTES_CLASS , rvalue = "b''" ),
148
+ "str" : partial (_extend_string_class , code = STR_CLASS , rvalue = "''" ),
111
149
}
112
150
)
113
151
0 commit comments