Exemple #1
0
 def mergeIntoParent(self, eid, peid):
     ceid = eid
     child = self.entry(ceid)
     parent = self.entry(peid)
     term = parent.term
     pageRange = Pages.RulesForName[self.pageRangeRules()].function
     pages = Pages.mergedPages(parent.pages,
                               child.pages,
                               pageRange=pageRange)
     notes = parent.notes or ""
     if child.notes:
         notes += "<p>{}".format(child.notes)
     notes += "<p>Merged from “{}”.".format(child.term)
     macro = Lib.Command.Macro("merge “{}” into parent “{}”".format(
         Lib.elide(child.term), Lib.elide(parent.term)))
     macro.eid = peid
     # Merge the child's term and pages into the parent's term
     command = Command.EditEntry(parent, parent.saf, parent.sortas, term,
                                 pages, notes)
     macro.append(command)
     # Move all the child's xrefs to the parent
     for xref in list(self.all_xrefs(ceid)):
         self.moveXRef(macro, peid, eid, xref)
     # Reparent all the child's immediate children to the parent and
     # delete the child
     self.reparentAndDeleteChild(macro, peid, parent, ceid, child)
     self._stack.push(macro)  # Store, then do
     description = self._xix.doCommand(macro)
     self.changed.emit(macro.eid, description)
Exemple #2
0
def main():
    fileName = "./../test/test1.ir"
    if len(sys.argv) == 2:
        fileName = sys.argv[1]
    ir = IR(fileName)
    code = CodeGen(ir)
    print "\t.text"
    print "\t.globl main\n"
    print "main:\n"
    codeBlocks = code._codeBlocks
    # add the library functions
    # Now add the generated block by code generator
    i = 1
    for node in codeBlocks:
        print "B" + str(i) + ":"
        print "\t" + "\n\t".join(node)
        i += 1

    print "\tj " + LibFns["exit"]

    lib = Lib()
    instrs = lib.genFns()
    for ins in instrs.keys():
        print str(ins) + ":"
        print "\t" + "\n\t".join(instrs[ins])

    print "\n\t.data"
    for var in code._globalVars:
        print "g_" + str(var) + ":\t.word\t0"
def main():
    fileName = "./../test/test1.ir"
    if len(sys.argv) == 2:
        fileName = sys.argv[1]
    ir = IR(fileName)
    code = CodeGen(ir)
    print "\t.text"
    print "\t.globl main\n"
    print "main:\n"
    codeBlocks = code._codeBlocks
    # add the library functions
    # Now add the generated block by code generator
    i = 1
    for node in codeBlocks:   
        print "B"+str(i)+":"
        print "\t"+"\n\t".join(node)
        i += 1

    print "\tj "+LibFns["exit"]

    lib = Lib()
    instrs = lib.genFns()
    for ins in instrs.keys():
       print str(ins)+":"
       print "\t"+"\n\t".join(instrs[ins])



    print "\n\t.data"
    for var in code._globalVars:
        print "g_"+str(var) + ":\t.word\t0"
Exemple #4
0
 def combinePages(self):
     widget = QApplication.focusWidget()
     say("Looking for overlapping pages…")
     with Lib.Qt.DisableUI(*self.window.widgets(), forModalDialog=True):
         form = Forms.CombinePages.Form(self.state, self.window)
         form.exec_()
     Lib.restoreFocus(widget)
Exemple #5
0
 def processReply(self):
     self.args['elapsed'] = (self.time_finish - self.time_start) * 1000
     u = Lib.Munpacker(self.reply)
     r = Lib.DnsResult(u, self.args)
     r.args = self.args
     #self.args=None  # mark this DnsRequest object as used.
     return r
Exemple #6
0
 def applyFilter(self, aImage):
     # intialize a new filtered image
     new_image = Image.new('RGB', aImage.size)
     new_image_list = []
     #get the pixels list from the original image
     #pixels = aImage.getdata()
     
     pixels = Lib.to2d(aImage)
     
     height = len(pixels)
     width = len(pixels[0])
     
     hardness = 1
     
     for x in range(width):
         for y in range(height):
             
             dist = Lib.distanceFromPoint(x, y, width/2, height/2) / math.sqrt((width/2)**2 + (height/2)**2)
             
             r = int(pixels[y][x][0]*(self.amount-dist))
             g = int(pixels[y][x][1]*(self.amount-dist))
             b = int(pixels[y][x][2]*(self.amount-dist))
             
             #r = int(r**hardness)
             #g = int(g**hardness)
             #b = int(b**hardness)
             
             new_image_list.append((r,g,b))
             
     new_image.putdata(new_image_list)
     return new_image
Exemple #7
0
def nickname(con):
    message = input("Please input a nickname> ")
    Lib.SendMessage(con, message, msgtype="NICK")
    response, response_type = Lib.RecvMessage(con)
    if response_type != "READY":
        print("Nickname is not allowed by server.")
        nickname(con)
Exemple #8
0
 def initialize(self):
     self.setWindowTitle("{}".format(QApplication.applicationName()))
     self.state.updateDisplayFonts()
     self.filename = None
     if len(sys.argv) > 1:
         filename = sys.argv[1]
         if (filename.lower().endswith(EXTENSION)
                 and os.path.exists(filename)):
             self.filename = filename
     if self.filename is None:
         settings = QSettings()
         filename = settings.value(Gopt.Key.MainForm_Filename,
                                   Gopt.Default.MainForm_Filename)
         if (filename and filename.lower().endswith(EXTENSION)
                 and os.path.exists(filename)):
             self.filename = filename
     if self.filename is None:
         say("Click File→New or File→Open to create or open an index")
         self.updateWorkTime()
         self.state.updateUi()
     else:
         say("Opening {}".format(os.path.normpath(self.filename)))
         QTimer.singleShot(5, self.openXix)
     self.updateRecentFilesMenu()
     self.updateToolTips()
     Lib.maybe_register_filetype(self.debug)
Exemple #9
0
 def move(self):
     self.state.maybeSave()
     eid = self.selectedEntry.eid
     if self.moveToTopRadioButton.isChecked():
         self.state.model.moveToTop(eid)
     else:
         peid = None
         if self.grandParentRadioButton.isChecked():
             peid = self.grandParentEntry.eid
             message = "move up"
         elif self.filteredRadioButton.isChecked():
             peid = self.filteredEntry.eid
             message = "move under filtered"
         elif self.circledRadioButton.isChecked():
             peid = self.circledEntry.eid
             message = "move under circled"
         elif self.recentRadioButton.isChecked():
             peid = self.recentComboBox.itemData(
                 self.recentComboBox.currentIndex())
             message = "move under recently visited"
         if peid is not None:  # Should always be True
             self.state.model.moveUnder(eid, peid, message)
             term = Lib.htmlToPlainText(self.state.model.term(eid))
             if peid == ROOT:
                 message = "Moved “{}” to be a main entry".format(term)
             else:
                 message = "Moved “{}” under “{}”".format(
                     term, Lib.htmlToPlainText(self.state.model.term(peid)))
             say(message, SAY_TIMEOUT)
     self.accept()
