code: def canon_did(uri: str) -> str:
      
  
      if ok_did(uri):
          return uri
  
      if uri.startswith('did:sov:'):
          rv = uri[8:]
          if ok_did(rv):
              return rv
      raise BadIdentifier('Bad specification {} does not correspond to a sovrin DID'.format(uri))
docs: Convert a URI into a DID if need be, left-stripping 'did:sov:' if present.
      Return input if already a DID. Raise BadIdentifier for invalid input.
  
      :param uri: input URI or DID
      :return: corresponding DID