本文整理汇总了Python中sqlalchemy.util.OrderedDict方法的典型用法代码示例。如果您正苦于以下问题:Python util.OrderedDict方法的具体用法?Python util.OrderedDict怎么用?Python util.OrderedDict使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sqlalchemy.util
的用法示例。
在下文中一共展示了util.OrderedDict方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: revision_as_dict
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def revision_as_dict(revision, include_packages=True, include_groups=True,
ref_package_by='name'):
revision_dict = OrderedDict((
('id', revision.id),
('timestamp', revision.timestamp.isoformat()),
('message', revision.message),
('author', revision.author),
('approved_timestamp',
revision.approved_timestamp.isoformat() \
if revision.approved_timestamp else None),
))
if include_packages:
revision_dict['packages'] = [getattr(pkg, ref_package_by) \
for pkg in revision.packages
if (pkg and not pkg.private)]
if include_groups:
revision_dict['groups'] = [getattr(grp, ref_package_by) \
for grp in revision.groups if grp]
return revision_dict
示例2: test_do_update_set_clause_none
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def test_do_update_set_clause_none(self):
i = insert(self.table_with_metadata).values(myid=1, name="foo")
i = i.on_conflict_do_update(
index_elements=["myid"],
set_=OrderedDict([("name", "I'm a name"), ("description", None)]),
)
self.assert_compile(
i,
"INSERT INTO mytable (myid, name) VALUES "
"(%(myid)s, %(name)s) ON CONFLICT (myid) "
"DO UPDATE SET name = %(param_1)s, "
"description = %(param_2)s",
{
"myid": 1,
"name": "foo",
"param_1": "I'm a name",
"param_2": None,
},
)
示例3: test_do_update_set_clause_literal
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def test_do_update_set_clause_literal(self):
i = insert(self.table_with_metadata).values(myid=1, name="foo")
i = i.on_conflict_do_update(
index_elements=["myid"],
set_=OrderedDict(
[("name", "I'm a name"), ("description", null())]
),
)
self.assert_compile(
i,
"INSERT INTO mytable (myid, name) VALUES "
"(%(myid)s, %(name)s) ON CONFLICT (myid) "
"DO UPDATE SET name = %(param_1)s, "
"description = NULL",
{"myid": 1, "name": "foo", "param_1": "I'm a name"},
)
示例4: test_do_update_str_index_elements_target_one
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def test_do_update_str_index_elements_target_one(self):
i = insert(self.table_with_metadata).values(myid=1, name="foo")
i = i.on_conflict_do_update(
index_elements=["myid"],
set_=OrderedDict(
[
("name", i.excluded.name),
("description", i.excluded.description),
]
),
)
self.assert_compile(
i,
"INSERT INTO mytable (myid, name) VALUES "
"(%(myid)s, %(name)s) ON CONFLICT (myid) "
"DO UPDATE SET name = excluded.name, "
"description = excluded.description",
)
示例5: _get_polymorphics
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def _get_polymorphics(cls):
people, engineers, managers, boss = (
cls.tables.people,
cls.tables.engineers,
cls.tables.managers,
cls.tables.boss,
)
person_join = polymorphic_union(
util.OrderedDict(
[
("engineer", people.join(engineers)),
("manager", people.join(managers)),
]
),
None,
"pjoin",
)
manager_join = people.join(managers).outerjoin(boss)
person_with_polymorphic = ([Person, Manager, Engineer], person_join)
manager_with_polymorphic = ("*", manager_join)
return person_with_polymorphic, manager_with_polymorphic
示例6: __init__
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def __init__(self, table, table_args, table_kwargs):
self.table = table # this is a Table object
self.table_args = table_args
self.table_kwargs = table_kwargs
self.new_table = None
self.column_transfers = OrderedDict(
(c.name, {'expr': c}) for c in self.table.c
)
self._grab_table_elements()
示例7: _grab_table_elements
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def _grab_table_elements(self):
schema = self.table.schema
self.columns = OrderedDict()
for c in self.table.c:
c_copy = c.copy(schema=schema)
c_copy.unique = c_copy.index = False
# ensure that the type object was copied,
# as we may need to modify it in-place
if isinstance(c.type, SchemaEventTarget):
assert c_copy.type is not c.type
self.columns[c.name] = c_copy
self.named_constraints = {}
self.unnamed_constraints = []
self.indexes = {}
self.new_indexes = {}
for const in self.table.constraints:
if _is_type_bound(const):
continue
elif const.name:
self.named_constraints[const.name] = const
else:
self.unnamed_constraints.append(const)
for idx in self.table.indexes:
self.indexes[idx.name] = idx
for k in self.table.kwargs:
self.table_kwargs.setdefault(k, self.table.kwargs[k])
示例8: as_dict
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def as_dict(self):
_dict = OrderedDict()
table = orm.class_mapper(self.__class__).mapped_table
for col in table.c:
val = getattr(self, col.name)
if isinstance(val, datetime.date):
val = str(val)
if isinstance(val, datetime.datetime):
val = val.isoformat()
_dict[col.name] = val
return _dict
示例9: as_dict
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def as_dict(self, core_columns_only=False):
_dict = OrderedDict()
cols = self.get_columns()
if not core_columns_only:
cols = ['id'] + cols + ['position']
for col in cols:
value = getattr(self, col)
if isinstance(value, datetime.datetime):
value = value.isoformat()
_dict[col] = value
for k, v in self.extras.items() if self.extras else []:
_dict[k] = v
if self.package_id and not core_columns_only:
_dict["package_id"] = self.package_id
return _dict
示例10: dataset_facets
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def dataset_facets(self, facets_dict, package_type):
if package_type <> 'harvest':
return facets_dict
return OrderedDict([('frequency', 'Frequency'),
('source_type','Type'),
])
示例11: organization_facets
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def organization_facets(self, facets_dict, organization_type, package_type):
if package_type <> 'harvest':
return facets_dict
return OrderedDict([('frequency', 'Frequency'),
('source_type','Type'),
])
示例12: __init__
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def __init__(self, table, association_tables, inflect_engine, detect_joined):
super(ModelClass, self).__init__(table)
self.name = self._tablename_to_classname(table.name, inflect_engine)
self.children = []
self.attributes = OrderedDict()
# Assign attribute names for columns
for column in table.columns:
self._add_attribute(column.name, column)
# Add many-to-one relationships
pk_column_names = set(col.name for col in table.primary_key.columns)
for constraint in sorted(table.constraints, key=_get_constraint_sort_key):
if isinstance(constraint, ForeignKeyConstraint):
target_cls = self._tablename_to_classname(constraint.elements[0].column.table.name, inflect_engine)
if detect_joined and self.parent_name == "Base" and set(_get_column_names(constraint)) == pk_column_names:
self.parent_name = target_cls
else:
relationship_ = ManyToOneRelationship(self.name, target_cls, constraint, inflect_engine)
self._add_attribute(relationship_.preferred_name, relationship_)
# Add many-to-many relationships
for association_table in association_tables:
fk_constraints = [c for c in association_table.constraints if isinstance(c, ForeignKeyConstraint)]
fk_constraints.sort(key=_get_constraint_sort_key)
target_cls = self._tablename_to_classname(fk_constraints[1].elements[0].column.table.name, inflect_engine)
relationship_ = ManyToManyRelationship(self.name, target_cls, association_table)
self._add_attribute(relationship_.preferred_name, relationship_)
示例13: __init__
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def __init__(
self,
impl,
table,
table_args,
table_kwargs,
reflected,
partial_reordering=(),
):
self.impl = impl
self.table = table # this is a Table object
self.table_args = table_args
self.table_kwargs = table_kwargs
self.temp_table_name = self._calc_temp_name(table.name)
self.new_table = None
self.partial_reordering = partial_reordering # tuple of tuples
self.add_col_ordering = () # tuple of tuples
self.column_transfers = OrderedDict(
(c.name, {"expr": c}) for c in self.table.c
)
self.existing_ordering = list(self.column_transfers)
self.reflected = reflected
self._grab_table_elements()
示例14: _grab_table_elements
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def _grab_table_elements(self):
schema = self.table.schema
self.columns = OrderedDict()
for c in self.table.c:
c_copy = c.copy(schema=schema)
c_copy.unique = c_copy.index = False
# ensure that the type object was copied,
# as we may need to modify it in-place
if isinstance(c.type, SchemaEventTarget):
assert c_copy.type is not c.type
self.columns[c.name] = c_copy
self.named_constraints = {}
self.unnamed_constraints = []
self.indexes = {}
self.new_indexes = {}
for const in self.table.constraints:
if _is_type_bound(const):
continue
elif self.reflected and isinstance(const, CheckConstraint):
# TODO: we are skipping reflected CheckConstraint because
# we have no way to determine _is_type_bound() for these.
pass
elif const.name:
self.named_constraints[const.name] = const
else:
self.unnamed_constraints.append(const)
for idx in self.table.indexes:
self.indexes[idx.name] = idx
for k in self.table.kwargs:
self.table_kwargs.setdefault(k, self.table.kwargs[k])
示例15: _adjust_self_columns_for_partial_reordering
# 需要导入模块: from sqlalchemy import util [as 别名]
# 或者: from sqlalchemy.util import OrderedDict [as 别名]
def _adjust_self_columns_for_partial_reordering(self):
pairs = set()
col_by_idx = list(self.columns)
if self.partial_reordering:
for tuple_ in self.partial_reordering:
for index, elem in enumerate(tuple_):
if index > 0:
pairs.add((tuple_[index - 1], elem))
else:
for index, elem in enumerate(self.existing_ordering):
if index > 0:
pairs.add((col_by_idx[index - 1], elem))
pairs.update(self.add_col_ordering)
# this can happen if some columns were dropped and not removed
# from existing_ordering. this should be prevented already, but
# conservatively making sure this didn't happen
pairs = [p for p in pairs if p[0] != p[1]]
sorted_ = list(
topological.sort(pairs, col_by_idx, deterministic_order=True)
)
self.columns = OrderedDict((k, self.columns[k]) for k in sorted_)
self.column_transfers = OrderedDict(
(k, self.column_transfers[k]) for k in sorted_
)