小编Ale*_*air的帖子

简单的cov gem缺少Rails中未经测试的文件

simple_cov在Rails应用程序中使用gem,我们可以在报告中包含我们未测试的文件吗?

  • 如果有,怎么样?

  • 如果不是,那些文件应该计入覆盖百分比,对吧?

ruby-on-rails simplecov

28
推荐指数
3
解决办法
4672
查看次数

为什么 mypy 发现我的任何导入“没有类型提示或库存根”?

我正在开发一个代码库,其中有很多由以前的开发人员编写的类型提示。在某些时候,我注意到这些提示没有进行类型检查,如果我想检查它们,我需要在构建中添加一个步骤。我对 python 很熟悉,但从未使用过类型提示,所以我读了很多关于它们的文章,但我仍然有很多东西需要理解。最终我得出结论,mypy 是用于对这些类型提示进行类型检查的主程序。所以我 pip 安装了 mypy 并运行mypy .。我遇到了很多这样的错误;

error: Skipping analyzing 'setuptools': found module but no type hints or library stubs
error: Skipping analyzing 'numpy': found module but no type hints or library stubs
error: Skipping analyzing 'tensorflow.compat.v1': found module but no type hints or library stubs
error: Skipping analyzing 'tensorflow': found module but no type hints or library stubs
Run Code Online (Sandbox Code Playgroud)

我很惊讶这些默认情况下被视为错误,因为我读到的有关类型提示的所有内容都强调它们是可选的。所以我的第一个问题是,为什么 mypy 将上述内容视为显示停止错误而不是简单的警告?

然后我用谷歌搜索错误消息并找到mypy 文档的此页面。这可以说是非常清楚的,但令我困惑的是,它似乎表明这个错误是一个应该解决的大问题。它提供了多个选项来解决它,增加工作量,然后它们最终告诉您 CLI 标志将消除所有错误。当然,大多数项目都会导入不使用类型提示的库,并且需要使用此标志?

由于这些线索,我决定我应该继续尝试,寻找包裹。接下来让我困惑的是,它似乎无法找到我所有导入的类型提示。我不希望更多晦涩的库有书面类型提示,但肯定有人为 numpy 或 pytest 编写了它们?types- …

python type-hinting mypy

25
推荐指数
1
解决办法
4万
查看次数

如何在 delve 中打印字符串变量的完整值?

我正在使用 delve go 调试器来调试一些代码。当我尝试打印字符串变量时,它给了我一个缩写版本。

(dlv) print myString
"my string...+539 more"
Run Code Online (Sandbox Code Playgroud)

我如何让它打印完整的字符串?

debugging go delve

23
推荐指数
3
解决办法
9829
查看次数

这两个Ruby符号有什么区别?

在玩了对象id之后我发现了这个.

ObjectSpace._id2ref(2648)
=> :**
ObjectSpace._id2ref(6688)
=> :**
ObjectSpace._id2ref(2648) == ObjectSpace._id2ref(6688)
=> false
Run Code Online (Sandbox Code Playgroud)

第一个是求幂运算符的符号;

