MCPcopy Create free account
hub / github.com/ElementsProject/elements / count_format_specifiers

Function count_format_specifiers

test/lint/lint-format-strings.py:228–256  ·  view source on GitHub ↗

Return the number of format specifiers in string format_string. >>> count_format_specifiers("foo bar foo") 0 >>> count_format_specifiers("foo %d bar foo") 1 >>> count_format_specifiers("foo %d bar %i foo") 2 >>> count_format_specifiers("foo %d bar %i foo %% foo") 2

(format_string)

Source from the content-addressed store, hash-verified

226
227
228def count_format_specifiers(format_string):
229 """Return the number of format specifiers in string format_string.
230
231 >>> count_format_specifiers("foo bar foo")
232 0
233 >>> count_format_specifiers("foo %d bar foo")
234 1
235 >>> count_format_specifiers("foo %d bar %i foo")
236 2
237 >>> count_format_specifiers("foo %d bar %i foo %% foo")
238 2
239 >>> count_format_specifiers("foo %d bar %i foo %% foo %d foo")
240 3
241 >>> count_format_specifiers("foo %d bar %i foo %% foo %*d foo")
242 4
243 """
244 assert type(format_string) is str
245 format_string = format_string.replace('%%', 'X')
246 n = 0
247 in_specifier = False
248 for i, char in enumerate(format_string):
249 if char == "%":
250 in_specifier = True
251 n += 1
252 elif char in "aAcdeEfFgGinopsuxX":
253 in_specifier = False
254 elif in_specifier and char == "*":
255 n += 1
256 return n
257
258
259def main():

Callers 1

mainFunction · 0.85

Calls 2

typeClass · 0.50
enumerateFunction · 0.50

Tested by

no test coverage detected