2016年12月23日 星期五

Python Support library

環境管理
管理 Python 版本和環境的工具
p – 非常簡單的互動式 python 版本管理工具。
pyenv – 簡單的 Python 版本管理工具。
Vex – 可以在虛擬環境中執行命令。
virtualenv – 建立獨立 Python 環境的工具。
virtualenvwrapper– virtualenv 的一組擴充套件。


管理包和依賴的工具。
pip – Python 包和依賴關係管理工具。
pip-tools – 保證 Python 包依賴關係更新的一組工具。
conda – 跨平臺,Python 二進位制包管理工具。
Curdling – 管理 Python 包的命令列工具。
wheel – Python 分發的新標準,意在取代 eggs。

包倉庫
本地 PyPI 倉庫服務和代理。
warehouse – 下一代 PyPI。
Warehouse bandersnatch – PyPA 提供的 PyPI 映象工具。
devpi – PyPI 服務和打包/測試/分發工具。
localshop – 本地 PyPI 服務(自定義包並且自動對 PyPI 映象)。

分發
打包為可執行檔案以便分發。
PyInstaller – 將 Python 程式轉換成獨立的執行檔案(跨平臺)。
dh-virtualenv – 構建並將 virtualenv 虛擬環境作為一個 Debian 包來釋出。
Nuitka – 將指令碼、模組、包編譯成可執行檔案或擴充套件模組。
py2app – 將 Python 指令碼變為獨立軟體包(Mac OS X)。
py2exe – 將 Python 指令碼變為獨立軟體包(Windows)。
pynsist – 一個用來建立 Windows 安裝程式的工具,可以在安裝程式中打包 Python本身。

構建工具
將源碼編譯成軟體。
buildout – 一個構建系統,從多個元件來建立,組裝和部署應用。
BitBake – 針對嵌入式 Linux 的類似 make 的構建工具。
fabricate – 對任何語言自動找到依賴關係的構建工具。
PlatformIO – 多平臺命令列構建工具。
PyBuilder – 純 Python 實現的持續化構建工具。
SCons – 軟體構建工具。

互動式解析器
互動式 Python 解析器。
IPython – 功能豐富的工具,非常有效的使用互動式 Python。
bpython– 介面豐富的 Python 解析器。
ptpython – 高階互動式Python解析器, 構建於python-prompt-toolkit 之上。

檔案
檔案管理和 MIME(多用途的網際郵件擴充協議)類型檢測
imghdr – (Python 標準庫)檢測圖片類型。
mimetypes – (Python 標準庫)將檔名對映為 MIME 類型。
path.py – 對 os.path 進行封裝的模組。
pathlib – (Python3.4+ 標準庫)跨平臺的、物件導向的路徑操作庫。
python-magic– 檔案類型檢測的第三方庫 libmagic 的 Python 介面。
Unipath– 用物件導向的方式操作檔案和目錄
watchdog – 管理檔案系統事件的 API 和 shell 工具

日期和時間
操作日期和時間的類庫。
arrow– 更好的 Python 日期時間操作類庫。
Chronyk – Python 3 的類庫,用於解析手寫格式的時間和日期。
dateutil – Python datetime 模組的擴充套件。
delorean– 解決 Python 中有關日期處理的棘手問題的庫。
moment – 一個用來處理時間和日期的Python庫。靈感來自於Moment.js。
PyTime – 一個簡單易用的Python模組,用於通過字元串來操作日期/時間。
pytz – 現代以及歷史版本的世界時區定義。將時區資料庫引入Python。
when.py – 提供使用者友好的函數來幫助使用者進行常用的日期和時間操作。

文字處理
用於解析和操作文字的庫。
通用
chardet – 字元編碼檢測器,相容 Python2 和 Python3。
difflib – (Python 標準庫)幫助我們進行差異化比較。
ftfy – 讓Unicode文字更完整更連貫。
fuzzywuzzy – 模糊字元串匹配。
Levenshtein – 快速計算編輯距離以及字元串的相似度。
pangu.py – 在中日韓語字元和數字字母之間新增空格。
pyfiglet -figlet 的 Python實現。
shortuuid – 一個生成器庫,用以生成簡潔的,明白的,URL 安全的 UUID。
unidecode – Unicode 文字的 ASCII 轉換形式 。
uniout – 列印可讀的字元,而不是轉義的字元串。
xpinyin – 一個用於把漢字轉換為拼音的庫。

