# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.12
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
    def swig_import_helper():
        import importlib
        pkg = __name__.rpartition('.')[0]
        mname = '.'.join((pkg, '_repo')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_repo')
    _repo = swig_import_helper()
    del swig_import_helper
elif _swig_python_version_info >= (2, 6, 0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_repo', [dirname(__file__)])
        except ImportError:
            import _repo
            return _repo
        try:
            _mod = imp.load_module('_repo', fp, pathname, description)
        finally:
            if fp is not None:
                fp.close()
        return _mod
    _repo = swig_import_helper()
    del swig_import_helper
else:
    import _repo
del _swig_python_version_info

try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
    if (name == "thisown"):
        return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name, None)
    if method:
        return method(self, value)
    if (not static):
        if _newclass:
            object.__setattr__(self, name, value)
        else:
            self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)


def _swig_setattr(self, class_type, name, value):
    return _swig_setattr_nondynamic(self, class_type, name, value, 0)


def _swig_getattr(self, class_type, name):
    if (name == "thisown"):
        return self.this.own()
    method = class_type.__swig_getmethods__.get(name, None)
    if method:
        return method(self)
    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))


def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except __builtin__.Exception:
    class _object:
        pass
    _newclass = 0

try:
    import weakref
    weakref_proxy = weakref.proxy
except __builtin__.Exception:
    weakref_proxy = lambda x: x


class SwigPyIterator(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, SwigPyIterator, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, SwigPyIterator, name)

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _repo.delete_SwigPyIterator
    __del__ = lambda self: None

    def value(self):
        return _repo.SwigPyIterator_value(self)

    def incr(self, n=1):
        return _repo.SwigPyIterator_incr(self, n)

    def decr(self, n=1):
        return _repo.SwigPyIterator_decr(self, n)

    def distance(self, x):
        return _repo.SwigPyIterator_distance(self, x)

    def equal(self, x):
        return _repo.SwigPyIterator_equal(self, x)

    def copy(self):
        return _repo.SwigPyIterator_copy(self)

    def next(self):
        return _repo.SwigPyIterator_next(self)

    def __next__(self):
        return _repo.SwigPyIterator___next__(self)

    def previous(self):
        return _repo.SwigPyIterator_previous(self)

    def advance(self, n):
        return _repo.SwigPyIterator_advance(self, n)

    def __eq__(self, x):
        return _repo.SwigPyIterator___eq__(self, x)

    def __ne__(self, x):
        return _repo.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n):
        return _repo.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n):
        return _repo.SwigPyIterator___isub__(self, n)

    def __add__(self, n):
        return _repo.SwigPyIterator___add__(self, n)

    def __sub__(self, *args):
        return _repo.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self
SwigPyIterator_swigregister = _repo.SwigPyIterator_swigregister
SwigPyIterator_swigregister(SwigPyIterator)

