codeant-ai-for-open-source[bot] commented on code in PR #41075: URL: https://github.com/apache/superset/pull/41075#discussion_r3500130072
########## scripts/seed_junction_load.py: ########## @@ -0,0 +1,679 @@ +#!/usr/bin/env python3 +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# ---------------------------------------------------------------------- +# Stress-test data generator for the composite-PK migration (sc-105349). +# +# Bulk-inserts synthetic parent rows and many-to-many junction rows for +# the eight association tables that the composite-PK migration touches. +# Useful for measuring migration runtime at varying scales β run this at +# 100K / 1M / 5M / 10M rows and time the migration at each scale to +# verify the O(N log N) extrapolation. +# +# Idempotent: rerunning with the same target is a no-op; rerunning with +# a higher target adds rows up to the new total. Batched bulk INSERTs +# (10K rows per statement) make it fast on Postgres, MySQL, and SQLite. +# +# Usage (inside the Superset container): +# +# docker exec superset-superset-1 \\ +# /app/.venv/bin/python /app/scripts/seed_junction_load.py \\ +# --dashboard-slices 1000000 \\ +# --slice-user 100000 \\ +# --dashboard-user 100000 +# +# Run with no flags for the defaults shown below. Use ``--dry-run`` to +# print the planned inserts without writing anything. +# +# The script connects via Superset's standard ``DATABASE_*`` env vars +# (or ``SUPERSET__SQLALCHEMY_DATABASE_URI`` if set), so it works +# automatically inside the Superset container regardless of which +# metadata DB backend is in use. + +from __future__ import annotations + +import argparse +import logging +import os +import sys +import time +from contextlib import contextmanager +from typing import Iterator +from uuid import uuid4 + +import sqlalchemy as sa +from sqlalchemy.engine import Connection, Engine + +logger = logging.getLogger("seed_junction_load") + +# Bulk INSERT batch size. Larger values = fewer statements but more memory. +BATCH = 10_000 Review Comment: **Suggestion:** Add an explicit integer type annotation to the batch-size constant to comply with required variable type hints. [custom_rule] **Severity Level:** Minor β οΈ <details> <summary><b>Why it matters? π€ </b></summary> The rule flags Python code that omits type hints on annotatable variables. `BATCH` is a module-level integer constant and can be explicitly annotated, so the absence of a type hint is a real violation. </details> [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=be48dc39e7f3468e8c28bd0706e46329&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=be48dc39e7f3468e8c28bd0706e46329&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) *(Use Cmd/Ctrl + Click for best experience)* <details> <summary><b>Prompt for AI Agent π€ </b></summary> ```mdx This is a comment left during a code review. **Path:** scripts/seed_junction_load.py **Line:** 65:65 **Comment:** *Custom Rule: Add an explicit integer type annotation to the batch-size constant to comply with required variable type hints. Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise. Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix ``` </details> <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=99f831dbd899b337070d81d60d746b3b87d19c455bd9cd8b2e3f1a881eb6f167&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=99f831dbd899b337070d81d60d746b3b87d19c455bd9cd8b2e3f1a881eb6f167&reaction=dislike'>π</a> ########## scripts/seed_junction_load.py: ########## @@ -0,0 +1,679 @@ +#!/usr/bin/env python3 +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# ---------------------------------------------------------------------- +# Stress-test data generator for the composite-PK migration (sc-105349). +# +# Bulk-inserts synthetic parent rows and many-to-many junction rows for +# the eight association tables that the composite-PK migration touches. +# Useful for measuring migration runtime at varying scales β run this at +# 100K / 1M / 5M / 10M rows and time the migration at each scale to +# verify the O(N log N) extrapolation. +# +# Idempotent: rerunning with the same target is a no-op; rerunning with +# a higher target adds rows up to the new total. Batched bulk INSERTs +# (10K rows per statement) make it fast on Postgres, MySQL, and SQLite. +# +# Usage (inside the Superset container): +# +# docker exec superset-superset-1 \\ +# /app/.venv/bin/python /app/scripts/seed_junction_load.py \\ +# --dashboard-slices 1000000 \\ +# --slice-user 100000 \\ +# --dashboard-user 100000 +# +# Run with no flags for the defaults shown below. Use ``--dry-run`` to +# print the planned inserts without writing anything. +# +# The script connects via Superset's standard ``DATABASE_*`` env vars +# (or ``SUPERSET__SQLALCHEMY_DATABASE_URI`` if set), so it works +# automatically inside the Superset container regardless of which +# metadata DB backend is in use. + +from __future__ import annotations + +import argparse +import logging +import os +import sys +import time +from contextlib import contextmanager +from typing import Iterator +from uuid import uuid4 + +import sqlalchemy as sa +from sqlalchemy.engine import Connection, Engine + +logger = logging.getLogger("seed_junction_load") Review Comment: **Suggestion:** Add an explicit type annotation for the module logger variable to satisfy the required type-hinting rule for annotatable variables. [custom_rule] **Severity Level:** Minor β οΈ <details> <summary><b>Why it matters? π€ </b></summary> The custom rule requires type hints on relevant variables that can be annotated. This module-level logger is a clearly typed variable, so omitting an explicit annotation is a real rule violation. </details> [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=a8aa1c44dd694f7f816112fe3fbeca5b&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=a8aa1c44dd694f7f816112fe3fbeca5b&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) *(Use Cmd/Ctrl + Click for best experience)* <details> <summary><b>Prompt for AI Agent π€ </b></summary> ```mdx This is a comment left during a code review. **Path:** scripts/seed_junction_load.py **Line:** 62:62 **Comment:** *Custom Rule: Add an explicit type annotation for the module logger variable to satisfy the required type-hinting rule for annotatable variables. Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise. Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix ``` </details> <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=b2b3558700eca3328c083a9b35bebf11fe2eaf57cd802e18c17a8f966944e2bd&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=b2b3558700eca3328c083a9b35bebf11fe2eaf57cd802e18c17a8f966944e2bd&reaction=dislike'>π</a> ########## superset/charts/api.py: ########## @@ -238,7 +250,7 @@ def ensure_thumbnails_enabled(self) -> Optional[Response]: openapi_spec_tag = "Charts" """ Override the name set for this collection of endpoints """ - openapi_spec_component_schemas = CHART_SCHEMAS + openapi_spec_component_schemas = CHART_SCHEMAS + (VersionListItemSchema,) Review Comment: **Suggestion:** Add a class-level type annotation for the newly assigned OpenAPI component schemas attribute. [custom_rule] **Severity Level:** Minor β οΈ <details> <summary><b>Why it matters? π€ </b></summary> This is a newly added class-level variable assignment in Python with no type annotation. It fits the custom ruleβs definition of a relevant variable that can be annotated, so the suggestion is valid. </details> [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=7b9bf49245044480a11879a58c441858&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=7b9bf49245044480a11879a58c441858&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) *(Use Cmd/Ctrl + Click for best experience)* <details> <summary><b>Prompt for AI Agent π€ </b></summary> ```mdx This is a comment left during a code review. **Path:** superset/charts/api.py **Line:** 253:253 **Comment:** *Custom Rule: Add a class-level type annotation for the newly assigned OpenAPI component schemas attribute. Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise. Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix ``` </details> <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=00db312777f5c9ea476e00260749bd8cd9af6abeffe1776f3f1eac4e19715726&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=00db312777f5c9ea476e00260749bd8cd9af6abeffe1776f3f1eac4e19715726&reaction=dislike'>π</a> ########## superset/charts/api.py: ########## @@ -437,9 +495,29 @@ def put(self, pk: int) -> Response: # This validates custom Schema with custom validations except ValidationError as error: return self.response_400(message=error.messages) + + # Live version identifiers before the update (empty + query-free when + # ``ENABLE_VERSIONING_CAPTURE`` is off, so this stays inert under the + # kill-switch). + old_info = current_entity_version_info(Slice, pk) + try: changed_model = UpdateChartCommand(pk, item).run() - response = self.response(200, id=changed_model.id, result=item) + new_info = current_entity_version_info( + Slice, changed_model.id, changed_model.uuid + ) Review Comment: **Suggestion:** Add explicit type annotations for the pre- and post-update version metadata variables to satisfy the type-hint requirement for relevant local variables. [custom_rule] **Severity Level:** Minor β οΈ <details> <summary><b>Why it matters? π€ </b></summary> These are newly added local variables in Python code and they are not type-annotated. Since the custom rule requires type hints on relevant variables that can be annotated, this is a real violation. </details> [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=b1d1624693de431198b6febf323486da&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=b1d1624693de431198b6febf323486da&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) *(Use Cmd/Ctrl + Click for best experience)* <details> <summary><b>Prompt for AI Agent π€ </b></summary> ```mdx This is a comment left during a code review. **Path:** superset/charts/api.py **Line:** 502:508 **Comment:** *Custom Rule: Add explicit type annotations for the pre- and post-update version metadata variables to satisfy the type-hint requirement for relevant local variables. Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise. Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix ``` </details> <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=b33420a311c00731c8623bde8c7f441341098471d90c31245941519ac803f57a&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=b33420a311c00731c8623bde8c7f441341098471d90c31245941519ac803f57a&reaction=dislike'>π</a> ########## superset/charts/api.py: ########## @@ -437,9 +495,29 @@ def put(self, pk: int) -> Response: # This validates custom Schema with custom validations except ValidationError as error: return self.response_400(message=error.messages) + + # Live version identifiers before the update (empty + query-free when + # ``ENABLE_VERSIONING_CAPTURE`` is off, so this stays inert under the + # kill-switch). + old_info = current_entity_version_info(Slice, pk) + try: changed_model = UpdateChartCommand(pk, item).run() - response = self.response(200, id=changed_model.id, result=item) + new_info = current_entity_version_info( + Slice, changed_model.id, changed_model.uuid + ) + response = self.response( Review Comment: **Suggestion:** Add a type annotation for the newly introduced response object variable before it is returned. [custom_rule] **Severity Level:** Minor β οΈ <details> <summary><b>Why it matters? π€ </b></summary> The new local variable `response` is introduced without a type annotation. It is a modifiable local variable that can be annotated, so this violates the type-hint requirement. </details> [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=954e569b10fa45ecbff61178a00da680&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=954e569b10fa45ecbff61178a00da680&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) *(Use Cmd/Ctrl + Click for best experience)* <details> <summary><b>Prompt for AI Agent π€ </b></summary> ```mdx This is a comment left during a code review. **Path:** superset/charts/api.py **Line:** 509:509 **Comment:** *Custom Rule: Add a type annotation for the newly introduced response object variable before it is returned. Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise. Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix ``` </details> <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=2e693f9860a1e60726f1d280f3104108cf24bdd818595dfbce89f770532edbf9&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=2e693f9860a1e60726f1d280f3104108cf24bdd818595dfbce89f770532edbf9&reaction=dislike'>π</a> ########## superset/commands/dashboard/importers/v1/__init__.py: ########## @@ -201,7 +205,31 @@ def _import( overwrite or (dashboard.id, chart_id) not in existing_relationships ): - dashboard_chart_ids.append((dashboard.id, chart_id)) + target_chart_ids.append(chart_id) + + if overwrite: + # Replace the dashboard's chart membership entirely. + dashboard.slices = ( + db.session.query(Slice) + .filter(Slice.id.in_(target_chart_ids)) + .all() + if target_chart_ids + else [] + ) + # Flush eagerly so the M2M rows land in + # ``dashboard_slices`` before any subsequent + # autoflush fires an inner-flush event handler + # that would reset the relationship change. + db.session.flush() + elif target_chart_ids: + # Append only the new associations to existing ones. + new_slices = ( + db.session.query(Slice) + .filter(Slice.id.in_(target_chart_ids)) + .all() + ) Review Comment: **Suggestion:** Add an explicit type annotation for this newly introduced local variable to satisfy the type-hint requirement for relevant variables. [custom_rule] **Severity Level:** Minor β οΈ <details> <summary><b>Why it matters? π€ </b></summary> This new local variable is introduced without a type annotation, while the rule requires type hints for new or modified Python code where relevant variables can be annotated. The queried result is a list of Slice objects, so an explicit annotation is applicable here. </details> [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=d858b7052e104ccebd1d0fb4a90eb160&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=d858b7052e104ccebd1d0fb4a90eb160&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) *(Use Cmd/Ctrl + Click for best experience)* <details> <summary><b>Prompt for AI Agent π€ </b></summary> ```mdx This is a comment left during a code review. **Path:** superset/commands/dashboard/importers/v1/__init__.py **Line:** 226:230 **Comment:** *Custom Rule: Add an explicit type annotation for this newly introduced local variable to satisfy the type-hint requirement for relevant variables. Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise. Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix ``` </details> <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=ab9c21420efdc175bf459d78a4c0b5e842687c11a3795a44894222847f728355&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=ab9c21420efdc175bf459d78a4c0b5e842687c11a3795a44894222847f728355&reaction=dislike'>π</a> ########## superset/commands/dashboard/update.py: ########## @@ -59,23 +59,31 @@ def __init__(self, model_id: int, data: dict[str, Any]): def run(self) -> Model: self.validate() assert self._model is not None - self.process_tab_diff() - self.process_native_filter_diff() - - # Update tags - if (tags := self._properties.pop("tags", None)) is not None: - update_tags(ObjectType.dashboard, self._model.id, self._model.tags, tags) - - # Re-serialize position_json to escape 4-byte Unicode characters - if position_json := self._properties.get("position_json"): - self._properties["position_json"] = json.dumps(json.loads(position_json)) - - dashboard = DashboardDAO.update(self._model, self._properties) - if self._properties.get("json_metadata"): - DashboardDAO.set_dash_metadata( - dashboard, - data=json.loads(self._properties.get("json_metadata", "{}")), - ) + # Suppress autoflush during the update body so that Continuum's + # before_flush baseline listener does not fire mid-operation while + # the session is only partially populated. + with db.session.no_autoflush: + self.process_tab_diff() + self.process_native_filter_diff() + + # Update tags + if (tags := self._properties.pop("tags", None)) is not None: + update_tags( + ObjectType.dashboard, self._model.id, self._model.tags, tags + ) + + # Re-serialize position_json to escape 4-byte Unicode characters + if position_json := self._properties.get("position_json"): + self._properties["position_json"] = json.dumps( + json.loads(position_json) + ) + + dashboard = DashboardDAO.update(self._model, self._properties) Review Comment: **Suggestion:** Add an explicit type annotation for this newly introduced local variable to comply with the type-hint requirement for relevant variables. [custom_rule] **Severity Level:** Minor β οΈ <details> <summary><b>Why it matters? π€ </b></summary> This is newly added Python code and the local variable `dashboard` is not annotated even though it can be typed. That matches the repository rule requiring type hints on relevant variables introduced or modified in Python code. </details> [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=199a338c62414fb8a87c9367670cdc34&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=199a338c62414fb8a87c9367670cdc34&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) *(Use Cmd/Ctrl + Click for best experience)* <details> <summary><b>Prompt for AI Agent π€ </b></summary> ```mdx This is a comment left during a code review. **Path:** superset/commands/dashboard/update.py **Line:** 81:81 **Comment:** *Custom Rule: Add an explicit type annotation for this newly introduced local variable to comply with the type-hint requirement for relevant variables. Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise. Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix ``` </details> <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=d317abe445b401bfce0efa9a6a9cebc6770a9e0badec84e81c0a69a13b47a7fe&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=d317abe445b401bfce0efa9a6a9cebc6770a9e0badec84e81c0a69a13b47a7fe&reaction=dislike'>π</a> ########## superset/daos/version.py: ########## @@ -0,0 +1,69 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +"""Backward-compat faΓ§ade for the entity-versioning DAO surface. + +The actual implementation lives in :mod:`superset.versioning.queries` +(read side: list/get/resolve/find/UUID derivation). This module +re-exports it under a single ``VersionDAO`` class plus the module-level +UUID helpers so existing callers keep working without changes. (The +write side β restore + audit stamping β ships in a later PR; only the +read surface is wired here.) + +New code should import from the versioning sub-modules directly. +""" + +from __future__ import annotations + +from superset.versioning.queries import ( + current_live_transaction_id, + current_live_version_uuid, + current_version_number, + derive_version_uuid, + derive_version_uuid as _derive_version_uuid, # noqa: F401 + find_active_by_uuid, + get_version, + list_change_records_batch, + list_versions, + resolve_version_uuid, + VERSION_UUID_NAMESPACE, +) + +# Re-exports for ``from superset.daos.version import β¦`` consumers. +__all__ = [ + "VERSION_UUID_NAMESPACE", + "VersionDAO", + "derive_version_uuid", +] Review Comment: **Suggestion:** Add an explicit type annotation for the module export list to satisfy the type-hint requirement for relevant variables. [custom_rule] **Severity Level:** Minor β οΈ <details> <summary><b>Why it matters? π€ </b></summary> The rule requires type hints on relevant variables that can be annotated. `__all__` is a newly added module-level variable and can be annotated as a typed sequence of strings, so the omission is a real type-hint violation. </details> [](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt_id=4e12e5885d0f4c28a7c82a7a8f8102ed&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) [](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt_id=4e12e5885d0f4c28a7c82a7a8f8102ed&service=github&base_url=https%3A%2F%2Fgithub.com&org=apache&repo=apache%2Fsuperset) *(Use Cmd/Ctrl + Click for best experience)* <details> <summary><b>Prompt for AI Agent π€ </b></summary> ```mdx This is a comment left during a code review. **Path:** superset/daos/version.py **Line:** 46:50 **Comment:** *Custom Rule: Add an explicit type annotation for the module export list to satisfy the type-hint requirement for relevant variables. Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise. Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix ``` </details> <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=8f854bb9c868f91461c4216377dc47c0de49bf94f61826f2e05d8d99613db9ae&reaction=like'>π</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F41075&comment_hash=8f854bb9c868f91461c4216377dc47c0de49bf94f61826f2e05d8d99613db9ae&reaction=dislike'>π</a> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