2.send(ObjectSpace._id2ref(2648), 3)
=> 8
2.send(ObjectSpace._id2ref(6688), 3)
NoMethodError: undefined method `**' for 2:Fixnum
Run Code Online (Sandbox Code Playgroud)

但第二个不知何故不是?我认为它们在传递给#print之后看起来一样.但是,什么区别?其中一个是某种形式的unicode符号吗?

更新:第二个可能是关键字参数的新双splat,但我似乎无法验证这一点.

ruby symbols splat objectid

13
推荐指数
1
解决办法
264
查看次数

如何修复alembic的"请求的修订与其他请求的修订重叠"?

我在一个团队中使用alembic来管理数据库迁移.我最近拉了主人,并试图跑alembic upgrade heads.我收到以下消息;

INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
ERROR [alembic.util.messaging] Requested revision a04c53fd8c74 overlaps with other requested revisions 453d88f67d34
  FAILED: Requested revision a04c53fd8c74 overlaps with other requested revisions 453d88f67d34
Run Code Online (Sandbox Code Playgroud)

我试图跑的时候得到了同样的信息alembic downgrade -1.跑步alembic history打印这个;

453d88f67d34 -> a04c53fd8c74 (label_1, label_2) (head), Create such and such tables.
2f15c778e709, 9NZSZX -> 453d88f67d34 (label_1, label_2) (mergepoint), empty message
b1861bb8b23f, b8aa3acdf260 -> 2f15c778e709 (label_1, label_2) (mergepoint), Merge heads b18 and b8a
(...many more old …
Run Code Online (Sandbox Code Playgroud)

alembic

13
推荐指数
2
解决办法
2034
查看次数

如何在Go中单元测试命令行标志?

我想要一个单元测试来验证特定命令行标志是否在枚举中.

这是我想编写测试的代码:

var formatType string

const (
    text = "text"
    json = "json"
    hash = "hash"
)

func init() {
    const (
        defaultFormat = "text"
        formatUsage   = "desired output format"
    )

    flag.StringVar(&formatType, "format", defaultFormat, formatUsage)
    flag.StringVar(&formatType, "f", defaultFormat, formatUsage+" (shorthand)")

}

func main() {
    flag.Parse()
}
Run Code Online (Sandbox Code Playgroud)

只有当-format等于上面给出的一个const值时,所需的测试才会通过.此值可在formatType中使用.一个正确的调用示例是:program -format text

测试所需行为的最佳方法是什么?

注意:也许我的措辞很差,但显示的代码不是单元测试本身,而是我想编写单元测试的代码.这是我正在编写的工具中的一个简单示例,并且想要询问是否有一种很好的方法来测试该工具的有效输入.

unit-testing go

10
推荐指数
2
解决办法
6627
查看次数

为nose2输出添加颜色

这是一个很简单的问题,但我无法在任何地方找到它...如何使用nose2为运行测试的输出添加颜色?例如,我希望失败显示为红色.

python nose2

10
推荐指数
1
解决办法
492
查看次数

朱莉娅`remotecall`线程给出了不同的结果

在从手册中学习Julia时,我想看看是否可以让Julia同时在我的所有四个CPU核心上运行硬计算.我用这个命令启动了朱莉娅;

julia -p 4
Run Code Online (Sandbox Code Playgroud)

然后我定义了以下函数,只是为了进行大量的算术运算.mod 13就在那里,因此它最终不会打印出庞大的数字.

@everywhere function hard_computation()         
  bigexp = BigInt(999)^99999999
  bigexp % 13
end
Run Code Online (Sandbox Code Playgroud)

然后我告诉朱莉娅在四个不同的过程中这样做.

for i in 1:4
  push!(r, remotecall(i, hard_computation))
end
Run Code Online (Sandbox Code Playgroud)

当我fetch在r中编辑值时,我得到了[5, 6, 5, 5].我试了几次,然后得到了; 5, 5, 5, 5, 5, 1, 5, 5, 5, 2, 0, 5, 5, 5, 5, 7.正确的答案是5.

那么......出了什么问题?

系统信息;

  • 朱莉娅0.2.1
  • Linux 3.5.0-17-generic(x86_64)
  • 英特尔酷睿i5-2430M

multithreading julia

9
推荐指数
1
解决办法
202
查看次数

如何创建一个通过其他两个枚举器进行延迟迭代的ruby枚举器?

比方说,我有两个枚举,enum1enum2必须通过懒洋洋地迭代(因为他们有副作用).如何构建第三枚举enum3,其中enum3.each{|x| x}懒洋洋地返回相当于enum1 + enum2

在我的真实世界用例中,我在两个文件中流式传输,需要流式传输串联.

ruby enumerator lazy-sequences

7
推荐指数
1
解决办法
719
查看次数

定义后装饰一个函数?

认为答案是肯定的,但我似乎无法找到明确的主张.我有以下情况;

def decorated_function(function):
    @functools.wraps(function)
    def my_function():
        print "Hello %s" % function.__name__
    return my_function

for attr, value in dct.iteritems():
    dct[attr] = decorated_function(value)
Run Code Online (Sandbox Code Playgroud)

而我真正想要的是这样的;

def my_function(function):
    print "Hello %s" % function.__name__

for attr, value in dct.iteritems():
    dct[attr] = functools.wraps(my_function, value)
Run Code Online (Sandbox Code Playgroud)

删除decor_function令人困惑的shell.装饰器只能在定义函数时应用吗?

python python-decorators

6
推荐指数
1
解决办法
2270
查看次数

Pythonic分离进程的方法?

我正在运行一个etcd进程,它一直保持活动直到你杀死它.(它不提供守护进程模式选项.)我想分离它,以便我可以继续运行更多的python.

我会在shell中做什么;

etcd & next_cmd
Run Code Online (Sandbox Code Playgroud)

我正在使用python的sh库,在整个互联网的热情推荐下.我宁愿不沉浸于,subprocess或者Popen我也没有找到使用它们的解决方案.

我想要的是;

sh.etcd(detach=True)
sh.next_cmd()
Run Code Online (Sandbox Code Playgroud)

要么

sh.etcd("&")
sh.next_cmd()
Run Code Online (Sandbox Code Playgroud)

不幸的是detach不是一个kwarg和sh对待"&"的一个标志etcd.

我在这里错过了什么吗?这样做的好方法是什么?

python subprocess detach etcd

5
推荐指数
1
解决办法
1万
查看次数

dbt:模型“bar”取决于模型“foo”,该模型未找到或被禁用

我正在使用名为dbt的命令行工具。整个项目有点复杂,所以我将尝试描述基本布局。

这是我的缩写文件树;

dbt_project.yml
.user.yml
dbt_modules
models/baz/subdir/baz_mytable.sql
models/sources/baz/baz_myinfo.sql
profiles.yml
Run Code Online (Sandbox Code Playgroud)

以下是 的简短内容dbt_project.yml。引用两个相关 .sql 文件的目录,并选取并行文件夹结构内的依赖项。

name: 'my_proj'
version: '1.0'
source-paths: ["models"]
modules-path: "dbt_modules"
...
models:
  my_proj:
    ...
    baz:
      subdir:
        materialized: table
        schema: baz_final
    sources:
      baz:
        materialized: view
        schema: baz_cleaned
  ...
Run Code Online (Sandbox Code Playgroud)

以下是 的简短内容baz_myinfo.sql

{{ config(alias='myinfo') }}
SELECT ...
Run Code Online (Sandbox Code Playgroud)

以下是 的简短内容baz_mytable.sql

WITH sometable AS (
    SELECT ... FROM {{ ref('myinfo') }} ...
Run Code Online (Sandbox Code Playgroud)

鉴于这一切,当我运行 dbt 命令时,我收到错误“Model 'model.my_proj.baz_mytable' depends on model 'myinfo' which was not found or is disabled …

dbt

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