2017-01-21 2 views
1

Documentation a un paradigme où la seule section est appelée paramètres Cela semble être l'espace de noms par défaut pour python-découpler donc si vous avez:sections .ini Parse avec python-découpler

[settings] 
DEBUG=True 

vous pouvez analyser la config avec:

from decouple import config 
DEBUG = config('DEBUG', default=False, cast=bool) # no section argument 

Mais si nous avons des sections personnalisées comme:

[sectionA] 
DEBUG=True 

[sectionB] 
foo="bar" 

?

Je sais que l'on peut facilement utiliser ConfigParser pour analyser des sections personnalisées, comme ceci:

config_parser.get('sectionA', 'DEBUG') # the corresponding call in ConfigParser 

mais je me demandais comment il est fait par python-découpler car il prend également en charge .ini fichiers

Répondre

0

section semble être codé en dur comme un attribut de classe dans le code, donc je suppose qu'il n'y a pas de solution propre, paramétrée à ce problème.

class RepositoryIni(RepositoryEmpty): 
    """ 
    Retrieves option keys from .ini files. 
    """ 
    SECTION = 'settings' 

    def __init__(self, source): 
     self.parser = ConfigParser() 
     with open(source) as file_: 
      self.parser.readfp(file_) 

    def __contains__(self, key): 
     return (key in os.environ or 
       self.parser.has_option(self.SECTION, key)) 

    def __getitem__(self, key): 
     return self.parser.get(self.SECTION, key)