Skip to content

Commit b759db7

Browse files
refactor(system,core): Removes deferred tag provider and corrects tag filtering logic
- Removes overture tag provider (was deferred) - Simplified tags - Reserved tags instead of reserved namespaces - Fixes small issue introduced in earlier commit Signed-off-by: Roel <75250264+RoelBollens-TomTom@users.noreply.github.com>
1 parent d0bab8e commit b759db7

3 files changed

Lines changed: 12 additions & 35 deletions

File tree

packages/overture-schema-core/pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,5 @@ dev = [
3838
]
3939

4040
[project.entry-points."overture.tag_providers"]
41-
overture = "overture.schema.core.tag_providers:overture_provider"
4241
authority = "overture.schema.core.tag_providers:authority_provider"
4342
theme = "overture.schema.core.tag_providers:theme_provider"

packages/overture-schema-core/src/overture/schema/core/tag_providers.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,15 @@
2121
"overture.schema.places:Place",
2222
"overture.schema.transportation:Connector",
2323
"overture.schema.transportation:Segment",
24+
"overture.schema.annex:Sources",
2425
}
2526

2627

2728
def authority_provider(
2829
model_class: type[BaseModel], key: ModelKey, tags: set[str]
2930
) -> set[str]:
3031
if _matches_manifest(key):
31-
tags.add("overture:official")
32-
return tags
33-
34-
35-
def overture_provider(
36-
model_class: type[BaseModel], key: ModelKey, tags: set[str]
37-
) -> set[str]:
38-
if any(issubclass(tp, OvertureFeature) for tp in _reduce_types(model_class)):
39-
tags.add("overture:feature")
32+
tags.add("overture")
4033
return tags
4134

4235

@@ -52,7 +45,7 @@ def theme_provider(
5245

5346

5447
def _matches_manifest(key: ModelKey) -> bool:
55-
return key.entry_point in APPROVED:
48+
return key.entry_point in APPROVED
5649

5750

5851
def _reduce_types(tp: Any) -> set[type]:

packages/overture-schema-system/src/overture/schema/system/discovery.py

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def generate_tags(
7373
for provider_key, provider in providers.items():
7474
try:
7575
added_tags = provider(model_class, key, tags.copy()).difference(tags)
76-
filtered_tags = _filter_tags(added_tags, provider_key.package_name)
76+
filtered_tags = _filter_tags(added_tags, provider_key)
7777
tags.update(filtered_tags)
7878
except Exception as e:
7979
logger.warning(
@@ -83,17 +83,17 @@ def generate_tags(
8383
return tags
8484

8585

86-
def _filter_tags(tags: set[str], package: str) -> set[str]:
87-
reserved_namespaces = tuple(
88-
f"{namespace}:"
89-
for namespace, reserved_packages in RESERVED_TAGS.items()
90-
if package not in reserved_packages
86+
def _filter_tags(tags: set[str], provider: TagProviderKey) -> set[str]:
87+
reserved_tags = tuple(
88+
tag
89+
for tag, dist in RESERVED_TAGS.items()
90+
if provider.package_name not in dist
9191
)
9292

9393
return {
9494
tag
9595
for tag in tags
96-
if TAG_RE.match(tag) and not tag.startswith(reserved_namespaces)
96+
if TAG_RE.match(tag) and not tag in reserved_tags
9797
}
9898

9999

@@ -155,11 +155,7 @@ def discover_models(
155155
key = ModelKey(
156156
name=model.name,
157157
entry_point=model.value,
158-
tags=(
159-
frozenset(_distribution_tags(model.dist))
160-
if model.dist
161-
else frozenset()
162-
),
158+
tags=frozenset(),
163159
)
164160

165161
try:
@@ -183,17 +179,6 @@ def discover_models(
183179
return models
184180

185181

186-
def _distribution_tags(dist: importlib.metadata.Distribution) -> set[str]:
187-
"""Extract tags from the distribution metadata."""
188-
tags = set()
189-
if dist.name:
190-
tags.add("dist:name=" + dist.name)
191-
if dist.version:
192-
tags.add("dist:version=" + dist.version)
193-
194-
return tags
195-
196-
197182
def get_registered_model(feature_type: str) -> type[BaseModel] | None:
198183
"""Get the Pydantic model for a type.
199184
@@ -244,7 +229,7 @@ def feature_provider(
244229
model_class: type[BaseModel], key: ModelKey, tags: set[str]
245230
) -> set[str]:
246231
if any(issubclass(tp, Feature) for tp in _extract_types(model_class)):
247-
tags.add("system:feature")
232+
tags.add("feature")
248233
return tags
249234

250235

0 commit comments

Comments
 (0)