# Handle (librepo.Handle)

class librepo.Handle

  Librepo handle class. Handle hold information about a repository and configuration for downloading from the repository.

  Attributes:

  update:

    See: `LRO_UPDATE`

  urls:

    See: `LRO_URLS`

  mirrorlist:

    See: `LRO_MIRRORLIST`

  mirrorlisturl:

    See: `LRO_MIRRORLISTURL`

  metalinkurl:

    See: `LRO_METALINKURL`

  local:

    See: `LRO_LOCAL`

  httpauth:

    See: `LRO_HTTPAUTH`

  userpwd:

    See: `LRO_USERPWD`

  username:

    See: `LRO_USERNAME`

  password:

    See: `LRO_PASSWORD`

  proxy:

    See: `LRO_PROXY`

  proxyport:

    See: `LRO_PROXYPORT`

  proxytype:

    See: `LRO_PROXYTYPE`

  proxyauth:

    See: `LRO_PROXYAUTH`

  proxyuserpwd:

    See: `LRO_PROXYUSERPWD`

  progresscb:

    See: `LRO_PROGRESSCB`

  progressdata:

    See: `LRO_PROGRESSDATA`

  maxspeed:

    See: `LRO_MAXSPEED`

  destdir:

    See: `LRO_DESTDIR`

  repotype:

    See: `LRO_REPOTYPE`

  connecttimeout:

    See: `LRO_CONNECTTIMEOUT`

  ignoremissing:

    See: `LRO_IGNOREMISSING`

  interruptible:

    See: `LRO_INTERRUPTIBLE`

  useragent:

    See: `LRO_USERAGENT`

  fetchmirrors:

    See: `LRO_FETCHMIRRORS`

  maxmirrortries:

    See: `LRO_MAXMIRRORTRIES`

  maxparalleldownloads:

    See: `LRO_MAXPARALLELDOWNLOADS`

  maxdownloadspermirror:

    See: `LRO_MAXDOWNLOADSPERMIRROR`

  varsub:

    See: `LRO_VARSUB`

  fastestmirror:

    See: `LRO_FASTESTMIRROR`

  fastestmirrorcache:

    See: `LRO_FASTESTMIRRORCACHE`

  fastestmirrormaxage:

    See: `LRO_FASTESTMIRRORMAXAGE`

  fastestmirrorcb:

    See: `LRO_FASTESTMIRRORCB`

  fastestmirrordata:

    See: `LRO_FASTESTMIRRORDATA`

  lowspeedtime:

    See: `LRO_LOWSPEEDTIME`

  lowspeedlimit:

    See: `LRO_LOWSPEEDLIMIT`

  gpgcheck:

    See: `LRO_GPGCHECK`

  checksum:

    See: `LRO_CHECKSUM`

  rpmmddlist:

    See: `LRO_RPMMDDLIST`

  yumdlist:

    See: `LRO_YUMDLIST`

  yumslist:

    See: `LRO_YUMSLIST`

  rpmmdblist:

    See: `LRO_RPMMDBLIST`

  yumblist:

    See: `LRO_YUMBLIST`

  hmfcb:

    See: `LRO_HMFCB`

  sslverifypeer:

    See `LRO_SSLVERIFYPEER`

  sslverifystatus:

    See `LRO_SSLVERIFYSTATUS`

  sslverifyhost:

    See `LRO_SSLVERIFYHOST`

  sslclientcert:

    See `LRO_SSLCLIENTCERT`

  sslclientkey:

    See `LRO_SSLCLIENTKEY`

  sslcacert:

    See `LRO_SSLCACERT`

  proxy_sslverifypeer:

    See `LRO_PROXY_SSLVERIFYPEER`

  proxy_sslverifyhost:

    See `LRO_PROXY_SSLVERIFYHOST`

  proxy_sslclientcert:

    See `LRO_PROXY_SSLCLIENTCERT`

  proxy_sslclientkey:

    See `LRO_PROXY_SSLCLIENTKEY`

  proxy_sslcacert:

    See `LRO_PROXY_SSLCACERT`

  ipresolve:

    See `LRO_IPRESOLVE`

  allowedmirrorfailures:

    See `LRO_ALLOWEDMIRRORFAILURES`

  adaptivemirrorsorting:

    See `LRO_ADAPTIVEMIRRORSORTING`

  gnupghomedir:

    See `LRO_GNUPGHOMEDIR`

  fastestmirrortimeout:

    See `LRO_FASTESTMIRRORTIMEOUT`

  httpheader:

    See `LRO_HTTPHEADER`

  offline:

    See `LRO_OFFLINE`

  httpauthmethods

    See `LRO_HTTPAUTHMETHODS`

  proxyauthmethods

    See `LRO_PROXYAUTHMETHODS`

  ftpuseepsv

    See `LRO_FTPUSEEPSV`

  preservetime

    See `LRO_PRESERVETIME`

  download(url, dest=None, checksum_type=0, checksum=None, expectedsize=0, base_url=None, resume=0)

    This method is deprecated - Use `download_packages()` instead.

    Download package from the repository specified in the `Handle`. If base_url is specified, urls and mirrors specified in the Handle are ignored.

    Note: If resume is True and checksum_type and checksum are specified and downloaded package already exists, then checksum of the existing package is checked. If checksum matches, then no downloading is done and exception with LRE_ALREADYDOWNLOADED return code is raised.

    Parameters:

      - url – Relative path to the package in the repository.

      - dest – Destination for package. Could be absolute/relative path to directory or filename.

      - checksum_type – Checksum (hash) type constants.

      - checksum – Checksum value.

      - expectedsize – Expected size of the file. If server reports different size, then no download is preformed.

      - base_url – Instead of repositories specified in `Handle` use repository on this url.

      - resume – `True` enables resume. Resume means that if local destination file exists, just try to resume download, if not or resume download failed than download whole file again.

    Example:

        h = librepo.Handle()
        h.setopt(librepo.LRO_URLS, ["http://ftp.linux.ncsu.edu/pub/fedora/linux/releases/17/Everything/i386/os/"])
        h.setopt(librepo.LRO_REPOTYPE, librepo.LR_YUMREPO)
        h.download("Packages/s/sl-3.03-12.fc17.i686.rpm",
            checksum="0ec8535d0fc00b497d8aef491c3f8b3955f2d84846325ee44851d9de8a36d12c",
            checksum_type=librepo.CHECKSUM_SHA256)

    Note

    If checksum check is disabled in the current `Handle`, then checksum is NOT checked even if checksum and checksum_type params are specified!

  getinfo(option)

    Get information from `Handle`.

    Parameters:

      option – One of Handle info options

    Returns:

      Value for the specified option or None if the option is not set.

  new_packagetarget(relative_url, **kwargs)

    Shortcut for creating a new `PackageTarget` objects. Targets created by this way have automatically setted handle to the current `Handle` object.

    Parameters:

      relative_url – Relative par of target (package) URL

    Returns:

      New `PackageTarget`

  perform(result=None)

    Perform the specified action - download/locate a repository.

    Parameters:

      result – `Result` object or None

    Returns:

      `Result` object that was passed by result parameter or the new one if the parameter was not specified or was None.

  setopt(option, val)

    Set option to `Handle` directly.

    Parameters:

      option – One of: Handle options

    Returns:

      None

    Example:

        # The command:
        h.setopt(librepo.LRO_URLS, ["http://ftp.linux.ncsu.edu/pub/fedora/linux/releases/17/Everything/i386/os/"])
        # is equivalent to:
        h.urls(["http://ftp.linux.ncsu.edu/pub/fedora/linux/releases/17/Everything/i386/os/"])