コード例 #1
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_Assign(self, node):
     err.error("assigns in constraints?!!")
     if len(node.targets) != 1:
         err.error("unsupported[translateToZ3.py :: exprVisitor :: visit_Assign]:node.targets list has more than 1 elements")
     lhs = self.visit(node.targets[0])
     rhs = self.visit(node.value)
     return lhs+":="+rhs
コード例 #2
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_UnaryOp(self, node):
     if type(node.op) is ast.UAdd:
         return (self.visit(node.operand))
     elif type(node.op) is ast.USub:
         return (-self.visit(node.operand))
     else:
         err.error("translateToZ3.py::translatePythonExprToZ3Visitor::visit_UnaryOp unhandled operator" + ast.dump(node.op))
コード例 #3
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
def getZ3VarList(varList):
    global varDictZ3
    z3VarList = []
    for v in varList:
        if v.typStr == "R":
            try:
                if v.subTypStr == 'V':
                    z3Var = z3.RealVector(v.nameStr, v.dim)
                else:
                    raise err.Fatal('unhandled subtype: {}'.format(v.subTypStr))
            # if subtype is not present, default to regular 'Real'
            except AttributeError:
                z3Var = z3.Real(v.nameStr)
        elif v.typStr == "B":
            z3Var = z3.Bool(v.nameStr)
        elif v.typStr == "I":
            try:
                if v.subTypStr == 'V':
                    z3Var = z3.IntVector(v.nameStr, v.dim)
                else:
                    raise err.Fatal('unhandled subtype: {}'.format(v.subTypStr))
            except AttributeError:
                z3Var = z3.Int(v.nameStr)
        # type X: don't care..treat it as anything, lets say Real
        elif v.typStr == "X":
            z3Var = z3.Real(v.nameStr)
        else:
            err.error("translateToZ3.py :: getOutputVars: unhandled type - " + v.typStr)
        varDictZ3[v.nameStr] = z3Var
        z3VarList.append(z3Var)
    return z3VarList
コード例 #4
0
ファイル: context.py プロジェクト: ltworf/worfcc
 def get(self,ident):
     '''Gets an identifier from a context, exploring from the top to the bottom'''
     for i in range(len(self.contexts)-1,-1,-1):
         try:
             return self.contexts[i].get(ident)
         except:
             pass
     err.error(ident+ " is undefined",self)
コード例 #5
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_BinOp(self, node):
     if type(node.op) is ast.Add:
         return (self.visit(node.left) + self.visit(node.right))
     elif type(node.op) is ast.Sub:
         return (self.visit(node.left) - self.visit(node.right))
     elif type(node.op) is ast.Mult:
         return (self.visit(node.left) * self.visit(node.right))
     elif type(node.op) is ast.Div:
         return (self.visit(node.left) / self.visit(node.right))
     else:
         err.error("translateToZ3.py::translatePythonExprToZ3Visitor::visit_BinOp unhandled operator: " + ast.dump(node.op))
コード例 #6
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
    def visit_Compare(self, node):
        self.visit(node.left)
        if len(node.ops) != 1:
            err.error("unsupported[translateToZ3.py :: exprVisitor :: visit_Compare]: node.ops list has more than 1 element")
        if len(node.comparators) != 1:
            err.error("unsupported[translateToZ3.py :: exprVisitor :: visit_Compare]: node.comparators list has more than 1 element")

        op = node.ops[0]
        rightOperand = node.comparators[0]

        if type(op) is ast.Lt:
            return (self.visit(node.left) < self.visit(rightOperand))
        if type(op) is ast.Gt:
            return (self.visit(node.left) > self.visit(rightOperand))
        if type(op) is ast.GtE:
            return (self.visit(node.left) >= self.visit(rightOperand))
        if type(op) is ast.LtE:
            return (self.visit(node.left) <= self.visit(rightOperand))
        if type(op) is ast.Eq:
            return (self.visit(node.left) == self.visit(rightOperand))
        if type(op) is ast.NotEq:
            return (self.visit(node.left) != self.visit(rightOperand))
        else:
            err.error("translateToZ3.py::translatePythonExprToZ3Visitor::visit_Compare unhandled operator" + ast.dump(op))
コード例 #7
0
ファイル: context.py プロジェクト: ltworf/worfcc
 def put (self,ident,obj):
     '''Puts an identifier in the top context (if it is not already declared in that context)'''
     if not self.isInLastContext(ident):
         self.contexts[len(self.contexts)-1].put(ident,obj)
     else:
         err.error(ident+" is already defined in this context",self)
