docs: def get_attributes(self, section, strip_namespaces=False):
          """
          Returns given section attributes.
  
          Usage::
  
              >>> content = ["[Section A]\\n", "; Comment.\\n", "Attribute 1 = \\"Value A\\"\\n", "\\n", \
  "[Section B]\\n", "Attribute 2 = \\"Value B\\"\\n"]
              >>> sections_file_parser = SectionsFileParser()
              >>> sections_file_parser.content = content
              >>> sections_file_parser.parse()
              <foundations.parsers.SectionsFileParser object at 0x125698322>
              >>> sections_file_parser.get_attributes("Section A")
              OrderedDict([(u'Section A|Attribute 1', u'Value A')])
              >>> sections_file_parser.preserve_order=False
              >>> sections_file_parser.get_attributes("Section A")
              {u'Section A|Attribute 1': u'Value A'}
              >>> sections_file_parser.preserve_order=True
              >>> sections_file_parser.get_attributes("Section A", strip_namespaces=True)
              OrderedDict([(u'Attribute 1', u'Value A')])
  
          :param section: Section containing the requested attributes.
          :type section: unicode
          :param strip_namespaces: Strip namespaces while retrieving attributes.
          :type strip_namespaces: bool
          :return: Attributes.
          :rtype: OrderedDict or dict
          """
  
          LOGGER.debug("> Getting section '{0}' attributes.".format(section))
  
          attributes = OrderedDict() if self.__preserve_order else dict()
          if not self.section_exists(section):
              return attributes
  
          if strip_namespaces:
              for attribute, value in self.__sections[section].iteritems():
                  attributes[foundations.namespace.remove_namespace(attribute, root_only=True)] = value
          else:
              attributes.update(self.__sections[section])
          LOGGER.debug("> Attributes: '{0}'.".format(attributes))
          return attributes