code: def connect_by_uri(uri):
      
      puri = urisup.uri_help_split(uri)
      #params = __dict_from_query(puri[QUERY])
      params = {}
  
      if puri[AUTHORITY]:
          user, passwd, host, port = puri[AUTHORITY]
          if user:
              params['user'] = user
          if passwd:
              params['password'] = passwd
          if host:
              params['host'] = host
          if port:
              params['port'] = port
      if puri[PATH]:
          params['database'] = puri[PATH]
          if params['database'] and params['database'][0] == '/':
              params['database'] = params['database'][1:]
  
      #__apply_types(params, __typemap)
  
      return psycopg2.connect(**params)
docs: General URI syntax:
  
      postgresql://user:passwd@host:port/db
  
      NOTE: the authority and the path parts of the URI have precedence
      over the query part, if an argument is given in both.
  
          conv,quote_conv,cursorclass
      are not (yet?) allowed as complex Python objects are needed, hard to
      transmit within an URI...