小编Car*_*rdh的帖子

从 UI 运行时,Prefect ModuleNotFoundError

我正在关注 Prefect 教程,网址为:https : //docs.prefect.io/core/tutorial/01-etl-before-prefect.html。代码可以从git下载:https : //github.com/PrefectHQ/prefect/tree/master/examples/tutorial

这些教程依赖于飞机库,它是教程下的一个目录。我可以通过终端执行流程:

python 02_etl_...
Run Code Online (Sandbox Code Playgroud)

它完美地执行!

我创建了一个项目,并将 Flow 添加到该项目中。通过 Prefect Server UI,我可以运行 Flow,但它失败并显示错误消息:

状态消息:无法加载和执行 Flow 的环境:ModuleNotFoundError("No module named 'aircraftlib'")

在通过 Prefect Server UI 执行 Flows 时,我应该如何处理依赖关系?

python prefect

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

Python模拟,每次调用返回不同的值

我正在测试方法,geodata_collect._request_loc_data()在该方法中我调用了另一个方法,geodata_collect.utils.loadJSON(...)为了对第一个提到的方法进行单元测试,我需要对其进行模拟。

我的问题是,我需要geodata_collect.utils.loadJSON(...)第三次从内部调用返回一个不同的值geodata_collect._request_loc_data()

我一直在探索MagicMockside_effect为了做到这一点。

mock = MagicMock()
mock.side_effect = [self._create_request_dict(next_page_token=True),
    self._create_request_dict(next_page_token=True), self._create_request_dict()]

with patch('geodata_collect.utils.loadJSON',return_value=mock):
    geodata_collect._request_loc_data()
Run Code Online (Sandbox Code Playgroud)

但是,将返回geodata_collect.utils.loadJSON(...)geodata_collect._request_loc_data()MagicMock类内部调用的when值,而不是实际值。

<MagicMock id='140642209064888'>
Run Code Online (Sandbox Code Playgroud)

应该返回什么:

{'status': 'OK', 'next_page_token': 'Next Page EXISTS!!', 'result': [1, 2, 3, 4, 5]}
{'status': 'OK', 'next_page_token': 'Next Page EXISTS!!', 'result': [1, 2, 3, 4, 5]}
{'status': 'OK', 'result': [1, 2, 3, 4, 5]}
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking

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

加速距离计算,滑动窗口

我有两个时间序列A和B。A的长度为mB,B的长度为nm << n。两者都有尺寸d

我通过在B上滑动A来计算A与B中所有子序列之间的距离。在python中,代码如下所示。

def sliding_dist(A,B)
    n = len(B)
    dist = np.zeros(n)
    for i in range(n-m):
        subrange = B[i:i+m,:]
        distance = np.linalg.norm(A-subrange)
        dist[i] = distance
    return dist
Run Code Online (Sandbox Code Playgroud)

现在,这段代码需要花费很多时间来执行,并且我有很多计算要做。我需要加快计算速度。我的猜测是,我可以使用卷积和频域乘法(FFT)来做到这一点。但是,我无法实现它。

有任何想法吗?:) 谢谢

python algorithm fft sliding-window

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