Skip to content

Commit 13186fb

Browse files
authored
Rename AbstractAIResource to AIResource to match naming convention (#461)
* Rename AbstractAIResource to AIResource to match naming convention All other classes which define the (database) relationships are just named after their conceptual model's counterpart, e.g., AIoDConcept, AIAsset, Publication. This seems to be the exception with no apparent reason. Changing the name to match the convention of the rest of the project should make it easier to understand the role of the class. * Merge import statements
1 parent 2fea0bd commit 13186fb

File tree

11 files changed

+35
-40
lines changed

11 files changed

+35
-40
lines changed

src/database/model/agent/agent.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
from sqlmodel import Field, Relationship
44

55
from database.model.agent.agent_table import AgentTable
6-
from database.model.ai_resource.resource import AIResourceBase
7-
from database.model.ai_resource.resource import AbstractAIResource
6+
from database.model.ai_resource.resource import AIResourceBase, AIResource
87
from database.model.relationships import OneToOne
98
from database.model.serializers import AttributeSerializer
109

@@ -17,7 +16,7 @@ class AgentBase(AIResourceBase):
1716
"""
1817

1918

20-
class Agent(AgentBase, AbstractAIResource):
19+
class Agent(AgentBase, AIResource):
2120
agent_id: int | None = Field(foreign_key=AgentTable.__tablename__ + ".identifier", index=True)
2221
agent_identifier: AgentTable | None = Relationship()
2322

@@ -32,7 +31,7 @@ def __init_subclass__(cls):
3231
cls.update_relationships(relationships)
3332
cls.__sqlmodel_relationships__.update(relationships)
3433

35-
class RelationshipConfig(AbstractAIResource.RelationshipConfig):
34+
class RelationshipConfig(AIResource.RelationshipConfig):
3635
agent_identifier: int | None = OneToOne(
3736
identifier_name="agent_id",
3837
_serializer=AttributeSerializer("identifier"),

src/database/model/agent/team.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55

66
from database.model.agent.organisation import Organisation
77
from database.model.agent.person import Person
8-
from database.model.ai_resource.resource import AIResourceBase
9-
from database.model.ai_resource.resource import AbstractAIResource
8+
from database.model.ai_resource.resource import AIResourceBase, AIResource
109
from database.model.helper_functions import many_to_many_link_factory
1110
from database.model.relationships import ManyToOne, ManyToMany
1211
from database.model.serializers import AttributeSerializer, FindByIdentifierDeserializerList
@@ -25,7 +24,7 @@ class TeamBase(AIResourceBase):
2524
)
2625

2726

28-
class Team(TeamBase, AbstractAIResource, table=True): # type: ignore [call-arg]
27+
class Team(TeamBase, AIResource, table=True): # type: ignore [call-arg]
2928
__tablename__ = "team"
3029

3130
organisation_identifier: int | None = Field(
@@ -36,7 +35,7 @@ class Team(TeamBase, AbstractAIResource, table=True): # type: ignore [call-arg]
3635
link_model=many_to_many_link_factory("team", Person.__tablename__, "member"),
3736
)
3837

39-
class RelationshipConfig(AbstractAIResource.RelationshipConfig):
38+
class RelationshipConfig(AIResource.RelationshipConfig):
4039
organisation: int | None = ManyToOne(
4140
description="The organisation of which this team is a part.",
4241
identifier_name="organisation_identifier",

src/database/model/ai_asset/ai_asset.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from database.model.ai_asset.ai_asset_table import AIAssetTable
99
from database.model.ai_asset.distribution import Distribution, distribution_factory
1010
from database.model.ai_asset.license import License
11-
from database.model.ai_resource.resource import AIResourceBase, AbstractAIResource
11+
from database.model.ai_resource.resource import AIResourceBase, AIResource
1212
from database.model.field_length import NORMAL
1313
from database.model.helper_functions import many_to_many_link_factory
1414
from database.model.models_and_experiments.runnable_distribution import (
@@ -37,7 +37,7 @@ class AIAssetBase(AIResourceBase, metaclass=abc.ABCMeta):
3737
)
3838

3939

40-
class AIAsset(AIAssetBase, AbstractAIResource, metaclass=abc.ABCMeta):
40+
class AIAsset(AIAssetBase, AIResource, metaclass=abc.ABCMeta):
4141
ai_asset_id: int | None = Field(
4242
foreign_key=AIAssetTable.__tablename__ + ".identifier", unique=True, index=True
4343
)
@@ -61,7 +61,7 @@ def __init_subclass__(cls):
6161
cls.update_relationships_asset(relationships)
6262
cls.__sqlmodel_relationships__.update(relationships)
6363

64-
class RelationshipConfig(AbstractAIResource.RelationshipConfig):
64+
class RelationshipConfig(AIResource.RelationshipConfig):
6565
ai_asset_identifier: int | None = OneToOne(
6666
identifier_name="ai_asset_id",
6767
_serializer=AttributeSerializer("identifier"),

src/database/model/ai_resource/resource.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class AIResourceBase(AIoDConceptBase, metaclass=abc.ABCMeta):
5757
)
5858

5959

60-
class AbstractAIResource(AIResourceBase, AIoDConcept, metaclass=abc.ABCMeta):
60+
class AIResource(AIResourceBase, AIoDConcept, metaclass=abc.ABCMeta):
6161
ai_resource_id: int | None = Field(
6262
foreign_key="ai_resource.identifier", index=True, unique=True
6363
)
@@ -87,8 +87,8 @@ def __init_subclass__(cls):
8787
The latter cannot be done in the class variables, because it depends on the table-name of
8888
the child class.
8989
"""
90-
cls.__annotations__.update(AbstractAIResource.__annotations__)
91-
relationships = copy.deepcopy(AbstractAIResource.__sqlmodel_relationships__)
90+
cls.__annotations__.update(AIResource.__annotations__)
91+
relationships = copy.deepcopy(AIResource.__sqlmodel_relationships__)
9292
is_not_abstract = cls.__tablename__ not in ("aiasset", "agent", "knowledgeasset")
9393
if is_not_abstract:
9494
cls.update_relationships(relationships)
@@ -117,7 +117,7 @@ class RelationshipConfig(AIoDConcept.RelationshipConfig):
117117
default_factory_pydantic=list,
118118
on_delete_trigger_orphan_deletion=lambda: [
119119
f"{a.__tablename__}_alternate_name_link"
120-
for a in non_abstract_subclasses(AbstractAIResource)
120+
for a in non_abstract_subclasses(AIResource)
121121
],
122122
)
123123
keyword: list[str] = ManyToMany(
@@ -128,8 +128,7 @@ class RelationshipConfig(AIoDConcept.RelationshipConfig):
128128
example=["keyword1", "keyword2"],
129129
default_factory_pydantic=list,
130130
on_delete_trigger_orphan_deletion=lambda: [
131-
f"{a.__tablename__}_keyword_link"
132-
for a in non_abstract_subclasses(AbstractAIResource)
131+
f"{a.__tablename__}_keyword_link" for a in non_abstract_subclasses(AIResource)
133132
],
134133
)
135134
relevant_link: list[str] = ManyToMany(
@@ -144,8 +143,7 @@ class RelationshipConfig(AIoDConcept.RelationshipConfig):
144143
],
145144
default_factory_pydantic=list,
146145
on_delete_trigger_orphan_deletion=lambda: [
147-
f"{a.__tablename__}_relevant_link_link"
148-
for a in non_abstract_subclasses(AbstractAIResource)
146+
f"{a.__tablename__}_relevant_link_link" for a in non_abstract_subclasses(AIResource)
149147
],
150148
)
151149
application_area: list[str] = ManyToMany(

src/database/model/educational_resource/educational_resource.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from database.model.agent.language import Language
55
from database.model.agent.location import Location, LocationORM
6-
from database.model.ai_resource.resource import AbstractAIResource, AIResourceBase
6+
from database.model.ai_resource.resource import AIResource, AIResourceBase
77
from database.model.ai_resource.text import TextORM, Text
88
from database.model.educational_resource.access_mode import AccessMode
99
from database.model.educational_resource.educational_level import EducationalLevel
@@ -32,7 +32,7 @@ class EducationalResourceBase(AIResourceBase):
3232
)
3333

