code: def get_signature(self, signature):
          
          resp = self.request_list('GetSignatures')
  
          # GetSignature does not allow to filter the results, so we do it by
          # hand...
          if resp and (len(resp) > 0):
              for sig_dict in resp:
                  sig = zobjects.Signature.from_dict(sig_dict)
                  if hasattr(signature, 'id'):
                      its_this_one = (sig.id == signature.id)
                  elif hasattr(signature, 'name'):
                      its_this_one = (sig.name.upper() == signature.name.upper())
                  else:
                      raise ValueError('should mention one of id,name')
                  if its_this_one:
                      return sig
          else:
              return None
docs: Retrieve one signature, discriminated by name or id.
  
          Note that signature name is not case sensitive.
  
          :param: a zobjects.Signature describing the signature
                 like "Signature(name='my-sig')"
  
          :returns: a zobjects.Signature object, filled with the signature if no
                   signature is matching, returns None.