Slug化
awesome-slugify – 一個 Python slug 化庫,可以保持 Unicode。
python-slugify – Python slug 化庫,可以把 unicode 轉化為 ASCII。
unicode-slugify – 一個 slug 工具,可以生成 unicode slugs ,需要依賴 Django 。

解析器
phonenumbers – 解析,格式化,儲存,驗證電話號碼。
PLY – lex 和 yacc 解析工具的 Python 實現。
Pygments – 通用語法高亮工具。
pyparsing – 生成通用解析器的框架。
python-nameparser – 把一個人名分解為幾個獨立的部分。
python-user-agents – 瀏覽器 user agent 解析器。
sqlparse – 一個無驗證的 SQL 解析器。
特殊文字格式處理
一些用來解析和操作特殊文字格式的庫。

通用
tablib – 一個用來處理中表格資料的模組。

Office
Marmir – 把輸入的Python 資料結構轉換為電子表單。
openpyxl – 一個用來讀寫 Excel 2010 xlsx/xlsm/xltx/xltm 檔案的庫。
python-docx – 讀取,查詢以及修改 Microsoft Word 2007/2008 docx 檔案。
unoconv – 在 LibreOffice/OpenOffice 支援的任意檔案格式之間進行轉換。
XlsxWriter – 一個用於建立 Excel .xlsx 檔案的 Python 模組。
xlwings – 一個使得在 Excel 中方便呼叫 Python 的庫(反之亦然),基於 BSD 協議。
xlwt / xlrd – 讀寫 Excel 檔案的資料和格式資訊。
relatorio – 模板化OpenDocument 檔案。

PDF
PDFMiner – 一個用於從PDF檔案中抽取資訊的工具。
PyPDF2 – 一個可以分割,合併和轉換 PDF 頁面的庫。
ReportLab – 快速建立富文字 PDF 檔案。

Markdown
Mistune – 快速並且功能齊全的純 Python 實現的 Markdown 解析器。
Python-Markdown – John Gruber’s Markdown 的 Python 版實現。

YAML
PyYAML – Python 版本的 YAML 解析器。

CSV
csvkit – 用於轉換和操作 CSV 的工具。

Archive
unp – 一個用來方便解包歸檔檔案的命令列工具。

自然語言處理
用來處理人類語言的庫。
NLTK – 一個先進的平臺,用以構建處理人類語言資料的 Python 程式。
jieba – 中文分詞工具。
langid.py – 獨立的語言識別系統。
Pattern – Python 網路資訊挖掘模組。
SnowNLP – 一個用來處理中文文字的庫。
TextBlob – 為進行普通自然語言處理任務提供一致的 API。
TextGrocery – 一簡單高效的短文字分類工具,基於 LibLinear 和 Jieba。

檔案
用以生成項目檔案的庫。
Sphinx – Python 檔案生成器。
awesome-sphinxdoc
MkDocs – 對 Markdown 友好的檔案生成器。
pdoc – 一個可以替換Epydoc 的庫,可以自動生成 Python 庫的 API 檔案。
Pycco – 文學程式設計(literate-programming)風格的檔案生成器。

配置
用來儲存和解析配置的庫。
config – logging 模組作者寫的分級配置模組。
ConfigObj – INI 檔案解析器,帶驗證功能。
ConfigParser – (Python 標準庫) INI 檔案解析器。
profig – 通過多種格式進行配置,具有數值轉換功能。
python-decouple – 將設定和程式碼完全隔離。

命令列工具
用於建立命令列程式的庫。
命令列程式開發
cement – Python 的命令列程式框架。
click – 一個通過組合的方式來建立精美命令列介面的包。
cliff – 一個用於建立命令列程式的框架,可以建立具有多層命令的命令列程式。
clint – Python 命令列程式工具。
colorama – 跨平臺彩色終端文字。
docopt – Python 風格的命令列參數解析器。
Gooey – 一條命令,將命令列程式變成一個 GUI 程式。
python-prompt-toolkit – 一個用於構建強大的互動式命令列程式的庫。

