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中文网其他相关文章!