code: def get_shares(self, path='', **kwargs):
          if not (isinstance(path, six.string_types)):
              return None
          data = 'shares'
          if path != '':
              data += '?'
              path = self._encode_string(self._normalize_path(path))
              args = {'path': path}
              reshares = kwargs.get('reshares', False)
              if isinstance(reshares, bool) and reshares:
                  args['reshares'] = reshares
              subfiles = kwargs.get('subfiles', False)
              if isinstance(subfiles, bool) and subfiles:
                  args['subfiles'] = str(subfiles).lower()
              shared_with_me = kwargs.get('shared_with_me', False)
              if isinstance(shared_with_me, bool) and shared_with_me:
                  args['shared_with_me'] = "true"
                  del args['path']
              data += parse.urlencode(args)
          res = self._make_ocs_request(
              'GET',
              self.OCS_SERVICE_SHARE,
              data
          )
          if res.status_code == 200:
              tree = ET.fromstring(res.content)
              self._check_ocs_status(tree)
              shares = []
              for element in tree.find('data').iter('element'):
                  '''share_attr = {}
                  for child in element:
                      key = child.tag
                      value = child.text
                      share_attr[key] = value
                  shares.append(share_attr)'''
                  shares.append(self._get_shareinfo(element))
              return shares
          raise HTTPResponseError(res)