17
17
>>> foo = ("bar " "baz")
18
18
19
19
Black is not considering this as an
20
- issue (see https://github.com/psf/black/issues/1051), so we are checking
21
- it here.
20
+ issue (see issue https://github.com/psf/black/issues/1051),
21
+ so we are checking it here.
22
22
"""
23
23
24
24
import os
30
30
FILE_EXTENSIONS_TO_CHECK = frozenset ((".pxd" , ".py" , ".pyx" , ".pyx.ini" ))
31
31
32
32
33
- def is_concatenated (file_path ):
33
+ def strings_to_concatenate (file_path ):
34
34
"""
35
- Checking if the file containing strings that needs to be concatenated.
35
+ Yielding the strings that needs to be concatenated in a given file .
36
36
37
37
Parameters
38
38
----------
39
39
file_path : str
40
40
File path pointing to a single file.
41
41
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.
42
+ Yields
43
+ ------
44
+ str
45
+ Message containing info about the string that needs to be concatenated.
48
46
"""
49
- need_fix = False
50
47
with open (file_path , "r" ) as file_name :
51
48
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
- )
63
49
64
- return int (need_fix )
50
+ for current_token , next_token in zip (tokens , tokens [1 :]):
51
+ if current_token [0 ] == next_token [0 ] == token .STRING :
52
+ yield "{file_path}:{line_number}:\t {start} and {end}\n " .format (
53
+ file_path = file_path ,
54
+ line_number = current_token [2 ][0 ],
55
+ start = current_token [1 ],
56
+ end = next_token [1 ],
57
+ )
65
58
66
59
67
60
if __name__ == "__main__" :
@@ -70,19 +63,23 @@ def is_concatenated(file_path):
70
63
if not os .path .exists (path ):
71
64
raise ValueError ("Please enter a valid path, to a file/directory." )
72
65
66
+ passed = True
67
+
73
68
if os .path .isfile (path ):
74
- # Means that the given path is of a single file.
75
- sys .exit (is_concatenated (path ))
69
+ for msg in strings_to_concatenate (path ):
70
+ if msg :
71
+ passed = False
72
+ print (msg )
76
73
77
- failures = 0
78
- # Means that the given path is of a directory.
79
74
for subdir , _ , files in os .walk (path ):
80
75
for file_name in files :
81
76
if any (
82
77
file_name .endswith (extension ) for extension in FILE_EXTENSIONS_TO_CHECK
83
78
):
84
79
file_extension = os .path .join (subdir , file_name )
85
- failures += is_concatenated (os .path .join (subdir , file_name ))
86
80
87
- exit_code = 1 if failures >= 1 else 0
88
- sys .exit (exit_code )
81
+ for msg in strings_to_concatenate (os .path .join (subdir , file_name )):
82
+ if msg :
83
+ passed = False
84
+ print (msg )
85
+ sys .exit (passed )
0 commit comments