Contextualist 最近的时间轴更新
Contextualist

Contextualist

V2EX 第 168698 号会员,加入于 2016-04-17 17:49:12 +08:00
今日活跃度排名 14034
shx: 用 Python 写脚本的利器
分享创造  •  Contextualist  •  79 天前  •  最后回复来自 sinux
9
一张无法在微信里发送的 GIF
全球工单系统  •  Contextualist  •  138 天前  •  最后回复来自 Jaosn
3
最近发现 defaultdict 的一个奇技淫巧
Python  •  Contextualist  •  149 天前  •  最后回复来自 vegetableChick
15
Python 类型注解, Enum 还是 str Literal?
Python  •  Contextualist  •  182 天前  •  最后回复来自 crclz
2
求推荐合适的 RPC 或 消息队列
问与答  •  Contextualist  •  2020-04-03 11:10:54 AM  •  最后回复来自 waising
5
劫持/接管进程的所有文件读写
问与答  •  Contextualist  •  2020-04-01 09:35:08 AM  •  最后回复来自 Contextualist
4
零配置命令行局域网传文件/剪贴板
分享创造  •  Contextualist  •  2019-07-25 08:20:24 AM  •  最后回复来自 Contextualist
9
V 语言到底是个怎样的存在?
编程  •  Contextualist  •  2019-07-18 19:34:54 PM  •  最后回复来自 legiorange
16
一个任意网页反代的 Serverless 实现
分享创造  •  Contextualist  •  2019-06-04 14:09:22 PM  •  最后回复来自 sindri
4
Contextualist 最近回复了
40 天前
回复了 chaleaoch 创建的主题 Python gevent 还在流行吗?
就我了解,gevent 最初要解决的问题是提供一个高性能的异步库,因为那个时候 Python 没有语言层面上对异步的支持( async / await 和对应的生态)。而现在的情况是,Python 3.6 左右时原生异步就比较可用了,3.8 时内置 AsyncIO 库的设计和性能也跟上了,所以新项目基本都采用 AsyncIO 了。毕竟 gevent 本身在当时有限条件,整个实现方式就是个 hack:monkey-patch 在一些边角情况下会有各种奇奇怪怪的问题。

实际上 gevent 尝试解决一个更大的问题,重写了 Python 解释器的底层,有兴趣可以查查 stackless Python 。

另外也像 #4 楼说的,异步的需求一般都跟网络相关,而对于这部分的应用很多人都转 Go 了。
43 天前
回复了 enderftt 创建的主题 Python Python lambda 改写
@enderftt
#5 楼的第一种写法是 Python 3.9 新增的语法

如果要兼容 Python 3.9 以下的版本,个人比较推荐 #4 楼 或 #7 楼的 immutable 写法。
@Rheinmetal 原来如此。看了一下 Poetry 好像就把额外的构建步骤放在 build.py 里了。我还是倾向分发已经编译好的二进制文件,毕竟这也是 wheel 的初衷。

@frostming 感谢点拨,用上了 build hook,然后加上了 --plat-name=manylinux1_x86_64 选项。
@ampedee 看了一下官方文档,似乎大部分的篇幅都在讲 package_data 这个保留数据文件的方式(但这个不能将文件移动到包自身路径以外的位置)。

@Rheinmetal 看了一下这两个 PEP 似乎是讲将构建的后端开放给 Poetry 或 Flit 一类第三方构建工具,而不局限于 setuptools 。

其实我苦恼的应该是找不到一个官方或者非官方的指南讲解如何在构建过程中纳入别的语言的编译(能找到的基本都在讲 C extension )。然后 Python 的打包生态总体比较割裂,历史遗留问题也多。感觉 Anaconda 在分发预编译文件这方面的好像考虑得比较多(不过他们的依赖解析器实在是太难用了。
@abersheeran 哈哈这商业互吹。这个倒提醒我了,同时使用多个语法拓展或许还是需要接入像 https://github.com/thautwarm/moshmosh 这样的框架。
过了一遍教程,是个有意思的角度,并且作者各种情况考虑得很细(因为“融合”确实会带来很多问题)。
感觉可读性是个比较大的问题,Shell 的命令一眼看过去就像个 Python 变量(而且确实有像 ls -l 这样的歧义语句),不过一个足够强大的语法高亮或许可以缓解。
另外为了深度融合加入了许多 DSL,比如我个人感觉在命令中嵌入 Python 表达式感觉完全是徒增复杂性(@(['echo', 'hello', 'world']) 这个求值后竟然还会被隐式转为命令),与之相比 f-string 原生而不会产生任何歧义。
很高兴能给你带来启发。如果对函数式魔改 Python 感兴趣的话,可以看看红姐( thautwarm )的东西。另外好奇这个项目名字的含义?

粗略看了一下,想问一下为什么要为了解包额外定义运算符 ||> ,而不利用 Python 自己的解包语法呢?比如你测试里的 (1, 11) ||> range 是不是可以写成 *(1, 11) |> range ?
84 天前
回复了 Contextualist 创建的主题 分享创造 shx: 用 Python 写脚本的利器
@abersheeran 感谢提出,这两个接口是可以覆盖挺多场景。其实我自己的主要用途还是需要封装异步的接口。
然后又仔细拜读了一下文档,发现 check_call 和 check_output ( python 3.1 )竟然是先于 subprocess.run ( python 3.5 )的,看来官方倾向于整合成一个高级接口,算是牺牲便捷换取风格统一吧。
84 天前
回复了 Contextualist 创建的主题 分享创造 shx: 用 Python 写脚本的利器
@ch2 对,Python 的 pathlib 和 shutil 已经可以进行大部分的文件操作了,但主要是调用外部命令不算方便:subprocess.run 需要预设一些参数,asyncio 的 subprocess 更是缺少一些高级封装。如果拿来日常使用还是需要写一些重复代码的。
#2 提到的 Documents 这个 App 里有个内建的连接配对电脑浏览器的功能,就局域网内传输,挺方便。有进度条。我自己用传过百来 M 的文件,没试过更大的了。
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2154 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 15:11 · PVG 23:11 · LAX 08:11 · JFK 11:11
♥ Do have faith in what you're doing.