Exemple #10
0
def detect():
    tid = random.randint(0,65535)

    port = 53
    server = '202.102.154.3'
    opcode = Opcode.QUERY
    qtype = Type.A
    qclass = Class.IN
    qname = "google.com"
    rd = 1

    m = Lib.Mpacker()
    m.addHeader(tid, 0, opcode, 0, 0, rd, 0, 0, 0, 1, 0, 0, 0)
    m.addQuestion(qname,qtype,qclass)

    request = m.getbuf()

    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    source_port = random.randint(1024, 65535)
    s.bind(('', source_port))
    s.connect((server,port))

    s.send(request)

    r,w,e = select.select([s], [], [],timeout=1)
    if not len(r):
        print "time out"
    (reply, from_address) = s.recvfrom(65535)

    u = Lib.Munpacker(reply)
    r = Lib.DnsResult(u,{})

    print r.answers
Exemple #11
0
def expand_pic_in_html(region, data):
    '''取得图片地址'''
    pic_path = []
    reg_background = re.compile(
        r'background(?:\s*\:|-image\s*\:).*?url\([\'|\"]?([\w+:\/\/^]?[^? \}]*\.\w+)\?*.*?[\'|\"]?\)',
        re.I)
    reg_filter = re.compile(
        r'Microsoft\.AlphaImageLoader\(.*?src=[\'|\"]?([\w:\/\/\.]*\.\w+)\?*.*?[\'|\"]?.*?\)',
        re.I)
    reg_img = re.compile(r'<img[^>]+src\s*=\s*[\'\"]([^\'\"]+)[\'\"][^>]*>',
                         re.I)
    _b1_ = reg_background.finditer(data)
    _b2_ = reg_background.findall(data)
    _f1_ = reg_filter.finditer(data)
    _f2_ = reg_filter.findall(data)
    _i1_ = reg_img.finditer(data)
    _i2_ = reg_img.findall(data)
    if ST2:
        _b_ = Lib.region_and_str(region, _b1_, _b2_)
        _f_ = Lib.region_and_str(region, _f1_, _f2_)
        _i_ = Lib.region_and_str(region, _i1_, _i2_)
    else:
        _b_ = modeCSS.Lib.region_and_str(region, _b1_, _b2_)
        _f_ = modeCSS.Lib.region_and_str(region, _f1_, _f2_)
        _i_ = modeCSS.Lib.region_and_str(region, _i1_, _i2_)
    if _b_:
        pic_path.append(_b_)
    if _f_:
        pic_path.append(_f_)
    if _i_:
        pic_path.append(_i_)
    return pic_path
Exemple #12
0
 def __init__(self, from_term, from_eid, term, kind):
     super().__init__(from_term, from_eid, term, kind)
     oldKind = "see also" if kind is XrefKind.SEE_GENERIC else "see"
     newKind = "see also" if kind is XrefKind.SEE_ALSO_GENERIC else "see"
     self.description = (
         "change generic cross-reference from “{}” {} to {} “{}”".format(
             Lib.elide(from_term), oldKind, newKind, Lib.elide(term)))
Exemple #13
0
def expand_pic_in_html(region, data):
    """取得图片地址"""
    pic_path = []
    reg_background = re.compile(
        r"background(?:\s*\:|-image\s*\:).*?url\([\'|\"]?([\w+:\/\/^]?[^? \}]*\.\w+)\?*.*?[\'|\"]?\)", re.I
    )
    reg_filter = re.compile(r"Microsoft\.AlphaImageLoader\(.*?src=[\'|\"]?([\w:\/\/\.]*\.\w+)\?*.*?[\'|\"]?.*?\)", re.I)
    reg_img = re.compile(r"<img[^>]+src\s*=\s*[\'\"]([^\'\"]+)[\'\"][^>]*>", re.I)
    _b1_ = reg_background.finditer(data)
    _b2_ = reg_background.findall(data)
    _f1_ = reg_filter.finditer(data)
    _f2_ = reg_filter.findall(data)
    _i1_ = reg_img.finditer(data)
    _i2_ = reg_img.findall(data)
    if ST2:
        _b_ = Lib.region_and_str(region, _b1_, _b2_)
        _f_ = Lib.region_and_str(region, _f1_, _f2_)
        _i_ = Lib.region_and_str(region, _i1_, _i2_)
    else:
        _b_ = modeCSS.Lib.region_and_str(region, _b1_, _b2_)
        _f_ = modeCSS.Lib.region_and_str(region, _f1_, _f2_)
        _i_ = modeCSS.Lib.region_and_str(region, _i1_, _i2_)
    if _b_:
        pic_path.append(_b_)
    if _f_:
        pic_path.append(_f_)
    if _i_:
        pic_path.append(_i_)
    return pic_path
Exemple #14
0
 def updateGotoMenu(self):
     self.gotoActions.goBackAction.setEnabled(False)
     menu = self.gotoMenu
     menu.clear()
     Lib.addActions(self.gotoMenu, self.gotoActions.forMenu())
     if self.state.gotoEids and bool(self.state.model):
         eids = collections.deque(maxlen=MAX_DYNAMIC_ACTIONS)
         for eid in self.state.gotoEids:
             if self.state.model.hasEntry(eid):
                 eids.append(eid)
                 if len(eids) == MAX_DYNAMIC_ACTIONS:
                     break
         accels = collections.deque("123456789DEGHJKKMQTUVWXZY")
         self.state.gotoEids = eids
         currentEid = self.state.viewAllPanel.view.selectedEid
         eids = [eid for eid in eids if eid != currentEid]
         for index, eid in enumerate(eids, 1):
             entry = self.state.model.entry(eid)
             term = Lib.elide(entry.term)
             if accels:
                 term = "&{} {}".format(accels.popleft(), term)
             if index == 1:
                 action = self.gotoActions.goBackAction
                 action.setEnabled(True)
                 action.setText(term)
                 action.triggered.disconnect()
             else:
                 action = QAction(QIcon(":/go-back.svg"), term, menu)
             action.triggered.connect(
                 lambda eid=eid: self.gotoActions.gotoEid(eid))
             menu.addAction(action)
