def delete(self, tableName, condition): sql = 'DELETE FROM {table} WHERE {condition}'.format( table=tableName, condition=condition) try: self.db.cursor().execute(sql) self.db.commit() except: self.db.rollback() stackprinter.show(style='plaintext', source_lines=4)
def demo1(): def dangerous_function(blub): return sorted(blub, key=lambda xs: sum(xs)) try: somelist = [[1, 2], [3, 4]] anotherlist = [['5', 6]] dangerous_function(somelist + anotherlist) except Exception as e: stackprinter.show(style='plaintext', source_lines=3)
def update(self, tableName, fruitDict, condition): table = tableName newKeys = [f'{v} = %s' for v in fruitDict.keys()] keys = ', '.join(newKeys) sql = f'UPDATE {tableName} SET {keys} WHERE {condition}' try: self.db.cursor().execute(sql, tuple(fruitDict.values())) self.db.commit() except: self.db.rollback() stackprinter.show(style='plaintext', source_lines=4)
def insert(self, tableName, fruitDict): table = tableName keys = ', '.join(fruitDict.keys()) values = ', '.join(['%s'] * len(fruitDict)) sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format( table=tableName, keys=keys, values=values) try: self.db.cursor().execute(sql, tuple(fruitDict.values())) self.db.commit() except: self.db.rollback() stackprinter.show(style='plaintext', source_lines=4)
def run(queue): loop = get_event_loop() try: loop.create_task(listen(queue)) loop.run_forever() except KeyboardInterrupt: pass except Exception: stackprinter.show() finally: loop.close()
def call_main(main): try: return _exit_ok if main() else _exit_fail except SystemExit as e: return e.code except KeyboardInterrupt as e: ctrl_c = 3 return ctrl_c except DebugExit: return _exit_fail except Exception as e: # pylint: disable=broad-except stackprinter.show(e, style='darkbg')
def updateOrInsert(self, tableName, fruitDict): table = tableName keys = ', '.join(fruitDict.keys()) values = ', '.join(['%s'] * len(fruitDict)) sql = 'INSERT INTO {table}({keys}) VALUES ({values}) ON DUPLICATE KEY UPDATE'.format( table=table, keys=keys, values=values) update = ','.join([" {key} = %s".format(key=key) for key in fruitDict]) sql += update try: self.db.cursor().execute(sql, tuple(fruitDict.values()) * 2) self.db.commit() except: self.db.rollback() stackprinter.show(style='plaintext', source_lines=4)
def 抽签(): 签 = "" 备选字符 = [0, 1] 三枚铜钱 = [] 爻序 = 1 爻列表 = [] 变爻序号 = [] 变爻次数 = 0 变卦 = "" for i in range(6): for j in range(3): 摇卦 = random.choice(备选字符) 三枚铜钱.append(摇卦) if 三枚铜钱.count(0) == 3: 爻列表.append("X") 变爻序号.append(i + 1) 变爻次数 += 1 爻 = 0 变卦 += "1" elif 三枚铜钱.count(1) == 3: 爻列表.append("O") 变爻序号.append(i + 1) 变爻次数 += 1 爻 = 1 变卦 += "0" elif 三枚铜钱.count(1) == 2: 爻列表.append("—") 爻 = 1 变卦 += str(爻) elif 三枚铜钱.count(0) == 2: 爻列表.append("--") 爻 = 0 变卦 += str(爻) else: stackprinter.show() 爻序 += 1 签 += str(爻) 三枚铜钱.clear() if 变爻次数 == 0: 变卦 = "静卦" # 爻列表.reverse() ic(爻列表) ic(变爻次数) ic(变爻序号) ic(变卦) return 签, 变卦, 变爻次数, 变爻序号
"multi line "\ "string" # np.reshape(bla, 9000) try: bla.nonexistant_attribute except: pass supersecret = "you haven't seen this" boing = np.\ random.rand(*bla.T.\ T.T) raise Exception('something happened') #### @pytest.fixture def sourcelines(): with open(__file__, 'r') as sf: lines = sf.readlines() return lines if __name__ == '__main__': import stackprinter try: Hovercraft().eels except: stackprinter.show(style='darkbg')
dir_1080 = path + "1080" dir_2k = path + "2k" dir_4k = path + "4k" if not os.path.isdir(dir_1080): os.makedirs(dir_1080) if not os.path.isdir(dir_2k): os.makedirs(dir_2k) if not os.path.isdir(dir_4k): os.makedirs(dir_4k) def doWork(): url = getUrl(1) download(url, 1) url = getUrl(2) download(url, 2) url = getUrl(4) download(url, 4) if __name__ == "__main__": try: checkDir() doWork() updateImage() except BaseException as e: print(e) stackprinter.show()
def download(self, sessionId): url = f"https://pangpang.dooray.com/v2/wapi/projects/*/posts?order=-createdAt&page=0&projectScope=all&size=30&toMemberIds=2006398569098578504&userWorkflowClass=registered,working" count, contents = self.fetchPost(url, sessionId) self.toExcel("2.第二重境/temp_data", contents) def fetchPost(self, url, sessionId): cookies_jar = requests.cookies.RequestsCookieJar() cookies_jar.set('SESSION', sessionId, domain='.dooray.com', path='/') resp = requests.get(url, cookies=cookies_jar) post = resp.json() totalCount = post["result"]["totalCount"] contents = post["result"]["contents"] return totalCount, contents def toExcel(self, abPath, contents): fileName = "dooray_post.xlsx" excelPath = "{}/{}".format(abPath, fileName) dataframe = pandas.DataFrame(contents) dataframe.to_excel(excelPath, encoding="utf-8") return None if __name__ == "__main__": stackprinter.set_excepthook() try: sessionId = input("请输入dooray的sessionId:") m = DorDownloader() m.download(sessionId) except Exception as inst: stackprinter.show(style='plaintext', source_lines=4)
def demo2(): try: 1 / 0 except Exception as e: stackprinter.show(style='plaintext', source_lines=3)
if np.sum(k) != 0: return [[do_something(val) for val in row] for row in X] def some_function(boing, zap='!'): thing = boing + zap a_broken_function(thing) def another_broken_function(val): if np.sum(val) != 42: bla = val.T.\ T.T.\ T # here is a comment \ # that has backslashes \ # for some reason ahoi = "here is a "\ "multi line "\ "string" # np.reshape(bla, 9000) boing = np.\ random.rand(*bla.T.\ T.T) raise Exception('something happened') try: whatever().ahoi() except: # raise stackprinter.show(style='darkbg', reverse=False, suppressed_paths=[r"lib/python.*/site-packages/numpy"])
import numpy import stackprinter def dangerous_function(blub): return sorted(blub, key=lambda xs: sum(xs)) try: somelist = [[1, 2], [3, 4]] anotherlist = [['5', 6]] spam = numpy.zeros((3, 3)) supersecret = "you haven't seen this" dangerous_function(somelist + anotherlist) except: stackprinter.show(style='plaintext', source_lines=4, suppressed_vars=[r".*secret.*"])
if __name__ == '__main__': import stackprinter from tests.source import Hovercraft try: Hovercraft().eels() except: # raise stackprinter.show(style='darkbg2', line_wrap=40, reverse=False, suppressed_paths=[r"lib/python.*/site-packages/numpy"], suppressed_vars=[r".*secret.*"])
def 解签(待解的签, 变卦="", 变爻次数="0", 变爻序号=[]): 待解的签 = 待解的签 变卦 = 变卦 变爻次数 = 变爻次数 变爻序号 = 变爻序号 原始爻 = {1: "初", 2: "二", 3: "三", 4: "四", 5: "五", 6: "上"} 解签用变爻序号 = "" connect = sqlite3.connect("zanbu.db") cursor = connect.cursor() # 测试变爻次数 # 根据变爻次数按顺序取解签序号,这里会根据变爻次数确定取值及顺序 # 六爻不变为静卦,用本卦卦辞解卦 # 变爻次数=1,就用这个变爻的爻辞解卦 # 变爻次数=2,就用这两个变爻的爻辞解卦,以上爻为主(上爻在前) # 变爻次数=3,用本卦卦辞结合变卦卦辞作综合考虑 # 变爻次数=4,用另外两个静爻的爻辞解卦,并以下爻爻辞为主(原始爻和变爻序号的差集,余二,下爻在前) # 变爻次数=5,用变卦的静爻爻辞解卦 # 变爻次数=6,乾、坤用用九,用六爻辞解卦,其它卦则用变卦的卦辞解卦 if 变爻次数 == 1: for i in 变爻序号: 解签用变爻序号 += 原始爻[i] sql = "SELECT " + 解签用变爻序号 + " FROM zanbu WHERE 符号=" + '"' + 待解的签 + '"' ic(sql) cursor.execute(sql) ic(cursor.fetchall()) elif 变爻次数 == 2: for i in 变爻序号: 解签用变爻序号 += 原始爻[i] 解签用变爻序号 += "," # 去掉最后的逗号 解签用变爻序号 = 解签用变爻序号[:-1] # 倒序 解签用变爻序号 = 解签用变爻序号[::-1] sql = "SELECT " + 解签用变爻序号 + " FROM zanbu WHERE 符号=" + '"' + 待解的签 + '"' ic(sql) cursor.execute(sql) ic(cursor.fetchall()) elif 变爻次数 == 3: sql = "SELECT 初,二,三,四,五,上 FROM zanbu WHERE 符号=" + '"' + 待解的签 + '"' sql_bg = "SELECT 初,二,三,四,五,上 FROM zanbu WHERE 符号=" + '"' + 变卦 + '"' ic(sql, sql_bg) cursor.execute(sql) ic(cursor.fetchall()) cursor.execute(sql_bg) ic(cursor.fetchall()) elif 变爻次数 == 4: # 求差集得到两个静爻 解签用变爻序号1 = "" b = {1: "初", 2: "二", 3: "三", 4: "四", 5: "五", 6: "上"} for i in 变爻序号: # ic(i) b.pop(i) #ic(b) for i in b: 解签用变爻序号1 += b[i] 解签用变爻序号1 += "," #ic(解签用变爻序号1) # 去掉最后的逗号 解签用变爻序号1 = 解签用变爻序号1[:-1] sql = "SELECT " + 解签用变爻序号1 + " FROM zanbu WHERE 符号=" + '"' + 待解的签 + '"' ic(sql) try: cursor.execute(sql) ic(cursor.fetchall()) except: stackprinter.show() elif 变爻次数 == 5: # 求差集得到一个静爻 解签用变爻序号1 = "" b = {1: "初", 2: "二", 3: "三", 4: "四", 5: "五", 6: "上"} for i in 变爻序号: # ic(i) b.pop(i) #ic(b) for i in b: 解签用变爻序号1 += b[i] 解签用变爻序号1 += "," ic(解签用变爻序号1) # 去掉最后的逗号 解签用变爻序号1 = 解签用变爻序号1[:-1] sql = "SELECT " + 解签用变爻序号1 + " FROM zanbu WHERE 符号=" + '"' + 变卦 + '"' ic(sql) try: cursor.execute(sql) ic(cursor.fetchall()) except: stackprinter.show() elif 变爻次数 == 6: if 待解的签 == "111111" or 待解的签 == "000000": sql = "SELECT 用九 FROM zanbu WHERE 符号=" + '"' + 待解的签 + '"' cursor.execute(sql) ic(cursor.fetchall()) else: sql = "SELECT 初,二,三,四,五,上 FROM zanbu WHERE 符号=" + '"' + 变卦 + '"' cursor.execute(sql) ic(cursor.fetchall()) else: # 为0的情况 sql = "SELECT 初,二,三,四,五,上 FROM zanbu WHERE 符号=" + '"' + 待解的签 + '"' cursor.execute(sql) ic(cursor.fetchall()) cursor.close()