Skip to content

Commit 22d3e58

Browse files
committed
Don't start server in remote mode
This fixes jxmorris12#41 and is related to jxmorris12#34.
1 parent 590cb43 commit 22d3e58

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

‎language_check/__init__.py‎

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -173,12 +173,12 @@ def __getattr__(self, name):
173173
class LanguageTool:
174174

175175
"""Main class used for checking text against different rules."""
176-
_REMOTE = False
177176
_HOST = socket.gethostbyname('localhost')
178177
_MIN_PORT = 8081
179178
_MAX_PORT = 8083
180179
_TIMEOUT = 5 * 60
181180

181+
_remote = False
182182
_port = _MIN_PORT
183183
_server = None
184184
_consumer_thread = None
@@ -187,7 +187,7 @@ class LanguageTool:
187187

188188
def __init__(self, language=None, motherTongue=None, remote_server=None):
189189
if remote_server is not None:
190-
self._REMOTE = True
190+
self._remote = True
191191
self._HOST = remote_server["host"]
192192
self._port = remote_server["port"]
193193
self._url = 'http://{}:{}/v2/check'.format(self._HOST, self._port)
@@ -284,8 +284,7 @@ def disable_spellchecking(self):
284284
@classmethod
285285
def _get_languages(cls) -> set:
286286
"""Get supported languages (by querying the server)."""
287-
if not cls._server_is_alive():
288-
cls._start_server_on_free_port()
287+
cls._start_server_if_needed()
289288
url = urllib.parse.urljoin(cls._url, 'Languages')
290289
languages = set()
291290
for e in cls._get_root(url, num_tries=1):
@@ -296,21 +295,25 @@ def _get_languages(cls) -> set:
296295
@classmethod
297296
def _get_attrib(cls):
298297
"""Get matches element attributes."""
299-
if not cls._server_is_alive() and cls._REMOTE is False:
300-
cls._start_server_on_free_port()
298+
cls._start_server_if_needed()
301299
params = {'language': FAILSAFE_LANGUAGE, 'text': ''}
302300
data = urllib.parse.urlencode(params).encode()
303301
root = cls._get_root(cls._url, data, num_tries=1)
304302
return root.attrib
305303

304+
@classmethod
305+
def _start_server_if_needed(cls):
306+
if not cls._server_is_alive() and cls._remote is False:
307+
cls._start_server_on_free_port()
308+
306309
@classmethod
307310
def _get_root(cls, url, data=None, num_tries=2):
308311
for n in range(num_tries):
309312
try:
310313
with urlopen(url, data, cls._TIMEOUT) as f:
311314
return ElementTree.parse(f).getroot()
312315
except (IOError, http.client.HTTPException) as e:
313-
if cls._REMOTE is False:
316+
if cls._remote is False:
314317
cls._terminate_server()
315318
cls._start_server()
316319
if n + 1 >= num_tries:

0 commit comments

Comments
 (0)