sol.models – SQLAlchemy modelization — SoL 4 developers documentation

# `sol.models` – SQLAlchemy modelization

The application’s model objects

class `sol.models.` `AbstractBase`

  Abstract base entity class.

  `caption`(html=None, localized=True)

    Return a possibly HTML-decorated caption of the entity.

    Parameters: | html – either `None` (the default) or a boolean value localized – a boolean value, `True` by default
    Return type: | str

    If html is `None` or `True` then the result may be an HTML representation of the entity, otherwise it is plain text.

    If localized is `False` then the localization is turned off.

  classmethod `check_insert`(session, fields)

    Perform any check before an new instance is inserted

  `check_update`(fields)

    Perform any check before updating the instance.

    Parameters: | fields – a mapping containing `fieldname -> value` associations

    This implementation does nothing, but subclasses can override it at will, either to adapt incoming values or to check their validity, raising an exception if something is wrong.

  `delete`()

    Delete this instance from the database.

  `update`(data, missing_only=False)

    Update entity with given data.

    Parameters: | data – a mapping kind of container missing_only – a boolean flag, `False` by default
    Return type: | dict
    Returns: | a mapping between field name and a tuple `(oldvalue, newvalue)`, for each modified field

    First call `check_update()` to assert the validity of incoming data, then update the instance fields.

    If missing_only is `True` then only the fields that are currently empty (that is, their value is either `None` or an empty string) are updated. Note that in this case an exception is made for `bool` fields: since in SoL they always have a value (i.e. they are never missing), they are always updated.

class `sol.models.` `GloballyUnique`

  Mixin class for globally unique identified entities.

  `guid`

    A global unique identifier for this entity.

  `modified` = Column(None, DateTime(), table=None, nullable=False, server_default=DefaultClause(<sqlalchemy.sql.functions.now at 0x7f121b08abe0; now>, for_update=False))

    Last update timestamp.

- `sol.models.bio` – Batched I/O
- Entities
  - `sol.models.championship` – Championships
  - `sol.models.club` – Clubs
  - `sol.models.competitor` – Competitors
  - `sol.models.match` – Matches
  - `sol.models.mergedplayer` – Merged players
  - `sol.models.player` – Players
  - `sol.models.rate` – Player rates
  - `sol.models.rating` – Ratings
  - `sol.models.tourney` – Tournaments
  - `sol.models.user` – User
- `sol.models.utils` – Utilities