[DB] Rules collection using list instead of set
There pains of using a set as the aggregation of rules overweight the small advantage. While it would make detecting similar rules faster, the use of a collection type not inherently supporting by JSON brings some issues in the serialization.
This commit is contained in:
parent
ec22b5e5bd
commit
271130b107
@ -323,7 +323,7 @@ class Manager:
|
|||||||
for rule in rules:
|
for rule in rules:
|
||||||
del rule["type"]
|
del rule["type"]
|
||||||
|
|
||||||
category.rules = set(CategoryRule(**rule) for rule in rules)
|
category.rules = [CategoryRule(**rule) for rule in rules]
|
||||||
if row["schedule"]:
|
if row["schedule"]:
|
||||||
category.schedule = CategorySchedule(**row["schedule"])
|
category.schedule = CategorySchedule(**row["schedule"])
|
||||||
categories.append(category)
|
categories.append(category)
|
||||||
|
|||||||
@ -180,8 +180,8 @@ class Category(Base, Export):
|
|||||||
ForeignKey(CategoryGroup.name), default=None
|
ForeignKey(CategoryGroup.name), default=None
|
||||||
)
|
)
|
||||||
|
|
||||||
rules: Mapped[set[CategoryRule]] = relationship(
|
rules: Mapped[list[CategoryRule]] = relationship(
|
||||||
cascade="all, delete-orphan", passive_deletes=True, default_factory=set
|
cascade="all, delete-orphan", passive_deletes=True, default_factory=list
|
||||||
)
|
)
|
||||||
schedule: Mapped[Optional[CategorySchedule]] = relationship(
|
schedule: Mapped[Optional[CategorySchedule]] = relationship(
|
||||||
cascade="all, delete-orphan", passive_deletes=True, default=None
|
cascade="all, delete-orphan", passive_deletes=True, default=None
|
||||||
@ -267,8 +267,8 @@ class Tag(Base):
|
|||||||
|
|
||||||
name: Mapped[str] = mapped_column(primary_key=True)
|
name: Mapped[str] = mapped_column(primary_key=True)
|
||||||
|
|
||||||
rules: Mapped[set[TagRule]] = relationship(
|
rules: Mapped[list[TagRule]] = relationship(
|
||||||
cascade="all, delete-orphan", passive_deletes=True, default_factory=set
|
cascade="all, delete-orphan", passive_deletes=True, default_factory=list
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -320,7 +320,7 @@ class Link(Base):
|
|||||||
link: Mapped[idfk] = mapped_column(primary_key=True)
|
link: Mapped[idfk] = mapped_column(primary_key=True)
|
||||||
|
|
||||||
|
|
||||||
class Rule(Base, Export, init=False, unsafe_hash=True):
|
class Rule(Base, Export, init=False):
|
||||||
__tablename__ = "rules"
|
__tablename__ = "rules"
|
||||||
|
|
||||||
id: Mapped[idpk] = mapped_column(init=False)
|
id: Mapped[idpk] = mapped_column(init=False)
|
||||||
|
|||||||
@ -6,7 +6,7 @@ category_null = Category("null")
|
|||||||
|
|
||||||
category1 = Category(
|
category1 = Category(
|
||||||
"cat#1",
|
"cat#1",
|
||||||
rules={CategoryRule("cat#1", description="desc#1", max=Decimal(0))},
|
rules=[CategoryRule("cat#1", description="desc#1", max=Decimal(0))],
|
||||||
)
|
)
|
||||||
|
|
||||||
tag_1 = Tag("tag#1", rules={TagRule("tag#1", description="desc#1", max=Decimal(0))})
|
tag_1 = Tag("tag#1", rules=[TagRule("tag#1", description="desc#1", max=Decimal(0))])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user