Commit 2af8fd2236ba00659f7535c72e6cd0264d0aa492

Authored by Erickson Silva
1 parent db55a417
Exists in master and in 1 other branch devel

Corrige Singleton da classe LerDicionarios

Showing 1 changed file with 9 additions and 8 deletions   Show diff stats
src/LerDicionarios.py
@@ -9,18 +9,19 @@ @@ -9,18 +9,19 @@
9 import os 9 import os
10 import csv 10 import csv
11 11
12 -class Singleton(object): 12 +class Singleton(type):
13 ''' Permite a criação de apenas uma instância da classe 13 ''' Permite a criação de apenas uma instância da classe
14 ''' 14 '''
  15 + _instances = {}
  16 + def __call__(cls, *args, **kwargs):
  17 + if cls not in cls._instances:
  18 + cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
  19 + return cls._instances[cls]
15 20
16 - def __new__(cls, *args, **kwargs):  
17 - if '_inst' not in vars(cls):  
18 - cls._inst = object.__new__(cls, *args, **kwargs)  
19 - return cls._inst  
20 -  
21 -class LerDicionarios(Singleton): 21 +class LerDicionarios(object):
22 '''Carrega todos os arquivos (dicionários) necessários para auxiliar durante o processo de tradução. 22 '''Carrega todos os arquivos (dicionários) necessários para auxiliar durante o processo de tradução.
23 ''' 23 '''
  24 + __metaclass__ = Singleton
24 25
25 def __init__(self): 26 def __init__(self):
26 self.path = self.get_path() 27 self.path = self.get_path()
@@ -43,7 +44,7 @@ class LerDicionarios(Singleton): @@ -43,7 +44,7 @@ class LerDicionarios(Singleton):
43 ''' 44 '''
44 if "TRANSLATE_DATA" in os.environ: 45 if "TRANSLATE_DATA" in os.environ:
45 return os.environ.get("TRANSLATE_DATA") 46 return os.environ.get("TRANSLATE_DATA")
46 - return os.path.expanduser("~") + "/vlibras-translate/data" 47 + return os.path.expanduser("~") + "/vlibras-translate/data"
47 48
48 def carregar_dicionarios(self): 49 def carregar_dicionarios(self):
49 '''Realiza a leitura dos arquivos e atribui à estruturas de dicionários e sets. 50 '''Realiza a leitura dos arquivos e atribui à estruturas de dicionários e sets.