コード例 #8
0
def login():
    global d
    try:

        class do(QWidget):
            def __init__(self):
                import sys
                super().__init__()
                reply = QMessageBox.information(
                    self, "登录提示", "将弹出浏览器框,请在浏览器中登录,登录成功后会自动登录到程序,按OK开始",
                    QMessageBox.Ok)

        do()
        d = webdriver.Chrome(getpath() + r'\py\lib\chromedriver.exe')
        d.get(r"https://pan.baidu.com")

        def urlchange():
            if "https://pan.baidu.com/disk/home" in d.current_url:
                return False
            else:
                return True

        while urlchange():
            pass
        pg = d.page_source
        p = re.findall("<span class=\"user-name\">(.*?)</span>", pg)
        p = p[0]
        with open(getpath() + "\\py\\lib\\setting.json", "r") as j:
            r = json.load(j)
            r["isLogin"] = 1
            time.sleep(5)
            r["cookie"] = d.get_cookies()
            r["username"] = p
            print(d.get_cookies())
        with open(getpath() + "\\py\\lib\\setting.json", "w") as j:
            json.dump(r, j)
        d.quit()

        class do(QWidget):
            def __init__(self):
                import sys
                app = QApplication(sys.argv)
                super().__init__()
                reply = QMessageBox.information(self, "登录提示", "登陆成功",
                                                QMessageBox.Ok)

        d.quit()

    except:
        e = traceback.format_exc()
        if "selenium.common.exceptions.NoSuchWindowException" in e or "TypeError: argument of type 'NoneType' is not iterable" in e:

            class do(QWidget):
                def __init__(self):
                    import sys
                    app = QApplication(sys.argv)
                    super().__init__()
                    reply = QMessageBox.warning(self, "登录提示", "由于关闭了浏览器,登陆失败",
                                                QMessageBox.Ok)

            do()
        else:
            print(e)
            err.error(e)
    finally:
        try:
            d.quit()
        except:
            pass
コード例 #9
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_Mult(self, node):
     err.error("op!!")
     return z3.Product
コード例 #10
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_Sub(self, node):
     err.error("op!!")
     return z3.Sum
コード例 #11
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_GtE(self, node):
     err.error("op!!")
     return ">="
コード例 #12
0
ファイル: __main__.py プロジェクト: lyx31/Dxdownload
            if dl.islogin():
                self.rec()
            else:
                sroot = QTreeWidgetItem()
                sroot.setText(0, "未登录")
                sroot.setIcon(0, QIcon(getpath() + "\\icon\\nfound.ico"))
                self.treeWidget.addTopLevelItem(sroot)
            with open(getpath() + "\\py\\lib\\setting.json", "r") as j:
                b = json.load(j)
                b = b["maindownload"]
            self.lineEdit_2.setText(b)
            self.pushButton_2.clicked.connect(lambda: self.browse())
            self.pushButton_3.clicked.connect(lambda: self.version())
            self.pushButton_4.clicked.connect(lambda: self.cr())
            self.lineEdit_2.textChanged.connect(lambda: self.twi())
            self.tweetb.clicked.connect(self.tw)
            self.pushButton_10.clicked.connect(lambda: self.ex())
            self.pushButton.clicked.connect(lambda: self.lo())
            self.show()

    if __name__ == "__main__":
        app = QApplication(sys.argv)
        window = Dx()
        sys.exit(app.exec_())
except SystemExit:
    pass
except:
    e = traceback.format_exc()
    print(e)
    err.error(e)
コード例 #13
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_USub(self, node):
     err.error("op!!")
     return "-"
コード例 #14
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_LtE(self, node):
     err.error("op!!")
     return "<="
コード例 #15
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_Module(self, node):
     if len(node.body) != 1:
         err.error("unsupported[translateToZ3.py :: exprVisitor :: visit_Module]:Module.body has more than 1 element")
     return self.visit(node.body[0])
コード例 #16
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_Or(self, node):
     err.error("z3.Or unexpected!!")
     return z3.Or
コード例 #17
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_NotEq(self, node):
     err.error("op!!")
     return "!="
コード例 #18
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_Eq(self, node):
     err.error("op!!")
     return "=="
コード例 #19
0
ファイル: verdet.py プロジェクト: Enucatl/lab-unipd
residuals = TCanvas('malus_res', "Residuals", 1200, 800)
residuals.Divide(2, 2)
for i, r in enumerate(res):
    residuals.cd(i + 1)
    r.res_graph.Draw('AEP')
    r.res_graph.SetMarkerStyle(6)
    residuals.Update()

n = 1
current = [0] * n + [1] * n + [2] * n + [3] * n
current = array('d', current)
for tuple in zip(current, phi, phi_err):
    print "%i %.1f \pm %.1f" % tuple

zeros = array('d', [0] * n * 4)
graph = TGraphErrors(n * 4, current, phi, zeros, phi_err)
canv = TCanvas('shift', 'shift')
graph.SetMarkerStyle(8)
func = TF1('pol1', 'pol1', 0, 4)
graph.Fit('pol1', 'V')
graph.Draw('AEP')

slope = func.GetParameter(1)
slope_err = func.GetParError(1)
verdet = -(slope * ls) / (mu0 * N * lv)
verdet_err = error(verdet, (slope, slope_err))
print 'Verdet = ', verdet, verdet_err
print 'Chi2 / NDF = ', func.GetChisquare(), func.GetNDF()
raw_input()
コード例 #20
0
ファイル: py2z3.py プロジェクト: zutshi/py2z3
 def visit_Div(self, node):
     err.error("op!!")
     return "/"