生產力工具
aws-cli – Amazon Web Services 的通用命令列介面。
bashplotlib – 在終端中進行基本繪圖。
caniusepython3 – 判斷是哪個項目妨礙你你移植到 Python 3。
cookiecutter – 從 cookiecutters(項目模板)建立項目的一個命令列工具。
doitlive – 一個用來在終端中進行現場演示的工具。
howdoi – 通過命令列獲取即時的程式設計問題解答。
httpie – 一個命令列HTTP 客戶端,cURL 的替代品,易用性更好。
PathPicker – 從bash輸出中選出檔案。
percol – 向UNIX shell 傳統管道概念中加入互動式選擇功能。
SAWS – 一個加強版的 AWS 命令列。
thefuck – 修正你之前的命令列指令。
mycli – 一個 MySQL 命令列客戶端,具有自動補全和語法高亮功能。
pgcli – Postgres 命令列工具,具有自動補全和語法高亮功能。

下載器
用來進行下載的庫.
s3cmd – 一個用來管理Amazon S3 和 CloudFront 的命令列工具。
s4cmd – 超級 S3 命令列工具,效能更加強勁。
you-get – 一個 YouTube/Youku/Niconico 視訊下載器,使用 Python3 編寫。
youtube-dl – 一個小巧的命令列程式,用來下載 YouTube 視訊。

影象處理
用來操作影象的庫.
pillow – Pillow 是一個更加易用版的 PIL。
hmap – 影象直方圖對映。
imgSeek – 一個使用視覺相似性搜尋一組圖片集合的項目。
nude.py – 裸體檢測。
pyBarcode – 不藉助 PIL 庫在 Python 程式中生成條形碼。
pygram – 類似 Instagram 的影象濾鏡。
python-qrcode – 一個純 Python 實現的二維碼生成器。
Quads – 基於四叉樹的計算機藝術。
scikit-image – 一個用於(科學)影象處理的 Python 庫。
thumbor – 一個小型影象服務,具有剪裁,尺寸重設和翻轉功能。
wand – MagickWand的Python 繫結。MagickWand 是 ImageMagick的 C API 。

OCR
光學字元識別庫。
pyocr – Tesseract 和 Cuneiform 的一個封裝(wrapper)。
pytesseract – Google Tesseract OCR 的另一個封裝(wrapper)。
python-tesseract – Google Tesseract OCR 的一個包裝類。

音訊
用來操作音訊的庫
audiolazy -Python 的數字訊號處理包。
audioread – 交叉庫 (GStreamer + Core Audio + MAD + FFmpeg) 音訊解碼。
beets – 一個音樂庫管理工具及 MusicBrainz 標籤新增工具
dejavu – 音訊指紋提取和識別
django-elastic-transcoder – Django + Amazon Elastic Transcoder。
eyeD3 – 一個用來操作音訊檔案的工具,具體來講就是包含 ID3 元資訊的 MP3 檔案。
id3reader – 一個用來讀取 MP3 元資料的 Python 模組。
m3u8 – 一個用來解析 m3u8 檔案的模組。
mutagen – 一個用來處理音訊元資料的 Python 模組。
pydub – 通過簡單、簡潔的高層介面來操作音訊檔案。
pyechonest – Echo Nest API 的 Python 客戶端
talkbox – 一個用來處理演講/訊號的 Python 庫
TimeSide – 開源 web 音訊處理框架。
tinytag – 一個用來讀取MP3, OGG, FLAC 以及 Wave 檔案音樂元資料的庫。
mingus – 一個高階音樂理論和曲譜包,支援 MIDI 檔案和回放功能。

Video
用來操作視訊和GIF的庫。
moviepy – 一個用來進行基於指令碼的視訊編輯模組,適用於多種格式,包括動圖 GIFs。
scikit-video – SciPy 視訊處理常用程式。

