docs: def get(self, attr_name, *args):
          """ Get the most retrieval attribute in the configuration file.  This method
          will recursively look through the configuration file for the attribute specified
          and return the last found value or None. The values can be referenced by
          the key name provided in the configuration file or that value normalized with
          snake_casing.
  
          Usage::
              >>> from freight_forwarder.config import Config
              >>>
              >>> config = Config()
              >>> thing = config.get('thing', 'grandparent', 'parent')
  
          :param attr_name: A :string: The configuration property name to get.
          :param *args: A :tuple: if :strings: parent objects in which to look for attr. This is optional.
          :return attr value:
          """
          if not isinstance(attr_name, six.string_types):
              raise TypeError('attr_name must be a str.')
  
          # allow retrieval of data with alias or normalized name
          if '-' in attr_name:
              attr_name = attr_name.replace('-', '_')
  
          parent_attr = self
          attr = getattr(parent_attr, attr_name, None)
  
          for arg in args:
              if not isinstance(arg, six.string_types):
                  raise TypeError(
                      'each additional argument must be a string. {0} was not a string'.format(arg)
                  )
  
              if hasattr(parent_attr, arg):
                  parent_attr = getattr(parent_attr, arg)
  
                  if hasattr(parent_attr, attr_name):
                      attr = getattr(parent_attr, attr_name)
          else:
              pass
  
          return attr