如何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) 如何从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) 如何创建对数组中所有值的唯一性的约束,如:
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下检查
我在每个模型中都有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) 我有一个简单的根资源工厂:
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_edit和edit)还是只有一个(special_edit)?
请详细说明计算权限的"流程".
如何在节点中使用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) 我有这样的表:
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,就在左边。
我有一个具有以下结构的列表:[(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) 我有一个表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))
如何在SQLAlchemy中添加postgres数组的大小?
像SQL类型Integer [2]:
column = Column(postgresql.ARRAY(Integer), size=2)
Run Code Online (Sandbox Code Playgroud) 我试着用pyramid_celery.我设法运行简单的任务.但金字塔如何运行周期性任务呢?我需要写CELERYBEAT_SCHEDULE的地方?
python ×7
sqlalchemy ×4
postgresql ×3
pyramid ×2
arrays ×1
celery ×1
docutils ×1
fdb ×1
json ×1
net-snmp ×1
pylons ×1
pysnmp ×1
python-3.x ×1
snmp ×1
sql ×1