地理位置
地理編碼地址以及用來處理經緯度的庫。
GeoDjango – 世界級地理圖形 web 框架。
GeoIP – MaxMind GeoIP Legacy 資料庫的 Python API。
geojson – GeoJSON 的 Python 繫結及工具。
geopy – Python 地址編碼工具箱。
pygeoip – 純 Python GeoIP API。
django-countries – 一個 Django 應用程式,提供用於表格的國家選擇功能,國旗圖示靜態檔案以及模型中的國家欄位。

HTTP
使用HTTP的庫。
requests – 人性化的HTTP請求庫。
grequests – requests 庫 + gevent ,用於非同步 HTTP 請求.
httplib2 – 全面的 HTTP 客戶端庫。
treq – 類似 requests 的Python API 構建於 Twisted HTTP 客戶端之上。
urllib3 – 一個具有執行緒安全連線池,支援檔案 post,清晰友好的 HTTP 庫。

資料庫
Python實現的資料庫。
pickleDB – 一個簡單,輕量級鍵值儲存資料庫。
PipelineDB – 流式 SQL 資料庫。
TinyDB – 一個微型的,面向檔案型資料庫。
ZODB – 一個 Python 原生物件資料庫。一個鍵值和物件圖資料庫。

資料庫驅動
用來連線和操作資料庫的庫。
MySQL – awesome-mysql系列
mysql-python – Python 的 MySQL 資料庫連線器。
mysqlclient – mysql-python 分支,支援 Python 3。
oursql – 一個更好的 MySQL 連線器,支援原生預編譯指令和 BLOBs.
PyMySQL – 純 Python MySQL 驅動,相容 mysql-python。

PostgreSQL
psycopg2 – Python 中最流行的 PostgreSQL 介面卡。
queries – psycopg2 庫的封裝,用來和 PostgreSQL 進行互動。
txpostgres – 基於 Twisted 的非同步 PostgreSQL 驅動。

其他關係型資料庫
apsw – 另一個 Python SQLite封裝。
dataset – 在資料庫中儲存Python字典 – 可以協同SQLite,MySQL,和 PostgreSQL工作。
pymssql– 一個簡單的Microsoft SQL Server資料庫介面。

NoSQL 資料庫
cassandra-python-driver – Cassandra 的 Python 驅動。
HappyBase – 一個為 Apache HBase 設計的,對開發者友好的庫。
Plyvel – 一個快速且功能豐富的 LevelDB 的 Python 介面。
py2neo – Neo4j restful 介面的Python 封裝客戶端。
pycassa – Cassandra 的 Python Thrift 驅動。
PyMongo – MongoDB 的官方 Python 客戶端。
redis-py – Redis 的 Python 客戶端。
telephus – 基於 Twisted 的 Cassandra 客戶端。
txRedis – 基於 Twisted 的 Redis 客戶端。

ORM
實現物件關係對映或資料對映技術的庫。
關係型資料庫
Django Models – Django 的一部分。
SQLAlchemy – Python SQL 工具以及物件關係對映工具。
awesome-sqlalchemy系列
Peewee – 一個小巧,富有表達力的 ORM。
PonyORM – 提供面向生成器的 SQL 介面的 ORM。
python-sql – 編寫 Python 風格的 SQL 查詢。

NoSQL 資料庫
django-mongodb-engine – Django MongoDB 後端。
PynamoDB – Amazon DynamoDB 的一個 Python 風格介面。
flywheel – Amazon DynamoDB 的物件對映工具。
MongoEngine – 一個Python 物件檔案對映工具,用於 MongoDB。
hot-redis – 為 Redis 提供 Python 豐富的資料類型。
redisco – 一個 Python 庫,提供可以持續存在在 Redis 中的簡單模型和容器。

其他
butterdb – Google Drive 電子表格的 Python ORM。

Web 框架
全棧 web 框架。
Django – Python 界最流行的 web 框架。
awesome-django系列
Flask – 一個 Python 微型框架。
awesome-flask系列
Pyramid – 一個小巧,快速,接地氣的開源Python web 框架。

awesome-pyramid系列
Bottle – 一個快速小巧,輕量級的 WSGI 微型 web 框架。
CherryPy – 一個極簡的 Python web 框架,服從 HTTP/1.1 協議且具有WSGI 執行緒池。
TurboGears – 一個可以擴充套件為全棧解決方案的微型框架。
web.py – 一個 Python 的 web 框架,既簡單,又強大。
web2py – 一個全棧 web 框架和平臺,專注於簡單易用。
Tornado – 一個web 框架和非同步網路庫。

