Taipy:一個基於Python的網頁框架,助力數據驅動應用開發
Taipy是一個使用Python構建數據驅動型Web應用的框架。開發者僅需Python即可創建Web應用,這對於數據科學家和分析專業人士尤其便捷,並在業界日益流行。截至本文撰寫之時,Taipy在GitHub上已擁有1.9k個fork和17.6k顆星。
我已參與Taipy項目貢獻一段時間。起初,源於我對數據科學和分析的濃厚興趣,並且我的技術技能與該項目契合良好。貢獻過程讓我獲得了寶貴的實踐經驗,能夠解決使用該框架的開發人員遇到的問題,並從經驗豐富的維護人員那裡學到了很多。在Hacktoberfest期間,我發現許多開發者在本地環境測試更新時遇到了困難。因此,我決定分享我的工作流程,希望能幫助其他有意貢獻Taipy的開發者。
高效工作流程設置
開始為項目貢獻代碼時,首先應查閱CONTRIBUTING.md
文件。閱讀貢獻指南後,你會發現Taipy在後台使用了React,即使用戶無需接觸任何JavaScript代碼。
我的大部分貢獻都集中在React部分。要檢查更新,需要構建React,將更新後的Taipy安裝到Python環境中,並運行測試Taipy腳本。每次都這麼做比較繁瑣,所以我創建了一個bash腳本。
taipy-build.sh
<code class="language-bash">#!/bin/bash # 自动化Taipy代码库的构建过程 # 构建taipy-gui cd ~/projects/taipy/frontend/taipy-gui/dom; npm i; cd ..; npm i --omit=optional; npm run build; # 构建taipy cd ~/projects/taipy/frontend/taipy; npm i; npm run build; # 安装新的taipy cd ~/projects/test-taipy; source venv/bin/activate pip install ../taipy</code>
運行此腳本後,只需在虛擬環境中運行taipy run --use-reloader main.py
即可查看更新後的效果。
pip install ../taipy
非常重要,它用於在本地安裝Taipy。請確保指向文件系統中的Taipy目錄。
示例PR
讓我們來看一下我在2025年提交給Taipy的第一個PR。
一位開發者發現,在單選模式下,Selector組件的高度屬性無效。
首先,需要創建一個簡單的Python腳本重現此bug。否則,無法檢查更新是否修復了問題。在這個問題中,維護人員提供了一個腳本,所以我使用了他的腳本。
重現bug後,我開始查看Taipy的代碼庫。在搜索“Selector”時,我找到了需要處理此問題的文件“Selector.tsx”。我還發現,在Selector組件中,高度屬性在單選模式和復選模式下未使用。我需要以某種方式傳遞高度屬性。參考其他樣式屬性的處理方式,最好使用useMemo
並創建高度。
最初,我將Sx傳遞給父元素(FormControl),效果符合預期,但維護人員反饋最好在RadioGroup/FormGroup級別控製樣式,因為標籤在Taipy應用程序中仍然可見。這對我來說是一個挑戰,因為這種方式的樣式不起作用。
在瀏覽器開發者工具中調整樣式時,我發現flexFlow: column wrap
是導致此行為的原因。我在heightSx
中添加了flexFlow: 'column nowrap'
。安裝更新後的Taipy後,我使用測試腳本驗證了此修復方案。
實現修復後,需要創建單元測試。添加新的測試用例並不難,因為我可以從現有的測試中看到很多示例。我為單选和複選模式的高度樣式添加了新的測試。
這看起來很簡單,但我嘗試了很多次才成功。在與維護人員的反饋進行改進後,我的PR最終被批准並合併了。 ??
選擇適合自己的問題
我知道你渴望完成令人印象深刻的工作,但是,如果你選擇超出你能力範圍的難題,對你和維護人員來說都是不可持續的。選擇簡單的問題可以讓你熟悉項目,並學習新知識。我通常會在申請任務之前先研究一下問題,以確保自己能夠處理。
正如藤田智(Tomo Fujita)所說:
不要擔心 不要比較 不要期望太快 善待自己
如果貢獻Taipy代碼庫對你來說太難,你也可以關注taipy-doc。文檔對於庫來說非常重要。
總結
為Taipy貢獻代碼是一段有益的旅程。無論你是修復bug、增強功能還是改進文檔,每一次貢獻都很重要。不要猶豫,從小事做起——你的努力可能會幫助下一個遇到同樣問題的開發者!
以上是開始為流行的開源項目做出貢獻的詳細內容。更多資訊請關注PHP中文網其他相關文章!