Exemple #15
0
    def make_statespace(self):
        jm = self.parameters["DC-Motor"]["Jm"]
        bm = self.parameters["DC-Motor"]["Bm"]
        kme = self.parameters["DC-Motor"]["Kme"]
        kmt = self.parameters["DC-Motor"]["Kmt"]
        rm = self.parameters["DC-Motor"]["Rm"]
        lm = self.parameters["DC-Motor"]["Lm"]

        kdm = self.parameters["DC-Motor"]["Kdm"]
        kpm = self.parameters["DC-Motor"]["Kpm"]
        kim = self.parameters["DC-Motor"]["Kim"]
        nm = self.parameters["DC-Motor"]["Nm"]

        dc = control.TransferFunction(
            [0, kmt], [jm * lm, bm * lm + jm * rm, bm * rm + kme * kmt])
        pidm = control.TransferFunction(
            [kpm + kdm * nm, kpm * nm + kim, kim * nm], [1, nm, 0])

        ii = control.TransferFunction([1], [1, 0, 0])

        agv = ii * control.feedback(dc * pidm, sign=-1)

        # Laplace --> Z
        agvz = control.sample_system(agv, lib.pt, method='zoh')

        # Transferfunction --> StateSpace
        ss = control.tf2ss(agvz)

        lib.set_statespace(ss)
Exemple #16
0
 def outputIndexAs(self):
     widget = QApplication.focusWidget()
     extensions = []
     for extension, desc in EXPORT_EXTENSIONS.items():
         extensions.append("{} (*{})".format(desc, extension))
     with Lib.Qt.DisableUI(*self.window.widgets(), forModalDialog=True):
         form = QFileDialog(
             self.window,
             "Output As — {}".format(QApplication.applicationName()))
         form.setNameFilters(extensions)
         form.setAcceptMode(QFileDialog.AcceptSave)
         form.setDirectory(self.state.outputPath)
         form.selectFile(str(pathlib.Path(self.state.model.filename).stem))
         if form.exec_():
             filename = form.selectedFiles()[0]
             extension = form.selectedNameFilter()
             if filename:  # Must have some extension
                 if not re.match(r"^.*[.].+$", filename):
                     if extension:
                         filename += EXTENSION_EXTRACT_RX.sub(
                             r"\1", extension)
                     else:
                         filename += ".rtf"
                 self._outputIndex(filename, widget)
     Lib.restoreFocus(widget)
Exemple #17
0
 def applyFilter(self, aImage):
     oldtime = time.time()
     # intialize a new filtered image
     new_image = Image.new('RGB', aImage.size)
     new_image_list = []
     #get the pixels list from the original image
     #pixels = aImage.getdata()
     
     pixels = Lib.to2d(aImage)
     
     height = len(pixels)
     width = len(pixels[0])
     
     print height, width
     n = 0
     p = 1
     for x in range(width):
         for y in range(height):
             
             r = int(pixels[y][x][0]*self.amount)
             g = int(pixels[y][x][1]*self.amount)
             b = int(pixels[y][x][2]*self.amount)
             
             if Lib.isprime(n):
                 r=g=b=0
                 p+=1
             
             new_pixel = (r,g,b)
             new_image_list.append(new_pixel)
             n+=1
             
     new_image.putdata(new_image_list)
     timetaken = time.time()-oldtime
     print "primes:", n-p, ", out of", n , "pixels", ", it took", timetaken, "seconds"
     return new_image
Exemple #18
0
    def about(self):
        widget = QApplication.focusWidget()
        year = datetime.date.today().year
        year = "2015-{}".format(str(year)[-2:]) if year != 2015 else "2015"
        w = self.window.frameGeometry().width()
        h = self.window.frameGeometry().height()
        with Lib.Qt.DisableUI(*self.window.widgets(), forModalDialog=True):
            app = QApplication.applicationName()
            version = QApplication.applicationVersion()
            bits = 64 if IS64BIT else 32
            QMessageBox.about(
                self.window,
                "About — {}".format(QApplication.applicationName()), f"""
<p><b><font color=navy>{app} {version}</font></b></p>
<p><font color=navy>{app} is an easy to learn and use application
for creating, editing, and outputting indexes (e.g., for
books).</font>
</p>
<p>Copyright © Qtrac Ltd {year}. All Rights Reserved.</p>
<p>License:&nbsp;GPLv3.</p>
<hr>
<p>Window size: {w:,}x{h:,}</p>
<p>
Python
{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}/{
bits}-bit<br>
PySide {PySide.__version__}<br>
Qt {qVersion()}<br>
APSW {apsw.apswversion()}<br>
SQLite {apsw.sqlitelibversion()}<br>
{platform.platform()}</p>""")
        Lib.restoreFocus(widget)
Exemple #19
0
 def backup(self):
     model = self.state.model
     if not model:
         return
     widget = QApplication.focusWidget()
     filename = Lib.incrementedFilename(model.filename)
     with Lib.Qt.DisableUI(*self.window.widgets(), forModalDialog=True):
         filename, _ = QFileDialog.getSaveFileName(
             self.window,
             "Backup Index — {}".format(QApplication.applicationName()),
             filename,
             "{} index (*{})".format(QApplication.applicationName(),
                                     EXTENSION))
     if filename:
         with Lib.Qt.DisableUI(*self.window.widgets(), forModalDialog=True):
             self.state.saving = True
             try:
                 self.state.maybeSave()
                 if not filename.endswith(EXTENSION):
                     filename += EXTENSION
                 say("Backing up to “{}”...".format(
                     QDir.toNativeSeparators(filename)))
                 model.optimize()
                 model.backup(filename, "Backing up",
                              self.window.reportProgress)
                 say("Backed up to “{}”".format(
                     QDir.toNativeSeparators(filename)))
             finally:
                 self.state.saving = False
     Lib.restoreFocus(widget)