許可權
允許或拒絕使用者訪問資料或功能的庫。
Carteblanche – Module to align code with thoughts of users and designers. Also magically handles navigation and permissions.
django-guardian – Django 1.2+ 實現了單個物件許可權。
django-rules – 一個小巧但是強大的應用,提供物件級別的許可權管理,且不需要使用資料庫。

CMS
內容管理系統
django-cms – 一個開源的,企業級 CMS,基於 Django。
djedi-cms – 一個輕量級但卻非常強大的 Django CMS ,考慮到了外掛,內聯編輯以及效能。
FeinCMS – 基於 Django 構建的最先進的內容管理系統之一。
Kotti – 一個高階的,Python 範的 web 應用框架,基於 Pyramid 構建。
Mezzanine – 一個強大的,持續的,靈活的內容管理平臺。
Opps – 一個為雜誌,報紙網站以及大流量入口網站設計的 CMS 平臺,基於 Django。
Plone – 一個構建於開源應用伺服器 Zope 之上的 CMS。
Quokka – 靈活,可擴充套件的小型 CMS,基於 Flask 和 MongoDB。
Wagtail – 一個 Django 內容管理系統。
Widgy – 最新的 CMS 框架,基於 Django。

電子商務
用於電子商務以及支付的框架和庫。
django-oscar – 一個用於 Django 的開源的電子商務框架。
django-shop – 一個基於 Django 的店鋪系統。
Cartridge – 一個基於 Mezzanine 構建的購物車應用。
shoop – 一個基於 Django 的開源電子商務平臺。
alipay – 非官方的 Python 支付寶 API。
merchant – 一個可以接收來自多種支付平臺支付的 Django 應用。
money – 貨幣類庫with optional CLDR-backed locale-aware formatting and an extensible currency exchange solution.
python-currencies – 顯示貨幣格式以及它的數值。

RESTful API
用來開發RESTful APIs的庫
Django
django-rest-framework – 一個強大靈活的工具,用來構建 web API。
django-tastypie – 為Django 應用開發API。
django-formapi – 為 Django 的表單驗證,建立 JSON APIs 。

Flask
flask-api – 為 flask 開發的,可瀏覽 Web APIs 。
flask-restful – 為 flask 快速建立REST APIs 。
flask-restless – 為 SQLAlchemy 定義的資料庫模型建立 RESTful APIs 。
flask-api-utils – 為 Flask 處理 API 表示和驗證。
eve – REST API 框架,由 Flask, MongoDB 等驅動。

Pyramid
cornice – 一個Pyramid 的 REST 框架 。
與框架無關的
falcon – 一個用來建立雲 API 和 web app 後端的噶效能框架。
sandman – 為現存的資料庫驅動系統自動建立 REST APIs 。
restless – 框架無關的 REST 框架 ,基於從 Tastypie 學到的知識。
ripozo – 快速建立 REST/HATEOAS/Hypermedia APIs。

驗證
實現驗證方案的庫。
OAuth
Authomatic – 簡單但是強大的框架,身份驗證/授權客戶端。
django-allauth – Django 的驗證應用。
django-oauth-toolkit – 為 Django 使用者準備的 OAuth2。
django-oauth2-provider – 為 Django 應用提供 OAuth2 接入。
Flask-OAuthlib – OAuth 1.0/a, 2.0 客戶端實現,供 Flask 使用。
OAuthLib – 一個 OAuth 請求-簽名邏輯通用、 完整的實現。
python-oauth2 – 一個完全測試的抽象介面。用來建立 OAuth 客戶端和服務端。
python-social-auth – 一個設定簡單的社會化驗證方式。
rauth – OAuth 1.0/a, 2.0, 和 Ofly 的 Python 庫。
sanction – 一個超級簡單的OAuth2 客戶端實現。

