Fix memory leaks related to multiple instances of Morfeusz' dict
This commit is contained in:
10
conmorfeusz/conmorfeusz/morfeusz/__init__.py
Normal file
10
conmorfeusz/conmorfeusz/morfeusz/__init__.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import morfeusz2
|
||||||
|
|
||||||
|
class Morfeusz:
|
||||||
|
_instance = None
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get(cls):
|
||||||
|
if cls._instance is None:
|
||||||
|
cls._instance = morfeusz2.Morfeusz(expand_tags=True)
|
||||||
|
return cls._instance
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
import morfeusz2
|
from conmorfeusz import morfeusz, concraft, utils
|
||||||
from conmorfeusz import concraft, utils
|
|
||||||
|
|
||||||
|
|
||||||
def analysis_entry_to_dict(entry):
|
def analysis_entry_to_dict(entry):
|
||||||
@@ -36,7 +35,7 @@ def disamb_entry_to_dict(entry):
|
|||||||
|
|
||||||
|
|
||||||
def analyse(text, disamb, port):
|
def analyse(text, disamb, port):
|
||||||
morf = morfeusz2.Morfeusz(expand_tags=True)
|
morf = morfeusz.Morfeusz.get()
|
||||||
analysis = morf.analyse(text)
|
analysis = morf.analyse(text)
|
||||||
|
|
||||||
if disamb == False:
|
if disamb == False:
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import morfeusz2
|
from conmorfeusz import morfeusz, utils
|
||||||
from conmorfeusz import utils
|
|
||||||
|
|
||||||
def entry_to_dict(entry):
|
def entry_to_dict(entry):
|
||||||
segment, lemma, tags, frequency, qualifiers = entry
|
segment, lemma, tags, frequency, qualifiers = entry
|
||||||
@@ -14,5 +13,5 @@ def entry_to_dict(entry):
|
|||||||
|
|
||||||
|
|
||||||
def generate(lemma):
|
def generate(lemma):
|
||||||
morf = morfeusz2.Morfeusz(expand_tags=True)
|
morf = morfeusz.Morfeusz.get()
|
||||||
return [entry_to_dict(e) for e in morf.generate(lemma) if len(e) > 0]
|
return [entry_to_dict(e) for e in morf.generate(lemma) if len(e) > 0]
|
||||||
Reference in New Issue
Block a user