小编roc*_*cky的帖子

在较新的Getopt :: Long中如何设置默认的可选值

在Perl的Getopt :: Long版本2.39我可以使用

use Getopt::Long qw( :config gnu_getopt );
GetOptions(
   \my %opts, 
   "codon-view|c:20",    # Optional value, default 20
   "consensus|C:50", 
   ...
)
Run Code Online (Sandbox Code Playgroud)

表示,如果我使用-c默认值是20放在%opts下键codon-view-c给出,但它没有明确的价值是存在的.另一方面-c或未--codon-view提供,则哈希表中没有值存储%opts.

在2.48中,这不再有效,我在Getopt :: Long的文档中没有看到

$ perl -E'
   use Getopt::Long qw( :config gnu_getopt );
   say $Getopt::Long::VERSION;
   GetOptions(\my %opts, "codon-view|c:20");
   say $opts{"codon-view"} // "[undef]"
' -- -c
2.39
20

$ perl -E'
   use Getopt::Long qw( :config gnu_getopt );
   say $Getopt::Long::VERSION;
   GetOptions(\my %opts, "codon-view|c:20");
   say $opts{"codon-view"} …
Run Code Online (Sandbox Code Playgroud)

perl getopt-long

3
推荐指数
1
解决办法
694
查看次数

如何让Rust编译器转储它生成的LLVM?

我想看看Rust编译器生成的LLVM.更好的方法是让它只是转出LLVM并停止.这可以是bitcode格式或汇编文本.

rust llvm-ir

3
推荐指数
1
解决办法
547
查看次数

如何为一组特定的 python 版本创建 Python 轮?py2.py3-none-any.whl 太宽泛

我有一个适用于 Python 2.4-2.7 的包。3.2-3.7。请注意,这并不适用于所有 Python 2 或 Python 3,而是特定版本。

碰巧这个包支持具有不同源代码的Python 2.4和2.5。

我一直在为每个版本分发鸡蛋,因为这是非常具体的,而且我setup.py bdist_wheel创建的东西太宽泛,无法匹配我不想匹配的 Python 版本。

py2.py3-non-any.whl当我创建一个轮子时,我会使用对于 Python 2.4 和 2.5 来说是错误的扩展。(压缩包也是如此)。

PyPi 只允许使用一个 tarball,所以现在我使用非 2.4、2.5 源代码。如果能够包含 2.4 2.5 源代码那就太好了。嗯,也许我可以把它做成拉链?(可能不会)。

我如何通知 setup.py 我只想要一个py35-non-any.whl?或者 py2 指定为 2.6 或 2.7?py3 仅适用于 3.2 及更高版本。

或者更一般地说,有什么简单的方法可以进行设置,以便无论运行什么 python 版本,pip 都会选择正确的 pypi 文件?

python distutils pip pypi

3
推荐指数
1
解决办法
5414
查看次数

在 npm 包级别进行猴子修补?

我想扩展 npm 包“truffle”,但目前在版本 4(和版本 5)中,“truffle”没有插件扩展机制。

所以最广泛的问题是如何“猴子修补”它。一种可能是将 truffle 包列为依赖项,然后运行一些 shell 命令(例如“patch”)来修改通常安装在node_modules.

npm 是否有办法在成功安装节点依赖项后运行此类 shell 命令?

还有其他建议吗?(另一种方法可能是在nodejs级别进行猴子修补,但我认为这会更麻烦。)

编辑

中的postinstall 字段可能就是我正在寻找的。scriptspackage.json

monkeypatching node.js npm npm-install

3
推荐指数
1
解决办法
2827
查看次数

与同步函数相比,nodejs 调用异步函数然后调用 await 有什么优势吗?

我最近在异步函数中看到了这种代码:

async function foo() {
    const readFile = util.promisify(fs.readFile);
    const data = await readFile(file, 'utf8');
    // .... other code
}
Run Code Online (Sandbox Code Playgroud)

这样做有什么好处:

async function foo() {
    const data = readFileSync(file, 'utf8');
    // ... other code
}
Run Code Online (Sandbox Code Playgroud)

一般来说,我感兴趣的是,与调用异步函数并立即等待返回相比,与不等待而调用相应的同步函数相比,是否有任何优势。

假设这个异步函数已经被包装在一个承诺中?

注意:一些评论和答案引用了此代码的早期版本,该版本存在错误并且意图不太清楚。

node.js

3
推荐指数
1
解决办法
236
查看次数

将 Python 复杂字符串输出(如 (-0-0j))转换为等效的复杂字符串

在 Python 中,我想要一种将其复数字符串输出转换为等效字符串表示的好方法,当由 Python 解释时,该表示给出相同的值。

基本上,我想要complexStr2str(s: str): str具有与eval(complexStr2str(str(c)))无法区分的属性的函数c,对于任何c其值类型为 complex 的函数。然而,complexStr2str()只需要处理复杂值str()repr()输出的字符串模式类型。注意对于复数值str()repr()做同样的事情。

我所说的“不可区分”并不是==Python 意义上的;你可以定义(或重新定义)它意味着你想要的任何东西;“不可区分”意味着如果a程序中有代表某个值的字符串,并将程序中的字符串替换为字符串b(可能正好是a),则无法区分 Python 程序的运行和替换程序,缺乏对程序的内省。

请注意,尽管前者是 Python 将为or输出的内容(-0-0j)-0j但这与. 如下面的交互式会话所示,实部和虚部为 -0.0,实部和虚部为0.0。str(-0j)repr(-0j)-0jfloat-0-0jfloat

问题是像值的存在而变得更加困难naninf。尽管在 Python 3.5+ ish 中您可以importmath中获取这些值,但出于各种原因,我想避免这样做。不过使用float("nan")是没问题的。

考虑这个 Python 会话:

>>> -0j
(-0-0j)
>>> -0j.imag …
Run Code Online (Sandbox Code Playgroud)

python complex-numbers python-3.x

2
推荐指数
1
解决办法
471
查看次数