小编plu*_*mPy的帖子

在 SQLAlchemy 应用程序的单元测试中使用 Alembic?

我有一个 ORM 应用程序,它使用 SQLAlchemy、Alembic 进行迁移,使用 Pytest 进行测试。在我的测试中,我有一个数据库作为固定装置。在使用迁移之前,我曾经删除所有表并为每个测试会话重新创建它们。

现在我正在使用迁移,我也想使用 Alembic 来创建我的装置,因为我相信它可以更接近地模拟生产环境。(这是一个很好的理由吗?)

一种方法是每次downgrade()都从上到下upgrade()。我真的不喜欢这个。我可能错了。

另一种方法是进行drop_all()单元create_all()测试,只需编写另一个测试,用 head 标记数据库并测试upgradeand downgrade。

是否有另一种好的/标准方法将迁移与固定装置集成,这样我就不必使用drop_tables?

或者有没有办法在drop_tables将数据库标记为“尾部”或空之后?如果没有明确使用修订版 0 的迁移哈希,则会导致创建依赖项,类似的事情alembic downgrade -1会使其返回到第 0 年。谢谢。

python integration-testing unit-testing sqlalchemy alembic

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

使用单个值压缩多个值

我有一个清单:

ave=['Avg']
Run Code Online (Sandbox Code Playgroud)

还有一个:

range(0,24)
Run Code Online (Sandbox Code Playgroud)

我如何压缩它们,以便我拥有:

[0,'Avg',1,'Avg',....23,'Avg']
Run Code Online (Sandbox Code Playgroud)

最好不要将每个条目都放在括号中,即

[[0,'Avg'],[...]]
Run Code Online (Sandbox Code Playgroud)

因为我以后想将该列表制作成 CSV 文件。

我知道我可以用一个简单的循环来做到这一点,但是有没有更简洁的方法?也许是一个功能?

python list

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

PyJWT,需要 PEM 格式的密钥

我从图层复制粘贴了这段代码:

https://github.com/layerhq/support/blob/master/identity-services-samples/python/controller.py

我听说另外两个人在 mac 机器上成功运行了它。我使用的是 Windows 7,运行代码时出现 TypeError: Expecting a PEM-formatted key:

#Read RSA key
root = os.path.dirname("__file__")
with open(os.path.join(root, RSA_KEY_PATH), 'r') as rsa_priv_file:
    
    #Not sure about adding the utf-8 AT ALL
    priv_rsakey = RSA.importKey(rsa_priv_file.read())

#Create identity token
#Make sure you have PyJWT and PyCrypto libraries installed and imported
identityToken = jwt.encode(
    payload={
        "iss": PROVIDER_ID,                 # String - The Provider ID found in the Layer Dashboard
        "prn": user_id,                     # String - Provider's internal ID for the authenticating user
        "iat": datetime.datetime.now(), …
Run Code Online (Sandbox Code Playgroud)

python rsa pem jwt

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

寻找一种快速查找多边形点的方法属于使用Shapely

我有一组~36,000个多边形,代表该国的一个分区(〜县).我的python脚本收到很多点:pointId,经度,纬度.

对于每个点,我想发回pointId,polygonId.对于每个点,循环到所有多边形并使用myPoint.within(myPolygon)是非常低效的.

我认为匀称库提供了一种更好的方法来准备多边形,以便找到一个点的多边形成为树路径(国家,地区,子区域......)

到目前为止,这是我的代码:

import sys
import os
import json
import time
import string
import uuid

py_id = str(uuid.uuid4())

sys.stderr.write(py_id + '\n')
sys.stderr.write('point_in_polygon.py V131130a.\n')
sys.stderr.flush()

from shapely.geometry import Point
from shapely.geometry import Polygon
import sys
import json
import string
import uuid
import time

jsonpath='.\cantons.json'
jsonfile = json.loads(open(jsonpath).read())

def find(id, obj):
    results = []

    def _find_values(id, obj):
        try:
            for key, value in obj.iteritems():
                if key == id:
                    results.append(value)
                elif not isinstance(value, basestring):
                    _find_values(id, value)
        except AttributeError:
            pass

        try:
            for item in …
Run Code Online (Sandbox Code Playgroud)

python optimization performance graph shapely

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

numpy.float64对象不可迭代......但我不是想尝试

我将在下面提供完整的代码,但问题基本上是这样的:我创建了一个这样的数据结构:means = {ID1:{HOUR1:[AVERAGE_FLOW,NUMBER_OF_SAMPLES] ...}

我使用np.mean()创建了AVERAGE_FLOW.我可以做这个:

print means['716353'][0][0] #OUT : 76.6818181818 
Run Code Online (Sandbox Code Playgroud)

但是当我想要运行第二个代码时:

means[row['ID']][i][0] 
Run Code Online (Sandbox Code Playgroud)

我得到:TypeError:'numpy.float64'对象不可迭代

以下是代码,第一个是我生成平均数据的地方,第二个是我尝试创建列表的地方:

shunned=[]
means={}  #{ #DAY: [mean, number of samples]}
hour={}
for i in range(24):
    hour[i]=[]    
for station in stations:
    means[station]=copy.deepcopy(hour) 

for station in d:  
    for hour in range(24):
        temp=[]
        for day in range(1,31):
            if day in sb: #swtich between sa for all days and sb for business days
                try: #no entry = no counting in the mean, list index out of range, the    station has not hourly …
Run Code Online (Sandbox Code Playgroud)

python numpy

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

minikube中的emptyDir

很简单的问题,emptyDir我的minikube VM中的位置在哪里?由于该emptyDir卷取决于Pod,因此它应该存在于VM上,否则它将因退出容器而死亡。当我这样做时,minikube ssh找不到卷。我需要检查它,看看我的容器是否表现出我想要的样子,将一些文件复制到安装在其上的卷中。尝试find / -type d -name cached导致许多permission denied秒,并且音量不在其余目录中。我YAML有以下部分:

...
volumes:
    - name: cached
      emptyDir: {}
Run Code Online (Sandbox Code Playgroud)

并在容器中命令,容器将一些文件复制到卷中:

containers:
    - name: plum
      image: plumsempy/plum
      command: ["/bin/sh", "-c"]
      args: ["mkdir /plum/cached"]
      volumeMounts:
        - mountPath: /plum/cached
          name: cahced
      command: ["bin/sh/", "-c"]
      args: ["cp /plum/prune/cert.crt /plume/cached/"]
Run Code Online (Sandbox Code Playgroud)

容器在完成其工作后自然存在。

kubernetes minikube

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

为什么 lisp 中的 mapcar 使用名称而不是函数?

我正在阅读一本 lisp 书,我正在看mapcar,我的问题是为什么这是有效的:

> (mapcar #'+ '(1 2) '(3 4))
Run Code Online (Sandbox Code Playgroud)

但这不是:

(mapcar + '(1 2) '(3 4))
Run Code Online (Sandbox Code Playgroud)

换句话说,是否有理由在 lisp 中决定第一个参数mapcar不能是函数本身,而必须是它的名字?这样做的目的是什么?

lisp common-lisp lisp-2

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