Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Unified Diff: third_party/twisted_8_1/twisted/scripts/tkunzip.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/twisted_8_1/twisted/scripts/tkunzip.py
diff --git a/third_party/twisted_8_1/twisted/scripts/tkunzip.py b/third_party/twisted_8_1/twisted/scripts/tkunzip.py
deleted file mode 100644
index 6332c1224726f8ef56ec26dd5b41aaea19d4e30c..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/scripts/tkunzip.py
+++ /dev/null
@@ -1,286 +0,0 @@
-"""Post-install GUI to compile to pyc and unpack twisted doco"""
-
-from __future__ import generators
-
-import sys
-import zipfile
-import py_compile
-
-# we're going to ignore failures to import tkinter and fall back
-# to using the console if the required dll is not found
-
-# Scary kludge to work around tk84.dll bug:
-# https://sourceforge.net/tracker/index.php?func=detail&aid=814654&group_id=5470&atid=105470
-# Without which(): you get a windows missing-dll popup message
-from twisted.python.procutils import which
-tkdll='tk84.dll'
-if which(tkdll) or which('DLLs/%s' % tkdll):
- try:
- import Tkinter
- from Tkinter import *
- from twisted.internet import tksupport
- except ImportError:
- pass
-
-# twisted
-from twisted.internet import reactor, defer
-from twisted.python import failure, log, zipstream, util, usage, log
-# local
-import os.path
-
-class ProgressBar:
- def __init__(self, master=None, orientation="horizontal",
- min=0, max=100, width=100, height=18,
- doLabel=1, appearance="sunken",
- fillColor="blue", background="gray",
- labelColor="yellow", labelFont="Arial",
- labelText="", labelFormat="%d%%",
- value=0, bd=2):
- # preserve various values
- self.master=master
- self.orientation=orientation
- self.min=min
- self.max=max
- self.width=width
- self.height=height
- self.doLabel=doLabel
- self.fillColor=fillColor
- self.labelFont= labelFont
- self.labelColor=labelColor
- self.background=background
- self.labelText=labelText
- self.labelFormat=labelFormat
- self.value=value
- self.frame=Frame(master, relief=appearance, bd=bd)
- self.canvas=Canvas(self.frame, height=height, width=width, bd=0,
- highlightthickness=0, background=background)
- self.scale=self.canvas.create_rectangle(0, 0, width, height,
- fill=fillColor)
- self.label=self.canvas.create_text(self.canvas.winfo_reqwidth() / 2,
- height / 2, text=labelText,
- anchor="c", fill=labelColor,
- font=self.labelFont)
- self.update()
- self.canvas.pack(side='top', fill='x', expand='no')
-
- def pack(self, *args, **kwargs):
- self.frame.pack(*args, **kwargs)
-
- def updateProgress(self, newValue, newMax=None):
- if newMax:
- self.max = newMax
- self.value = newValue
- self.update()
-
- def update(self):
- # Trim the values to be between min and max
- value=self.value
- if value > self.max:
- value = self.max
- if value < self.min:
- value = self.min
- # Adjust the rectangle
- if self.orientation == "horizontal":
- self.canvas.coords(self.scale, 0, 0,
- float(value) / self.max * self.width, self.height)
- else:
- self.canvas.coords(self.scale, 0,
- self.height - (float(value) /
- self.max*self.height),
- self.width, self.height)
- # Now update the colors
- self.canvas.itemconfig(self.scale, fill=self.fillColor)
- self.canvas.itemconfig(self.label, fill=self.labelColor)
- # And update the label
- if self.doLabel:
- if value:
- if value >= 0:
- pvalue = int((float(value) / float(self.max)) *
- 100.0)
- else:
- pvalue = 0
- self.canvas.itemconfig(self.label, text=self.labelFormat
- % pvalue)
- else:
- self.canvas.itemconfig(self.label, text='')
- else:
- self.canvas.itemconfig(self.label, text=self.labelFormat %
- self.labelText)
- self.canvas.update_idletasks()
-
-
-class Progressor:
- """A base class to make it simple to hook a progress bar up to a process.
- """
- def __init__(self, title, *args, **kwargs):
- self.title=title
- self.stopping=0
- self.bar=None
- self.iterator=None
- self.remaining=1000
-
- def setBar(self, bar, max):
- self.bar=bar
- bar.updateProgress(0, max)
- return self
-
- def setIterator(self, iterator):
- self.iterator=iterator
- return self
-
- def updateBar(self, deferred):
- b=self.bar
- try:
- b.updateProgress(b.max - self.remaining)
- except TclError:
- self.stopping=1
- except:
- deferred.errback(failure.Failure())
-
- def processAll(self, root):
- assert self.bar and self.iterator, "must setBar and setIterator"
- self.root=root
- root.title(self.title)
- d=defer.Deferred()
- d.addErrback(log.err)
- reactor.callLater(0.1, self.processOne, d)
- return d
-
- def processOne(self, deferred):
- if self.stopping:
- deferred.callback(self.root)
- return
-
- try:
- self.remaining=self.iterator.next()
- except StopIteration:
- self.stopping=1
- except:
- deferred.errback(failure.Failure())
-
- if self.remaining%10==0:
- reactor.callLater(0, self.updateBar, deferred)
- if self.remaining%100==0:
- log.msg(self.remaining)
- reactor.callLater(0, self.processOne, deferred)
-
-def compiler(path):
- """A generator for compiling files to .pyc"""
- def justlist(arg, directory, names):
- pynames=[os.path.join(directory, n) for n in names
- if n.endswith('.py')]
- arg.extend(pynames)
- all=[]
- os.path.walk(path, justlist, all)
-
- remaining=len(all)
- i=zip(all, range(remaining-1, -1, -1))
- for f, remaining in i:
- py_compile.compile(f)
- yield remaining
-
-class TkunzipOptions(usage.Options):
- optParameters=[["zipfile", "z", "", "a zipfile"],
- ["ziptargetdir", "t", ".", "where to extract zipfile"],
- ["compiledir", "c", "", "a directory to compile"],
- ]
- optFlags=[["use-console", "C", "show in the console, not graphically"],
- ["shell-exec", "x", """\
-spawn a new console to show output (implies -C)"""],
- ]
-
-def countPys(countl, directory, names):
- sofar=countl[0]
- sofar=sofar+len([f for f in names if f.endswith('.py')])
- countl[0]=sofar
- return sofar
-
-def countPysRecursive(path):
- countl=[0]
- os.path.walk(path, countPys, countl)
- return countl[0]
-
-def run(argv=sys.argv):
- log.startLogging(file('tkunzip.log', 'w'))
- opt=TkunzipOptions()
- try:
- opt.parseOptions(argv[1:])
- except usage.UsageError, e:
- print str(opt)
- print str(e)
- sys.exit(1)
-
- if opt['use-console']:
- # this should come before shell-exec to prevent infinite loop
- return doItConsolicious(opt)
- if opt['shell-exec'] or not 'Tkinter' in sys.modules:
- from distutils import sysconfig
- from twisted.scripts import tkunzip
- myfile=tkunzip.__file__
- exe=os.path.join(sysconfig.get_config_var('prefix'), 'python.exe')
- return os.system('%s %s --use-console %s' % (exe, myfile,
- ' '.join(argv[1:])))
- return doItTkinterly(opt)
-
-def doItConsolicious(opt):
- # reclaim stdout/stderr from log
- sys.stdout = sys.__stdout__
- sys.stderr = sys.__stderr__
- if opt['zipfile']:
- print 'Unpacking documentation...'
- for n in zipstream.unzipIter(opt['zipfile'], opt['ziptargetdir']):
- if n % 100 == 0:
- print n,
- if n % 1000 == 0:
- print
- print 'Done unpacking.'
-
- if opt['compiledir']:
- print 'Compiling to pyc...'
- import compileall
- compileall.compile_dir(opt["compiledir"])
- print 'Done compiling.'
-
-def doItTkinterly(opt):
- root=Tkinter.Tk()
- root.withdraw()
- root.title('One Moment.')
- root.protocol('WM_DELETE_WINDOW', reactor.stop)
- tksupport.install(root)
-
- prog=ProgressBar(root, value=0, labelColor="black", width=200)
- prog.pack()
-
- # callback immediately
- d=defer.succeed(root).addErrback(log.err)
-
- def deiconify(root):
- root.deiconify()
- return root
-
- d.addCallback(deiconify)
-
- if opt['zipfile']:
- uz=Progressor('Unpacking documentation...')
- max=zipstream.countZipFileChunks(opt['zipfile'], 4096)
- uz.setBar(prog, max)
- uz.setIterator(zipstream.unzipIterChunky(opt['zipfile'],
- opt['ziptargetdir']))
- d.addCallback(uz.processAll)
-
- if opt['compiledir']:
- comp=Progressor('Compiling to pyc...')
- comp.setBar(prog, countPysRecursive(opt['compiledir']))
- comp.setIterator(compiler(opt['compiledir']))
- d.addCallback(comp.processAll)
-
- def stop(ignore):
- reactor.stop()
- root.destroy()
- d.addCallback(stop)
-
- reactor.run()
-
-
-if __name__=='__main__':
- run()
« no previous file with comments | « third_party/twisted_8_1/twisted/scripts/test/test_mktap.py ('k') | third_party/twisted_8_1/twisted/scripts/trial.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698