title: sqlalchemy.orm SynonymProperty Example Code category: page slug: sqlalchemy-orm-synonymproperty-examples sortorder: 500031060 toc: False sidebartitle: sqlalchemy.orm SynonymProperty meta: Example code for understanding how to use the SynonymProperty class from the sqlalchemy.orm module of the SQLAlchemy project.
SynonymProperty is a class within the sqlalchemy.orm module of the SQLAlchemy project.
ColumnProperty,
CompositeProperty,
Load,
Mapper,
Query,
RelationshipProperty,
Session,
aliased,
attributes,
backref,
class_mapper,
column_property,
composite,
interfaces,
mapper,
mapperlib,
object_mapper,
object_session,
query,
relationship,
session,
sessionmaker,
and strategies
are several other callables with code examples from the same sqlalchemy.orm package.
marshmallow-sqlalchemy (project documentation) is a code library that makes it easier to use SQLAlchemy with the Marshmallow data serialization tool.
The marshmallow-sqlalchemy project is provided as open source under the MIT license.
marshmallow-sqlalchemy / src/marshmallow_sqlalchemy / convert.py
# convert.py
import inspect
import functools
import warnings
import uuid
import marshmallow as ma
from marshmallow import validate, fields
from sqlalchemy.dialects import postgresql, mysql, mssql
~~from sqlalchemy.orm import SynonymProperty
import sqlalchemy as sa
from .exceptions import ModelConversionError
from .fields import Related, RelatedList
def _is_field(value):
return isinstance(value, type) and issubclass(value, fields.Field)
def _has_default(column):
return (
column.default is not None
or column.server_default is not None
or _is_auto_increment(column)
)
def _is_auto_increment(column):
return column.table is not None and column is column.table._autoincrement_column
def _postgres_array_factory(converter, data_type):
return functools.partial(
## ... source file abbreviated to get to SynonymProperty examples ...
@property
def type_mapping(self):
if self.schema_cls:
return self.schema_cls.TYPE_MAPPING
else:
return ma.Schema.TYPE_MAPPING
def fields_for_model(
self,
model,
*,
include_fk=False,
include_relationships=False,
fields=None,
exclude=None,
base_fields=None,
dict_cls=dict,
):
result = dict_cls()
base_fields = base_fields or {}
for prop in model.__mapper__.iterate_properties:
key = self._get_field_name(prop)
if self._should_exclude_field(prop, fields=fields, exclude=exclude):
result[key] = None
continue
~~ if isinstance(prop, SynonymProperty):
continue
if hasattr(prop, "columns"):
if not include_fk:
for column in prop.columns:
if not column.foreign_keys:
break
else:
continue
if not include_relationships and hasattr(prop, "direction"):
continue
field = base_fields.get(key) or self.property2field(prop)
if field:
result[key] = field
return result
def fields_for_table(
self,
table,
*,
include_fk=False,
fields=None,
exclude=None,
base_fields=None,
dict_cls=dict,
## ... source file continues with no further SynonymProperty examples...