dataface 0.1.6.dev183__py3-none-any.whl → 0.1.6.dev321__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- d3_format/py.typed +0 -0
- dataface/DATAFACE_SYNTAX.md +0 -52
- dataface/agent_api/_init_templates/meta.yaml +19 -0
- dataface/agent_api/docs/yaml-reference.md +158 -122
- dataface/agent_api/init.py +4 -0
- dataface/agent_api/project_session.py +20 -4
- dataface/ai/agent.py +11 -7
- dataface/ai/prompts/sql-guidance.md +12 -0
- dataface/ai/skills/dashboard-build/SKILL.md +11 -2
- dataface/ai/skills/data-exploration/SKILL.md +21 -8
- dataface/ai/tools/__init__.py +2 -2
- dataface/cli/commands/schema.py +174 -24
- dataface/core/compile/__init__.py +6 -8
- dataface/core/compile/compiler.py +80 -73
- dataface/core/compile/config.py +6 -103
- dataface/core/compile/data_table_attachment.py +23 -15
- dataface/core/compile/inherit_graph.py +8 -0
- dataface/core/compile/inherit_registry.yaml +46 -0
- dataface/core/compile/inherit_resolver.py +1 -1
- dataface/core/compile/introspection.py +10 -0
- dataface/core/compile/meta.py +105 -286
- dataface/core/compile/models/chart/authored.py +13 -1
- dataface/core/compile/models/chart/normalized.py +12 -9
- dataface/core/compile/models/chart/resolved.py +6 -0
- dataface/core/compile/models/config.py +0 -19
- dataface/core/compile/models/primitives.py +20 -1
- dataface/core/compile/models/style/authored.py +5 -5
- dataface/core/compile/models/style/resolved.py +37 -69
- dataface/core/compile/models/style/theme.py +144 -40
- dataface/core/compile/normalize_charts.py +73 -20
- dataface/core/compile/normalizer.py +11 -0
- dataface/core/compile/palette.py +4 -3
- dataface/core/compile/parser.py +27 -4
- dataface/core/compile/schema_renderers/json_schema.py +18 -3
- dataface/core/compile/schema_renderers/prompt.py +97 -4
- dataface/core/compile/single_series_allocation.py +102 -0
- dataface/core/compile/style_cascade.py +30 -18
- dataface/core/compile/yaml_error_formatter.py +254 -110
- dataface/core/dashboard.py +16 -0
- dataface/core/defaults/default_config.yml +0 -15
- dataface/core/defaults/palettes/categorical/editorial-10-ink.yml +53 -0
- dataface/core/defaults/themes/_base.yaml +31 -7
- dataface/core/defaults/themes/cream.yaml +7 -0
- dataface/core/defaults/themes/dark.yaml +5 -0
- dataface/core/defaults/themes/editorial.yaml +7 -0
- dataface/core/defaults/themes/stark.yaml +6 -0
- dataface/core/execute/adapters/adapter_registry.py +25 -3
- dataface/core/execute/adapters/csv_adapter.py +17 -21
- dataface/core/execute/adapters/dbt_adapter_factory.py +9 -3
- dataface/core/execute/adapters/sql_adapter.py +22 -8
- dataface/core/execute/cache_backend.py +5 -0
- dataface/core/execute/duckdb_cache.py +12 -3
- dataface/core/execute/executor.py +15 -2
- dataface/core/execute/observability.py +38 -0
- dataface/core/inspect/resolver.py +31 -10
- dataface/core/project.py +30 -1
- dataface/core/render/chart/geo.py +13 -3
- dataface/core/render/chart/kpi.py +9 -4
- dataface/core/render/chart/pipeline.py +37 -4
- dataface/core/render/chart/profile.py +330 -67
- dataface/core/render/chart/render_single.py +12 -3
- dataface/core/render/chart/rendering.py +0 -34
- dataface/core/render/chart/standard_renderer.py +3 -35
- dataface/core/render/chart/table.py +77 -39
- dataface/core/render/chart/vl_field_maps.py +22 -11
- dataface/core/render/faces.py +6 -13
- dataface/core/render/format_utils.py +2 -1
- dataface/core/render/geo_defaults.yml +21 -12
- dataface/core/render/layout_sizing.py +40 -7
- dataface/core/render/layouts.py +32 -25
- dataface/core/render/nav.py +2 -10
- dataface/core/render/templates/nav/nav.css +1 -1
- dataface/core/render/templates/nav/nav.js +3 -2
- dataface/core/render/terminal_charts.py +9 -4
- dataface/core/render/text/case.py +1 -1
- dataface/core/serve/server.py +98 -8
- {dataface-0.1.6.dev183.dist-info → dataface-0.1.6.dev321.dist-info}/METADATA +1 -1
- {dataface-0.1.6.dev183.dist-info → dataface-0.1.6.dev321.dist-info}/RECORD +82 -79
- mdsvg/fonts.py +4 -1
- dataface/core/compile/custom_chart_types.py +0 -208
- dataface/core/defaults/palettes/categorical/single-blue.yml +0 -11
- {dataface-0.1.6.dev183.dist-info → dataface-0.1.6.dev321.dist-info}/WHEEL +0 -0
- {dataface-0.1.6.dev183.dist-info → dataface-0.1.6.dev321.dist-info}/entry_points.txt +0 -0
- {dataface-0.1.6.dev183.dist-info → dataface-0.1.6.dev321.dist-info}/licenses/LICENSE +0 -0
d3_format/py.typed
ADDED
|
File without changes
|
dataface/DATAFACE_SYNTAX.md
CHANGED
|
@@ -797,58 +797,6 @@ Dataface composes charts in three ways:
|
|
|
797
797
|
|
|
798
798
|
Non-goals (not part of the authored chart surface): Vega-Lite `encoding`, `mark`, `spec`, `config`, `transform`, `params`, `resolve`, `hconcat`, `vconcat`, `concat`, `repeat`. These keys are rejected at compile time. Use the typed channels (`x`, `y`, `color`, …) and `style:` instead; use the layout primitives for visual composition.
|
|
799
799
|
|
|
800
|
-
### Custom chart plugins
|
|
801
|
-
|
|
802
|
-
Project-local chart types can extend the engine. Drop a `chart_types/<name>.yml` file next to the face files and reference the name in `type:`.
|
|
803
|
-
|
|
804
|
-
```yaml
|
|
805
|
-
# chart_types/funnel.yml
|
|
806
|
-
name: funnel
|
|
807
|
-
description: Funnel chart for conversion visualization
|
|
808
|
-
mark: bar # Underlying Vega-Lite mark
|
|
809
|
-
fields:
|
|
810
|
-
stage:
|
|
811
|
-
required: true
|
|
812
|
-
description: Stage field
|
|
813
|
-
value:
|
|
814
|
-
required: true
|
|
815
|
-
description: Value field
|
|
816
|
-
encoding_overrides:
|
|
817
|
-
y:
|
|
818
|
-
type: nominal
|
|
819
|
-
sort: null
|
|
820
|
-
x:
|
|
821
|
-
type: quantitative
|
|
822
|
-
mark_properties:
|
|
823
|
-
cornerRadius: 4
|
|
824
|
-
```
|
|
825
|
-
|
|
826
|
-
Then in a face:
|
|
827
|
-
|
|
828
|
-
```yaml-schema
|
|
829
|
-
charts:
|
|
830
|
-
conversion_funnel:
|
|
831
|
-
query: stages
|
|
832
|
-
type: funnel # The plugin name; no `custom:` prefix
|
|
833
|
-
# The plugin's required fields must be present in the data.
|
|
834
|
-
```
|
|
835
|
-
|
|
836
|
-
Plugin file fields:
|
|
837
|
-
|
|
838
|
-
| Field | Required | Description |
|
|
839
|
-
|-------|----------|-------------|
|
|
840
|
-
| `name` | yes | Lowercase identifier (regex `[a-z][a-z0-9_]*`) — must not shadow a built-in |
|
|
841
|
-
| `mark` | yes | Vega-Lite mark name (must be a valid VL mark) |
|
|
842
|
-
| `description` | no | Used in docs and AI prompts |
|
|
843
|
-
| `fields` | no | `{<name>: {required: bool, description: string}}` |
|
|
844
|
-
| `encoding_overrides` | no | Per-channel Vega-Lite encoding properties merged on top of standard mapping |
|
|
845
|
-
| `mark_properties` | no | Extra properties merged into the mark dict |
|
|
846
|
-
|
|
847
|
-
Constraints:
|
|
848
|
-
- A plugin cannot shadow a built-in chart type name.
|
|
849
|
-
- The `mark` value must be a valid Vega-Lite mark (validated at load time).
|
|
850
|
-
- Unknown YAML keys in the plugin file are rejected — typos are caught up front.
|
|
851
|
-
|
|
852
800
|
**See also:** `dft docs queries` (charts reference queries by name),
|
|
853
801
|
`dft docs variables` (use `{{ var }}` in chart queries),
|
|
854
802
|
`dft docs layout` (compose charts on the page),
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Directory defaults for every face under faces/
|
|
2
|
+
#
|
|
3
|
+
# meta.yaml is a *partial face* — it uses the exact same authoring surface as a
|
|
4
|
+
# face file (source, theme, queries, charts, style, variables), but without a
|
|
5
|
+
# layout. Its keys are deep-merged as defaults beneath every face in this
|
|
6
|
+
# directory and its subdirectories; each face overrides what it sets.
|
|
7
|
+
#
|
|
8
|
+
# A meta.yaml deeper in the tree layers on top of the ones above it, and a face
|
|
9
|
+
# always wins over meta. Nested style keys merge (a face setting style.board.margin
|
|
10
|
+
# keeps a meta-supplied style.board.width).
|
|
11
|
+
#
|
|
12
|
+
# Uncomment and edit to set project-wide defaults:
|
|
13
|
+
#
|
|
14
|
+
# theme: cream # apply a built-in or custom theme to every dashboard
|
|
15
|
+
# source: my_warehouse # default data source for faces that don't name one
|
|
16
|
+
#
|
|
17
|
+
# style:
|
|
18
|
+
# board:
|
|
19
|
+
# width: 1000
|