小编ura*_*ash的帖子

如何在__init__中使用await设置class属性

如何await在构造函数或类体中定义类?

例如我想要的:

import asyncio

# some code


class Foo(object):

    async def __init__(self, settings):
        self.settings = settings
        self.pool = await create_pool(dsn)

foo = Foo(settings)
# it raises:
# TypeError: __init__() should return None, not 'coroutine'
Run Code Online (Sandbox Code Playgroud)

或者类body属性的示例:

class Foo(object):

    self.pool = await create_pool(dsn)  # Sure it raises syntax Error

    def __init__(self, settings):
        self.settings = settings

foo = Foo(settings)
Run Code Online (Sandbox Code Playgroud)

我的解决方案(但我希望看到更优雅的方式)

class Foo(object):

    def __init__(self, settings):
        self.settings = settings

    async def init(self):
        self.pool = await create_pool(dsn)

foo = Foo(settings)
await foo.init()
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-asyncio

62
推荐指数
7
解决办法
2万
查看次数

如何使用python从SNMP获取数据?

如何从fdb表获取值mac和vlan使用python?
在bash snmpwalk工作正常:

snmpwalk -v2c -c pub 192.168.0.100 1.3.6.1.2.1.17.7.1.2.2.1.2
Run Code Online (Sandbox Code Playgroud)

pysnmp:

import os, sys
import socket
import random
from struct import pack, unpack
from datetime import datetime as dt

from pysnmp.entity.rfc3413.oneliner import cmdgen
from pysnmp.proto.rfc1902 import Integer, IpAddress, OctetString

ip='192.168.0.100'
community='pub'
value=(1,3,6,1,2,1,17,7,1,2,2,1,2)

generator = cmdgen.CommandGenerator()
comm_data = cmdgen.CommunityData('server', community, 1) # 1 means version SNMP v2c
transport = cmdgen.UdpTransportTarget((ip, 161))

real_fun = getattr(generator, 'getCmd')
res = (errorIndication, errorStatus, errorIndex, varBinds)\
    = real_fun(comm_data, transport, value)

if not errorIndication is None  or errorStatus …
Run Code Online (Sandbox Code Playgroud)

python snmp fdb net-snmp pysnmp

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

Postgres UNIQUE CONSTRAINT用于数组

如何创建对数组中所有值的唯一性的约束,如:

CREATE TABLE mytable
(
    interface integer[2],
    CONSTRAINT link_check UNIQUE (sort(interface))
)
Run Code Online (Sandbox Code Playgroud)

我的排序功能

create or replace function sort(anyarray)
returns anyarray as $$
select array(select $1[i] from generate_series(array_lower($1,1),
array_upper($1,1)) g(i) order by 1)
$$ language sql strict immutable; 
Run Code Online (Sandbox Code Playgroud)

我需要的是值{10,22}和{22,10}被认为是相同的并且在UNIQUE CONSTRAINT下检查

arrays postgresql unique-constraint

14
推荐指数
3
解决办法
4889
查看次数

所有模型的SQLAlchemy"event.listen"

我在每个模型中都有created_by和updated_by字段.这些字段自动填充sqlalchemy.event.listen(以前称为MapperExtension).对于每个型号,我写道:

event.listen(Equipment, 'before_insert', get_created_by_id)
event.listen(Equipment, 'before_update', get_updated_by_id)
Run Code Online (Sandbox Code Playgroud)

当模型很多代码变得丑陋时.是否可以立即将event.listen应用于所有模型或几个?

UPD:我正在尝试这样做:

import pylons
from sqlalchemy import event, sql
from sqlalchemy import Table, ForeignKey, Column
from sqlalchemy.databases import postgresql
from sqlalchemy.schema import UniqueConstraint, CheckConstraint
from sqlalchemy.types import String, Unicode, UnicodeText, Integer, DateTime,\
                             Boolean, Float
from sqlalchemy.orm import relation, backref, synonym, relationship
from sqlalchemy import func
from sqlalchemy import desc
from sqlalchemy.orm.exc import NoResultFound

from myapp.model.meta import Session as s
from myapp.model.meta import metadata, DeclarativeBase

from pylons import request

def created_by(mapper, connection, target):
    identity …
Run Code Online (Sandbox Code Playgroud)

python pylons sqlalchemy

11
推荐指数
2
解决办法
6347
查看次数

金字塔:多个资源工厂 - 如何

我有一个简单的根资源工厂:

class Root:
    __acl__ = [
        (Allow, Authenticated, 'edit')
    ]
