返回首页
最新
你好,我想研究一下Digg,想了解它的情况,请帮帮我哈哈。我在Reddit上运营一些大型子版块,希望Reddit上所有好的内容(比如爱好类、科技类、表情包类的子版块,以及其他所有好的东西)都能迁移过来。我能否获得一个用户代码来加入?请告诉我这里是否是问这个的合适地方,哈哈。
SQL优先的分析IDE;类似于Redash/Metabase。旨在通过修改后的语法Trilogy解决代码层面的重用/组合性问题,该语法在类SQL语言中直接包含了语义层。
<p>状态:实验阶段;欢迎反馈和贡献!</p>
<p>旨在解决我在使用SQL作为主要迭代分析语言时遇到的三个问题:</p>
1. 调整查询/分析需要大量的样板代码。通过在语义层上操作的查询来解决,而不是直接操作表格。这也消除了对CTE(公用表表达式)的需求。
2. 真实数据源经常变化。我讨厌更新报告以引用新的表格。语义层也解决了这个问题,因为数据绑定可以在不更改仪表板或查询的情况下进行更新。
3. 在许多工具中,从SQL到可视化的过程工作量太大;尽可能简化这个过程。惊喜——通过语义层来解决;增加更具表现力的类型以获得更好的默认设置;还可以利用它来实现自动下钻/交叉过滤。
<p>支持:BigQuery、DuckDB、Snowflake。</p>
<p>链接
[1] <a href="https://trilogydata.dev/" rel="nofollow">https://trilogydata.dev/</a>(语言信息)</p>
<p>Git链接:
[前端] <a href="https://github.com/trilogy-data/trilogy-studio-core" rel="nofollow">https://github.com/trilogy-data/trilogy-studio-core</a>
[语言] <a href="https://github.com/trilogy-data/pytrilogy" rel="nofollow">https://github.com/trilogy-data/pytrilogy</a></p>
<p>之前的内容:
<a href="https://news.ycombinator.com/item?id=44106070">https://news.ycombinator.com/item?id=44106070</a>(自那以来进行了显著的用户体验/功能重构)
<a href="https://news.ycombinator.com/item?id=42231325">https://news.ycombinator.com/item?id=42231325</a></p>
我正在开发一个小型监控和任务自动化工具,想向您请教一些问题:
在您使用新工具的入门过程中,有什么让您真正愿意尝试这个工具的因素吗?
是预填充的演示数据吗?“一键”设置?从Prometheus或Grafana导入数据?还是说只是非常好的默认设置和文案,让整个过程显得毫不费力?
我特别想了解开发人员和运维团队是如何决定某个工具是否值得测试的。
期待听到您关于有效或无效的入门体验的例子。
NanoBibi 让创作者和团队能够批量生成和编辑图像,利用人工智能轻松去除背景、放大、重新风格化或在几分钟内创建新视觉效果。
我创建 Valid8r 是因为我厌倦了为每个 CLI 工具编写相同的输入验证代码。你知道这个模式:解析一个字符串,检查它是否有效,如果无效则打印错误,重新询问。对每个参数重复这个过程。
这个库使用 Maybe 单子(成功/失败而不是异常),因此你可以链式调用解析器和验证器:
```python
# 尝试一下:pip install valid8r
from valid8r.core import parsers, validators
# 在一个管道中解析和验证
result = (
parsers.parse_int(user_input)
.bind(validators.minimum(1))
.bind(validators.maximum(65535))
)
match result:
case Success(port): print(f"使用端口 {port}")
case Failure(error): print(f"无效: {error}")
```
我为 argparse、Click 和 Typer 创建了集成,这样你就可以直接将 valid8r 解析器嵌入到现有的 CLI 中,而无需重构所有代码。
有趣的技术点是:在简单解析(整数、电子邮件、UUID)方面,它比 Pydantic 快 4-300 倍,因为它不构建模式或进行运行时类型检查。它仅解析字符串并返回 Maybe[T]。对于复杂的嵌套验证,Pydantic 仍然更好。我对两者进行了基准测试,并记录了各自的优劣。
我并不是想取代 Pydantic。如果你正在构建 FastAPI 服务,请使用 Pydantic。但如果你正在构建 CLI 工具或解析网络配置,Maybe 单子组合得非常好,并且保持你的代码功能性。
文档在 [https://valid8r.readthedocs.io/](https://valid8r.readthedocs.io/) ,基准测试在代码库中。它是 MIT 许可的。
非常希望能收到关于 API 设计的反馈。Maybe 单子模式对 Python 来说是否太奇怪,还是让验证代码更简洁?
---
这里有几个示例,展示了相同端口验证的不同语法选项:
```python
from valid8r.core import parsers, validators
# 选项 1:使用 & 运算符组合验证器
validator = validators.minimum(1) & validators.maximum(65535)
result = parsers.parse_int(user_input).bind(validator)
# 选项 2:使用 parse_int_with_validation(内置)
result = parsers.parse_int_with_validation(
user_input,
validators.minimum(1) & validators.maximum(65535)
)
# 选项 3:交互式提示(持续询问直到有效)
from valid8r.prompt import ask
port = ask(
"请输入端口号(1-65535):",
parser=lambda s: parsers.parse_int(s).bind(
validators.minimum(1) & validators.maximum(65535)
)
)
# 这里 port 保证有效,无需匹配
# 选项 4:创建可重用的解析器函数
def parse_port(text):
return parsers.parse_int(text).bind(
validators.minimum(1) & validators.maximum(65535)
)
result = parse_port(user_input)
```
& 运算符可能是组合验证器最简洁的方式。交互式提示也很好,因为你不需要匹配成功/失败,它会不断循环,直到用户提供有效输入。