code: def with_config_dir(self, dir_path):
          
          lexicon_provider_config_files = []
          lexicon_config_files = []
  
          for path in os.listdir(dir_path):
              path = os.path.join(dir_path, path)
              if os.path.isfile(path):
                  basename = os.path.basename(path)
                  search = re.search(r'^lexicon(?:_(\w+)|)\.yml$', basename)
                  if search:
                      provider = search.group(1)
                      if provider:
                          lexicon_provider_config_files.append((provider, path))
                      else:
                          lexicon_config_files.append(path)
  
          for lexicon_provider_config_file in lexicon_provider_config_files:
              self.with_provider_config_file(lexicon_provider_config_file[0],
                                             lexicon_provider_config_file[1])
  
          for lexicon_config_file in lexicon_config_files:
              self.with_config_file(lexicon_config_file)
  
          return self
docs: Configure current resolver to use every valid YAML configuration files available in the
          given directory path. To be taken into account, a configuration file must conform to the
          following naming convention:
              * 'lexicon.yml' for a global Lexicon config file (see with_config_file doc)
              * 'lexicon_[provider].yml' for a DNS provider specific configuration file, with
              [provider] equals to the DNS provider name (see with_provider_config_file doc)
  
          Example:
              $ ls /etc/lexicon
              lexicon.yml # global Lexicon configuration file
              lexicon_cloudflare.yml # specific configuration file for clouflare DNS provder