@@ -173,12 +173,12 @@ def __getattr__(self, name):
173173class 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