`stringcase` 包在 PyPI 上相当受欢迎,每天下载量约为 15 万次。然而,自 2023 年 6 月以来,该项目没有任何活动迹象,唯一的一次更新只是合并了一个导致测试失败的拉取请求。作者最后一次的更改似乎是在 2017 年 8 月的最后一次 PyPI 发布几天后。尽管它是一个单文件的 Python 实现且没有依赖项,但从未发布过 wheel 文件。(如果你认为这不需要构建步骤,请阅读 [2]。)
然后,像许多其他不使用 `pyproject.toml` 文件或不分发 wheel 的“遗留”项目 [3] 一样,它在 Setuptools 78.0.1 下构建失败,因此也阻止了所有依赖它的项目的安装。
作为一种未来保障措施,我重新发布了该项目为 `stringcase-new` [4][5]。(作为“深度防御”,我还将项目的打包迁移到了 Flit ;))Python 代码的导入名称保持不变;如果你受到影响,只需在依赖规范中将 `stringcase` 添加 `-new`。版本控制也旨在保持连续性。1.2.2 版本的行为应与 1.2.0 完全相同,以防你需要一个与现代打包兼容的版本;1.2.3 将包含作者显然计划的 1.2.1 修复,以及来自社区的适当错误修复。
我在这方面尽量保持保守。如果你想要修复和额外功能,并且不介意不同的导入名称,你可能更愿意切换到 Casefy [6],它已经成为一个独立的热门项目 [7]。
恢复 PyPI 上被遗弃项目名称的过程 [8] 可能需要很长时间,但我受到鼓励去跟进。如果我最终能在 PyPI 上获得 `stringcase` 名称,我将重新构建发布(以修复元数据),并在原名称下提供。
如果你知道有任何项目依赖于 `stringcase`,包括间接依赖,请告知他们。一个主要的依赖项目是 `frictionless` [9],他们显然决定将 `stringcase` 作为供应商 [10]。(请记住,如果你固定或限制 `frictionless` 的版本,你将无法获得未来保障。)
我还想特别感谢 Pip 维护团队的 Damian Shaw [11],感谢他在协调讨论(以及对现有讨论的贡献)方面所做的非凡努力(例如 [12]),这些讨论围绕着允许从 Setuptools 中移除一个微不足道的、已被弃用多年的特性所引发的根本问题。这不仅仅关乎 Setuptools 的政策和被遗弃的项目:其他构建后端可以从中学习,构建前端(包括安装程序)可以为在构建隔离中使用的构建后端版本提供更好的覆盖,并且双方可以协调,使弃用警告对开发者更加可见。
希望有一天,Setuptools 也许会变成一个“仅仅”是构建后端的工具,就像它似乎想要的那样 [13]。
[0]: https://pypi.org/project/stringcase
[1]: https://pypistats.org/packages/stringcase
[2]: https://pradyunsg.me/blog/2022/12/31/wheels-are-faster-pure-python
[3]: https://github.com/pypa/setuptools/issues/4910
[4]: https://github.com/zahlman/stringcase-new
[5]: https://pypi.org/project/stringcase-new
[6]: https://github.com/dmlls/python-casefy
[7]: https://pypistats.org/packages/casefy
[8]: https://peps.python.org/pep-0541/#how-to-request-a-name-transfer
[9]: https://github.com/frictionlessdata/frictionless-py
[10]: https://github.com/frictionlessdata/frictionless-py/pull/1727
[11]: https://github.com/notatallshaw
[12]: https://discuss.python.org/t/_/85847
[13]: https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html
返回首页
最新
嘿,HN,
我想分享一个我最近制作的副项目:gen.printercow.com。这是一个简单的免费网络服务,只需访问一个网址即可生成二维码、Code39 和 Data Matrix 条形码。
示例 1: [https://gen.printercow.com/code39/svg/HELLO-WORLD](https://gen.printercow.com/code39/svg/HELLO-WORLD)
示例 2: [https://gen.printercow.com/qr/svg/HELLO-WORLD](https://gen.printercow.com/qr/svg/HELLO-WORLD)
这个项目最初是为了加深我对 Rust(使用 Salvo 框架)的理解而进行的练习。同时,它也填补了我在主要项目 Printercow.com(允许你在热敏打印机上打印 AI 聊天内容)中需要的小空白。我需要一种快速、可靠的方法来动态嵌入条形码,而不增加客户端的重依赖。
性能与托管:
它的速度似乎相当快!目前托管在德国法兰克福的一台小服务器上。在欧洲内部,我看到的响应时间通常在 25-30 毫秒左右。显然,从其他地区的延迟会更高。
隐私:
您编码的内容、IP 地址或其他个人身份信息(PII)都不会被记录。唯一被追踪的是每种生成的条形码类型的匿名内存计数器(用于查看哪些是热门的)。
我很想听听您的反馈,了解您发现的任何错误,或者讨论潜在的功能(其他条形码类型?)。如果您觉得它有用但遇到高延迟,请告诉我您希望在哪个地区增加服务器(例如,美国东部、亚太地区?)。
感谢您查看这个项目!
嗨,HN!我厌倦了那些有着无尽订阅和功能臃肿的日记应用,所以我自己做了一个。
它非常简单:
- 首先是网页应用
- 一次性付款,终身拥有(没有订阅的烦恼)
- 界面简洁,不会干扰你
- 只保留写作所需的基本功能
未来计划:
- 媒体上传
- 导入 Day One 的条目
如果你喜欢写日记,可以试试这个。期待听到你的反馈!