找出 GitHub 上和 Python 3 不相容的 Python 專案

作者: Yong-Siang Shih / Sat 10 September 2016 / 分類: Projects

2to3, GitHub, py3tracker, Python 3

Porting to Python 3

Python 3 已經釋出近八年,原本一片慘紅的 Python 3 ReadinessPYTHON 3 WALL OF SUPERPOWERS 都已經接近全綠,真的可以看見社群逐漸朝向 Python 3 的努力。事實上,也開始有些專案漸漸要中止 Python 2 的支援了。

然而其實還是有不少常用的 packages 並不支援 Python 3,像是最近常會用到的 s3cmd 就是一例。到了他們的 Issues 頁面瞧瞧,發現其實很早以前就有想支援 Python 3 的聲音,只是一直沒有人力去做。

其實,雖然要完全支援的話工程有點浩大,但一小步一小步做起來就在可以處理的範圍之內。有些情況甚至用 2to3 就能有很大幫助了。於是忍不住就順手發了一個 pull request,結果很順利就被 merge 了。感覺是很低成本的讓自己感覺對世界有貢獻的方法之一。

找出可以幫忙的 repositories

於是想到,其實說不定 GitHub 上也還存在許多可以發 pull requests 的 repositories,於是就想寫個類似 Python 3 Readiness 的頁面,專門列出有在 GitHub 上但是卻不支援 Python 3 的專案,讓有強迫症的路人可以簡單找出可以去哪貢獻。

就這樣,py3tracker 誕生了。

主要的作法是先用 PyPI API 找出最多人下載的 projects,然後再透過 caniusepython3 檢查哪些不支援 Python 3,最後再偵測該 project 在 GitHub 上是否有公開原始碼。順便抓星星數用來排序。

本來想用 GitHub API 但是一下子就超過一天查詢限制,所以只好強抓網頁了。

最後的網頁樣板則是用 materializecss 快速做成。

希望對有強迫症的路人有所幫助。

Notebook
Yong-Siang Shih

作者

Yong-Siang Shih

軟體工程師,機器學習科學家,開放原始碼愛好者。曾在 Appier 從事機器學習系統開發,也曾在 Google, IBM, Microsoft 擔任軟體實習生。喜好探索學習新科技。* 在 GitHub 上追蹤我

載入 Disqus 評論