Run Code Online (Sandbox Code Playgroud)

现在对于一些"特殊"路线,我需要创建另一个资源工厂

config.add_route('special', '/special/test', factory=SpecialFactory)

class SpecialFactory:
    __acl__ = [
        (Allow, Authenticated, 'special_edit')
    ]
Run Code Online (Sandbox Code Playgroud)

现在,我想做Root父母SpecialFactory- 我该怎么做?

这是正确的方式......

class SpecialFactory:
    def __init__(self, request):
        self.request = request
        self.__parent__ = Root(request)
        self.__name__ = 'special'

    __acl__ = [
        (Allow, Authenticated, 'special_edit')
    ]
Run Code Online (Sandbox Code Playgroud)

我也完全不了解它的目的__name__和应该设置的目的.

此外,什么时候金字塔会遍历__parent__链条而不是?对于这样的视图配置:

@view_config(route_name='special', permission='special_edit')
def something(req):
    pass
Run Code Online (Sandbox Code Playgroud)

金字塔会'收集'两个权限(special_editedit)还是只有一个(special_edit)?

请详细说明计算权限的"流程".

python pyramid

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

如何在指令中的节点中添加rst格式?

如何在节点中使用rst?例如我要输出隐藏文件about.rst

class Foo(Directive):

    def run(self):
        return [
            nodes.Text("**adad**"),  # <-- Must be a bold text
            nodes.Text(".. include:: about.rst"),  # <-- Must include file
        ]
Run Code Online (Sandbox Code Playgroud)

restructuredtext docutils python-sphinx

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

如何通过列名从SQLAlchemy实例获取值?

我有这样的表:

class MPTTPages(Base):
    __tablename__ = "mptt_pages"

    parent = None

    id = Column(Integer, primary_key=True)
    left = Column("lft", Integer, nullable=False)
    right = Column("rgt", Integer, nullable=False)

    name = Column(String)
    description = Column(Text)

    visible = Column(Boolean)

    def __repr__(self):
        return "MPTTPages(%s, %d, %d)" % (self.id, self.left, self.right)
Run Code Online (Sandbox Code Playgroud)

如何通过列名“ lft”从实例MPTTPages获取值?实例没有属性lft,就在左边。

python sqlalchemy

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

Python列表(node_id,parent_node_id)到JSON

我有一个具有以下结构的列表:[(node_id,parent_node_id),..(node_id,parent_node_id)]

例:

data = [(1, None),
            (4, 1),
            (15, 1),
            (6, 1),
            (2, 1),
            (7, 1),
                (12, 7),
                (13, 7),
                    (17, 13),
                        (18, 17),
                (14, 7),
            (8, 1),
            (9, 1),
            (10, 1),
            (11, 1),
            (19, 1),
        (16, None)]
Run Code Online (Sandbox Code Playgroud)

如何将此列表转换为JSON嵌套

UPD:这样的结果

{

    1:{
        4:'',
        15:'',
        6:'',
        2:'',
        7:{
            12:'',
            13:{
                17:{
                    18:''
                }
            },
            14:'',
        },
        8:'',
        9:'',
        10:'',
        11:'',
        19:'',
    },
    16:''

}
Run Code Online (Sandbox Code Playgroud)

python json

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

SQL复杂的唯一约束

我有一个表mytable,其中是2个唯一的int字段

# SQLAlchemy example
mytable = Table('mytable', meta,

# per-column anonymous unique constraint
Column('col1', Integer, unique=True),
Column('col2', Integer, unique=True),

# explicit/composite unique constraint.  'name' is optional.
UniqueConstraint('col1', 'col2', name='uix_1')
)
Run Code Online (Sandbox Code Playgroud)

怎么做这样的限制:

col1 col2
1      
2     6
3     1
4     5
5
6     1 -- FAIL: becouse 3-1 is exist and 2-6 is exist!!!

unique((col1,col2)union(col2,col1))

sql postgresql sqlalchemy unique-constraint

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

SQLAlchemy postgresql.ARRAY大小

如何在SQLAlchemy中添加postgres数组的大小?

像SQL类型Integer [2]:

column = Column(postgresql.ARRAY(Integer), size=2)
Run Code Online (Sandbox Code Playgroud)

postgresql sqlalchemy

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

与芹菜的金字塔周期性任务

我试着用pyramid_celery.我设法运行简单的任务.但金字塔如何运行周期性任务呢?我需要写CELERYBEAT_SCHEDULE的地方?

python celery pyramid

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