code: def set_aliases_and_defaults(self, aliases_config=None,
                                   default_properties=None):
          
          if aliases_config is None:
              with open(os.path.join(os.path.dirname(__file__),
                                     "aliases.json")) as f:
                  d = json.load(f)
                  self.aliases = d.get("aliases", {})
                  self.default_criteria = d.get("defaults", {})
          else:
              self.aliases = aliases_config.get("aliases", {})
              self.default_criteria = aliases_config.get("defaults", {})
          # set default properties
          if default_properties is None:
              self._default_props, self._default_prop_dict = None, None
          else:
              self._default_props, self._default_prop_dict = \
                  self._parse_properties(default_properties)
docs: Set the alias config and defaults to use. Typically used when
          switching to a collection with a different schema.
  
          Args:
              aliases_config:
                  An alias dict to use. Defaults to None, which means the default
                  aliases defined in "aliases.json" is used. See constructor
                  for format.
              default_properties:
                  List of property names (strings) to use by default, if no
                  properties are given to the 'properties' argument of
                  query().