4
4
import locale
5
5
import re
6
6
import sys
7
+ from importlib .metadata import version
8
+ import toml
7
9
8
10
from .server import LanguageTool
9
11
from .utils import LanguageToolError
10
12
11
- import pkg_resources
12
- __version__ = pkg_resources .require ("language_tool_python" )[0 ].version
13
+ try :
14
+ __version__ = version ("language_tool_python" )
15
+ except PackageNotFoundError :
16
+ with open ("pyproject.toml" , "rb" ) as f :
17
+ __version__ = toml .loads (f .read ().decode ('utf-8' ))["project" ]["version" ]
13
18
14
19
15
20
def parse_args ():
@@ -33,6 +38,8 @@ def parse_args():
33
38
parser .add_argument ('--enabled-only' , action = 'store_true' ,
34
39
help = 'disable all rules except those specified in '
35
40
'--enable' )
41
+ parser .add_argument ('-p' , '--picky' , action = 'store_true' ,
42
+ help = 'If set, additional rules will be activated.' )
36
43
parser .add_argument (
37
44
'--version' , action = 'version' ,
38
45
version = '%(prog)s {}' .format (__version__ ),
@@ -77,14 +84,6 @@ def get_text(filename, encoding, ignore):
77
84
return text
78
85
79
86
80
- def print_unicode (text ):
81
- """Print in a portable manner."""
82
- if sys .version_info [0 ] < 3 :
83
- text = text .encode ('utf-8' )
84
-
85
- print (text )
86
-
87
-
88
87
def main ():
89
88
args = parse_args ()
90
89
@@ -109,44 +108,30 @@ def main():
109
108
if args .remote_port is not None :
110
109
remote_server += ':{}' .format (args .remote_port )
111
110
lang_tool = LanguageTool (
111
+ language = args .language ,
112
112
motherTongue = args .mother_tongue ,
113
113
remote_server = remote_server ,
114
114
)
115
- guess_language = None
116
115
117
116
try :
118
117
text = get_text (filename , encoding , ignore = args .ignore_lines )
119
118
except UnicodeError as exception :
120
119
print ('{}: {}' .format (filename , exception ), file = sys .stderr )
121
120
continue
122
121
123
- if args .language :
124
- if args .language .lower () == 'auto' :
125
- try :
126
- from guess_language import guess_language
127
- except ImportError :
128
- print ('guess_language is unavailable.' , file = sys .stderr )
129
- return 1
130
- else :
131
- language = guess_language (text )
132
- print ('Detected language: {}' .format (language ),
133
- file = sys .stderr )
134
- if not language :
135
- return 1
136
- lang_tool .language = language
137
- else :
138
- lang_tool .language = args .language
139
-
140
122
if not args .spell_check :
141
123
lang_tool .disable_spellchecking ()
142
124
143
125
lang_tool .disabled_rules .update (args .disable )
144
126
lang_tool .enabled_rules .update (args .enable )
145
127
lang_tool .enabled_rules_only = args .enabled_only
146
128
129
+ if args .picky :
130
+ lang_tool .picky = True
131
+
147
132
try :
148
133
if args .apply :
149
- print_unicode (lang_tool .correct (text ))
134
+ print (lang_tool .correct (text ))
150
135
else :
151
136
for match in lang_tool .check (text ):
152
137
rule_id = match .ruleId
@@ -162,7 +147,7 @@ def main():
162
147
if replacement_text and not message .endswith (('.' , '?' )):
163
148
message += '; suggestions: ' + replacement_text
164
149
165
- print_unicode ('{}: {}: {}' .format (
150
+ print ('{}: {}: {}' .format (
166
151
filename ,
167
152
rule_id ,
168
153
message ))
0 commit comments