其他
jose – JavaScript 物件簽名和加密草案的實現。
PyJWT – JSON Web 令牌草案 01。
python-jws – JSON Web 簽名草案 02 的實現。
python-jwt – 一個用來生成和驗證 JSON Web 令牌的模組。

模板引擎
模板生成和詞法解析的庫和工具。
Jinja2 – 一個現代的,對設計師友好的模板引擎。
Chameleon – 一個 HTML/XML 模板引擎。 模仿了 ZPT(Zope Page Templates), 進行了速度上的優化。
Genshi – Python 模板工具,用以生成 web 感知的結果。
Mako – Python 平臺的超高速輕量級模板。

Queue
處理事件以及任務佇列的庫。
celery – 一個非同步任務佇列/作業佇列,基於分散式訊息傳遞。
huey – 小型多執行緒任務佇列。
mrq – Mr. Queue -一個 Python 的分散式 worker 任務佇列, 使用 Redis 和 gevent。
rq – 簡單的 Python 作業佇列。
simpleq – 一個簡單的,可無限擴張的,基於亞馬遜 SQS 的佇列。

搜尋
對資料進行索引和執行搜尋查詢的庫和軟體。
django-haystack – Django 模組化搜尋。
elasticsearch-py – Elasticsearch 的官方底層 Python 客戶端。
elasticsearch-dsl-py -Elasticsearch 的官方高階 Python 客戶端。
solrpy – solr的 Python 客戶端。
Whoosh – 一個快速的純 Python 搜尋引擎庫。

動態訊息
用來建立使用者活動的庫。
django-activity-stream – 從你的站點行為中生成通用活動資訊流。
Stream-Framework – 使用 Cassandra 和 Redis 建立動態訊息和通知系統。

資源管理
管理、壓縮、縮小網站資源的工具。
django-compressor – 將連結和內聯的 JavaScript 或 CSS 壓縮到一個單獨的快取檔案中。
django-storages – 一個針對 Django 的自定義儲存後端的工具集合。
fanstatic – 打包、優化,並且把靜態檔案依賴作為 Python 的包來提供。
File Conveyor – 一個後臺駐留的程式,用來發現和同步檔案到 CDNs, S3 和 FTP。
Flask-Assets – 幫你將 web 資源整合到你的 Flask app 中。
jinja-assets-compressor – 一個 Jinja 擴充套件,用來編譯和壓縮你的資源。
webassets – 為你的靜態資源打包、優化和管理生成獨一無二的快取 URL。

電子郵件
用來傳送和解析電子郵件的庫。
django-celery-ses – 帶有 AWS SES 和 Celery 的 Django email 後端。
envelopes – 供人類使用的電子郵件庫。
flanker – 一個 email 地址和 Mime 解析庫。
imbox – Python IMAP 庫
inbox.py – Python SMTP 伺服器。
inbox – 一個開源電子郵件工具箱。
lamson – Python 風格的 SMTP 應用伺服器。
mailjet – Mailjet API 實現,用來提供批量傳送郵件,統計等功能。
marrow.mailer – 高效能可擴充套件郵件分發框架。
modoboa – 一個郵件託管和管理平臺,具有現代的、簡約的 Web UI。
pyzmail – 建立,傳送和解析電子郵件。
Talon – Mailgun 庫,用來抽取資訊和簽名。

URL處理
解析URLs的庫
furl – 一個讓處理 URL 更簡單小型 Python 庫。
purl – 一個簡單的,不可變的URL類,具有簡潔的 API 來進行詢問和處理。
pyshorteners – 一個純 Python URL 縮短庫。
shorturl– 生成短小 URL 和類似 bit.ly 短鏈的Python 實現。
webargs – 一個解析 HTTP 請求參數的庫,內建對流行 web 框架的支援,包括 Flask, Django, Bottle, Tornado和 Pyramid。

