小编sha*_*unc的帖子

从numpy数组中组装cython memoryview

我有一堆numpy数组作为python对象数组的属性,在cython中,为prange处理做准备(需要nogil),我想创建一个在第一维中"间接"的内存视图,并且其进一步维度引用了numpy数组中的数据.所以,假设objects是一个具有vector属性的对象列表.

我想做的事情如下:

cdef double[ ::cython.view.indirect, ::1 ] vectors
for object in objects:
    vectors[ i ] = object.vector
Run Code Online (Sandbox Code Playgroud)

但是,我应该如何初始化"向量"以使其成为可能?如果有可能的话?或者也许内存视图只允许是一个对象的内存视图...在这种情况下还有另一个问题 - 如何动态创建内存视图数组?

cython

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

如何在nim中创建堆上的IntSet?

nim中有各种库,它们返回实际的对象,而不是引用.有时我想在堆上有一个对象(无论效率如何) - 例如,当我有一个泛型过程需要ref对象时.

在我发现的堆上构造IntSet的唯一方法是:

proc newIntSet() : ref IntSet =
  new(result)
  assign(result[], initIntSet())
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但感觉就像一个黑客.我担心它似乎只是起作用.(通过"分配"复制的结构是否已正确清理?)有更好的方法吗?是否有更通用的方法可以与其他对象一起使用?

nim-lang

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

traefik:一起使用PathPrefixStrip和PathPrefix

使用trafix w/docker后端,我想匹配表单的所有URL /manage/users/api...并将它们映射到/api....我试过了:

traefik.frontend.rule=PathPrefixStrip:/manage/users;PathPrefix:/api;
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.有没有办法做到这一点?

traefik

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

如何写一个向量

我第一次使用 Go flatbuffers 接口。我发现说明很少。

我想将一个 uint64s 向量写入表中。理想情况下,我想直接在向量中存储数字而不知道有多少(我从 sql.Rows 迭代器中读取它们)。我看到为表生成的代码具有功能:

func DatasetGridAddDates(builder *flatbuffers.Builder, dates flatbuffers.UOffsetT) {
    builder.PrependUOffsetTSlot(2, flatbuffers.UOffsetT(dates), 0)
}
func DatasetGridStartDatesVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
    return builder.StartVector(8, numElems, 8)
}
Run Code Online (Sandbox Code Playgroud)

我可以先使用 (??) 编写向量,然后DatasetGridAddDates将结果向量记录在包含“DatasetGrid”的表中吗?

go flatbuffers

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

postgres union 是否保证调用有副作用的函数时的执行顺序?

我正在使用 postgres 9.3 并尝试确保从 sql 语句调用时按顺序调用存储过程。以下操作是否有效(确保首先调用 foo(),然后调用 bar())?

select null::void from (
    select 1 from foo()
    union select 1 from bar() ) _;
Run Code Online (Sandbox Code Playgroud)

下面的也怎么样?[注意,因为它只是上述内容的一个稍微冗长的版本——我所追求的是一般 CTE 是否会按照“调用”的顺序、按照规范的顺序执行,还是未定义?]

with x as ( select foo() ),
y as ( select bar() )
select null::void from ( select 1 from x union select 1 from y );
Run Code Online (Sandbox Code Playgroud)

除了正在进行的工作是否有效之外,是否有更惯用的方法来确保执行顺序(具有任意/不重要的返回值)?也许只是?

select null::void from ( select foo(), bar() ) _;
Run Code Online (Sandbox Code Playgroud)

更新——解释原因:

我希望的是,如果我在 sql 中指定函数,优化器可以消除常见的子表达式(等),同时保持包含 DDL 的部分的顺序。例如,如果 foo、bar 是

create function foo() returns void language sql as $$ …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

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

如何配置traefik w / docker-compose为服务路由多个端口

我想通过docker-compose配置traefik以公开组件服务的多个端口。

例如,在为ember-cli应用提供服务时,如何同时公开主端口和实时重新加载端口以进行开发?

docker-compose traefik

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

输入空 __slots__ (或空元组)的规范方法是什么?

如果我输入插槽:

class Foo:
    __slots__: Tuple[()] = tuple()
Run Code Online (Sandbox Code Playgroud)

然后,在严格模式下,mypy (0.812) 告诉我:

Incompatible types in assignment (expression has type "Tuple[<nothing>, ...]", variable has type "Tuple[]")
Run Code Online (Sandbox Code Playgroud)

我可以写:

__slots__: Tuple[()] = cast(Tuple[()], tuple())
Run Code Online (Sandbox Code Playgroud)

但这很丑陋。执行此操作的规范方法是什么?mypy 是什么意思Tuple[<nothing>, ...]?元组是不可变的,所以空元组肯定不应该是……没有任何变量的量……?

python tuples slots mypy python-typing

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

如何使用git log --follow <filename>工作?

我试图为文件的历史记录选择一个id - 我希望它是或者引用其详细信息的"对象" git log --follow <filename>.我在想:

git如何知道一个文件是后续提交中另一个文件的变体?当然,名称相同是一个强烈的提示,但它也跟踪提交时的重命名.它是否将计算结果保存在git log引用的位置(where?),或git log是否每次都重复这些计算?(这些计算是什么?)

理想情况下,我想使用nodegit访问或重新创建历史记录(提交/ blob shas列表).

git

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