diff options
Diffstat (limited to 'python/rpm/__init__.py.in')
-rw-r--r-- | python/rpm/__init__.py.in | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/python/rpm/__init__.py.in b/python/rpm/__init__.py.in new file mode 100644 index 000000000..d868d19fa --- /dev/null +++ b/python/rpm/__init__.py.in @@ -0,0 +1,84 @@ +r"""RPM Module + +This module enables you to manipulate rpms and the rpm database. + +""" + +import warnings +import os +from rpm._rpm import * +from rpm.transaction import * +import rpm._rpm as _rpm +_RPMVSF_NODIGESTS = _rpm._RPMVSF_NODIGESTS +_RPMVSF_NOHEADER = _rpm._RPMVSF_NOHEADER +_RPMVSF_NOPAYLOAD = _rpm._RPMVSF_NOPAYLOAD +_RPMVSF_NOSIGNATURES = _rpm._RPMVSF_NOSIGNATURES + +__version__ = _rpm.__version__ +__version_info__ = tuple(__version__.split('.')) + +# try to import build bits but dont require it +try: + from rpm._rpmb import * +except ImportError: + pass + +# try to import signing bits but dont require it +try: + from rpm._rpms import * +except ImportError: + pass + +# backwards compatibility + give the same class both ways +ts = TransactionSet + +def headerLoad(*args, **kwds): + warnings.warn("Use rpm.hdr() instead.", DeprecationWarning, stacklevel=2) + return hdr(*args, **kwds) + +def _doHeaderListFromFD(rpm_fd, retrofit): + hlist = [] + while 1: + try: + h = hdr(rpm_fd) + if retrofit: + h.convert(HEADERCONV_RETROFIT_V3) + hlist.append(h) + except _rpm.error: + break + + return hlist + +def readHeaderListFromFD(file_desc, retrofit = True): + if not isinstance(file_desc, fd): + file_desc = fd(file_desc) + return _doHeaderListFromFD(file_desc, retrofit) + +def readHeaderListFromFile(path, retrofit = True): + f = fd(path) + hlist = _doHeaderListFromFD(f, retrofit) + f.close() + return hlist + +def readHeaderFromFD(file_desc): + if not isinstance(file_desc, fd): + file_desc = fd(file_desc) + try: + offset = file_desc.tell() + h = hdr(file_desc) + except (_rpm.error, IOError): + offset = None + h = None + + return (h, offset) + +def signalsCaught(siglist): + caught = [] + for sig in siglist: + if signalCaught(sig): + caught.append(sig) + + return caught + +def dsSingle(TagN, N, EVR = "", Flags = RPMSENSE_ANY): + return ds((N, EVR, Flags), TagN) |