Claude Code
dfd3f7b316
ci(lint): enforce no function-body imports (PLC0415) with targeted ignores
...
Follow-up to #40231 (merged), where a reviewer flagged a function-body
`from datetime import datetime, timedelta` instead of a top-of-file
import. Adds a `ruff-import-placement` pre-commit hook running
`ruff check --select PLC0415 --preview --no-fix`.
Per @rusackas's pushback on the first cut of this PR — which spammed
2,657 `# noqa: PLC0415` annotations across ~410 files without fixing
anything — this revision is a much smaller surface area:
1. **Per-file-ignores** for whole directories where function-body
imports are a deliberate pattern, not an oversight:
- `superset/cli/**` and `scripts/**`: subcommand-deferred imports
keep heavy modules out of the CLI startup path.
- `superset/tasks/**`: Celery task bodies defer imports of the
modules they orchestrate.
- `superset/migrations/versions/**`: Alembic migrations interact
with model state at runtime, not at module load.
- `superset/mcp_service/**`: MCP tools lazy-load resources on
invocation so the server can register many tools without paying
their import cost at startup.
- `superset/db_engine_specs/**`: engine specs defer driver imports
so optional DB drivers don't have to be installed.
- `superset/initialization/__init__.py`, `superset/extensions/__init__.py`,
`superset/app.py`: the app-factory and extension wiring are
intentionally full of circular-import workarounds.
- `tests/**`: test files routinely defer imports for fixture
isolation; the rule still applies to production code.
2. **Per-line `# noqa: PLC0415`** on the 259 remaining genuine
circular-import sites (security/manager.py, sql/execution/executor.py,
semantic_layers/labels.py, tags/core.py, core_api_injection.py, etc.).
These are foundational modules where moving the imports up would
actually break things.
Net result: ~410 files / 2,657 grandfathered → ~73 files / 259 actual
noqa annotations. The rule still catches every new function-body
import outside the explicitly-allowed directories.
Also: silences a pre-existing C901 on `mcp_service/sql_lab/tool/execute_sql.py`
that fires under newer local ruff but not CI's pinned ruff 0.9.7 — blocks
the local pre-commit run otherwise.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-20 13:55:14 -07:00
Beto Dealmeida
cb53745d43
feat: semantic layer extension ( #37815 )
2026-05-05 12:07:46 -04:00
Sam Firke
c2725e86f3
fix(markdown): Allow "target" attribute ( #39868 )
2026-05-04 18:27:43 -04:00
Jamile Celento
2dfc770b0f
fix(native-filters): update TEMPORAL_RANGE filter subject when Time Column filter is applied ( #36985 )
2026-02-04 12:37:17 +03:00
amaannawab923
4f444ae1d2
feat(ag-grid): Server Side Filtering for Column Level Filters ( #35683 )
2026-01-12 19:25:07 +05:30
Daniel Vaz Gaspar
bb22eb1ca8
feat: add option for hash algorithms ( #35621 )
...
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com >
2025-12-09 16:59:07 +00:00
Beto Dealmeida
482c674a0f
chore: improve types ( #36367 )
2025-12-04 13:51:35 -05:00
Beto Dealmeida
16e6452b8c
feat: Explorable protocol ( #36245 )
2025-12-04 13:18:34 -05:00
Amin Ghadersohi
06a8f4df02
feat(datasets): add datetime format detection to dataset columns ( #36150 )
...
Co-authored-by: Claude Code <claude@anthropic.com >
2025-11-25 14:25:24 -08:00
Beto Dealmeida
fb7d0e0e3d
chore: annotate important types ( #36034 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-11-17 14:41:20 -05:00
Elizabeth Thompson
61c68f7b8f
fix(reports): Add celery task execution ID to email notification logs ( #35807 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-28 15:31:41 -07:00
Richard Fogaca Nienkotter
a66737cb05
feat(custom-tooltip): custom tooltip on deck.gl charts ( #34276 )
2025-09-16 17:11:19 +03:00
Daniel Vaz Gaspar
a9fb853e3e
fix: Bump FAB to 5.X ( #33055 )
...
Co-authored-by: Joe Li <joe@preset.io >
2025-09-12 09:21:37 +01:00
Amin Ghadersohi
15e4e8df94
fix(utils): Suppress pandas date parsing warnings in normalize_dttm_col ( #35042 )
2025-09-08 18:17:33 -07:00
Maxime Beauchemin
b0d3f0f0d4
feat: add customizable brand spinners with theme integration ( #34764 )
...
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
2025-09-03 08:28:59 -07:00
Danylo Korostil
077724c2d2
feat(api): dataset read API uuid support ( #34836 )
2025-08-29 17:21:24 -07:00
Maxime Beauchemin
4683a0827d
feat(validation): Add SQL expression validation in popovers ( #34642 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-08-20 15:10:38 -07:00
Maxime Beauchemin
cb27d5fe8d
chore: proper current_app.config proxy usage ( #34345 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-31 19:27:42 -07:00
LisaHusband
7a1c056374
fix(charting): correctly categorize numeric columns with NULL values ( #34213 )
2025-07-24 15:46:58 +03:00
Beto Dealmeida
a26e1d822a
chore: remove sqlparse ( #33564 )
2025-06-04 19:31:41 -04:00
amaannawab923
22475e787e
feat(Table Chart): Row limit Increase , Backend Sorting , Backend Search , Excel/CSV Improvements ( #33357 )
...
Co-authored-by: Amaan Nawab <nelsondrew07@gmail.com >
2025-05-09 11:27:31 -06:00
bmaquet
174750c9dd
refactor(jinja macro): Update current_user_roles() macro to fetch roles from existing get_user_roles() method ( #32888 )
2025-03-28 20:50:53 -07:00
bmaquet
6b96b37c38
feat: Add current_user_roles() Jinja macro ( #32770 )
2025-03-24 18:39:07 -03:00
Beto Dealmeida
99e69c32ee
fix: coerce datetime conversion errors ( #32683 )
2025-03-18 13:09:23 -04:00
Ville Brofeldt
68e8d9858c
fix: always extract query source from request ( #32525 )
2025-03-06 14:17:21 -08:00
Vitor Avila
d2e0e2b79c
fix(Slack): Fix Slack recipients migration to V2 ( #32336 )
2025-03-06 08:52:15 -03:00
Ville Brofeldt
c90e45a373
feat: make user agent customizable ( #32506 )
2025-03-05 16:33:24 -08:00
Evan Rusackas
90651dfe3e
fix(dev/ci): pre-commit fixes galore ( #32352 )
2025-02-24 11:26:45 -07:00
Maxime Beauchemin
e51b95ffa8
chore: enforce more ruff rules ( #31447 )
...
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com >
2024-12-18 17:41:34 -08:00
github-actions[bot]
b24323d500
chore( 🦾 ): bump python pre-commit 3.7.1 -> 4.0.1 ( #31050 )
...
Co-authored-by: GitHub Action <action@github.com >
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com >
2024-11-24 17:34:36 -08:00
Elizabeth Thompson
57e8cd2ba2
fix: pass slack recipients correctly ( #29721 )
2024-08-02 10:42:40 -07:00
nsivarajan
27dde2a811
feat(alert/report): Added optional CC and BCC fields for email notifi… ( #29088 )
...
Co-authored-by: Sivarajan Narayanan <sivarajannarayanan@Sivarajans-MacBook-Pro.local >
Co-authored-by: Sivarajan Narayanan <narayanan_sivarajan@apple.com >
2024-07-22 19:33:47 +02:00
Maxime Beauchemin
e749efcb97
fix: refactor view error handling into a separate module ( #29330 )
2024-07-09 10:16:40 -07:00
Darwin Correa
9724c99341
feat: add support to NOT LIKE operator ( #29384 )
2024-07-08 11:58:28 -07:00
John Bodley
17d7e7e5e1
fix: Remove BASE_AXIS from pre-query ( #29084 )
2024-06-05 10:27:26 -07:00
Maxime Beauchemin
7dd28a9003
chore: remove sl_ tables ( #28704 )
2024-05-29 19:04:37 -07:00
SkinnyPigeon
6575cacc5d
feat(reports): allowing the email mutator to update recipients ( #27851 )
2024-05-28 18:03:42 -07:00
Eyal Ezer
56f0fc4ec2
refactor: Migration of json utilities from core ( #28522 )
...
Co-authored-by: Eyal Ezer <eyal.ezer@ge.com >
2024-05-20 10:27:22 -07:00
Eyal Ezer
5f714b707c
fix: utf-16 json encoder support ( #28486 )
...
Co-authored-by: Eyal Ezer <eyal.ezer@ge.com >
2024-05-15 08:53:19 -07:00
John Bodley
1ccbc655eb
fix: Update migration logic in #27119 ( #28422 )
2024-05-13 11:55:59 -07:00
Maxime Beauchemin
c10cee3a39
fix: use pessimistic json encoder in SQL Lab ( #28266 )
2024-05-06 12:23:50 -07:00
Beto Dealmeida
e90246fd1f
feat(SIP-95): permissions for catalogs ( #28317 )
2024-05-06 11:41:58 -04:00
Maxime Beauchemin
2d63722150
chore: set up ruff as a new linter/formatter ( #28158 )
2024-04-24 17:19:53 -07:00
Maxime Beauchemin
cfc440c56c
feat: improve event logging for queries + refactor ( #27943 )
...
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net >
2024-04-22 16:30:50 -07:00
Beto Dealmeida
99a1601aea
refactor: rename get_sqla_engine_with_context ( #28012 )
2024-04-12 13:31:05 -04:00
Michael S. Molina
883e455e12
fix: Pylint errors on master ( #27710 )
2024-03-27 16:18:41 -03:00
Jack
30b497e758
feat(alerts-reports): adding pdf filetype to email and slack reports ( #27497 )
2024-03-22 17:54:30 +01:00
Vitor Avila
1d571ec9e6
feat(jinja): current_user_email macro ( #27197 )
2024-02-23 15:28:30 -08:00
Daniel Vaz Gaspar
5b34395689
fix: chart import validation ( #26993 )
2024-02-06 12:14:02 +00:00
Michael S. Molina
d9a3c3e1dd
refactor: Removes the Filter Box code ( #26328 )
...
Co-authored-by: John Bodley <john.bodley@gmail.com >
2024-01-19 09:54:53 -03:00