Skip to content

Commit 84f4349

Browse files
committed
extract_utils: remove type hints for BpBuilder methods returning self
By explicitly returning BpBuilder in these methods, we prevent the type checker from resolving proper Self types for FileBpBuilder. Change-Id: I41ab2fa73d562fc6756ffb58a26c731c41ee7201
1 parent a345b1b commit 84f4349

File tree

1 file changed

+21
-23
lines changed

1 file changed

+21
-23
lines changed

extract_utils/bp_builder.py

+21-23
Original file line numberDiff line numberDiff line change
@@ -78,23 +78,23 @@ def set_rule_name(self, rule_name: str):
7878
self.__rule_name = rule_name
7979
return self
8080

81-
def set(self, k, v, optional=False) -> BpBuilder:
81+
def set(self, k, v, optional=False):
8282
assert v is not None or optional
8383
if v is not None:
8484
self.o[k] = v
8585
return self
8686

87-
def name(self, package_name: str) -> BpBuilder:
87+
def name(self, package_name: str):
8888
self.set('name', package_name)
8989
return self
9090

91-
def stem(self, stem: Optional[str]) -> BpBuilder:
91+
def stem(self, stem: Optional[str]):
9292
return self.set('stem', stem, optional=True)
9393

94-
def owner(self) -> BpBuilder:
94+
def owner(self):
9595
return self.set('owner', self.__owner)
9696

97-
def specific(self) -> BpBuilder:
97+
def specific(self):
9898
if self.__partition is None:
9999
return self
100100

@@ -104,31 +104,31 @@ def specific(self) -> BpBuilder:
104104

105105
return self.set(f'{specific}_specific', True)
106106

107-
def __multilib(self, bits: Multilib) -> BpBuilder:
107+
def __multilib(self, bits: Multilib):
108108
return self.set('compile_multilib', bits)
109109

110-
def multilib(self, bits: int) -> BpBuilder:
110+
def multilib(self, bits: int):
111111
value = Multilib.from_int(bits)
112112
return self.__multilib(value)
113113

114-
def multilibs(self, bitses: List[int]) -> BpBuilder:
114+
def multilibs(self, bitses: List[int]):
115115
value = Multilib.from_int_list(bitses)
116116
return self.__multilib(value)
117117

118-
def check_elf(self, enable_checkelf: bool) -> BpBuilder:
118+
def check_elf(self, enable_checkelf: bool):
119119
if not enable_checkelf:
120120
self.set('check_elf_files', False)
121121
return self
122122

123-
def no_strip(self) -> BpBuilder:
123+
def no_strip(self):
124124
return self.set(
125125
'strip',
126126
{
127127
'none': True,
128128
},
129129
)
130130

131-
def prefer(self) -> BpBuilder:
131+
def prefer(self):
132132
return self.set('prefer', True)
133133

134134
def write(self, out):
@@ -167,33 +167,33 @@ def __file_dir_without_prefix(self) -> Optional[str]:
167167

168168
return remaining
169169

170-
def relative_install_path(self) -> BpBuilder:
170+
def relative_install_path(self):
171171
p = self.__file_dir_without_prefix()
172172
return self.set('relative_install_path', p, optional=True)
173173

174-
def sub_dir(self) -> BpBuilder:
174+
def sub_dir(self):
175175
p = self.__file_dir_without_prefix()
176176
return self.set('sub_dir', p, optional=True)
177177

178178
def __file_rel_sub_path(self, file_rel_path: str) -> str:
179179
return f'{self.__rel_sub_path}/{file_rel_path}'
180180

181-
def src(self) -> BpBuilder:
181+
def src(self):
182182
rel_path = self.__file_rel_sub_path(self.__file.dst)
183183
return self.set('src', rel_path)
184184

185-
def apk(self) -> BpBuilder:
185+
def apk(self):
186186
rel_path = self.__file_rel_sub_path(self.__file.dst)
187187
return self.set('apk', rel_path)
188188

189-
def jars(self) -> BpBuilder:
189+
def jars(self):
190190
rel_path = self.__file_rel_sub_path(self.__file.dst)
191191
return self.set('jars', [rel_path])
192192

193-
def filename(self) -> BpBuilder:
193+
def filename(self):
194194
return self.set('filename', self.__file.basename)
195195

196-
def signature(self) -> BpBuilder:
196+
def signature(self):
197197
if self.__file.presigned:
198198
self.set('preprocessed', True)
199199
self.set('presigned', True)
@@ -203,16 +203,14 @@ def signature(self) -> BpBuilder:
203203
self.set('certificate', 'platform')
204204
return self
205205

206-
def skip_preprocessed_apk_checks(self) -> BpBuilder:
206+
def skip_preprocessed_apk_checks(self):
207207
return self.set(
208208
'skip_preprocessed_apk_checks',
209209
self.__file.skip_preprocessed_apk_checks,
210210
optional=True,
211211
)
212212

213-
def target(
214-
self, f: File, machine: EM, deps: Optional[List[str]]
215-
) -> BpBuilder:
213+
def target(self, f: File, machine: EM, deps: Optional[List[str]]):
216214
target = self.o.setdefault('target', {})
217215

218216
rel_path = self.__file_rel_sub_path(f.dst)
@@ -229,7 +227,7 @@ def targets(
229227
files: List[File],
230228
machines: List[EM],
231229
depses: List[Optional[List[str]]],
232-
) -> BpBuilder:
230+
):
233231
for f, machine, deps in zip(files, machines, depses):
234232
self.target(f, machine, deps)
235233
return self

0 commit comments

Comments
 (0)