code: def with_query(self, *args, **kwargs):
          
          # N.B. doesn't cleanup query/fragment
  
          new_query = self._get_str_query(*args, **kwargs)
          return URL(
              self._val._replace(path=self._val.path, query=new_query), encoded=True
          )
docs: Return a new URL with query part replaced.
  
          Accepts any Mapping (e.g. dict, multidict.MultiDict instances)
          or str, autoencode the argument if needed.
  
          A sequence of (key, value) pairs is supported as well.
  
          It also can take an arbitrary number of keyword arguments.
  
          Clear query if None is passed.