You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2025/08/12 22:51:00 UTC
(superset) branch issue34531 updated (243e379f8e -> ce69a475a4)
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch issue34531
in repository https://gitbox.apache.org/repos/asf/superset.git
discard 243e379f8e fix: Handle locales without underscores safely and simplify test mocking
discard f2130cfc4b fix(i18n): Fix menu bar translations not updating on language change
add f45654c03c chore: Rename dataset creation buttons (#34544)
add d843fef2ce fix(theming): More theming bugs/regressions (#34507)
add 8700a0b939 fix(table chart): render bigint value in a raw mode (#34556)
add 02586981da chore(deps-dev): bump eslint-plugin-prettier from 5.5.1 to 5.5.3 in /docs (#34496)
add 8f2afb8f4d chore(deps-dev): bump @babel/preset-react from 7.26.3 to 7.27.1 in /superset-frontend (#34489)
add 7a1839ba1b chore(deps): bump @rjsf/validator-ajv8 from 5.24.9 to 5.24.12 in /superset-frontend (#34487)
add 4a556f4ac4 fix: update copy text for better capitalization and abbreviation standards (#34508)
add 622a62d7a1 chore(deps): update react requirement from ^19.1.0 to ^19.1.1 in /superset-frontend/plugins/legacy-plugin-chart-chord (#34502)
add 19d229ea12 chore(deps-dev): bump typescript-eslint from 8.37.0 to 8.38.0 in /docs (#34493)
add e8f37a3f89 chore(deps-dev): bump eslint from 9.31.0 to 9.32.0 in /docs (#34492)
add 65f2071aa4 chore(deps): bump react-lines-ellipsis from 0.15.4 to 0.16.1 in /superset-frontend (#34483)
add d0a6c78966 chore(deps): bump react-draggable from 4.4.6 to 4.5.0 in /superset-frontend (#34474)
add ac4b4c7646 chore(deps-dev): bump eslint-config-prettier from 10.1.5 to 10.1.8 in /superset-websocket (#34454)
add 09cf49c2ba chore(deps): bump @babel/runtime from 7.26.10 to 7.28.2 in /superset-frontend (#34472)
add cdd140b3cc chore(deps-dev): update jest requirement from ^30.0.4 to ^30.0.5 in /superset-frontend/plugins/plugin-chart-handlebars (#34501)
add c62a6f5cee chore(deps): bump @deck.gl/react from 9.1.13 to 9.1.14 in /superset-frontend (#34461)
add 35ec6d308a chore(deps-dev): update jest requirement from ^30.0.4 to ^30.0.5 in /superset-frontend/packages/generator-superset (#34457)
add ae090fa74c chore(deps-dev): update @types/prop-types requirement from ^15.7.2 to ^15.7.15 in /superset-frontend/packages/superset-ui-core (#34451)
add 486b0122d0 chore(deps-dev): update jest requirement from ^30.0.4 to ^30.0.5 in /superset-frontend/plugins/plugin-chart-pivot-table (#34462)
add 923b2b1d77 chore(deps-dev): bump @babel/runtime-corejs3 from 7.26.7 to 7.28.2 in /superset-frontend (#34464)
add 8515792b04 chore(deps): update @deck.gl/aggregation-layers requirement from ^9.1.13 to ^9.1.14 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#34468)
add 6f5d9c989a fix(echarts): rename time series shifted without dimensions (#34541)
add 246181a546 feat(docker): Add pytest support to docker-compose-light.yml (#34373)
add 53503e32ae fix(Table chart): fix percentage metric column (#34175)
add 5a004590e0 feat(deckgl): add selected cross-filter indication (#34322)
add 53e9cf6d17 fix: navigate to SQL Lab due to router api updates (#34569)
add e88db9f403 chore(deps): update re-resizable requirement from ^6.10.1 to ^6.11.2 in /superset-frontend/packages/superset-ui-core (#34453)
add 00304f77e1 chore(deps-dev): bump globals from 16.0.0 to 16.3.0 in /superset-websocket (#34452)
add 3e12d97e8e fix(echart): broken aggregator due to bigint value (#34580)
add a66b7e98e0 feat: Add ESLint rule to enforce sentence case in button text (#34434)
add adaae8ba15 fix(Timeshift): Determine temporal column correctly (#34582)
add 1e1310dbd8 chore(helm): bump app version to 5.0.0 (#33889)
add f3e3bd0348 fix(db_engine_specs): generate correct boolean filter SQL syntax for Athena compatibility (#34598)
add 952b620465 chore(deps-dev): bump @types/node from 22.10.3 to 24.1.0 in /superset-websocket (#34448)
add 8131c24acd chore(deps): bump ws and @types/ws in /superset-websocket (#34450)
add 38e15196f2 fix(Heatmap): addin x axis label rotation (#34239)
add ad592c717e fix: Reset description height to zero when chart is not expanded (#33843)
add 1dc22a9002 chore: add tests to DatabaseConnectionForm/EncryptedField (#34442)
add 1af9c8dba2 fix(DatabaseModal): Don't set activeKey to undefined repeatedly (#34636)
add 732506b3fa fix: Use labels in Drill to Detail (#34620)
add 370a24da81 fix(Dashboards): Tabs highlight and dataset contrast in darkmode issues (#34602)
add 5e621ceb34 fix: Remove deprecated @types/classnames package (#34625)
add 99539c786e fix(initialization): prevent startup failures when database tables don't exist (#34584)
add 02924b3c74 fix: Slack channels and Color Palettes search (#34641)
add 22b44421a4 fix: Fix Slice import on has_drill_by_access (#34644)
add 9efa9898ff fix: update Russian translations (#34005)
add 6964f9bdbf chore(deps): bump googleapis from 130.0.0 to 154.1.0 in /superset-frontend (#34481)
add ae986903b3 fix(webpack): webpack warnings (#34645)
add 57d0e78d40 feat: Tiled screenshots in Playwright reports (#34561)
add 3c17ff8445 chore: Refactor Menu.Item and cleanup console errors (#34536)
add f7dd0659bf chore(deps): bump tmp and inquirer in /superset-frontend (#34646)
add c3cb5c7e99 chore(deps): bump tmp from 0.2.1 to 0.2.4 in /superset-frontend/cypress-base (#34581)
add 1f80725b0e chore(deps-dev): bump eslint-import-resolver-typescript from 3.7.0 to 4.4.4 in /superset-frontend (#34460)
add e2a9f2dead chore: Increase memory limit on webpack ts checker plugin (#34653)
add 698de7a38d feat(dashboard): change chart background option from "White" to "Solid" (#34655)
add e452f5b70d fix(install): set SUPERSET_VERSION_RC at the right time (#21083)
add 1947d4da76 fix(daos/tag): prevent non-unique tags getting created along with unique ones (#32405)
add 2465ab4a98 chore: add more csv tests (#32663)
add f50cbd7958 feat: add @sadpandajoe to migrations CODEOWNERS (#34663)
add 5309edf3a5 feat: Implement UI-based system theme administration (#34560)
add baec438be9 feat(filter_state): Added @api and @has_access_api to all methods of filter_state API. (#27086)
add 89f09ea57c fix(open-api): Add missing FormatQueryPayloadSchema and DashboardScreenshotPostSchema to open-api component schemas (#33202)
add ab13166e41 fix: activity table delta time (#33503)
add 6d827cf905 fix(security): grant TableSchemaView to only sql_lab role (#32340)
add e88096f75c fix(presto): return proper data type for column (#34304)
add 34e10f5972 fix(superset-ui-core): Include appRoot in endpoint of SupersetClientClass.postForm action (#34395)
add b25722ee2b fix(sqllab): show actual execution duration in Query History (#34511)
add b2cd45bdf3 fix(i18n): Fix menu bar translations not updating on language change
add ce69a475a4 fix: Handle locales without underscores safely and simplify test mocking
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (243e379f8e)
\
N -- N -- N refs/heads/issue34531 (ce69a475a4)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/CODEOWNERS | 2 +-
.gitignore | 3 +
RELEASING/make_tarball.sh | 3 +-
RESOURCES/STANDARD_ROLES.md | 6 +-
UPDATING.md | 7 +
docker-compose-light.yml | 70 +-
docker/docker-pytest-entrypoint.sh | 152 +
.../pythonpath_dev/superset_test_config_light.py | 55 +
{scripts => docker}/tag_latest_release.sh | 0
docs/docs/configuration/theming.mdx | 82 +-
docs/package.json | 6 +-
docs/yarn.lock | 200 +-
helm/superset/Chart.yaml | 4 +-
helm/superset/README.md | 5 +-
helm/superset/README.md.gotmpl | 3 +
pyproject.toml | 5 +-
requirements/base.txt | 2 +
requirements/development.txt | 4 +-
superset-frontend/.eslintrc.js | 1 +
.../cypress-base/cypress/e2e/auth/login.test.ts | 2 +-
.../e2e/dashboard/horizontalFilterBar.test.ts | 2 +-
.../cypress/e2e/dashboard/nativeFilters.test.ts | 3 +-
superset-frontend/cypress-base/package-lock.json | 20 +-
.../eslint-plugin-i18n-strings/index.js | 64 +-
superset-frontend/package-lock.json | 1745 +++---
superset-frontend/package.json | 15 +-
.../packages/generator-superset/package.json | 2 +-
.../src/operators/renameOperator.ts | 8 +-
.../superset-ui-chart-controls/src/utils/index.ts | 1 +
.../src/utils/metricColumnFilter.test.ts | 135 +
.../src/utils/metricColumnFilter.ts | 95 +
.../test/operators/renameOperator.test.ts | 35 +-
.../packages/superset-ui-core/package.json | 8 +-
.../src/components/Badge/index.tsx | 1 +
.../src/components/DropdownContainer/index.tsx | 88 +-
.../src/components/DropdownContainer/types.ts | 3 +-
.../components/Label/reusable/DatasetTypeLabel.tsx | 11 +-
.../src/components/Select/Select.test.tsx | 113 +
.../src/components/Select/Select.tsx | 24 +-
.../src/components/Select/styles.tsx | 3 +-
.../src/components/TableCollection/index.tsx | 7 +-
.../src/components/TableCollection/utils.tsx | 2 +-
.../superset-ui-core/src/components/index.ts | 1 -
.../src/connection/SupersetClientClass.ts | 10 +-
.../packages/superset-ui-core/src/theme/types.ts | 7 +-
.../test/connection/SupersetClientClass.test.ts | 40 +-
.../packages/superset-ui-demo/package.json | 2 +-
.../plugins/legacy-plugin-chart-chord/package.json | 2 +-
.../legacy-preset-chart-deckgl/package.json | 4 +-
.../src/CategoricalDeckGLContainer.tsx | 36 +-
.../legacy-preset-chart-deckgl/src/Multi/Multi.tsx | 27 +-
.../legacy-preset-chart-deckgl/src/factory.tsx | 27 +-
.../src/layers/Arc/Arc.tsx | 48 +-
.../src/layers/Contour/Contour.tsx | 56 +-
.../src/layers/Geojson/Geojson.tsx | 22 +-
.../src/layers/Grid/Grid.tsx | 45 +-
.../src/layers/Heatmap/Heatmap.tsx | 49 +-
.../src/layers/Hex/Hex.tsx | 43 +-
.../src/layers/Path/Path.tsx | 40 +-
.../src/layers/Polygon/Polygon.tsx | 69 +-
.../src/layers/Polygon/controlPanel.ts | 26 -
.../src/layers/Scatter/Scatter.tsx | 40 +-
.../src/layers/Screengrid/Screengrid.tsx | 41 +-
.../src/layers/common.tsx | 2 +
.../src/utilities/utils.ts | 16 +
.../legacy-preset-chart-deckgl/src/utils.ts | 7 +-
.../src/utils/crossFiltersDataMask.test.ts | 36 +-
.../src/utils/crossFiltersDataMask.ts | 157 +-
.../src/controlPanel.tsx | 30 +-
.../src/Heatmap/controlPanel.tsx | 6 +-
.../src/Heatmap/transformProps.ts | 2 +
.../plugin-chart-echarts/src/Heatmap/types.ts | 1 +
.../plugins/plugin-chart-echarts/src/types.ts | 2 +-
.../plugin-chart-echarts/test/index.test.ts | 2 +-
.../plugins/plugin-chart-handlebars/package.json | 2 +-
.../plugins/plugin-chart-pivot-table/package.json | 2 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 6 +-
.../plugin-chart-table/src/controlPanel.tsx | 33 +-
.../plugin-chart-table/test/TableChart.test.tsx | 21 +
.../plugins/plugin-chart-table/test/testData.ts | 22 +
.../ExploreResultsButton.test.tsx | 8 +-
.../components/ExploreResultsButton/index.tsx | 2 +-
.../components/RunQueryActionButton/index.tsx | 35 +-
.../Chart/ChartContextMenu/ChartContextMenu.tsx | 91 +-
.../Chart/DrillDetail/DrillDetailPane.test.tsx | 46 +
.../Chart/DrillDetail/DrillDetailPane.tsx | 11 +-
.../src/components/Datasource/Field.tsx | 40 +-
.../src/components/Datasource/Fieldset.tsx | 8 +-
superset-frontend/src/constants.ts | 1 -
.../components/SliceHeaderControls/index.tsx | 15 +
.../src/dashboard/components/dnd/DragDroppable.jsx | 8 -
.../src/dashboard/components/dnd/DragHandle.tsx | 2 +-
.../dashboard/components/gridComponents/Chart.jsx | 2 +
.../dashboard/components/gridComponents/Tab.jsx | 2 +-
.../components/menu/BackgroundStyleDropdown.tsx | 4 +-
.../DownloadMenuItems/DownloadAsImage.test.tsx | 79 -
.../menu/DownloadMenuItems/DownloadAsImage.tsx | 59 -
.../menu/DownloadMenuItems/DownloadAsPdf.test.tsx | 77 -
.../menu/DownloadMenuItems/DownloadAsPdf.tsx | 59 -
.../DownloadMenuItems/DownloadScreenshot.test.tsx | 216 -
.../menu/DownloadMenuItems/DownloadScreenshot.tsx | 203 -
.../FiltersConfigForm/RemovedFilter.tsx | 2 +-
.../src/dashboard/util/backgroundStyleOptions.ts | 2 +-
.../DatasourcePanelDragOption/index.tsx | 13 +-
.../AnnotationLayerControl/AnnotationLayer.jsx | 2 +-
.../AnnotationLayer.test.tsx | 2 +-
.../controls/ColorSchemeControl/index.tsx | 16 +-
.../ColumnConfigControl/ColumnConfigItem.tsx | 6 +-
.../controls/DatasourceControl/index.jsx | 135 +-
.../explore/components/controls/ViewQuery.test.tsx | 5 +-
.../src/explore/components/controls/ViewQuery.tsx | 4 +-
.../components/controls/VizTypeControl/VizTile.tsx | 2 +-
.../DashboardsSubMenu.test.tsx | 217 +-
.../DashboardsSubMenu.tsx | 166 +-
.../useExploreAdditionalActionsMenu/index.jsx | 75 +-
.../DatabaseConnectionForm/EncryptedField.test.tsx | 369 ++
.../databases/DatabaseModal/ExtraOptions.tsx | 5 +-
.../datasets/AddDataset/Footer/Footer.test.tsx | 22 +-
.../features/datasets/AddDataset/Footer/index.tsx | 18 +-
.../features/datasets/AddDataset/Header/index.tsx | 10 +-
.../datasets/AddDataset/LeftPanel/index.tsx | 2 +-
superset-frontend/src/features/datasets/styles.ts | 8 +-
.../src/features/home/ActivityTable.tsx | 3 +
.../src/features/home/LanguagePicker.stories.tsx | 26 +-
.../src/features/home/LanguagePicker.test.tsx | 40 +-
.../src/features/home/LanguagePicker.tsx | 76 +-
superset-frontend/src/features/home/RightMenu.tsx | 535 +-
superset-frontend/src/features/tags/TagModal.tsx | 38 +-
superset-frontend/src/features/themes/api.test.ts | 122 +
.../themes/api.ts} | 26 +-
.../src/features/themes/types.test.ts | 167 +
superset-frontend/src/features/themes/types.ts | 2 +
.../src/hooks/apiResources/datasets.ts | 93 +-
.../hooks/useThemeMenuItems.test.tsx} | 59 +-
.../index.tsx => src/hooks/useThemeMenuItems.tsx} | 131 +-
.../src/pages/AlertReportList/index.tsx | 8 +-
.../src/pages/AnnotationLayerList/index.tsx | 2 +
.../src/pages/AnnotationList/index.tsx | 1 +
.../src/pages/ChartCreation/index.tsx | 40 +-
superset-frontend/src/pages/ChartList/index.tsx | 9 +-
.../src/pages/CssTemplateList/index.tsx | 1 +
.../src/pages/DashboardList/index.tsx | 4 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 3 +-
superset-frontend/src/pages/DatasetList/index.tsx | 6 +-
superset-frontend/src/pages/GroupsList/index.tsx | 1 +
.../src/pages/QueryHistoryList/index.tsx | 29 +-
superset-frontend/src/pages/RolesList/index.tsx | 1 +
.../src/pages/RowLevelSecurityList/index.tsx | 7 +-
.../src/pages/SavedQueryList/index.tsx | 8 +-
superset-frontend/src/pages/Tags/index.tsx | 1 +
.../src/pages/ThemeList/index.test.tsx | 287 +
superset-frontend/src/pages/ThemeList/index.tsx | 176 +-
superset-frontend/src/pages/UsersList/index.tsx | 7 +
superset-frontend/src/theme/ThemeController.ts | 114 +-
.../src/theme/tests/ThemeController.test.ts | 347 +-
superset-frontend/src/types/bootstrapTypes.ts | 9 +-
superset-frontend/src/views/CRUD/types.ts | 2 +
.../src/views/theme.bootstrap.test.ts | 132 +
superset-frontend/webpack.config.js | 17 +-
superset-websocket/package-lock.json | 96 +-
superset-websocket/package.json | 10 +-
superset/commands/theme/delete.py | 4 +
superset/commands/theme/exceptions.py | 8 +
superset/commands/theme/set_system_theme.py | 126 +
superset/common/query_context_processor.py | 68 +-
superset/config.py | 30 +-
superset/daos/tag.py | 3 -
superset/daos/theme.py | 56 +
superset/dashboards/api.py | 2 +
superset/dashboards/filter_state/api.py | 6 +
superset/db_engine_specs/athena.py | 2 +
superset/db_engine_specs/presto.py | 6 +-
superset/initialization/__init__.py | 63 +-
...233f5365c9e_is_system_default_is_system_dark.py | 87 +
superset/models/core.py | 7 +
superset/queries/api.py | 1 +
superset/security/manager.py | 5 +-
superset/sqllab/api.py | 1 +
superset/themes/api.py | 263 +-
superset/themes/types.py | 16 -
superset/themes/utils.py | 28 +-
superset/translations/ar/LC_MESSAGES/messages.po | 18 +-
superset/translations/ca/LC_MESSAGES/messages.po | 18 +-
superset/translations/de/LC_MESSAGES/messages.po | 18 +-
superset/translations/en/LC_MESSAGES/messages.po | 18 +-
superset/translations/es/LC_MESSAGES/messages.po | 18 +-
superset/translations/fa/LC_MESSAGES/messages.po | 18 +-
superset/translations/fr/LC_MESSAGES/messages.po | 18 +-
superset/translations/it/LC_MESSAGES/messages.po | 18 +-
superset/translations/ja/LC_MESSAGES/messages.po | 18 +-
superset/translations/ko/LC_MESSAGES/messages.po | 18 +-
superset/translations/messages.pot | 18 +-
superset/translations/nl/LC_MESSAGES/messages.po | 18 +-
superset/translations/pl/LC_MESSAGES/messages.po | 18 +-
superset/translations/pt/LC_MESSAGES/messages.po | 18 +-
.../translations/pt_BR/LC_MESSAGES/messages.po | 18 +-
superset/translations/ru/LC_MESSAGES/messages.po | 5871 +++++++++++---------
superset/translations/sk/LC_MESSAGES/messages.po | 18 +-
superset/translations/sl/LC_MESSAGES/messages.po | 18 +-
superset/translations/tr/LC_MESSAGES/messages.po | 18 +-
superset/translations/uk/LC_MESSAGES/messages.po | 18 +-
superset/translations/zh/LC_MESSAGES/messages.po | 18 +-
.../translations/zh_TW/LC_MESSAGES/messages.po | 18 +-
superset/utils/screenshot_utils.py | 179 +
superset/utils/webdriver.py | 50 +-
superset/views/base.py | 68 +-
.../extensions/metastore_cache_test.py | 26 +-
tests/integration_tests/security_tests.py | 3 +
tests/integration_tests/tags/dao_tests.py | 9 +
tests/integration_tests/themes/api_tests.py | 7 +-
.../themes/test_theme_api_permissions.py | 260 +
tests/unit_tests/charts/test_client_processing.py | 91 +
tests/unit_tests/commands/report/execute_test.py | 37 +-
.../commands/theme/test_set_system_theme.py | 231 +
.../common/test_query_context_processor.py | 253 +
tests/unit_tests/daos/test_theme_dao.py | 233 +
.../datasets/commands/importers/v1/import_test.py | 11 +-
tests/unit_tests/db_engine_specs/test_athena.py | 33 +
tests/unit_tests/db_engine_specs/test_gsheets.py | 15 +
tests/unit_tests/extensions/test_sqlalchemy.py | 143 +-
tests/unit_tests/initialization_test.py | 430 ++
tests/unit_tests/models/core_test.py | 8 +
tests/unit_tests/security/manager_test.py | 31 +-
tests/unit_tests/themes/api_test.py | 8 +-
tests/unit_tests/themes/test_utils.py | 18 +-
tests/unit_tests/utils/csv_tests.py | 173 +-
tests/unit_tests/utils/test_core.py | 15 +-
tests/unit_tests/utils/test_screenshot_utils.py | 314 ++
228 files changed, 12005 insertions(+), 6336 deletions(-)
create mode 100755 docker/docker-pytest-entrypoint.sh
create mode 100644 docker/pythonpath_dev/superset_test_config_light.py
copy {scripts => docker}/tag_latest_release.sh (100%)
create mode 100644 superset-frontend/packages/superset-ui-chart-controls/src/utils/metricColumnFilter.test.ts
create mode 100644 superset-frontend/packages/superset-ui-chart-controls/src/utils/metricColumnFilter.ts
delete mode 100644 superset-frontend/src/dashboard/components/menu/DownloadMenuItems/DownloadAsImage.test.tsx
delete mode 100644 superset-frontend/src/dashboard/components/menu/DownloadMenuItems/DownloadAsImage.tsx
delete mode 100644 superset-frontend/src/dashboard/components/menu/DownloadMenuItems/DownloadAsPdf.test.tsx
delete mode 100644 superset-frontend/src/dashboard/components/menu/DownloadMenuItems/DownloadAsPdf.tsx
delete mode 100644 superset-frontend/src/dashboard/components/menu/DownloadMenuItems/DownloadScreenshot.test.tsx
delete mode 100644 superset-frontend/src/dashboard/components/menu/DownloadMenuItems/DownloadScreenshot.tsx
create mode 100644 superset-frontend/src/features/databases/DatabaseModal/DatabaseConnectionForm/EncryptedField.test.tsx
create mode 100644 superset-frontend/src/features/themes/api.test.ts
copy superset-frontend/src/{utils/cachedSupersetGet.ts => features/themes/api.ts} (61%)
create mode 100644 superset-frontend/src/features/themes/types.test.ts
rename superset-frontend/{packages/superset-ui-core/src/components/ThemeSubMenu/ThemeSubMenu.test.tsx => src/hooks/useThemeMenuItems.test.tsx} (86%)
rename superset-frontend/{packages/superset-ui-core/src/components/ThemeSubMenu/index.tsx => src/hooks/useThemeMenuItems.tsx} (53%)
create mode 100644 superset-frontend/src/pages/ThemeList/index.test.tsx
create mode 100644 superset-frontend/src/views/theme.bootstrap.test.ts
create mode 100644 superset/commands/theme/set_system_theme.py
create mode 100644 superset/migrations/versions/2025-08-05_14-38_c233f5365c9e_is_system_default_is_system_dark.py
create mode 100644 superset/utils/screenshot_utils.py
create mode 100644 tests/integration_tests/themes/test_theme_api_permissions.py
create mode 100644 tests/unit_tests/commands/theme/test_set_system_theme.py
create mode 100644 tests/unit_tests/daos/test_theme_dao.py
create mode 100644 tests/unit_tests/initialization_test.py
create mode 100644 tests/unit_tests/utils/test_screenshot_utils.py