介绍 Airflow 是一个以编程方式进行编写、调度和监控工作流的平台。 一旦工作流通过代码来定义,它们会变得更加易于维护、版本化、可测试,以及可协作。 使用 Airflow 以有向无环图 (DAGs)的形式编写任务的工作流。Airflow 调度器在满足指定的依赖项的同时,在一组 worker 上执行任务。丰富的命令行实用程序使得通过 DAG 执行…
背景 (备注:本文是之前在博客园中发表的文章,因为老博客不再维护,把有价值的博文转移到这里。) 最近在网上搜索 Python 和 WMI 相关资料时,发现大部分文章都千篇一律,并且基本上只说了很基础的使用,并未深入说明如何使用 WMI。本文打算更进一步,让我们使用 Python 玩转 WMI。 什么是 WMI 具体请看微软官网对 WMI 的介绍。这…
初探 (备注:本文是之前在博客园中发表的文章,因为老博客不再维护,把有价值的博文转移到这里。) 在平时的开发工作中,我们可能会有这样的需求:我们希望有一个内存数据库或者数据引擎,用比较 Pythonic 的方式进行数据库的操作(比如说插入和查询)。 举个具体的例子,分别向数据库 db 中插入两条数据,"a=1, b=1" 和 &…
背景 (备注:本文是之前在博客园中发表的文章,因为老博客不再维护,把有价值的博文转移到这里。) 之前把 salt 安装在 windows 2003 上,发现无法启动,随之而来的是一个有一个的坑,让我们一起逐个排查。 问题一(salt 无法启动) salt 无法启动,错误结果如图: 解决 这种错误完全无厘头呀,本着相信 salt 的原则,我们看看 p…
前言 在第一篇“初探 docopt”的文章中,我们初步掌握了使用 docopt 的三个步骤,了解了它不同于 argparse 的设计思路。 那么 docopt 的使用模式都有哪些呢?其接口描述中都支持哪些语法规则呢?本文将带你深入了解 docopt。 本系列文章默认使用 Python 3 作为解释器进行讲解。 若你仍在使用 Python 2,请注意…
前言 在本系列前面四篇文章中,我们介绍了 argparse 的方方面面。它无疑是强大的,但使用方式上略显麻烦。需要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑。 而今天要介绍的 docopt 则是站在一个全新的视角来审视命令行。你可曾想过,一个命令行程序的帮助信息其实已然包含了这个命令行的完整元信息,那么是否可以通过定义帮助信息来定义命…
介绍 本篇文章是《聊聊 Python 的单元测试框架》的第三篇,前两篇分别介绍了标准库 unittest 和第三方单元测试框架 nose。作为本系列的最后一篇,压轴出场的是 Python 世界中最火的第三方单元测试框架:pytest。 pytest 项目地址:https://github.com/pytest-dev/pytest 它有如下主要特性…
nose nose 是一个第三方单元测试框架,它完全兼容 unittest,并且号称是一个更好用的测试框架。 那么 nose 除了具备 unittest 的所有功能外,还具有哪些优势呢? ...
前言 说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是 unittest。 的确,作为 Python 的标准库,它很优秀,并被广泛用于各个项目。但你知道吗?其实在 Python 众多项目中,主流的单元测试框架远不止这一个。 本系列文章将为大家介绍目前流行的 Python 的单元测试框架,讲讲它们的功能和特点…
前言 在前面三篇介绍 argparse 的文章中,我们全面了解了 argparse 的能力,相信不少小伙伴们都已经摩拳擦掌,想要打造一个属于自己的命令行工具。 本文将以我们日常工作中最常见的 git 命令为例,讲解如何使用 argparse 库来实现一个真正可用的命令行程序。 本系列文章默认使用 Python 3 作为解释器进行讲解。 若你仍在使用…