HTML處理
處理 HTML和XML的庫。
BeautifulSoup – 以 Python 風格的方式來對 HTML 或 XML 進行迭代,搜尋和修改。
bleach – 一個基於白名單的 HTML 清理和文字連結庫。
cssutils – 一個 Python 的 CSS 庫。
html5lib – 一個相容標準的 HTML 檔案和片段解析及序列化庫。
lxml – 一個非常快速,簡單易用,功能齊全的庫,用來處理 HTML 和 XML。
MarkupSafe – 為Python 實現 XML/HTML/XHTML 標記安全字元串。
pyquery – 一個解析 HTML 的庫,類似 jQuery。
untangle – 將XML檔案轉換為Python物件,使其可以方便的訪問。
xhtml2pdf – HTML/CSS 轉 PDF 工具。
xmltodict – 像處理 JSON 一樣處理 XML。

網路站點爬取
爬取網路站點的庫
Scrapy – 一個快速高階的螢幕爬取及網頁採集框架。
cola – 一個分散式爬蟲框架。
Demiurge – 基於PyQuery 的爬蟲微型框架。
feedparser – 通用 feed 解析器。
Grab – 站點爬取框架。
MechanicalSoup – 用於自動和網路站點互動的 Python 庫。
portia – Scrapy 視覺化爬取。
pyspider – 一個強大的爬蟲系統。
RoboBrowser – 一個簡單的,Python 風格的庫,用來瀏覽網站,而不需要一個獨立安裝的瀏覽器。

網頁內容提取
用於進行網頁內容提取的庫。
Haul – 一個可以擴充套件的影象爬取工具。
html2text – 將 HTML 轉換為 Markdown 格式文字
lassie – 人性化的網頁內容檢索庫。
micawber -一個小型網頁內容提取庫,用來從 URLs 提取富內容。
newspaper – 使用 Python 進行新聞提取,文章提取以及內容策展。
opengraph – 一個用來解析開放內容協議(Open Graph Protocol)的 Python模組。
python-goose – HTML內容/文章提取器。
python-readability– arc90 公司 readability 工具的 Python 高速埠
sanitize – 為雜亂的資料世界帶來調理性。
sumy – 一個為文字檔案和 HTML 頁面進行自動摘要的模組。
textract – 從任何格式的檔案中提取文字,Word,PowerPoint,PDFs 等等。

表單
進行表單操作的庫。
Deform – Python HTML 表單生成庫,受到了 formish 表單生成庫的啟發。
django-bootstrap3– 整合了 Bootstrap 3 的 Django。
django-crispy-forms – 一個 Django 應用,他可以讓你以一種非常優雅且 DRY(Don’t repeat yourself) 的方式來建立美觀的表單。
django-remote-forms– 一個平臺獨立的 Django 表單序列化工具。
WTForms – 一個靈活的表單驗證和呈現庫。
WTForms-JSON– 一個 WTForms 擴充套件,用來處理 JSON 資料。

資料驗證
資料驗證庫。多用於表單驗證。
Cerberus – A mappings-validator with a variety of rules, normalization-features and simple customization that uses a pythonic schema-definition.
colander – 一個用於對從 XML, JSON,HTML 表單獲取的資料或其他同樣簡單的序列化資料進行驗證和反序列化的系統。
kmatch – 一種用於匹配/驗證/篩選 Python 字典的語言。
schema -一個用於對 Python 資料結構進行驗證的庫。
Schematics – 資料結構驗證。
valideer – 輕量級可擴充套件的資料驗證和適配庫。
voluptuous – 一個 Python 資料驗證庫。主要是為了驗證傳入 Python的 JSON,YAML 等資料。

靜態站點生成器
靜態站點生成器是一個軟體,它把文字和模板作為輸入,然後輸出HTML檔案。
Pelican – 使用 Markdown 或 ReST 來處理內容, Jinja 2 來製作主題。支援 DVCS, Disqus.。AGPL 許可。
Cactus – 為設計師設計的靜態站點生成器。
Hyde – 基於 Jinja2 的靜態站點生成器。
Nikola – 一個靜態網站和部落格生成器。
Tinkerer – Tinkerer 是一個部落格引擎/靜態站點生成器,由Sphinx驅動。
Lektor – 一個簡單易用的靜態 CMS 和部落格引擎。

2016年10月20日 星期四

Ubuntu 16.04 Traditional desktop

1. apt-get update

2.apt-get install gnome-panel gnome-flashback gnome-session-flashback indicator-applet-appmenu

2016年10月11日 星期二

