
Python
文章平均质量分 75
DataCareer
这个作者很懒,什么都没留下…
展开
-
Airflow2.0 Scheduler核心代码再解读
以下解读代码来源于Airflow2.0。使用非SQLite数据库的都是采用异步模式,下文讲解默认是指异步模式。Airflow Scheduler四个进程:Scheduler 主进程Executor 子进程DagFileProcessorManager 子进程DagFileProcessor 子进程(进程数量由DAG文件个数决定)Airflow Scheduler启动过程airflow控制台命令的解析与执行的代码都存放在cli目录,cli_parser.py是命令解析的入口,而启动sch.原创 2021-02-22 14:14:17 · 1532 阅读 · 2 评论 -
Airflow核心源码解读
注意:本文基于Airflow 1.10解读源码Airflow目前已经成为主流的作业调度工具,支持本地调度、分布式调度、Kubernetes调度。Airflow虽然使用Python实现,但功能依然很强大,其配置参数也多达250个。其中很多核心参数在官方文档解释的并不清楚,所以就不得不看源码。以下内容就是我讲解了Airflow Scheduler的实现原理以及相关的参数作用。正文Airflow总体架构应该可以解读为四个部分:Schelduer、Excutor、DAGFileProcessorManag.原创 2021-02-19 17:24:53 · 1442 阅读 · 2 评论 -
最好用的开源免费笔记软件IdeaNote
项目地址:https://github.com/xmings/IdeaNote.gitIdeaNoteIdeaNote是一款基于WEB的集树形目录管理、Markdown编辑、免费增量离线同步等众多优秀功能于一身的开源知识管理平台。IdeaNote开发语言是Python3.7 + Flask框架一. 设计初衷努力把IdeaNote打造成一款功能强大个人知识管理平台,是平台而不仅仅是笔记...原创 2019-11-25 09:11:06 · 8138 阅读 · 2 评论 -
Python Json树更新
记录一段搜索Json树的代码,用于返回指定的节点并更新,因为Python返回的字典是对象引用,所以可以直接更新。class BaseJsonGenerator(object): def __init__(self): self.bmDao = BMDao() def run(self, brower, jsonFile): self.bmD原创 2017-12-16 21:37:16 · 1690 阅读 · 0 评论 -
Windows下获取已安装应用程序
获取WINDOWS系统已安装的所有应用程序,打开注册表,HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store原创 2018-03-21 15:58:20 · 7239 阅读 · 0 评论 -
SQL格式化工具
作为一个长期从事于数据库的工作者,本人对于各种数据库管理工具的代码格式化功能SQL语句的功能相当不满,特别是除PLSQL Developer之外的工具,“美化”的SQL相当难看。笔者最近抽出来时间自己写了一个SQL格式化工具(O(∩_∩)O哈哈~不敢叫美化),放在Github上。有兴趣的同学可以看看。https://github.com/wmsgood/DataTool/blob/master...原创 2018-04-28 14:34:26 · 4131 阅读 · 0 评论 -
TypeError: can't pickle _thread.RLock objects
"D:\Program Files\Python36\python.exe" E:/工作文件/Project/pycrontab/test.pyTraceback (most recent call last): File "E:/工作文件/Project/pycrontab/test.py", line 9, in <module>原创 2018-07-24 16:26:39 · 11983 阅读 · 0 评论 -
Python实现超时装饰器
目标:实现一个超时自动切换当前任务到其他任务装饰器,然后还可以在其他任务完成后再切换回来的程序原计划在signal.signal的handler中触发TimeoutError,然后在用户代码的exception中捕获到异常,此时就可以切换到其他任务了。如下:import signalimport timedef timeout(seconds): def raise_timeou...原创 2019-08-14 13:06:14 · 1393 阅读 · 0 评论 -
Python Select socket非阻塞写日志
上一篇我们通过线程锁实现了一个简单的并发写日志功能,该篇我们通过socket来实现一个写日志的程序,代码如下:socket服务端import selectorsimport socket, timesel = selectors.DefaultSelector()def accept(sock, mask): conn, addr = sock.accept() conn.setb原创 2018-01-02 00:18:56 · 754 阅读 · 0 评论 -
Pycharm取消py脚本中SQL识别
Pycharm默认可以识别py脚本中的SQL语句,本身很不错,但当SQL拼接时就显示的代码特别难看,找了好久,终于知道怎么关闭SQL识别功能了。如下图,把勾去掉就可以了。原创 2017-12-26 14:53:56 · 6159 阅读 · 1 评论 -
GitHub目录下载
有时只想下载GIthub上某个大项目下面的一个文件夹,真心麻烦,还要把整个项目clone下来,当然也有使用svn项目检出功能的。本人不喜欢安装太多软件,就用python写了一个脚本来完成。from bs4 import BeautifulSoupimport requests, os, sys, timeclass DownloadDir(object): def __i...原创 2017-11-15 14:17:50 · 774 阅读 · 0 评论 -
Python爬取双色球数据进行分析
突发奇想,是否可以从双色球的历史信息中分析出现次数最多的组合,那就从1+1的组合开始分析,嘿嘿,经常中这种组合也挺不错哦!现在我们开始获取数据,应该从中彩网的爬取数据比较靠谱,下面是脚本。# -*- coding:utf-8 -*-import requests, bs4import os, timeimport operatorfrom itertools import combinati原创 2017-11-09 15:26:05 · 10579 阅读 · 4 评论 -
urllib.parse.quote与decodeURIComponent的完美配合
如何优雅的把副文本编辑器的内容(HTML格式)入库,并在之后加载回前端编辑器?我们都知道编辑器的内容经常包含很多单引号、双引号等,因此,我们需要对内容进行编码,那我们就想到了escape和unescape。b=escape(a)"%3Cp%3E%22select%20count%281%29%20%22%u603B%u6570%22%2C%3C/p%3E%3Cp%3E%26nbsp%3Bsum原创 2017-11-22 15:17:55 · 1093 阅读 · 0 评论 -
PyQT之QWebEngineView与JS交互
GithubWEB编辑器的项目很丰富,也都做的很好,于是想利用PyQT5的QWebEngineView来嵌入自己喜欢的WEB编辑器打造自己的编辑器,因为CSS和JS来实现样式和定义一些事件动作很灵活也很漂亮。以下是PYQT与JS交互的核心代码:class EditorOper(object): def __init__(self, parent =None): self.kC原创 2017-11-22 16:42:34 · 5198 阅读 · 1 评论 -
一段管理实例的代码
logging中很好一段代码,在返回实例前先通过类的参数检查是否存在,存在就返回已存在的实例,不存在就实例化 def getLogger(self, name): """ Get a logger with the specified name (channel name), creating it if it doesn't yet exist原创 2017-12-12 11:38:58 · 342 阅读 · 0 评论 -
利用七牛云解决PC端文件同步
经常有一些文档需要在公司和家里的两地电脑间手工同步,很麻烦,于是利用七牛云免费的空间来做服务端实现同步功能。 同时,为了文档内容保密,我采用cryptography模块(通过指定一个复杂的字符串)对文件加密,这样即使别人获取了七牛云上的文件也无法破解。import os, time, uuid, requestsfrom qiniu import Auth, put_file, urlsafe_原创 2017-12-05 23:59:47 · 1273 阅读 · 2 评论 -
Python通过Thread锁实现并发日志入库
使用线程锁来实现一个简单写日志到数据库的功能,通过threading锁来实现线程安全,代码如下:#-*-utf-8-*-import logging, datetime, timefrom multiprocessing import Queue, Processimport cx_Oracleimport threadingclass LogInfo(object): def __原创 2017-12-30 22:18:51 · 1151 阅读 · 0 评论 -
Python实例管理
Python如何实现一个类只允许被实例化一次?这就要分两种情况:在同一个脚本中实例化同一个类这种有两种方法实现,一个是利用__new__方法,需要知道的是__new__方法运行的__init__方法之前,所以我们可以控制如何实例化类,甚至返回其它类的实例。通过类方法来实现,如下getInstance方法,这种就不很完美,因为其它人依然可以直接通过Test()这种方式来实例化类。class Te原创 2017-12-27 23:38:40 · 551 阅读 · 0 评论