Skip to content

Class peagen.orm.tasks.Task

peagen.orm.tasks.Task

Bases: Base, GUIDPk, Timestamped, TenantBound, Ownable, RepositoryRefMixin, StatusColumn

action class-attribute instance-attribute

action = acol(
    storage=S(
        PgEnum(Action, name="task_action"), nullable=False
    )
)

pool_id class-attribute instance-attribute

pool_id = acol(
    storage=S(
        PgUUID(as_uuid=True),
        fk=ForeignKeySpec("peagen.pools.id"),
        nullable=False,
    )
)

config_toml class-attribute instance-attribute

config_toml = acol(storage=S(String))

spec_kind class-attribute instance-attribute

spec_kind = acol(
    storage=S(
        PgEnum(SpecKind, name="task_spec_kind"),
        nullable=True,
    )
)

spec_uuid class-attribute instance-attribute

spec_uuid = acol(
    storage=S(PgUUID(as_uuid=True), nullable=True)
)

args class-attribute instance-attribute

args = acol(storage=S(JSON, nullable=False, default=dict))

labels class-attribute instance-attribute

labels = acol(
    storage=S(JSON, nullable=False, default=dict)
)

note class-attribute instance-attribute

note = acol(storage=S(String))

schema_version class-attribute instance-attribute

schema_version = acol(
    storage=S(Integer, nullable=False, default=3)
)

works class-attribute instance-attribute

works = relationship('Work', back_populates='task')

repository_id class-attribute instance-attribute

repository_id = acol(
    storage=S(
        PgUUID(as_uuid=True),
        fk=ForeignKeySpec(
            "peagen.repositories.id", on_delete="CASCADE"
        ),
        nullable=True,
    )
)

repo class-attribute instance-attribute

repo = acol(storage=S(String, nullable=False))

ref class-attribute instance-attribute

ref = acol(storage=S(String, nullable=False))

repository

repository()
Source code in peagen/orm/mixins.py
46
47
48
49
50
51
52
@declared_attr
def repository(cls):
    return relationship(
        "Repository",
        back_populates="tasks",
        foreign_keys=lambda: [cls.repository_id],
    )