1212... "baz"
1313... )
1414
15+
1516into this:
1617
1718>>> foo = ("bar " "baz")
1819
1920Black is not considering this as an
20- issue (see https://github.com/psf/black/issues/1051), so we are checking
21- it here.
21+ issue (see issue https://github.com/psf/black/issues/1051),
22+ so we are checking it here.
2223"""
2324
2425import os
3031FILE_EXTENSIONS_TO_CHECK = frozenset ((".pxd" , ".py" , ".pyx" , ".pyx.ini" ))
3132
3233
33- def is_concatenated (file_path ):
34+ def strings_to_concatenate (file_path ):
3435 """
35- Checking if the file containing strings that needs to be concatenated.
36+ Yielding the strings that needs to be concatenated in a given file .
3637
3738 Parameters
3839 ----------
3940 file_path : str
4041 File path pointing to a single file.
4142
42- Returns
43- -------
44- int
45- Status code representing if the file needs a fix.
46- 0 - All good.
47- 1 - Needs to be fixed.
43+ Yields
44+ ------
45+ str
46+ Message containing info about the string that needs to be concatenated.
4847 """
49- need_fix = False
5048 with open (file_path , "r" ) as file_name :
5149 tokens = list (tokenize .generate_tokens (file_name .readline ))
52- for current_token , next_token in zip (tokens , tokens [1 :]):
53- if current_token [0 ] == next_token [0 ] == token .STRING :
54- need_fix = True
55- print (
56- "{file_path}:{line_number}:\t {start} and {end}" .format (
57- file_path = file_path ,
58- line_number = current_token [2 ][0 ],
59- start = current_token [1 ],
60- end = next_token [1 ],
61- )
62- )
6350
64- return int (need_fix )
51+ for current_token , next_token in zip (tokens , tokens [1 :]):
52+ if current_token [0 ] == next_token [0 ] == token .STRING :
53+ yield "{file_path}:{line_number}:\t {start} and {end}\n " .format (
54+ file_path = file_path ,
55+ line_number = current_token [2 ][0 ],
56+ start = current_token [1 ],
57+ end = next_token [1 ],
58+ )
6559
6660
6761if __name__ == "__main__" :
@@ -70,19 +64,23 @@ def is_concatenated(file_path):
7064 if not os .path .exists (path ):
7165 raise ValueError ("Please enter a valid path, to a file/directory." )
7266
67+ failed = False
68+
7369 if os .path .isfile (path ):
74- # Means that the given path is of a single file.
75- sys .exit (is_concatenated (path ))
70+ for msg in strings_to_concatenate (path ):
71+ if msg :
72+ failed = True
73+ print (msg )
7674
77- failures = 0
78- # Means that the given path is of a directory.
7975 for subdir , _ , files in os .walk (path ):
8076 for file_name in files :
8177 if any (
8278 file_name .endswith (extension ) for extension in FILE_EXTENSIONS_TO_CHECK
8379 ):
8480 file_extension = os .path .join (subdir , file_name )
85- failures += is_concatenated (os .path .join (subdir , file_name ))
8681
87- exit_code = 1 if failures >= 1 else 0
88- sys .exit (exit_code )
82+ for msg in strings_to_concatenate (os .path .join (subdir , file_name )):
83+ if msg :
84+ failed = True
85+ print (msg )
86+ sys .exit (failed )
0 commit comments