import libdnf.common_types
import libdnf.conf
class VectorPPackageTarget(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, VectorPPackageTarget, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, VectorPPackageTarget, name)
    __repr__ = _swig_repr

    def iterator(self):
        return _repo.VectorPPackageTarget_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _repo.VectorPPackageTarget___nonzero__(self)

    def __bool__(self):
        return _repo.VectorPPackageTarget___bool__(self)

    def __len__(self):
        return _repo.VectorPPackageTarget___len__(self)

    def __getslice__(self, i, j):
        return _repo.VectorPPackageTarget___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _repo.VectorPPackageTarget___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _repo.VectorPPackageTarget___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _repo.VectorPPackageTarget___delitem__(self, *args)

    def __getitem__(self, *args):
        return _repo.VectorPPackageTarget___getitem__(self, *args)

    def __setitem__(self, *args):
        return _repo.VectorPPackageTarget___setitem__(self, *args)

    def pop(self):
        return _repo.VectorPPackageTarget_pop(self)

    def append(self, x):
        return _repo.VectorPPackageTarget_append(self, x)

    def empty(self):
        return _repo.VectorPPackageTarget_empty(self)

    def size(self):
        return _repo.VectorPPackageTarget_size(self)

    def swap(self, v):
        return _repo.VectorPPackageTarget_swap(self, v)

    def begin(self):
        return _repo.VectorPPackageTarget_begin(self)

    def end(self):
        return _repo.VectorPPackageTarget_end(self)

    def rbegin(self):
        return _repo.VectorPPackageTarget_rbegin(self)

    def rend(self):
        return _repo.VectorPPackageTarget_rend(self)

    def clear(self):
        return _repo.VectorPPackageTarget_clear(self)

    def get_allocator(self):
        return _repo.VectorPPackageTarget_get_allocator(self)

    def pop_back(self):
        return _repo.VectorPPackageTarget_pop_back(self)

    def erase(self, *args):
        return _repo.VectorPPackageTarget_erase(self, *args)

    def __init__(self, *args):
        this = _repo.new_VectorPPackageTarget(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def push_back(self, x):
        return _repo.VectorPPackageTarget_push_back(self, x)

    def front(self):
        return _repo.VectorPPackageTarget_front(self)

    def back(self):
        return _repo.VectorPPackageTarget_back(self)

    def assign(self, n, x):
        return _repo.VectorPPackageTarget_assign(self, n, x)

    def resize(self, *args):
        return _repo.VectorPPackageTarget_resize(self, *args)

    def insert(self, *args):
        return _repo.VectorPPackageTarget_insert(self, *args)

    def reserve(self, n):
        return _repo.VectorPPackageTarget_reserve(self, n)

    def capacity(self):
        return _repo.VectorPPackageTarget_capacity(self)
    __swig_destroy__ = _repo.delete_VectorPPackageTarget
    __del__ = lambda self: None
VectorPPackageTarget_swigregister = _repo.VectorPPackageTarget_swigregister
VectorPPackageTarget_swigregister(VectorPPackageTarget)

class LrException(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, LrException, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, LrException, name)
    __repr__ = _swig_repr

    def __init__(self, *args):
        this = _repo.new_LrException(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def getCode(self):
        return _repo.LrException_getCode(self)
    __swig_destroy__ = _repo.delete_LrException
    __del__ = lambda self: None
LrException_swigregister = _repo.LrException_swigregister
LrException_swigregister(LrException)

class RepoCB(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, RepoCB, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, RepoCB, name)
    __repr__ = _swig_repr
    FastestMirrorStage_INIT = _repo.RepoCB_FastestMirrorStage_INIT
    FastestMirrorStage_CACHELOADING = _repo.RepoCB_FastestMirrorStage_CACHELOADING
    FastestMirrorStage_CACHELOADINGSTATUS = _repo.RepoCB_FastestMirrorStage_CACHELOADINGSTATUS
    FastestMirrorStage_DETECTION = _repo.RepoCB_FastestMirrorStage_DETECTION
    FastestMirrorStage_FINISHING = _repo.RepoCB_FastestMirrorStage_FINISHING
    FastestMirrorStage_STATUS = _repo.RepoCB_FastestMirrorStage_STATUS

    def start(self, what):
        return _repo.RepoCB_start(self, what)

    def end(self):
        return _repo.RepoCB_end(self)

    def progress(self, totalToDownload, downloaded):
        return _repo.RepoCB_progress(self, totalToDownload, downloaded)

    def fastestMirror(self, stage, msg):
        return _repo.RepoCB_fastestMirror(self, stage, msg)

    def handleMirrorFailure(self, msg, url, metadata):
        return _repo.RepoCB_handleMirrorFailure(self, msg, url, metadata)

    def repokeyImport(self, id, userId, fingerprint, url, timestamp):
        return _repo.RepoCB_repokeyImport(self, id, userId, fingerprint, url, timestamp)
    __swig_destroy__ = _repo.delete_RepoCB
    __del__ = lambda self: None

    def __init__(self):
        if self.__class__ == RepoCB:
            _self = None
        else:
            _self = self
        this = _repo.new_RepoCB(_self, )
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    def __disown__(self):
        self.this.disown()
        _repo.disown_RepoCB(self)
        return weakref_proxy(self)
RepoCB_swigregister = _repo.RepoCB_swigregister
RepoCB_swigregister(RepoCB)

class Repo(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Repo, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Repo, name)
    __repr__ = _swig_repr
    Type_AVAILABLE = _repo.Repo_Type_AVAILABLE
    Type_SYSTEM = _repo.Repo_Type_SYSTEM
    Type_COMMANDLINE = _repo.Repo_Type_COMMANDLINE
    SyncStrategy_LAZY = _repo.Repo_SyncStrategy_LAZY
    SyncStrategy_ONLY_CACHE = _repo.Repo_SyncStrategy_ONLY_CACHE
    SyncStrategy_TRY_CACHE = _repo.Repo_SyncStrategy_TRY_CACHE
    if _newclass:
        verifyId = staticmethod(_repo.Repo_verifyId)
    else:
        verifyId = _repo.Repo_verifyId

    def verify(self):
        return _repo.Repo_verify(self)

    def getConfig(self):
        return _repo.Repo_getConfig(self)

    def getId(self):
        return _repo.Repo_getId(self)

    def enable(self):
        return _repo.Repo_enable(self)

    def disable(self):
        return _repo.Repo_disable(self)

    def isEnabled(self):
        return _repo.Repo_isEnabled(self)

    def isLocal(self):
        return _repo.Repo_isLocal(self)

    def getLocalBaseurl(self):
        return _repo.Repo_getLocalBaseurl(self)

    def load(self):
        return _repo.Repo_load(self)

    def loadCache(self, throwExcept, ignoreMissing=False):
        return _repo.Repo_loadCache(self, throwExcept, ignoreMissing)

    def downloadMetadata(self, destdir):
        return _repo.Repo_downloadMetadata(self, destdir)

    def getUseIncludes(self):
        return _repo.Repo_getUseIncludes(self)

    def setUseIncludes(self, enabled):
        return _repo.Repo_setUseIncludes(self, enabled)

    def getLoadMetadataOther(self):
        return _repo.Repo_getLoadMetadataOther(self)

    def setLoadMetadataOther(self, value):
        return _repo.Repo_setLoadMetadataOther(self, value)

    def getCost(self):
        return _repo.Repo_getCost(self)

    def getPriority(self):
        return _repo.Repo_getPriority(self)

    def getCompsFn(self):
        return _repo.Repo_getCompsFn(self)

    def getModulesFn(self):
        return _repo.Repo_getModulesFn(self)

    def getRevision(self):
        return _repo.Repo_getRevision(self)

    def getAge(self):
        return _repo.Repo_getAge(self)

    def addMetadataTypeToDownload(self, metadataType):
        return _repo.Repo_addMetadataTypeToDownload(self, metadataType)

    def removeMetadataTypeFromDownload(self, metadataType):
        return _repo.Repo_removeMetadataTypeFromDownload(self, metadataType)

    def getMetadataPath(self, metadataType):
        return _repo.Repo_getMetadataPath(self, metadataType)

    def getMetadataContent(self, metadataType):
        return _repo.Repo_getMetadataContent(self, metadataType)

    def expire(self):
        return _repo.Repo_expire(self)

    def isExpired(self):
        return _repo.Repo_isExpired(self)

    def getExpiresIn(self):
        return _repo.Repo_getExpiresIn(self)

    def fresh(self):
        return _repo.Repo_fresh(self)

    def setMaxMirrorTries(self, maxMirrorTries):
        return _repo.Repo_setMaxMirrorTries(self, maxMirrorTries)

    def getTimestamp(self):
        return _repo.Repo_getTimestamp(self)

    def getMaxTimestamp(self):
        return _repo.Repo_getMaxTimestamp(self)

    def setPreserveRemoteTime(self, preserveRemoteTime):
        return _repo.Repo_setPreserveRemoteTime(self, preserveRemoteTime)

    def getPreserveRemoteTime(self):
        return _repo.Repo_getPreserveRemoteTime(self)

    def getContentTags(self):
        return _repo.Repo_getContentTags(self)

    def getDistroTags(self):
        return _repo.Repo_getDistroTags(self)

    def getMetadataLocations(self):
        return _repo.Repo_getMetadataLocations(self)

    def getCachedir(self):
        return _repo.Repo_getCachedir(self)

    def setRepoFilePath(self, path):
        return _repo.Repo_setRepoFilePath(self, path)

    def getRepoFilePath(self):
        return _repo.Repo_getRepoFilePath(self)

    def setSyncStrategy(self, strategy):
        return _repo.Repo_setSyncStrategy(self, strategy)

    def getSyncStrategy(self):
        return _repo.Repo_getSyncStrategy(self)

    def downloadUrl(self, url, fd):
        return _repo.Repo_downloadUrl(self, url, fd)

    def getMirrors(self):
        return _repo.Repo_getMirrors(self)

    def setSubstitutions(self, substitutions):
        return _repo.Repo_setSubstitutions(self, substitutions)
    __swig_destroy__ = _repo.delete_Repo
    __del__ = lambda self: None

    def __init__(self, id, config):
        this = _repo.new_Repo(id, config)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this

    def setCallbacks(self, callbacks):
        return _repo.Repo_setCallbacks(self, callbacks)

    def setHttpHeaders(self, headers):
        return _repo.Repo_setHttpHeaders(self, headers)

    def getHttpHeaders(self):
        return _repo.Repo_getHttpHeaders(self)
Repo_swigregister = _repo.Repo_swigregister
Repo_swigregister(Repo)

def Repo_verifyId(id):
    return _repo.Repo_verifyId(id)
Repo_verifyId = _repo.Repo_verifyId

class Downloader(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, Downloader, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, Downloader, name)
    __repr__ = _swig_repr
    if _newclass:
        downloadURL = staticmethod(_repo.Downloader_downloadURL)
    else:
        downloadURL = _repo.Downloader_downloadURL

    def __init__(self):
        this = _repo.new_Downloader()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _repo.delete_Downloader
    __del__ = lambda self: None
Downloader_swigregister = _repo.Downloader_swigregister
Downloader_swigregister(Downloader)

def Downloader_downloadURL(cfg, url, fd):
    return _repo.Downloader_downloadURL(cfg, url, fd)
Downloader_downloadURL = _repo.Downloader_downloadURL

class PackageTargetCB(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, PackageTargetCB, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, PackageTargetCB, name)
    __repr__ = _swig_repr
    TransferStatus_SUCCESSFUL = _repo.PackageTargetCB_TransferStatus_SUCCESSFUL
    TransferStatus_ALREADYEXISTS = _repo.PackageTargetCB_TransferStatus_ALREADYEXISTS
    TransferStatus_ERROR = _repo.PackageTargetCB_TransferStatus_ERROR

    def end(self, status, msg):
        return _repo.PackageTargetCB_end(self, status, msg)

    def progress(self, totalToDownload, downloaded):
        return _repo.PackageTargetCB_progress(self, totalToDownload, downloaded)

    def mirrorFailure(self, msg, url):
        return _repo.PackageTargetCB_mirrorFailure(self, msg, url)
    __swig_destroy__ = _repo.delete_PackageTargetCB
    __del__ = lambda self: None

    def __init__(self):
        if self.__class__ == PackageTargetCB:
            _self = None
        else:
            _self = self
        this = _repo.new_PackageTargetCB(_self, )
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    def __disown__(self):
        self.this.disown()
        _repo.disown_PackageTargetCB(self)
        return weakref_proxy(self)
PackageTargetCB_swigregister = _repo.PackageTargetCB_swigregister
PackageTargetCB_swigregister(PackageTargetCB)

class PackageTarget(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, PackageTarget, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, PackageTarget, name)
    __repr__ = _swig_repr
    ChecksumType_UNKNOWN = _repo.PackageTarget_ChecksumType_UNKNOWN
    ChecksumType_MD5 = _repo.PackageTarget_ChecksumType_MD5
    ChecksumType_SHA1 = _repo.PackageTarget_ChecksumType_SHA1
    ChecksumType_SHA224 = _repo.PackageTarget_ChecksumType_SHA224
    ChecksumType_SHA256 = _repo.PackageTarget_ChecksumType_SHA256
    ChecksumType_SHA384 = _repo.PackageTarget_ChecksumType_SHA384
    ChecksumType_SHA512 = _repo.PackageTarget_ChecksumType_SHA512
    if _newclass:
        checksumType = staticmethod(_repo.PackageTarget_checksumType)
    else:
        checksumType = _repo.PackageTarget_checksumType
    if _newclass:
        downloadPackages = staticmethod(_repo.PackageTarget_downloadPackages)
    else:
        downloadPackages = _repo.PackageTarget_downloadPackages
    __swig_destroy__ = _repo.delete_PackageTarget
    __del__ = lambda self: None

    def getCallbacks(self):
        return _repo.PackageTarget_getCallbacks(self)

    def getErr(self):
        return _repo.PackageTarget_getErr(self)

    def __init__(self, *args):
        this = _repo.new_PackageTarget(*args)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
PackageTarget_swigregister = _repo.PackageTarget_swigregister
PackageTarget_swigregister(PackageTarget)

def PackageTarget_checksumType(name):
    return _repo.PackageTarget_checksumType(name)
PackageTarget_checksumType = _repo.PackageTarget_checksumType

def PackageTarget_downloadPackages(targets, failFast):
    return _repo.PackageTarget_downloadPackages(targets, failFast)
PackageTarget_downloadPackages = _repo.PackageTarget_downloadPackages

class LibrepoLog(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, LibrepoLog, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, LibrepoLog, name)
    __repr__ = _swig_repr
    if _newclass:
        addHandler = staticmethod(_repo.LibrepoLog_addHandler)
    else:
        addHandler = _repo.LibrepoLog_addHandler
    if _newclass:
        removeHandler = staticmethod(_repo.LibrepoLog_removeHandler)
    else:
        removeHandler = _repo.LibrepoLog_removeHandler
    if _newclass:
        removeAllHandlers = staticmethod(_repo.LibrepoLog_removeAllHandlers)
    else:
        removeAllHandlers = _repo.LibrepoLog_removeAllHandlers

    def __init__(self):
        this = _repo.new_LibrepoLog()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _repo.delete_LibrepoLog
    __del__ = lambda self: None
LibrepoLog_swigregister = _repo.LibrepoLog_swigregister
LibrepoLog_swigregister(LibrepoLog)

def LibrepoLog_addHandler(filePath, debug=False):
    return _repo.LibrepoLog_addHandler(filePath, debug)
LibrepoLog_addHandler = _repo.LibrepoLog_addHandler

def LibrepoLog_removeHandler(uid):
    return _repo.LibrepoLog_removeHandler(uid)
LibrepoLog_removeHandler = _repo.LibrepoLog_removeHandler

def LibrepoLog_removeAllHandlers():
    return _repo.LibrepoLog_removeAllHandlers()
LibrepoLog_removeAllHandlers = _repo.LibrepoLog_removeAllHandlers

class RepoError(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, RepoError, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, RepoError, name)
    __repr__ = _swig_repr

    def __init__(self, what):
        this = _repo.new_RepoError(what)
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _repo.delete_RepoError
    __del__ = lambda self: None
RepoError_swigregister = _repo.RepoError_swigregister
RepoError_swigregister(RepoError)

# This file is compatible with both classic and new-style classes.