Exemple #20
0
 def deleteXRef(self):
     widget = QApplication.focusWidget()
     self.state.maybeSave()
     item = self.state.entryPanel.xrefList.currentItem()
     if item is not None:
         xref = Xix.Util.xref_for_data(item.data(Qt.UserRole))
         from_term = self.state.model.term(xref.from_eid)
         kind = "see" if xref.kind is XrefKind.SEE else "see also"
         if xref.kind in {XrefKind.SEE, XrefKind.SEE_ALSO}:
             term = self.state.model.term(xref.to_eid)
         elif xref.kind in {
                 XrefKind.SEE_GENERIC, XrefKind.SEE_ALSO_GENERIC
         }:
             term = xref.term
             kind += " (generic)"
         with Lib.Qt.DisableUI(*self.window.widgets(), forModalDialog=True):
             reply = QMessageBox.question(
                 self.window, "Delete Cross-reference — {}".format(
                     QApplication.applicationName()),
                 "<p>Delete cross-reference from<br>“{}” to {} “{}”?".
                 format(from_term, kind, term),
                 QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
         if reply == QMessageBox.Yes:
             if xref.kind in {XrefKind.SEE, XrefKind.SEE_ALSO}:
                 self.state.model.deleteXRef(xref.from_eid, xref.to_eid,
                                             xref.kind)
             elif xref.kind in {
                     XrefKind.SEE_GENERIC, XrefKind.SEE_ALSO_GENERIC
             }:
                 self.state.model.deleteGenericXRef(xref.from_eid,
                                                    xref.term, xref.kind)
     Lib.restoreFocus(widget)
Exemple #21
0
 def copy(self):
     self.state.maybeSave()
     eid = self.selectedEntry.eid
     peid = None
     if self.copyToTopRadioButton.isChecked():
         peid = ROOT
         description = "copy “{}” to be main entry"
     elif self.subentryRadioButton.isChecked():
         peid = eid
         description = "copy “{}” to be subentry of itself"
     elif self.siblingRadioButton.isChecked():
         peid = self.selectedEntry.peid
         description = "copy “{}” to be sibling of itself"
     elif self.filteredRadioButton.isChecked():
         peid = self.filteredEntry.eid
         description = "copy “{}” under filtered"
     elif self.circledRadioButton.isChecked():
         peid = self.circledEntry.eid
         description = "copy “{}” under circled"
     elif self.recentRadioButton.isChecked():
         peid = self.recentComboBox.itemData(
             self.recentComboBox.currentIndex())
         description = "copy “{}” under recently visited"
     if peid is not None:  # Should always be True
         description = description.format(
             Lib.elidePatchHtml(self.selectedEntry.term, self.state))
         self.state.model.copyEntry(
             Lib.CopyInfo(eid, peid, self.copyXrefsCheckBox.isChecked(),
                          self.copyGroupsCheckBox.isChecked(),
                          self.copySubentriesCheckBox.isChecked(),
                          self.linkPagesCheckBox.isChecked(),
                          self.withSeeCheckBox.isChecked(), description))
         say(re.sub(r"^copy", "Copied", Lib.htmlToPlainText(description)),
             SAY_TIMEOUT)
     self.accept()
Exemple #22
0
 def addXRef(self):
     widget = QApplication.focusWidget()
     self.state.maybeSave()
     with Lib.Qt.DisableUI(*self.window.widgets(), forModalDialog=True):
         form = Forms.AddXRef.Form(self.state, self.state.window)
         form.exec_()
     Lib.restoreFocus(widget)
Exemple #23
0
 def printIndex(self):
     widget = QApplication.focusWidget()
     if self.state.printer is None:
         self.state.printer = QPrinter(QPrinter.HighResolution)
         self.state.printer.setColorMode(QPrinter.GrayScale)
         settings = QSettings()
         size = PaperSizeKind(
             int(settings.value(Gopt.Key.PaperSize,
                                Gopt.Default.PaperSize)))
         self.state.printer.setPaperSize(
             QPrinter.Letter if size is PaperSizeKind.LETTER else QPrinter.
             A4)
     with Lib.Qt.DisableUI(*self.window.widgets(), forModalDialog=True):
         form = QPrintDialog(self.state.printer, self.state.window)
         form.setWindowTitle("Print Index")
         if form.exec_():
             try:
                 with Lib.DisableUI(*self.window.widgets()):
                     config = self.state.model.configs().copy()
                     config.Filename = "print.$$$"
                     config.Printer = self.state.printer
                     Output.outputEntries(self.state.model, config,
                                          "Printing",
                                          self.window.reportProgress)
                 say("Printed")
             except Output.Error as err:
                 say("Failed to print: {}".format(err))
                 logging.error("printIndex failed: {}".format(err))
     Lib.restoreFocus(widget)
Exemple #24
0
 def _checkCreateTempFile(self):
     filename = os.path.join(tempfile.gettempdir(),
                             "tmp-{}.xix".format(Actions.TmpCount))
     Actions.TmpCount += 1
     Lib.remove_file(filename)
     self.state.model.backup(filename, "Saving temporary copy",
                             self.window.reportProgress)
     return filename
Exemple #25
0
 def copy(self):
     widget = QApplication.focusWidget()
     with Lib.Qt.DisableUI(*self.window.widgets(), forModalDialog=True):
         form = Forms.CopyEntry.Form(self.state, self.state.window)
         if form.exec_():
             widget = None
             self.state.entryPanel.termEdit.setFocus()
             self.state.entryPanel.termEdit.selectAll()
     Lib.restoreFocus(widget)
Exemple #26
0
def main():
    input = Lib.readImage("Images/cat.jpg")
    runners = [
        OpenCVRunner.OpenCVRunner("Models/opencv/mobilenet_v1_0.25_224_frozen.pb"),
    ]

    for runner in runners:
        output = runner.inference(input)
        print(output)
        Lib.printTopK(output, k=5)
Exemple #27
0
 def __init__(self, from_term, from_eid, term, kind, *, name="add"):
     super().__init__()
     self.from_term = from_term
     self.eid = from_eid
     self.term = term
     self.kind = kind
     self.description = (
         "{} generic {} cross-reference from “{}” to “{}”".format(
             name, "see" if kind is XrefKind.SEE_GENERIC else
             "see also", Lib.elide(from_term), Lib.elide(term)))
Exemple #28
0
 def editGroups(self):
     widget = QApplication.focusWidget()
     eid = self.state.viewAllPanel.view.selectedEid
     term = (Lib.htmlToPlainText(self.state.model.term(eid))
             if eid is not None else "NEW")
     with Lib.Qt.DisableUI(*self.window.widgets(), forModalDialog=True):
         form = Forms.Groups.Form(term, self.state, self.window)
         form.exec_()
         self.state.viewFilteredPanel.requery()
     Lib.restoreFocus(widget)
Exemple #29
0
def spelled_number(word, roman_numerals):
    if word.isdigit():
        return Lib.spellNumber(int(word))
    elif roman_numerals:
        try:
            n = roman.fromRoman(word.upper())
            return Lib.spellNumber(n)
        except roman.RomanError:  # Isn't a roman number
            pass
    return word
Exemple #30
0
 def make_min_distance(self):
     edges = []
     for i in range(int(len(self.edges) / 2)):
         edges.append([self.edges[2 * i], self.edges[2 * i + 1]])
     self.make_centroid()
     out = lib.dist(self.centroid, edges[0])
     for e in edges:
         dist = lib.dist(self.centroid, e)
         if dist > out:
             out = dist
     return out
Exemple #31
0
 def _postUndoOrRedoRefresh(self, eid, widget):
     if eid is not None:
         self.viewAllPanel.view.gotoEid(eid)
     else:
         self.entryPanel.clearForm()
         self.viewAllPanel.view.refresh()
         self.viewFilteredPanel.view.refresh()
     self.setMode(ModeKind.VIEW)
     self.window.refreshBookmarks()
     self.updateNavigationStatus()
     Lib.restoreFocus(widget)
Exemple #32
0
 def swapEntries(self, eid1, eid2):
     entry1 = self.entry(eid1)
     entry2 = self.entry(eid2)
     peid1 = entry1.peid
     peid2 = entry2.peid
     macro = Lib.Command.Macro("swap entry “{}” with “{}”".format(
         Lib.elide(entry1.term), Lib.elide(entry2.term)))
     macro.eid = eid1
     # Move eid1's immediate children under eid2
     for ceid in list(self.subentries(eid1)):
         if ceid == eid2:
             continue
         entry = self.entry(ceid)
         command = Command.MoveUnder(entry.term, entry.eid, entry.peid,
                                     eid2,
                                     "move under “{}”".format(entry2.term))
         macro.append(command)
     # Move eid2's immediate children under eid1
     for ceid in list(self.subentries(eid2)):
         if ceid == eid1:
             continue
         entry = self.entry(ceid)
         command = Command.MoveUnder(entry.term, entry.eid, entry.peid,
                                     eid1,
                                     "move under “{}”".format(entry1.term))
         macro.append(command)
     # Move eid1 under eid2's parent, unless that parent is eid1 in
     # which case move eid1 under eid2
     peid = term = None
     if eid1 == peid2:
         peid = eid2
         term = entry2.term
     else:
         peid = peid2
         term = self.term(peid2)
     command = Command.MoveUnder(entry1.term, entry1.eid, entry1.peid, peid,
                                 "move under “{}”".format(term))
     macro.append(command)
     # Move eid2 under eid1's parent, unless that parent is eid2 in
     # which case move eid2 under eid1
     peid = term = None
     if eid2 == peid1:
         peid = eid1
         term = entry1.term
     else:
         peid = peid1
         term = self.term(peid1)
     command = Command.MoveUnder(entry2.term, entry2.eid, entry2.peid, peid,
                                 "move under “{}”".format(term))
     macro.append(command)
     # Do macro
     self._stack.push(macro)  # Store, then do
     description = self._xix.doCommand(macro)
     self.changed.emit(macro.eid, description)
Exemple #33
0
 def test1(self):
     for actual, expected in (
         ("Federal Bureau of Investigation (FBI)",
          "FBI (Federal Bureau of Investigation)"),
         ("Central Intelligence Agency (CIA)",
          "CIA (Central Intelligence Agency)"),
     ):
         swapped = Lib.swapAcronym(actual)
         self.assertEqual(swapped, expected)
         swapped = Lib.swapAcronym(swapped)
         self.assertEqual(swapped, actual)
Exemple #34
0
def humanizedCandidate(term, candidate, saf):
    plain_term = Lib.htmlToPlainText(term)
    term_words = plain_term.split()
    lterm_words = plain_term.casefold().split()
    candidate_words = candidate.split()
    unchanged = []
    make_candidate = functools.partial(makeCandidate, candidate,
                                       candidate_words, saf)
    for lword, word in zip(lterm_words, term_words):
        n = kind = match = None
        if lword.isdigit():
            n = int(lword)
        if n is None:
            match = DIGITS_RX.search(lword)
            if match is not None:
                n = int(match.group("number"))
        if n is None and isRoman(lword):
            n = numericValueOf(lword)
            kind = CandidateKind.ROMAN
        if n is not None:
            numericCandidate = make_candidate(word, n, kind)
            if numericCandidate is not None:
                return numericCandidate
        if lword.isdigit() or isRoman(lword):
            words = frozenset(lterm_words) ^ frozenset(candidate_words)
            if words:
                n = numericValueOf(lword)
                if n is not None:
                    sword = Lib.spellNumber(n)
                    sword_set = frozenset(sword.split())
                    if sword_set == (sword_set & words):
                        return Candidate(candidate, word, sword,
                                         CandidateKind.PHRASE, saf)
        if lword in candidate_words:
            if lword.isdigit() or isRoman(lword):
                return Candidate(candidate, word, lword,
                                 CandidateKind.LITERAL, saf)
            unchanged.append(Candidate(
                candidate, word, lword, CandidateKind.UNCHANGED, saf))
        if "." in lword:
            dotlessWord = lword.replace(".", "")
            if dotlessWord in candidate_words:
                return Candidate(candidate, word, dotlessWord,
                                 CandidateKind.LITERAL, saf)
            for cw in candidate_words:
                if cw.replace(".", "").isdigit():
                    kind = (CandidateKind.NUMBER if cw.startswith("0")
                            else CandidateKind.LITERAL)
                    return Candidate(candidate, word, cw, kind, saf)
    if unchanged:
        return unchanged[0]
    word = candidate.split()[0]
    return Candidate(candidate, word, word, CandidateKind.UNCHANGED, saf)
Exemple #35
0
def merge_css(self, edit, setlists):
    '''压缩样式内容'''
    view = self.view
    sel = view.sel()

    syntax = view.settings().get('syntax')
    _fsyntax_ = re.search(r'\/([\w ]+)\.',syntax)
    # 取得文件类型
    fsyntax = _fsyntax_.group(1)
    # 未选中时默认处理方式
    notSel = setlists['notSel']

    if fsyntax == 'CSS' or fsyntax == 'HTML':
        for region in sel:
            if region.empty():# 如果没有选中
                if fsyntax == 'CSS' and notSel == 'all':
                    # 全选
                    region = sublime.Region(0, view.size())
                    # 整理文本
                    text = merge_line(view.substr(region), setlists)
                    view.replace(edit, region, text)
                # 处理HTML文件中的STYLE标签
                elif fsyntax == 'HTML' and notSel == 'all':
                    if ST2:
                        rules = Lib.expand_to_style(view, region)
                    else:
                        rules = modeCSS.Lib.expand_to_style(view, region)
                    # 倒序替换
                    for i in range(len(rules)-1, -1,-1):
                        # 整理文本
                        text = merge_line(view.substr(rules[i]), setlists)
                        view.replace(edit, rules[i], text)
                else:
                    if ST2:
                        region = Lib.expand_to_css_rule(view, region)
                    else:
                        region = modeCSS.Lib.expand_to_css_rule(view, region)
                    # 整理文本
                    text = merge_line(view.substr(region), setlists)
                    view.replace(edit, region, text)
            else:
                if notSel == 'all':
                    # 全选
                    region = sublime.Region(0, view.size())
                if ST2:
                    region = Lib.get_cur_point(view,region)
                else:
                    region = modeCSS.Lib.get_cur_point(view,region)
                # 整理文本
                text = merge_line(view.substr(region), setlists)
                view.replace(edit, region, text)
Exemple #36
0
 def sendTCPRequest(self, server):
     " do the work of sending a TCP request "
     first_socket_error = None
     self.response=None
     for self.ns in server:
         #print "trying tcp",self.ns
         try:
             if self.ns.count(':'):
                 if hasattr(socket,'has_ipv6') and socket.has_ipv6:
                     self.socketInit(socket.AF_INET6, socket.SOCK_STREAM)
                 else: continue
             else:
                 self.socketInit(socket.AF_INET, socket.SOCK_STREAM)
             try:
                 # TODO. Handle timeouts &c correctly (RFC)
                 self.time_start=time.time()
                 self.conn()
                 buf = Lib.pack16bit(len(self.request))+self.request
                 # Keep server from making sendall hang
                 self.s.setblocking(0)
                 # FIXME: throws WOULDBLOCK if request too large to fit in
                 # system buffer
                 self.s.sendall(buf)
                 # SHUT_WR breaks blocking IO with google DNS (8.8.8.8)
                 #self.s.shutdown(socket.SHUT_WR)
                 r=self.processTCPReply()
                 if r.header['id'] == self.tid:
                     self.response = r
                     break
             finally:
                 self.s.close()
         except socket.error, e:
             first_socket_error = first_socket_error or e
             continue
Exemple #37
0
def sphereCtl( name, functArgs ):
        J=[]
        ctl = Lib.getFirst(cmds.polySphere( n = (name + "_CTL"), r= functArgs["size"], sx= 1, sy= 1, ax= [0, 1, 0], ch= 1))
        grp = cmds.group( ctl, n = (name + "Ctl_GRP"))
        J.append(ctl)
        J.append(grp)
        return J
 def applyFilter(self, aImage):
     # intialize a new filtered image
     new_image = Image.new('RGB', aImage.size)
     new_image_list = []
     #get the pixels list from the original image
     #pixels = aImage.getdata()
     
     pixels = Lib.to2d(aImage)
     
     height = len(pixels)
     width = len(pixels[0])
     
     for x in range(width):
         for y in range(height):
                 
             if x > self.size and x < (width - self.size) and \
             y > self.size and y < (height - self.size):
                 r = int(pixels[y][x][0])
                 g = int(pixels[y][x][1])
                 b = int(pixels[y][x][2])
             else:
                 r = int(self.color[0]*255)
                 g = int(self.color[1]*255)
                 b = int(self.color[2]*255)
             
             new_pixel = (r,g,b)
             new_image_list.append(new_pixel)
             
     new_image.putdata(new_image_list)
     return new_image
Exemple #39
0
def cubeCtl( name, functArgs ):
        J=[]
        ctl = Lib.getFirst(cmds.polyCube( n = (name + "_CTL"), w= functArgs["size"], h= functArgs["size"], d= 1, sx= 1, sy= 1, sz= 1, ax= [0, 1, 0], cuv= 4, ch= 1))
        grp = cmds.group( ctl, n = (name + "Ctl_GRP"))
        J.append(ctl)
        J.append(grp)
        return J
Exemple #40
0
 def run(self, edit):
     view = self.view
     if ST2:
         setlists = Lib.get_default_set()
     else:
         setlists = modeCSS.Lib.get_default_set()
     setlists["notSel"] = "all"
     merge_css(self, edit, setlists)
Exemple #41
0
def circleCtl( name, radius ):
        'Creates arrow control'
        J=[]
        curve= Lib.getFirst(cmds.circle( n = (name+ "_CTL"), c= [0, 0, 0], nr= [0, 1, 0], sw= 360, r= radius, d= 3, ut= 0, tol= 0.01 ,s= 8, ch=1))
        grp = cmds.group( curve, n = (name + "Ctl_GRP"))
        J.append(curve)
        J.append(grp)
        return J
Exemple #42
0
def locatorCtl( name, args ):
        'Creates locator ctl'
        J=[]
        ctl = Lib.getFirst(cmds.spaceLocator( n =(name + "_CTL") ) )
        grp = cmds.group( ctl, n = (name + "Ctl_GRP"))
        cmds.xform(grp, piv= [0,0,0] )
        J.append(ctl)
        J.append(grp)
        return J
Exemple #43
0
 def run(self, edit):
     view = self.view
     if ST2:
         setlists = Lib.get_default_set()
     else:
         setlists = modeCSS.Lib.get_default_set()
     setlists["notSel"] = "all"
     setlists["all_in_one"] = True
     setlists["delete_comments"] = True
     merge_css(self, edit, setlists)
Exemple #44
0
 def processTCPReply(self):
     if self.timeout > 0:
         self.s.settimeout(self.timeout)
     else:
         self.s.settimeout(None)
     f = self.s.makefile('r')
     header = self._readall(f,2)
     count = Lib.unpack16bit(header)
     self.reply = self._readall(f,count)
     self.time_finish=time.time()
     self.args['server']=self.ns
     return self.processReply()
Exemple #45
0
def duplicateChain(name , chainJoints):
        'Duplicates a chain of joints'
        i = 1
        joints = []
        jointNo = len(chainJoints)
        
        for x in range( jointNo ):
            joints.append( Lib.getFirst(cmds.duplicate(chainJoints[x], po = True, n = (name + str(x + 1) + "_JNT"))) ) 
        
        for x in range( 1, jointNo ):
            cmds.parent(joints[jointNo - x], joints[jointNo - (x + 1)])
        
        return joints
Exemple #46
0
 def processTCPReply(self):
     import time, Lib
     self.f = self.s.makefile('r')
     header = self.f.read(2)
     if len(header) < 2:
         raise DNSError,'EOF'
     count = Lib.unpack16bit(header)
     self.reply = self.f.read(count)
     if len(self.reply) != count:
         raise DNSError,'incomplete reply'
     self.time_finish=time.time()
     self.args['server']=self.ns
     return self.processReply()
Exemple #47
0
def createIkHandle(name, joints, **kwargs):
    """
        Creates Ik handle for three joints
        return values: 
        IK
        EFF
    """
    # Default args
    args = {"sol":"ikRPsolver"}
    functArgs =  Lib.defaultArgs(args, kwargs)
    kwargs = Lib.deleteDictKey(kwargs, "sol")
    ret = {}
    
    if len(joints) != 3:
        cmds.error("Incorrect number of joints supplied to IkHandle.")
    
    handleData = cmds.ikHandle( n= (name + "_IKH"), sol= functArgs["sol"], sj= joints[0], ee= joints[2],**kwargs)
    cmds.setAttr((handleData[0] + ".v"), 0)
    
    ret["IK"] = handleData[0]
    ret["EFF"] = handleData[1]
    return ret
Exemple #48
0
def createSplineIk(name, joints, **kwargs):
    """
        Creates spline Ik
        return values: 
        IK
        EFF
        CRV
    """
    # Default args
    args = {"sol":"ikRPsolver"}
    functArgs =  Lib.defaultArgs(args, kwargs)
    kwargs = Lib.deleteDictKey(kwargs, "sol")
    ret = {}
    
    handleData = cmds.ikHandle( n= (name + "_IKH"), sol= functArgs["sol"], sj= joints[0], ee= joints[len(joints)-1],**kwargs)
    cmds.setAttr((handleData[0] + ".v"), 0)
    handleData[2] = cmds.rename(handleData[2],(name+ "IK_CRV") )
    
    ret["IK"] = handleData[0]
    ret["EFF"] = handleData[1]
    ret["CRV"] = handleData[2]
    return ret
Exemple #49
0
def saveTransforms(filePath, module, objects):
    """
        Will Store transfrom data in file
    """
    # objects = self.getRegisteredObjects( module, regAttr)
    writeData = ""

    for object in objects:
        translate = Lib.getFirst(cmds.getAttr((object + ".t")))
        rotate = Lib.getFirst(cmds.getAttr((object + ".r")))
        scale = Lib.getFirst(cmds.getAttr((object + ".s")))
        writeLine = (
            object
            + " "
            + str(translate[0])
            + " "
            + str(translate[1])
            + " "
            + str(translate[2])
            + " "
            + str(rotate[0])
            + " "
            + str(rotate[1])
            + " "
            + str(rotate[2])
            + " "
            + str(scale[0])
            + " "
            + str(scale[1])
            + " "
            + str(scale[2])
            + "\n"
        )
        writeData += writeLine
    FILE = open(filePath, "wb")
    blueprintData = FILE.write(writeData)
    FILE.close()
    print ("Saved Transform data to : " + filePath)
Exemple #50
0
def fold_base64(view):
    """折叠base64编码"""
    base64 = "data:image/.*;base64,(.*?)['\"\)]"
    base64_begin = "data:image/.*;base64,"
    base64_end = "['\"\)]"
    rules = view.find_all(base64)
    for rule in rules:
        begin = view.find(base64_begin, rule.a, re.I)
        end = view.find(base64_end, rule.a, re.I)
        if ST2:
            fold = Lib.cut_region(rule, begin, end)
        else:
            fold = modeCSS.Lib.cut_region(rule, begin, end)
        view.fold(fold)
Exemple #51
0
 def sendTCPRequest(self, server):
     " do the work of sending a TCP request "
     self.response=None
     for self.ns in server:
         try:
             self.socketInit(socktype_from_addr(self.ns), socket.SOCK_STREAM)
             self.time_start=time.time()
             self.conn()
             self.s.send(Lib.pack16bit(len(self.request))+self.request)
             self.s.shutdown(1)
             self.response=self.processTCPReply()
         except socket.error:
             continue
         break
     if not self.response:
         raise DNSError,'no working nameservers found'
Exemple #52
0
def upload():
    data = request.files.data
    filtername = str(request.forms.filter)
    #print "data:", data
    if data and data.file:        
        fn = path.basename(data.filename)
        fileName, fileExtension = os.path.splitext(fn)
        
        open(PUBLIC_PATH + 'tmp/' + fn, 'wb').write(data.file.read())
        hashName = Lib.hashImg(fileName+fileExtension)
        shutil.copyfile(PUBLIC_PATH + 'tmp/' + fn, PUBLIC_PATH + 'tmp/' + hashName+fileExtension)
        #open('../../public/tmp/' + hashName + "." + fileExtension, 'wb').write(data.file.read())
        
        return {'org': '/tmp/'+hashName + fileExtension,
                'available_filters': filter_list.keys(),
                'hash': hashName}
    return {'error':"Did not receive a file"}
Exemple #53
0
 def processTCPReply(self):
     if self.timeout > 0:
         r,w,e = select.select([self.s],[],[],self.timeout)
         if not len(r):
             raise DNSError, 'Timeout'
     f = self.s.makefile('r')
     header = f.read(2)
     if len(header) < 2:
         raise DNSError,'EOF'
     count = Lib.unpack16bit(header)
     self.reply = f.read(count)
     if len(self.reply) != count:
         # FIXME: Since we are non-blocking, it could just be a large reply
         # that we need to loop and wait for.
         raise DNSError,'incomplete reply'
     self.time_finish=time.time()
     self.args['server']=self.ns
     return self.processReply()
Exemple #54
0
def createPoleVec(joints, ikHandle, position):
    """
        Creates pole vector for handle for three joints
    """
    if len(joints) != 3:
        cmds.error("Incorrect number of joints supplied to IkHandle.")
    
    # Create locator to act as pole vector
    locName = (String.removeSuffix(ikHandle) + "Pole_LOC")
    poleGrpName = (String.removeSuffix(ikHandle) + "Pole_GRP")
    poleVecName = (String.removeSuffix(ikHandle) + "Pole_PVC")
    
    loc = Lib.getFirst(cmds.spaceLocator(n = locName, p= (0,0,0) ))
    cmds.xform(loc, ws= True, t= (position[0], position[1], position[2]) )
    locGrp = cmds.group(loc, n= poleGrpName)
    cmds.poleVectorConstraint( loc , ikHandle, n= poleVecName, w=.1 )
    cmds.setAttr((loc + ".v"), 0)
    
    return locGrp
Exemple #55
0
    def sendTCPRequest(self, server):
        " do the work of sending a TCP request "
        import time, Lib
        self.response=None
        for self.ns in server:
            try:
		# Miika: changed to support ipv6
	        if self.ns.find(':') == -1:
      			family = socket.AF_INET
	        else:
	                family = socket.AF_INET6
      		self.socketInit(family, socket.SOCK_STREAM)
                self.time_start=time.time()
                self.conn()
                self.s.send(Lib.pack16bit(len(self.request))+self.request)
                self.s.shutdown(1)
                self.response=self.processTCPReply()
            except socket.error:
                continue
            break
        if not self.response:
            raise DNSError,'no working nameservers found'
Exemple #56
0
def merge_line(data, setlists):
    '''压缩样式'''
    set_all_in_one = setlists["all_in_one"]
    set_remove_semicolon = setlists["remove_semicolon"]
    set_delete_comments = setlists["delete_comments"]
    set_add_pic_time_suffix = setlists["add_pic_time_suffix"]
    set_pic_time_suffix_extension = setlists["pic_time_suffix_extension"]
    set_pic_version_str = setlists["pic_version_str"]

    _comments_ = []
    if ST2:
        version = Lib.build_time_suffix()
    else:
        version = modeCSS.Lib.build_time_suffix()
    if set_delete_comments:
        # 删除注释
        strinfo = re.compile(r'\/\*(?:.|\s)*?\*\/',re.I).sub('',data)
    else:
        # 提取注释
        _comments_ = re.compile(r'(\/\*(?:.|\s)*?\*\/)',re.I).findall(data)
        _comments_.append("")
        strinfo = re.compile(r'(\/\*(?:.|\s)*?\*\/)',re.I).sub('[[!]]',data)

    strinfo = re.compile(r'@(?:import|charset)( *.*?);+',re.I).sub('',strinfo) # 删除外部引用、编码申明
    strinfo = re.compile(r'\n*',re.I).sub('',strinfo) # 删除多余换行
    strinfo = re.compile(r'[\n\t]*',re.I).sub('',strinfo) # 删除多余换行
    strinfo = re.compile(r' *, *',re.I).sub(',',strinfo) # 删除多余空格
    strinfo = re.compile(r' *{ *',re.I).sub('{',strinfo) # 删除多余空格
    strinfo = re.compile(r' *: *',re.I).sub(':',strinfo) # 删除多余空格
    strinfo = re.compile(r'^ ',re.I).sub('',strinfo) # 删除多余空格
    strinfo = re.compile(r' *; *',re.I).sub(';',strinfo) # 删除多余空格
    strinfo = re.compile(r'([: ]+0)[px|pt|em|%]+',re.I).sub('\\1',strinfo) # 删除0值单位
    strinfo = re.compile(r'"{2,}',re.I).sub('"',strinfo) # 删除多余引号
    strinfo = re.compile(r'\'{2,}',re.I).sub('\'',strinfo) # 删除多余引号
    strinfo = re.compile(r'content:[\"|\'][; ]',re.I).sub('content:\"\";',strinfo) # 修正content引号缺失
    strinfo = re.compile(r';{2,}',re.I).sub(';',strinfo) # 删除多余空格
    strinfo = re.compile(r' {2,}',re.I).sub(' ',strinfo) # 删除多余空格
    strinfo = re.compile(r' *} *',re.I).sub('}',strinfo) # 删除多余空格
    # 删除最后一个分号
    if set_remove_semicolon:
        strinfo = re.compile(r';}',re.I).sub('}',strinfo)

    reg_background = re.compile(r'background(\s*\:|-image\s*\:)(.*?)url\([\'|\"]?([\w+:\/\/^]?[^? \}]*\.(\w+))\?*.*?[\'|\"]?\)',re.I)
    reg_filter = re.compile(r'Microsoft\.AlphaImageLoader\((.*?)src=[\'|\"]?([\w:\/\/\.]*\.(\w+))\?*.*?[\'|\"]?(.*?)\)',re.I)
    # 添加图片时间缀
    if set_add_pic_time_suffix:
        if set_pic_time_suffix_extension:
            strinfo = reg_background.sub("background\\1\\2url(\\3?" + set_pic_version_str + "=" + version + ".\\4)",strinfo)
            strinfo = reg_filter.sub("Microsoft.AlphaImageLoader(\\1src='\\2?" + set_pic_version_str + "=" + version + ".\\3'\\4)",strinfo)
        else:
            strinfo = reg_background.sub("background\\1\\2url(\\3?" + set_pic_version_str + "=" + version + ")",strinfo)
            strinfo = reg_filter.sub("Microsoft.AlphaImageLoader(\\1src='\\2?" + set_pic_version_str + "=" + version + "'\\4)",strinfo)
    else: # 删除图片时间缀
        strinfo = reg_background.sub("background\\1\\2url(\\3)",strinfo)
        strinfo = reg_filter.sub("Microsoft.AlphaImageLoader(\\1src='\\2'\\4)",strinfo)
    # 不压缩为一行
    if not set_all_in_one:
        strinfo = re.compile(r'}',re.I).sub('}\n',strinfo)
        strinfo = re.compile(r'}[\n\t]*}',re.I).sub('}}',strinfo)
        # 还原注释
        if not set_remove_semicolon:
            reg = re.compile(r'(\[\[!\]\])',re.I)
            _strinfo_ = strinfo.split('[[!]]')

            if len(_comments_) >1: 
                string = ""
                for i in range(0, len(_comments_)):
                    string += _strinfo_[i] +"\n"+ _comments_[i] +"\n"
                strinfo = string
                
    return strinfo
Exemple #57
0
    def run(self, edit):
        view = self.view
        sel = view.sel()

        syntax = view.settings().get("syntax")
        _fsyntax_ = re.search(r"\/([\w ]+)\.", syntax)
        # 取得文件类型
        fsyntax = _fsyntax_.group(1)

        if ST2:
            setlists = Lib.get_default_set()
            project_dir = setlists["default_porject_path"] or Lib.get_dis(view)
        else:
            setlists = modeCSS.Lib.get_default_set()
            project_dir = setlists["default_porject_path"] or modeCSS.Lib.get_dis(view)

        for region in sel:
            _pic_path_ = []
            if ST2:
                _region = Lib.get_cur_point(view, region)
            else:
                _region = modeCSS.Lib.get_cur_point(view, region)

            if _region:
                # 取得图片路径列表
                rules_ = expand_pic_in_html(_region, view.substr(_region))

                if len(rules_) > 0:
                    for rules in rules_:
                        for pic_path_ in rules:
                            if project_dir:
                                # 相对路径转绝对路径
                                if ST2:
                                    _pic_path = Lib.get_abs_path(pic_path_[1], project_dir)
                                else:
                                    _pic_path = modeCSS.Lib.get_abs_path(pic_path_[1], project_dir)

                                _temp_ = []
                                if os.path.isfile(_pic_path):
                                    _temp_.append(pic_path_[0])
                                    _temp_.append(encode_pic(_pic_path))
                                else:
                                    _temp_.append("")
                                    _temp_.append(_pic_path)

                                _pic_path_.append(_temp_)

                reg_rule = re.compile(r"(<img[^>]+src\s*=\s*[\'\"])[^\'\"]+([\'\"][^>]*>)", re.I)
                reg_background = re.compile(
                    r"(background(?:\s*\:|-image\s*\:).*?url\([\'|\"]?)[\w+:\/\/^]?[^? \}]*\.\w+\?*.*?([\'|\"]?\))",
                    re.I,
                )
                reg_filter = re.compile(
                    r"(Microsoft\.AlphaImageLoader\(.*?src=[\'|\"]?)[\w:\/\/\.]*\.\w+\?*.*?([\'|\"]?.*?\))", re.I
                )

                if len(_pic_path_) > 0:
                    for i in range(len(_pic_path_) - 1, -1, -1):  # 倒序替换
                        if _pic_path_[i][0]:
                            if ST2:
                                _region = Lib.point_to_region(_pic_path_[i][0])
                            else:
                                _region = modeCSS.Lib.point_to_region(_pic_path_[i][0])

                            text = reg_rule.sub("\\1" + _pic_path_[i][1] + "\\2", view.substr(_region))
                            self.view.replace(edit, _region, text)
                            text = reg_background.sub("\\1" + _pic_path_[i][1] + "\\2", view.substr(_region))
                            self.view.replace(edit, _region, text)
                            text = reg_filter.sub("\\1" + _pic_path_[i][1] + "\\2", view.substr(_region))
                            self.view.replace(edit, _region, text)

                            if setlists["base64_fold"]:
                                fold_base64(view)
Exemple #58
0
if __name__ == '__main__':
    fileName = "./../test/test1.ir"
    if len(sys.argv) == 2:
        fileName = sys.argv[1]
    ir = IR(fileName)
    code = CodeGen(ir)
    print "\t.text"
    print "\t.globl main\n"
    print "main:\n"
    codeBlocks = code._codeBlocks
    # add the library functions
    # Now add the generated block by code generator
    i = 1
    for node in codeBlocks:   
        print "B"+str(i)+":"
        print "\t"+"\n\t".join(node)
        i += 1

    print "\tj "+LibFns["exit"]

    lib = Lib()
    instrs = lib.genFns()
    for ins in instrs.keys():
       print str(ins)+":"
       print "\t"+"\n\t".join(instrs[ins])



    print "\n\t.data"
    for var in code._globalVars:
        print "g_"+str(var) + ":\t.word\t0"