Gojko Adzic 是眾所皆知的名作者. 他所撰寫的 impact mapping, specification by example (有中譯本), Fifty Quick Ideas To Improve Your Tests,  Fifty Quick Ideas To Improve Your User Stories, 在市場上很受到歡迎. 這次他在 Agile Singapore 2016 介紹測試自動化的未來, 真的很值得一聽



Video link: https://www.youtube.com/watch?v=eXjxPuMcubQ&t=305s





以下是我記錄到一些有關 Gojko Adzic 目前看到的狀況:

1. 平臺爆炸化 (Platform Fragmentation)

以前 PC 是主流的用戶端, 而現在 mobile 才是王道. 大家都知道, Android, Apple 以及其他不知名牌子, 他們的 devices 有成千上萬, 即使你只處理主流的系統 Apple, 三星或是華為的, 也是多到不行. 你不可能在這些 devices , 一一測試你產品的正確性.

2. 雲端技術盛行 

雲端技術已經由早期採用者 (early adopters),  進入到晚期大眾 (late majority) 的階段. IDC 預測在 2017 年時, 公司的 IT 內會將近一半使用雲端技術. 這表示測試人員要面對這樣的系統架構, 以及運作環境. 你需要不同的測試方法或工具.

3. 前端複雜化

以前前端技術很單純, 只是應用系統表面的薄薄一層. 以前, 自動化金字塔說我們只需要做單元和中間層的自動化就好, 不需要在 UI 端花心思. 可是現在 singel page 技術, HTML5 等等層出不窮前端技術, 我們無法只靠手動測試就能把它測試的很完整了.






未來可能的趨勢:


1. 雲端平臺農場測試工具的崛起

以下是一些工具可以讓你測試一大堆平臺, 但是又不會花你太多時間

(1) AWS Device Farm: 可以將你的測試, 同時跑在不同的 devices 上面

(2) BrowserStack: 可以看你的 web site 跑在不同瀏覽器, OS, device 上的結果

(3) Sauce Labs: 可以把你的 Selenium test 跑在不同的不同版本的作業系統與瀏覽器

: 參考資料: SauceLabs selenium testing with selenium-webdriver





2. 版面設計和應用系統工作流程的自動化

之後可能會有一些視覺化的語言, 用來測試版面設計和應用系統工作流程, 並且能夠很方便將他們給自動化. 所以以後不再只是單純在白板上討論, 而是會將其畫面電子化, 並且整合到前端開發的 TDD 流程中.

(1) Galen Framework

(2) James Shore TDD Javascript screencast: CSS 的單元測試工具

(3) POP: 把畫在紙上的雛型, 轉換成真實的 web app
讓你的 App 原型躍然紙上——POP 開發團隊專訪

(4) InVision
InVision 釋出 Chat 使用者介面 UI 設計包免費下載 (Sketch & Photoshop)





3. 輔助人們去決定測試結果

與其自動決定什麼是對的結果, 不如提供比對資料, 讓人們可以快速決定測試結果是否通過. 之後會有工具透過執行畫面的比對, 或是觀察執行行為的差異, 讓人們很輕鬆決定受測系統是否沒問題.

(1) TextTest: 用來比對 log file, 文字, 或是 console dump

(2) VisualReview: 用來比對畫面的不同

(3) Applitools: 可搭配 Selenium, Appium Protractor, 來比對畫面的不同

: 視覺感知測試





4. 人工智慧會指導測試的進行

Machine Learning AI 將來會指導探索性測試的進行, 告訴測試人員哪些地方可能會有較多問題, 或者是使用者會有較多這樣的行為. 並且藉由雲端測試的結果可以進一步縮小之後要進行的測試的範圍. 當然啦, 這一段我是覺得有點太神了, 可能還要再個 4-5 年看看吧.



所以測試人員要跟得上時代, 需要 (1) 瞭解新的技術, (2) 想想新的技術對測試的幫助是什麼, (3) 檢視以前對的東西, 可能之後不見得會一直對所以測試也是不簡單的, 想要在職場上混, 也是要有三兩三的.


 Ubuntu has a mechanism, that is, the installed network card (NIC) will be renamed to another name when the system is booted. Although there...