code: def _read_config(self):
          
          
          this_dir = os.path.dirname(__file__)        
          config_file = os.path.abspath(os.path.join(this_dir, "..", "config", "config.json"))
  
          self.generic_enum_attrs = []
          self.base_attrs = []
          self.generic_enums = []
          self.named_entity_attrs = []
          self.overide_generic_enums = []
          self.enum_attrs_for_locale = {}
          self.generic_enum_attrs_for_locale = {}
          self.list_subtypes_generic = []
          
          Printer.log("Configuration file: %s" % (config_file))
  
          if (os.path.isfile(config_file)):
              with open(config_file, 'r') as input_json:
                  json_config_data = json.load(input_json) 
                  
              self.base_attrs = json_config_data['base_attrs']
              self.generic_enums =  json_config_data['generic_enums']
              self.named_entity_attrs = json_config_data['named_entity_attrs']
              self.overide_generic_enums = json_config_data['overide_generic_enums']
              self.list_subtypes_generic = json_config_data['list_subtypes_generic']
  
              for enum_name, values in self.generic_enums.iteritems():
                  enum_attr =  SpecificationAttribute()
                  enum_attr.name = enum_name
                  enum_attr.allowed_choices = values
                  self.generic_enum_attrs.append(enum_attr)
          else:
              Printer.log("Configuration file missing: %s" % (config_file))
docs: This method reads provided json config file.