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 9 import os
10 10 import csv
11 11  
12   -class Singleton(object):
  12 +class Singleton(type):
13 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 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 26 def __init__(self):
26 27 self.path = self.get_path()
... ... @@ -43,7 +44,7 @@ class LerDicionarios(Singleton):
43 44 '''
44 45 if "TRANSLATE_DATA" in os.environ:
45 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 49 def carregar_dicionarios(self):
49 50 '''Realiza a leitura dos arquivos e atribui à estruturas de dicionários e sets.
... ...