3434

35-
class EducationalResource(EducationalResourceBase, AbstractAIResource, table=True): # type: ignore [call-arg]
35+
class EducationalResource(EducationalResourceBase, AIResource, table=True): # type: ignore [call-arg]
3636
__tablename__ = "educational_resource"
3737

3838
type_identifier: int | None = Field(
@@ -78,7 +78,7 @@ class EducationalResource(EducationalResourceBase, AbstractAIResource, table=Tru
7878
)
7979
)
8080

81-
class RelationshipConfig(AbstractAIResource.RelationshipConfig):
81+
class RelationshipConfig(AIResource.RelationshipConfig):
8282
type: Optional[str] = ManyToOne(
8383
description="The type of educational resource.",
8484
identifier_name="type_identifier",

src/database/model/event/event.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from database.model.agent.agent_table import AgentTable
77
from database.model.agent.location import LocationORM, Location
8-
from database.model.ai_resource.resource import AIResourceBase, AbstractAIResource
8+
from database.model.ai_resource.resource import AIResourceBase, AIResource
99
from database.model.ai_resource.text import TextORM, Text
1010
from database.model.event.event_mode import EventMode
1111
from database.model.event.event_status import EventStatus
@@ -49,7 +49,7 @@ class EventBase(AIResourceBase):
4949
# Did not add duration here: it can be described using start_date and end_date
5050

5151

52-
class Event(EventBase, AbstractAIResource, table=True): # type: ignore [call-arg]
52+
class Event(EventBase, AIResource, table=True): # type: ignore [call-arg]
5353
__tablename__ = "event"
5454

5555
content_identifier: int | None = Field(
@@ -74,7 +74,7 @@ class Event(EventBase, AbstractAIResource, table=True): # type: ignore [call-ar
7474
mode_identifier: int | None = Field(foreign_key=EventMode.__tablename__ + ".identifier")
7575
mode: Optional[EventMode] = Relationship()
7676

77-
class RelationshipConfig(AbstractAIResource.RelationshipConfig):
77+
class RelationshipConfig(AIResource.RelationshipConfig):
7878
content: Optional[Text] = OneToOne(
7979
deserializer=CastDeserializer(TextORM),
8080
on_delete_trigger_deletion_by="content_identifier",

src/database/model/news/news.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from sqlmodel import Field, Relationship
44

5-
from database.model.ai_resource.resource import AbstractAIResource, AIResourceBase
5+
from database.model.ai_resource.resource import AIResource, AIResourceBase
66
from database.model.ai_resource.text import TextORM, Text
77
from database.model.field_length import NORMAL, LONG
88
from database.model.helper_functions import many_to_many_link_factory
@@ -35,7 +35,7 @@ class NewsBase(AIResourceBase):
3535
)
3636

3737

38-
class News(NewsBase, AbstractAIResource, table=True): # type: ignore [call-arg]
38+
class News(NewsBase, AIResource, table=True): # type: ignore [call-arg]
3939
__tablename__ = "news"
4040

4141
category: list[NewsCategory] = Relationship(
@@ -51,7 +51,7 @@ class News(NewsBase, AbstractAIResource, table=True): # type: ignore [call-arg]
5151
sa_relationship_kwargs=dict(foreign_keys="[News.content_identifier]")
5252
)
5353

54-
class RelationshipConfig(AbstractAIResource.RelationshipConfig):
54+
class RelationshipConfig(AIResource.RelationshipConfig):
5555
category: list[str] = ManyToMany(
5656
description="News categories related to this item.",
5757
_serializer=AttributeSerializer("name"),

src/database/model/project/project.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66

77
from database.model.agent.organisation import Organisation
88
from database.model.ai_asset.ai_asset_table import AIAssetTable
9-
from database.model.ai_resource.resource import AIResourceBase
10-
from database.model.ai_resource.resource import AbstractAIResource
9+
from database.model.ai_resource.resource import AIResourceBase, AIResource
1110
from database.model.helper_functions import many_to_many_link_factory
1211
from database.model.relationships import ManyToMany, ManyToOne
1312
from database.model.serializers import (
@@ -34,7 +33,7 @@ class ProjectBase(AIResourceBase):
3433
)
3534

3635

37-
class Project(ProjectBase, AbstractAIResource, table=True): # type: ignore [call-arg]
36+
class Project(ProjectBase, AIResource, table=True): # type: ignore [call-arg]
3837
__tablename__ = "project"
3938

4039
funder: list[Organisation] = Relationship(
@@ -62,7 +61,7 @@ class Project(ProjectBase, AbstractAIResource, table=True): # type: ignore [cal
6261
),
6362
)
6463

65-
class RelationshipConfig(AbstractAIResource.RelationshipConfig):
64+
class RelationshipConfig(AIResource.RelationshipConfig):
6665
funder: list[int] = ManyToMany(
6766
description="Identifiers of organizations that support this project through some kind "
6867
"of financial contribution. ",

src/database/model/service/service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from sqlmodel import Field
22

3-
from database.model.ai_resource.resource import AIResourceBase, AbstractAIResource
3+
from database.model.ai_resource.resource import AIResourceBase, AIResource
44
from database.model.field_length import NORMAL, LONG
55

66

@@ -21,8 +21,8 @@ class ServiceBase(AIResourceBase):
2121
)
2222

2323

24-
class Service(ServiceBase, AbstractAIResource, table=True): # type: ignore [call-arg]
24+
class Service(ServiceBase, AIResource, table=True): # type: ignore [call-arg]
2525
__tablename__ = "service"
2626

27-
class RelationshipConfig(AbstractAIResource.RelationshipConfig):
27+
class RelationshipConfig(AIResource.RelationshipConfig):
2828
pass

src/routers/parent_routers/ai_resource_router.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import Type
22

3-
from database.model.ai_resource.resource import AbstractAIResource
3+
from database.model.ai_resource.resource import AIResource
44
from database.model.ai_resource.resource_table import AIResourceORM
55
from routers.parent_router import ParentRouter
66

@@ -15,8 +15,8 @@ def resource_name_plural(self) -> str:
1515
return "ai_resources"
1616

1717
@property
18-
def parent_class(self) -> Type[AbstractAIResource]:
19-
return AbstractAIResource
18+
def parent_class(self) -> Type[AIResource]:
19+
return AIResource
2020

2121
@property
2222
def parent_class_table(self) -> Type[AIResourceORM]:

0 commit comments

Comments
 (0)