Server IP : 103.169.32.36 / Your IP : 216.73.217.13 Web Server : Apache System : Linux web.dpmptsp 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : apache ( 48) PHP Version : 5.6.40 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /lib/python2.7/site-packages/yum/ |
Upload File : |
| Current File : /lib/python2.7/site-packages/yum/callbacks.py |
#!/usr/bin/python -tt
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
"""Classes for handling various callbacks."""
# imports
import logging
from urlgrabber.progress import BaseMeter,format_time,format_number
# ProcessTransaction States
PT_DOWNLOAD = 10 # Start Download
PT_DOWNLOAD_PKGS = 11 # Packages to download
PT_GPGCHECK = 20 # Start Checkin Package Signatures
PT_TEST_TRANS = 30 # Start Test Transaction
PT_TRANSACTION = 40 # Start Transaction
PT_MESSAGES = { PT_DOWNLOAD : "Downloading Packages",
PT_GPGCHECK : "Check Package Signatures",
PT_TEST_TRANS : "Running Test Transaction",
PT_TRANSACTION : "Running Transaction"}
class ProcessTransBaseCallback:
"""A class to handle callbacks from
:func:`YumBase.processTransaction`.
"""
def __init__(self):
self.logger = logging.getLogger('yum.verbose.ProcessTrasactionBaseCallback')
def event(self,state,data=None):
"""Handle an event by logging it.
:param state: a number indicating the type of callback
:param data: data associated with the callback
"""
if state in PT_MESSAGES.keys():
self.logger.info(PT_MESSAGES[state])
class ProcessTransNoOutputCallback:
"""A class to handle callbacks from
:func:`YumBase.processTransaction`, without logging them.
"""
def __init__(self):
pass
def event(self,state,data=None):
"""Handle an event.
:param state: a number indicating the type of callback
:param data: data associated with the callback
"""
pass
class DownloadBaseCallback( BaseMeter ):
"""This is a base class that can be extended to implement a custom
download progress handler to be used with
:func:`YumBase.repos.setProgressBar`.
Example::
from yum.callbacks import DownloadBaseCallback
class MyDownloadCallback( DownloadBaseCallback ):
def updateProgress(self,name,frac,fread,ftime):
'''
Update the progressbar
@param name: filename
@param frac: Progress fracment (0 -> 1)
@param fread: formated string containing BytesRead
@param ftime : formated string containing remaining or elapsed time
'''
pct = int( frac*100 )
print " %s : %s " % (name,pct)
if __name__ == '__main__':
my = YumBase()
my.doConfigSetup()
dnlcb = MyDownloadCallback()
my.repos.setProgressBar( dnlcb )
for pkg in my.pkgSack:
print pkg.name
"""
def __init__(self):
BaseMeter.__init__( self )
self.totSize = "" # Total size to download in a formatted string (Kb, MB etc)
def update( self, amount_read, now=None ):
"""Update the status bar.
:param amount_read: the amount of data, in bytes, that has been read
:param now: the current time in seconds since the epoch. If
*now* is not given, the output of :func:`time.time()` will
be used.
"""
BaseMeter.update( self, amount_read, now )
def _do_start( self, now=None ):
name = self._getName()
self.updateProgress(name,0.0,"","")
if not self.size is None:
self.totSize = format_number( self.size )
def _do_update( self, amount_read, now=None ):
fread = format_number( amount_read )
name = self._getName()
if self.size is None:
# Elapsed time
etime = self.re.elapsed_time()
fetime = format_time( etime )
frac = 0.0
self.updateProgress(name,frac,fread,fetime)
else:
# Remaining time
rtime = self.re.remaining_time()
frtime = format_time( rtime )
frac = self.re.fraction_read()
self.updateProgress(name,frac,fread,frtime)
def _do_end( self, amount_read, now=None ):
total_time = format_time( self.re.elapsed_time() )
total_size = format_number( amount_read )
name = self._getName()
self.updateProgress(name,1.0,total_size,total_time)
def _getName(self):
'''
Get the name of the package being downloaded
'''
if self.text and type( self.text ) == type( "" ):
name = self.text
else:
name = self.basename
return name
def updateProgress(self,name,frac,fread,ftime):
"""Update the progressbar. This method should be overridden
by subclasses to implement the handler.
:param name: the name of the filed being downloaded
:param frac: number between 0 and 1 representing the fraction
fraction of the file that has been downloaded
:param fread: formatted string containing the number of bytes read
:param ftime: formatted string containing remaining or elapsed time
"""
pass
| N4m3 |
5!z3 |
L45t M0d!f!3d |
0wn3r / Gr0up |
P3Rm!55!0n5 |
0pt!0n5 |
| .. |
-- |
December 21 2023 09:18:24 |
0 / 0 |
0755 |
|
| | | | | |
| Errors.py |
4.265 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| Errors.pyc |
9.084 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| __init__.py |
304.096 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| __init__.pyc |
199.779 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| callbacks.py |
5.64 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| callbacks.pyc |
6.232 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| comps.py |
31.586 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| comps.pyc |
26.872 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| config.py |
49.886 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| config.pyc |
48.018 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| constants.py |
4.516 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| constants.pyc |
3.42 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| depsolve.py |
74.046 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| depsolve.pyc |
46.906 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| drpm.py |
12.851 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| drpm.pyc |
10.834 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| failover.py |
5.005 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| failover.pyc |
5.236 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| fssnapshots.py |
10.159 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| fssnapshots.pyc |
9.752 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| history.py |
61.125 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| history.pyc |
53.306 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| i18n.py |
20.437 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| i18n.pyc |
16.05 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| igroups.py |
9.313 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| igroups.pyc |
10.218 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| logginglevels.py |
7.904 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| logginglevels.pyc |
6.511 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| mdparser.py |
6.258 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| mdparser.pyc |
7.58 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| metalink.py |
9.188 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| metalink.pyc |
8.836 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| misc.py |
39.567 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| misc.pyc |
39.58 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| packageSack.py |
40.786 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| packageSack.pyc |
41.88 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| packages.py |
84.104 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| packages.pyc |
84.514 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| parser.py |
7.973 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| parser.pyc |
6.499 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| pgpmsg.py |
53.5 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| pgpmsg.pyc |
38.268 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| pkgtag_db.py |
4.864 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| pkgtag_db.pyc |
5.061 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| plugins.py |
28.1 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| plugins.pyc |
29.097 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| repoMDObject.py |
11.231 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| repoMDObject.pyc |
9.17 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| repos.py |
16.528 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| repos.pyc |
17.383 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| rpmsack.py |
70.255 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| rpmsack.pyc |
58.355 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| rpmtrans.py |
24.845 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| rpmtrans.pyc |
22.544 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| sqlitesack.py |
69.763 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| sqlitesack.pyc |
53.751 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| sqlutils.py |
6.271 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| sqlutils.pyc |
5.602 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| transactioninfo.py |
33.784 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| transactioninfo.pyc |
30.293 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| update_md.py |
25.9 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| update_md.pyc |
21.722 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| updateinfo.py |
18.29 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| updateinfo.pyc |
16.36 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|
| yumRepo.py |
83.852 KB |
October 01 2020 17:03:44 |
0 / 0 |
0755 |
|
| yumRepo.pyc |
64.827 KB |
October 01 2020 17:03:44 |
0 / 0 |
0644 |
|