diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..16ef5c5 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# GitHub syntax highlighting +pixi.lock linguist-language=YAML + diff --git a/.gitignore b/.gitignore index 01203af..dfd4373 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,13 @@ /target /.idea -/sg2d-wgpu/tests/output/ +/avenger-wgpu/tests/output/ .DS_Store examples/wgpu-winit/pkg/ examples/wgpu-winit/target/ examples/scatter-panning/pkg/ -examples/scatter-panning/target/# pixi environments +examples/scatter-panning/target/ +scratch/ + +# pixi environments .pixi diff --git a/Cargo.lock b/Cargo.lock index fcb6240..b02e9d7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -360,6 +360,7 @@ dependencies = [ "glyphon", "image", "itertools 0.12.0", + "lazy_static", "log", "lyon", "pollster", diff --git a/Cargo.toml b/Cargo.toml index 201a107..75ccf7a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,3 +16,4 @@ lyon_path = "1.0.1" lyon_extra = "1.0.1" lyon = "1.0.1" image = { version="0.24.8", default-features = false } +lazy_static = "1.4.0" \ No newline at end of file diff --git a/avenger-vega-test-data/vega-scenegraphs/area/100_percent_stacked_area.png b/avenger-vega-test-data/vega-scenegraphs/area/100_percent_stacked_area.png index 1709f5f..4a17010 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/area/100_percent_stacked_area.png and b/avenger-vega-test-data/vega-scenegraphs/area/100_percent_stacked_area.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/area/100_percent_stacked_area.sg.json b/avenger-vega-test-data/vega-scenegraphs/area/100_percent_stacked_area.sg.json index 42ae6cb..ef906a2 100644 --- a/avenger-vega-test-data/vega-scenegraphs/area/100_percent_stacked_area.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/area/100_percent_stacked_area.sg.json @@ -17327,11 +17327,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 300, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment.png b/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment.png index 3fd7ec0..3e792fc 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment.png and b/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment.sg.json b/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment.sg.json index 505448b..139e5e4 100644 --- a/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment.sg.json @@ -1243,11 +1243,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 300, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment_stroke.png b/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment_stroke.png index 352764d..b0d13b0 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment_stroke.png and b/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment_stroke.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment_stroke.sg.json b/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment_stroke.sg.json index b5f8173..c250466 100644 --- a/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment_stroke.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/area/simple_unemployment_stroke.sg.json @@ -1609,11 +1609,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 300, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/area/stacked_area.png b/avenger-vega-test-data/vega-scenegraphs/area/stacked_area.png index 6bdcdff..a9d7a33 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/area/stacked_area.png and b/avenger-vega-test-data/vega-scenegraphs/area/stacked_area.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/area/stacked_area.sg.json b/avenger-vega-test-data/vega-scenegraphs/area/stacked_area.sg.json index 5d9d047..5877619 100644 --- a/avenger-vega-test-data/vega-scenegraphs/area/stacked_area.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/area/stacked_area.sg.json @@ -17327,11 +17327,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 300, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/area/streamgraph_area.png b/avenger-vega-test-data/vega-scenegraphs/area/streamgraph_area.png index 1f4ca5a..c7fe2e4 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/area/streamgraph_area.png and b/avenger-vega-test-data/vega-scenegraphs/area/streamgraph_area.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/area/streamgraph_area.sg.json b/avenger-vega-test-data/vega-scenegraphs/area/streamgraph_area.sg.json index a799cfd..079a0c5 100644 --- a/avenger-vega-test-data/vega-scenegraphs/area/streamgraph_area.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/area/streamgraph_area.sg.json @@ -19035,11 +19035,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 300, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/area_line_with_gradient.png b/avenger-vega-test-data/vega-scenegraphs/gradients/area_line_with_gradient.png index 708229e..e36741a 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/gradients/area_line_with_gradient.png and b/avenger-vega-test-data/vega-scenegraphs/gradients/area_line_with_gradient.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/area_line_with_gradient.sg.json b/avenger-vega-test-data/vega-scenegraphs/gradients/area_line_with_gradient.sg.json index f06d326..290950e 100644 --- a/avenger-vega-test-data/vega-scenegraphs/gradients/area_line_with_gradient.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/gradients/area_line_with_gradient.sg.json @@ -3817,11 +3817,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 200, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/area_with_gradient.png b/avenger-vega-test-data/vega-scenegraphs/gradients/area_with_gradient.png index a28071d..eedf387 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/gradients/area_with_gradient.png and b/avenger-vega-test-data/vega-scenegraphs/gradients/area_with_gradient.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/area_with_gradient.sg.json b/avenger-vega-test-data/vega-scenegraphs/gradients/area_with_gradient.sg.json index c4236d8..b71ef65 100644 --- a/avenger-vega-test-data/vega-scenegraphs/gradients/area_with_gradient.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/gradients/area_with_gradient.sg.json @@ -2729,11 +2729,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 200, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/default_gradient_bars_rounded_stroke.png b/avenger-vega-test-data/vega-scenegraphs/gradients/default_gradient_bars_rounded_stroke.png index f878379..2bd07c0 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/gradients/default_gradient_bars_rounded_stroke.png and b/avenger-vega-test-data/vega-scenegraphs/gradients/default_gradient_bars_rounded_stroke.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/default_gradient_bars_rounded_stroke.sg.json b/avenger-vega-test-data/vega-scenegraphs/gradients/default_gradient_bars_rounded_stroke.sg.json index fee1446..b12de90 100644 --- a/avenger-vega-test-data/vega-scenegraphs/gradients/default_gradient_bars_rounded_stroke.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/gradients/default_gradient_bars_rounded_stroke.sg.json @@ -381,11 +381,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 300, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/diagonal_gradient_bars_rounded.png b/avenger-vega-test-data/vega-scenegraphs/gradients/diagonal_gradient_bars_rounded.png index aeb9fa0..5f85f33 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/gradients/diagonal_gradient_bars_rounded.png and b/avenger-vega-test-data/vega-scenegraphs/gradients/diagonal_gradient_bars_rounded.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/diagonal_gradient_bars_rounded.sg.json b/avenger-vega-test-data/vega-scenegraphs/gradients/diagonal_gradient_bars_rounded.sg.json index 663591d..b451533 100644 --- a/avenger-vega-test-data/vega-scenegraphs/gradients/diagonal_gradient_bars_rounded.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/gradients/diagonal_gradient_bars_rounded.sg.json @@ -383,11 +383,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 300, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/heatmap_with_colorbar.png b/avenger-vega-test-data/vega-scenegraphs/gradients/heatmap_with_colorbar.png index c564e74..c3a579c 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/gradients/heatmap_with_colorbar.png and b/avenger-vega-test-data/vega-scenegraphs/gradients/heatmap_with_colorbar.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/heatmap_with_colorbar.sg.json b/avenger-vega-test-data/vega-scenegraphs/gradients/heatmap_with_colorbar.sg.json index 0e82fa5..bcab454 100644 --- a/avenger-vega-test-data/vega-scenegraphs/gradients/heatmap_with_colorbar.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/gradients/heatmap_with_colorbar.sg.json @@ -3106,11 +3106,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 403, - "height": 156, - "stroke": "transparent" + "height": 156 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/radial_concentric_gradient_bars.png b/avenger-vega-test-data/vega-scenegraphs/gradients/radial_concentric_gradient_bars.png index 762a1c1..96dfa56 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/gradients/radial_concentric_gradient_bars.png and b/avenger-vega-test-data/vega-scenegraphs/gradients/radial_concentric_gradient_bars.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/radial_concentric_gradient_bars.sg.json b/avenger-vega-test-data/vega-scenegraphs/gradients/radial_concentric_gradient_bars.sg.json index efc966f..68a179d 100644 --- a/avenger-vega-test-data/vega-scenegraphs/gradients/radial_concentric_gradient_bars.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/gradients/radial_concentric_gradient_bars.sg.json @@ -389,11 +389,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 300, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/radial_offset_gradient_bars.png b/avenger-vega-test-data/vega-scenegraphs/gradients/radial_offset_gradient_bars.png index 6c53a55..36199a0 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/gradients/radial_offset_gradient_bars.png and b/avenger-vega-test-data/vega-scenegraphs/gradients/radial_offset_gradient_bars.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/radial_offset_gradient_bars.sg.json b/avenger-vega-test-data/vega-scenegraphs/gradients/radial_offset_gradient_bars.sg.json index e4433b6..dc5cf2d 100644 --- a/avenger-vega-test-data/vega-scenegraphs/gradients/radial_offset_gradient_bars.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/gradients/radial_offset_gradient_bars.sg.json @@ -389,11 +389,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 300, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/residuals_colorscale.png b/avenger-vega-test-data/vega-scenegraphs/gradients/residuals_colorscale.png index 3a5f71f..27edb34 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/gradients/residuals_colorscale.png and b/avenger-vega-test-data/vega-scenegraphs/gradients/residuals_colorscale.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/residuals_colorscale.sg.json b/avenger-vega-test-data/vega-scenegraphs/gradients/residuals_colorscale.sg.json index 2418d2b..17533fe 100644 --- a/avenger-vega-test-data/vega-scenegraphs/gradients/residuals_colorscale.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/gradients/residuals_colorscale.sg.json @@ -36296,11 +36296,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 300, - "height": 300, - "stroke": "transparent" + "height": 300 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/stroke_rect_gradient.png b/avenger-vega-test-data/vega-scenegraphs/gradients/stroke_rect_gradient.png index 35466d9..20eab2c 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/gradients/stroke_rect_gradient.png and b/avenger-vega-test-data/vega-scenegraphs/gradients/stroke_rect_gradient.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/gradients/stroke_rect_gradient.sg.json b/avenger-vega-test-data/vega-scenegraphs/gradients/stroke_rect_gradient.sg.json index 16c355b..6f288de 100644 --- a/avenger-vega-test-data/vega-scenegraphs/gradients/stroke_rect_gradient.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/gradients/stroke_rect_gradient.sg.json @@ -388,11 +388,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 300, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/image/large_images.png b/avenger-vega-test-data/vega-scenegraphs/image/large_images.png index 2f98b73..b6e5ac0 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/image/large_images.png and b/avenger-vega-test-data/vega-scenegraphs/image/large_images.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/image/large_images.sg.json b/avenger-vega-test-data/vega-scenegraphs/image/large_images.sg.json index 7331519..b2427e8 100644 --- a/avenger-vega-test-data/vega-scenegraphs/image/large_images.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/image/large_images.sg.json @@ -435,11 +435,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 200, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/image/logos.png b/avenger-vega-test-data/vega-scenegraphs/image/logos.png index ad7c5cb..819a4fe 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/image/logos.png and b/avenger-vega-test-data/vega-scenegraphs/image/logos.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/image/logos.sg.json b/avenger-vega-test-data/vega-scenegraphs/image/logos.sg.json index bba04db..d1ca13e 100644 --- a/avenger-vega-test-data/vega-scenegraphs/image/logos.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/image/logos.sg.json @@ -379,11 +379,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 200, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false.png b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false.png index f98f036..47d88a5 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false.png and b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false.sg.json b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false.sg.json index c4b5915..0384088 100644 --- a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false.sg.json @@ -382,11 +382,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 200, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false_align_baseline.png b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false_align_baseline.png index f2e3381..962fb60 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false_align_baseline.png and b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false_align_baseline.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false_align_baseline.sg.json b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false_align_baseline.sg.json index cb5cbb3..0ed634d 100644 --- a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false_align_baseline.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_false_align_baseline.sg.json @@ -388,11 +388,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 200, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_true_align_baseline.png b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_true_align_baseline.png index 004f055..d5aab9a 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_true_align_baseline.png and b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_true_align_baseline.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_true_align_baseline.sg.json b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_true_align_baseline.sg.json index 39f0cca..f8262f4 100644 --- a/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_true_align_baseline.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/image/logos_sized_aspect_true_align_baseline.sg.json @@ -425,11 +425,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 200, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/image/smooth_false.png b/avenger-vega-test-data/vega-scenegraphs/image/smooth_false.png index 81401bb..a509078 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/image/smooth_false.png and b/avenger-vega-test-data/vega-scenegraphs/image/smooth_false.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/image/smooth_false.sg.json b/avenger-vega-test-data/vega-scenegraphs/image/smooth_false.sg.json index e17000f..f76f91e 100644 --- a/avenger-vega-test-data/vega-scenegraphs/image/smooth_false.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/image/smooth_false.sg.json @@ -684,11 +684,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 600, - "height": 600, - "stroke": "transparent" + "height": 600 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/image/smooth_true.png b/avenger-vega-test-data/vega-scenegraphs/image/smooth_true.png index 81401bb..a509078 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/image/smooth_true.png and b/avenger-vega-test-data/vega-scenegraphs/image/smooth_true.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/image/smooth_true.sg.json b/avenger-vega-test-data/vega-scenegraphs/image/smooth_true.sg.json index 88b9ce4..dca50b6 100644 --- a/avenger-vega-test-data/vega-scenegraphs/image/smooth_true.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/image/smooth_true.sg.json @@ -684,11 +684,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 600, - "height": 600, - "stroke": "transparent" + "height": 600 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/line/connected_scatter.png b/avenger-vega-test-data/vega-scenegraphs/line/connected_scatter.png index ae783cc..87a689f 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/line/connected_scatter.png and b/avenger-vega-test-data/vega-scenegraphs/line/connected_scatter.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/line/connected_scatter.sg.json b/avenger-vega-test-data/vega-scenegraphs/line/connected_scatter.sg.json index 5ea9899..8000e67 100644 --- a/avenger-vega-test-data/vega-scenegraphs/line/connected_scatter.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/line/connected_scatter.sg.json @@ -1078,11 +1078,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 200, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/line/simple_dashed.png b/avenger-vega-test-data/vega-scenegraphs/line/simple_dashed.png index fcbff7e..9e39723 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/line/simple_dashed.png and b/avenger-vega-test-data/vega-scenegraphs/line/simple_dashed.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/line/simple_dashed.sg.json b/avenger-vega-test-data/vega-scenegraphs/line/simple_dashed.sg.json index 27eee4b..9413bc6 100644 --- a/avenger-vega-test-data/vega-scenegraphs/line/simple_dashed.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/line/simple_dashed.sg.json @@ -139,11 +139,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 120, - "height": 200, - "stroke": "transparent" + "height": 200 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/line/stocks_dashed.png b/avenger-vega-test-data/vega-scenegraphs/line/stocks_dashed.png index 0839031..d08d789 100644 Binary files a/avenger-vega-test-data/vega-scenegraphs/line/stocks_dashed.png and b/avenger-vega-test-data/vega-scenegraphs/line/stocks_dashed.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/line/stocks_dashed.sg.json b/avenger-vega-test-data/vega-scenegraphs/line/stocks_dashed.sg.json index af48393..b7dd111 100644 --- a/avenger-vega-test-data/vega-scenegraphs/line/stocks_dashed.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/line/stocks_dashed.sg.json @@ -7402,11 +7402,11 @@ } ], "fill": "transparent", + "stroke": "#ddd", "x": 0, "y": 0, "width": 400, - "height": 400, - "stroke": "transparent" + "height": 400 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/shape/london_tubes.sg.json b/avenger-vega-test-data/vega-scenegraphs/shape/london_tubes.sg.json index 79bece2..25d1323 100644 --- a/avenger-vega-test-data/vega-scenegraphs/shape/london_tubes.sg.json +++ b/avenger-vega-test-data/vega-scenegraphs/shape/london_tubes.sg.json @@ -3419,8 +3419,7 @@ "x": 0, "y": 0, "width": 700, - "height": 500, - "stroke": "transparent" + "height": 500 } ], "marktype": "group", diff --git a/avenger-vega-test-data/vega-scenegraphs/text/emoji.png b/avenger-vega-test-data/vega-scenegraphs/text/emoji.png new file mode 100644 index 0000000..514c55a Binary files /dev/null and b/avenger-vega-test-data/vega-scenegraphs/text/emoji.png differ diff --git a/avenger-vega-test-data/vega-scenegraphs/text/emoji.sg.json b/avenger-vega-test-data/vega-scenegraphs/text/emoji.sg.json new file mode 100644 index 0000000..bdd7c5a --- /dev/null +++ b/avenger-vega-test-data/vega-scenegraphs/text/emoji.sg.json @@ -0,0 +1,583 @@ +{ + "width": 583, + "height": 314, + "origin": [ + 27, + 6 + ], + "scenegraph": { + "clip": false, + "interactive": true, + "items": [ + { + "items": [ + { + "clip": false, + "interactive": true, + "items": [ + { + "items": [ + { + "clip": false, + "interactive": false, + "items": [ + { + "items": [ + { + "clip": false, + "interactive": false, + "items": [ + { + "fill": "#000", + "font": "sans-serif", + "fontSize": 10, + "opacity": 1, + "baseline": "top", + "text": "Great Britain", + "align": "center", + "angle": -90 + } + ], + "marktype": "text", + "role": "title-text", + "zindex": 0 + } + ], + "orient": "left", + "offset": 10, + "align": "center", + "angle": -90, + "x": -20.000000000000004, + "y": 70 + } + ], + "marktype": "group", + "role": "title", + "zindex": 0 + } + ], + "height": 140, + "x": -1, + "y": 0 + }, + { + "items": [ + { + "clip": false, + "interactive": false, + "items": [ + { + "items": [ + { + "clip": false, + "interactive": false, + "items": [ + { + "fill": "#000", + "font": "sans-serif", + "fontSize": 10, + "opacity": 1, + "baseline": "top", + "text": "United States", + "align": "center", + "angle": -90 + } + ], + "marktype": "text", + "role": "title-text", + "zindex": 0 + } + ], + "orient": "left", + "offset": 10, + "align": "center", + "angle": -90, + "x": -20.000000000000004, + "y": 70 + } + ], + "marktype": "group", + "role": "title", + "zindex": 0 + } + ], + "height": 140, + "x": -1, + "y": 162 + } + ], + "marktype": "group", + "name": "row_header", + "role": "row-header", + "zindex": 0 + }, + { + "clip": false, + "interactive": true, + "items": [ + { + "items": [ + { + "clip": false, + "interactive": true, + "items": [ + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 1; animal: cattle; emoji: 🐄", + "x": 27.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 2; animal: cattle; emoji: 🐄", + "x": 82.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 3; animal: cattle; emoji: 🐄", + "x": 137.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 1; animal: pigs; emoji: 🐖", + "x": 27.5, + "y": 70, + "text": "🐖", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 2; animal: pigs; emoji: 🐖", + "x": 82.5, + "y": 70, + "text": "🐖", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 1; animal: sheep; emoji: 🐏", + "x": 27.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 2; animal: sheep; emoji: 🐏", + "x": 82.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 3; animal: sheep; emoji: 🐏", + "x": 137.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 4; animal: sheep; emoji: 🐏", + "x": 192.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 5; animal: sheep; emoji: 🐏", + "x": 247.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 6; animal: sheep; emoji: 🐏", + "x": 302.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 7; animal: sheep; emoji: 🐏", + "x": 357.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 8; animal: sheep; emoji: 🐏", + "x": 412.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 9; animal: sheep; emoji: 🐏", + "x": 467.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 10; animal: sheep; emoji: 🐏", + "x": 522.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + } + ], + "marktype": "text", + "name": "child_marks", + "role": "mark", + "zindex": 0 + } + ], + "fill": "transparent", + "stroke": "transparent", + "width": 550, + "height": 140, + "x": 0, + "y": 0 + }, + { + "items": [ + { + "clip": false, + "interactive": true, + "items": [ + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 1; animal: cattle; emoji: 🐄", + "x": 27.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 2; animal: cattle; emoji: 🐄", + "x": 82.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 3; animal: cattle; emoji: 🐄", + "x": 137.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 4; animal: cattle; emoji: 🐄", + "x": 192.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 5; animal: cattle; emoji: 🐄", + "x": 247.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 6; animal: cattle; emoji: 🐄", + "x": 302.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 7; animal: cattle; emoji: 🐄", + "x": 357.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 8; animal: cattle; emoji: 🐄", + "x": 412.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 9; animal: cattle; emoji: 🐄", + "x": 467.5, + "y": 23.333333333333336, + "text": "🐄", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 1; animal: pigs; emoji: 🐖", + "x": 27.5, + "y": 70, + "text": "🐖", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 2; animal: pigs; emoji: 🐖", + "x": 82.5, + "y": 70, + "text": "🐖", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 3; animal: pigs; emoji: 🐖", + "x": 137.5, + "y": 70, + "text": "🐖", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 4; animal: pigs; emoji: 🐖", + "x": 192.5, + "y": 70, + "text": "🐖", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 5; animal: pigs; emoji: 🐖", + "x": 247.5, + "y": 70, + "text": "🐖", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 6; animal: pigs; emoji: 🐖", + "x": 302.5, + "y": 70, + "text": "🐖", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 1; animal: sheep; emoji: 🐏", + "x": 27.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 2; animal: sheep; emoji: 🐏", + "x": 82.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 3; animal: sheep; emoji: 🐏", + "x": 137.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 4; animal: sheep; emoji: 🐏", + "x": 192.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 5; animal: sheep; emoji: 🐏", + "x": 247.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 6; animal: sheep; emoji: 🐏", + "x": 302.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + }, + { + "font": "sans-serif", + "baseline": "middle", + "fill": "black", + "description": "x: 7; animal: sheep; emoji: 🐏", + "x": 357.5, + "y": 116.66666666666666, + "text": "🐏", + "fontSize": 45, + "align": "center" + } + ], + "marktype": "text", + "name": "child_marks", + "role": "mark", + "zindex": 0 + } + ], + "fill": "transparent", + "stroke": "transparent", + "width": 550, + "height": 140, + "x": 0, + "y": 162 + } + ], + "marktype": "group", + "name": "cell", + "role": "scope", + "zindex": 0 + } + ], + "x": 0, + "y": 0, + "width": 0, + "height": 0 + } + ], + "marktype": "group", + "name": "root", + "role": "frame", + "zindex": 0 + } +} \ No newline at end of file diff --git a/avenger-vega-test-data/vega-specs/area/100_percent_stacked_area.vg.json b/avenger-vega-test-data/vega-specs/area/100_percent_stacked_area.vg.json index cf4201b..a0cdcbf 100644 --- a/avenger-vega-test-data/vega-specs/area/100_percent_stacked_area.vg.json +++ b/avenger-vega-test-data/vega-specs/area/100_percent_stacked_area.vg.json @@ -5,7 +5,7 @@ "width": 300, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/area/simple_unemployment.vg.json b/avenger-vega-test-data/vega-specs/area/simple_unemployment.vg.json index 9586a0e..ddbef9b 100644 --- a/avenger-vega-test-data/vega-specs/area/simple_unemployment.vg.json +++ b/avenger-vega-test-data/vega-specs/area/simple_unemployment.vg.json @@ -5,7 +5,7 @@ "width": 300, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/area/simple_unemployment_stroke.vg.json b/avenger-vega-test-data/vega-specs/area/simple_unemployment_stroke.vg.json index 8a569c4..5a89d7b 100644 --- a/avenger-vega-test-data/vega-specs/area/simple_unemployment_stroke.vg.json +++ b/avenger-vega-test-data/vega-specs/area/simple_unemployment_stroke.vg.json @@ -5,7 +5,7 @@ "width": 300, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/area/stacked_area.vg.json b/avenger-vega-test-data/vega-specs/area/stacked_area.vg.json index 60cbc09..547c60c 100644 --- a/avenger-vega-test-data/vega-specs/area/stacked_area.vg.json +++ b/avenger-vega-test-data/vega-specs/area/stacked_area.vg.json @@ -5,7 +5,7 @@ "width": 300, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/area/streamgraph_area.vg.json b/avenger-vega-test-data/vega-specs/area/streamgraph_area.vg.json index 5fefe8a..86c5f38 100644 --- a/avenger-vega-test-data/vega-specs/area/streamgraph_area.vg.json +++ b/avenger-vega-test-data/vega-specs/area/streamgraph_area.vg.json @@ -5,7 +5,7 @@ "width": 300, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/gradients/area_line_with_gradient.vg.json b/avenger-vega-test-data/vega-specs/gradients/area_line_with_gradient.vg.json index 8c974ae..7e91968 100644 --- a/avenger-vega-test-data/vega-specs/gradients/area_line_with_gradient.vg.json +++ b/avenger-vega-test-data/vega-specs/gradients/area_line_with_gradient.vg.json @@ -6,7 +6,7 @@ "width": 200, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/gradients/area_with_gradient.vg.json b/avenger-vega-test-data/vega-specs/gradients/area_with_gradient.vg.json index 270735b..b2cae0b 100644 --- a/avenger-vega-test-data/vega-specs/gradients/area_with_gradient.vg.json +++ b/avenger-vega-test-data/vega-specs/gradients/area_with_gradient.vg.json @@ -6,7 +6,7 @@ "width": 200, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/gradients/default_gradient_bars_rounded_stroke.vg.json b/avenger-vega-test-data/vega-specs/gradients/default_gradient_bars_rounded_stroke.vg.json index 2f2fe94..5fc64d4 100644 --- a/avenger-vega-test-data/vega-specs/gradients/default_gradient_bars_rounded_stroke.vg.json +++ b/avenger-vega-test-data/vega-specs/gradients/default_gradient_bars_rounded_stroke.vg.json @@ -5,7 +5,7 @@ "padding": 5, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/gradients/diagonal_gradient_bars_rounded.vg.json b/avenger-vega-test-data/vega-specs/gradients/diagonal_gradient_bars_rounded.vg.json index cce0592..8a5e130 100644 --- a/avenger-vega-test-data/vega-specs/gradients/diagonal_gradient_bars_rounded.vg.json +++ b/avenger-vega-test-data/vega-specs/gradients/diagonal_gradient_bars_rounded.vg.json @@ -5,7 +5,7 @@ "padding": 5, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/gradients/heatmap_with_colorbar.vg.json b/avenger-vega-test-data/vega-specs/gradients/heatmap_with_colorbar.vg.json index 9b04272..ff5e63d 100644 --- a/avenger-vega-test-data/vega-specs/gradients/heatmap_with_colorbar.vg.json +++ b/avenger-vega-test-data/vega-specs/gradients/heatmap_with_colorbar.vg.json @@ -3,7 +3,7 @@ "background": "white", "padding": 5, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/gradients/radial_concentric_gradient_bars.vg.json b/avenger-vega-test-data/vega-specs/gradients/radial_concentric_gradient_bars.vg.json index 34e08cc..8f74314 100644 --- a/avenger-vega-test-data/vega-specs/gradients/radial_concentric_gradient_bars.vg.json +++ b/avenger-vega-test-data/vega-specs/gradients/radial_concentric_gradient_bars.vg.json @@ -5,7 +5,7 @@ "padding": 5, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/gradients/radial_offset_gradient_bars.vg.json b/avenger-vega-test-data/vega-specs/gradients/radial_offset_gradient_bars.vg.json index 2d715e8..5c3f3b4 100644 --- a/avenger-vega-test-data/vega-specs/gradients/radial_offset_gradient_bars.vg.json +++ b/avenger-vega-test-data/vega-specs/gradients/radial_offset_gradient_bars.vg.json @@ -5,7 +5,7 @@ "padding": 5, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/gradients/residuals_colorscale.vg.json b/avenger-vega-test-data/vega-specs/gradients/residuals_colorscale.vg.json index 988e89b..a480cf4 100644 --- a/avenger-vega-test-data/vega-specs/gradients/residuals_colorscale.vg.json +++ b/avenger-vega-test-data/vega-specs/gradients/residuals_colorscale.vg.json @@ -6,7 +6,7 @@ "width": 300, "height": 300, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/gradients/stroke_rect_gradient.vg.json b/avenger-vega-test-data/vega-specs/gradients/stroke_rect_gradient.vg.json index c936f4f..ca6549f 100644 --- a/avenger-vega-test-data/vega-specs/gradients/stroke_rect_gradient.vg.json +++ b/avenger-vega-test-data/vega-specs/gradients/stroke_rect_gradient.vg.json @@ -5,7 +5,7 @@ "padding": 5, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/image/large_images.vg.json b/avenger-vega-test-data/vega-specs/image/large_images.vg.json index 8cc043a..ab2c3c1 100644 --- a/avenger-vega-test-data/vega-specs/image/large_images.vg.json +++ b/avenger-vega-test-data/vega-specs/image/large_images.vg.json @@ -5,7 +5,7 @@ "width": 200, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/image/logos.vg.json b/avenger-vega-test-data/vega-specs/image/logos.vg.json index b9e0835..c82bdb7 100644 --- a/avenger-vega-test-data/vega-specs/image/logos.vg.json +++ b/avenger-vega-test-data/vega-specs/image/logos.vg.json @@ -5,7 +5,7 @@ "width": 200, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_false.vg.json b/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_false.vg.json index 898a3fc..14ac62e 100644 --- a/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_false.vg.json +++ b/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_false.vg.json @@ -5,7 +5,7 @@ "width": 200, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_false_align_baseline.vg.json b/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_false_align_baseline.vg.json index 9b90f68..e44ff63 100644 --- a/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_false_align_baseline.vg.json +++ b/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_false_align_baseline.vg.json @@ -5,7 +5,7 @@ "width": 200, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_true_align_baseline.vg.json b/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_true_align_baseline.vg.json index 7e8ca2f..eb004e7 100644 --- a/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_true_align_baseline.vg.json +++ b/avenger-vega-test-data/vega-specs/image/logos_sized_aspect_true_align_baseline.vg.json @@ -5,7 +5,7 @@ "width": 200, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/image/smooth_false.vg.json b/avenger-vega-test-data/vega-specs/image/smooth_false.vg.json index 62d32b7..aca662f 100644 --- a/avenger-vega-test-data/vega-specs/image/smooth_false.vg.json +++ b/avenger-vega-test-data/vega-specs/image/smooth_false.vg.json @@ -5,7 +5,7 @@ "width": 600, "height": 600, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/image/smooth_true.vg.json b/avenger-vega-test-data/vega-specs/image/smooth_true.vg.json index 48095b9..74611bf 100644 --- a/avenger-vega-test-data/vega-specs/image/smooth_true.vg.json +++ b/avenger-vega-test-data/vega-specs/image/smooth_true.vg.json @@ -5,7 +5,7 @@ "width": 600, "height": 600, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/line/connected_scatter.vg.json b/avenger-vega-test-data/vega-specs/line/connected_scatter.vg.json index 96aac69..610d43c 100644 --- a/avenger-vega-test-data/vega-specs/line/connected_scatter.vg.json +++ b/avenger-vega-test-data/vega-specs/line/connected_scatter.vg.json @@ -5,7 +5,7 @@ "width": 200, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/line/simple_dashed.vg.json b/avenger-vega-test-data/vega-specs/line/simple_dashed.vg.json index 94808d7..dd5ad1c 100644 --- a/avenger-vega-test-data/vega-specs/line/simple_dashed.vg.json +++ b/avenger-vega-test-data/vega-specs/line/simple_dashed.vg.json @@ -5,7 +5,7 @@ "padding": 5, "height": 200, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/line/stocks_dashed.vg.json b/avenger-vega-test-data/vega-specs/line/stocks_dashed.vg.json index e8340eb..df5542c 100644 --- a/avenger-vega-test-data/vega-specs/line/stocks_dashed.vg.json +++ b/avenger-vega-test-data/vega-specs/line/stocks_dashed.vg.json @@ -6,7 +6,7 @@ "width": 400, "height": 400, "style": "cell", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/shape/london_tubes.vg.json b/avenger-vega-test-data/vega-specs/shape/london_tubes.vg.json index fa929d3..e9d528c 100644 --- a/avenger-vega-test-data/vega-specs/shape/london_tubes.vg.json +++ b/avenger-vega-test-data/vega-specs/shape/london_tubes.vg.json @@ -5,7 +5,7 @@ "width": 700, "height": 500, "style": "view", - "encode": {"update": {"stroke": {"value": "transparent"}}}, + "data": [ { "name": "source_0", diff --git a/avenger-vega-test-data/vega-specs/text/emoji.vg.json b/avenger-vega-test-data/vega-specs/text/emoji.vg.json new file mode 100644 index 0000000..1fb25a0 --- /dev/null +++ b/avenger-vega-test-data/vega-specs/text/emoji.vg.json @@ -0,0 +1,154 @@ +{ + "$schema": "https://vega.github.io/schema/vega/v5.json", + "background": "white", + "padding": 5, + "config": {"style": {"cell": {"stroke": "transparent"}}}, + "data": [ + { + "name": "data-006229bd86d4a5200814600dc915ef80", + "values": [ + {"country": "Great Britain", "animal": "cattle"}, + {"country": "Great Britain", "animal": "cattle"}, + {"country": "Great Britain", "animal": "cattle"}, + {"country": "Great Britain", "animal": "pigs"}, + {"country": "Great Britain", "animal": "pigs"}, + {"country": "Great Britain", "animal": "sheep"}, + {"country": "Great Britain", "animal": "sheep"}, + {"country": "Great Britain", "animal": "sheep"}, + {"country": "Great Britain", "animal": "sheep"}, + {"country": "Great Britain", "animal": "sheep"}, + {"country": "Great Britain", "animal": "sheep"}, + {"country": "Great Britain", "animal": "sheep"}, + {"country": "Great Britain", "animal": "sheep"}, + {"country": "Great Britain", "animal": "sheep"}, + {"country": "Great Britain", "animal": "sheep"}, + {"country": "United States", "animal": "cattle"}, + {"country": "United States", "animal": "cattle"}, + {"country": "United States", "animal": "cattle"}, + {"country": "United States", "animal": "cattle"}, + {"country": "United States", "animal": "cattle"}, + {"country": "United States", "animal": "cattle"}, + {"country": "United States", "animal": "cattle"}, + {"country": "United States", "animal": "cattle"}, + {"country": "United States", "animal": "cattle"}, + {"country": "United States", "animal": "pigs"}, + {"country": "United States", "animal": "pigs"}, + {"country": "United States", "animal": "pigs"}, + {"country": "United States", "animal": "pigs"}, + {"country": "United States", "animal": "pigs"}, + {"country": "United States", "animal": "pigs"}, + {"country": "United States", "animal": "sheep"}, + {"country": "United States", "animal": "sheep"}, + {"country": "United States", "animal": "sheep"}, + {"country": "United States", "animal": "sheep"}, + {"country": "United States", "animal": "sheep"}, + {"country": "United States", "animal": "sheep"}, + {"country": "United States", "animal": "sheep"} + ] + }, + { + "name": "data_0", + "source": "data-006229bd86d4a5200814600dc915ef80", + "transform": [ + { + "type": "formula", + "expr": "{'cattle': '🐄', 'pigs': '🐖', 'sheep': '🐏'}[datum.animal]", + "as": "emoji" + }, + { + "type": "window", + "params": [null], + "as": ["x"], + "ops": ["rank"], + "fields": [""], + "sort": {"field": [], "order": []}, + "groupby": ["country", "animal"] + } + ] + }, + { + "name": "row_domain", + "source": "data_0", + "transform": [{"type": "aggregate", "groupby": ["country"]}] + } + ], + "signals": [ + {"name": "child_width", "value": 550}, + {"name": "child_height", "value": 140} + ], + "layout": {"padding": 20, "columns": 1, "bounds": "full", "align": "all"}, + "marks": [ + { + "name": "row_header", + "type": "group", + "role": "row-header", + "from": {"data": "row_domain"}, + "sort": {"field": "datum[\"country\"]", "order": "ascending"}, + "title": { + "text": { + "signal": "isValid(parent[\"country\"]) ? parent[\"country\"] : \"\"+parent[\"country\"]" + }, + "orient": "left", + "style": "guide-label", + "frame": "group", + "offset": 10 + }, + "encode": {"update": {"height": {"signal": "child_height"}}} + }, + { + "name": "cell", + "type": "group", + "style": "cell", + "from": { + "facet": {"name": "facet", "data": "data_0", "groupby": ["country"]} + }, + "sort": {"field": ["datum[\"country\"]"], "order": ["ascending"]}, + "encode": { + "update": { + "width": {"signal": "child_width"}, + "height": {"signal": "child_height"} + } + }, + "marks": [ + { + "name": "child_marks", + "type": "text", + "style": ["text"], + "from": {"data": "facet"}, + "encode": { + "update": { + "baseline": {"value": "middle"}, + "fill": {"value": "black"}, + "description": { + "signal": "\"x: \" + (isValid(datum[\"x\"]) ? datum[\"x\"] : \"\"+datum[\"x\"]) + \"; animal: \" + (isValid(datum[\"animal\"]) ? datum[\"animal\"] : \"\"+datum[\"animal\"]) + \"; emoji: \" + (isValid(datum[\"emoji\"]) ? datum[\"emoji\"] : \"\"+datum[\"emoji\"])" + }, + "x": {"scale": "x", "field": "x"}, + "y": {"scale": "y", "field": "animal"}, + "text": { + "signal": "isValid(datum[\"emoji\"]) ? datum[\"emoji\"] : \"\"+datum[\"emoji\"]" + }, + "fontSize": {"value": 45}, + "align": {"value": "center"} + } + } + } + ] + } + ], + "scales": [ + { + "name": "x", + "type": "point", + "domain": {"data": "data_0", "field": "x", "sort": true}, + "range": [0, {"signal": "child_width"}], + "padding": 0.5 + }, + { + "name": "y", + "type": "point", + "domain": {"data": "data_0", "field": "animal", "sort": true}, + "range": [0, {"signal": "child_height"}], + "padding": 0.5 + } + ] +} diff --git a/avenger-vega/src/image/reqwest_fetcher.rs b/avenger-vega/src/image/reqwest_fetcher.rs index 5ea77da..83a471c 100644 --- a/avenger-vega/src/image/reqwest_fetcher.rs +++ b/avenger-vega/src/image/reqwest_fetcher.rs @@ -7,6 +7,12 @@ pub struct ReqwestImageFetcher { client: Client, } +impl Default for ReqwestImageFetcher { + fn default() -> Self { + Self::new() + } +} + impl ReqwestImageFetcher { pub fn new() -> Self { Self { diff --git a/avenger-vega/src/marks/group.rs b/avenger-vega/src/marks/group.rs index 6e8aa72..4583259 100644 --- a/avenger-vega/src/marks/group.rs +++ b/avenger-vega/src/marks/group.rs @@ -1,7 +1,9 @@ use crate::error::VegaSceneGraphError; use crate::marks::mark::{VegaMark, VegaMarkItem}; +use crate::marks::values::CssColorOrGradient; use avenger::marks::group::{GroupBounds, SceneGroup}; use avenger::marks::mark::SceneMark; +use avenger::marks::value::Gradient; use serde::{Deserialize, Serialize}; #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] @@ -11,8 +13,18 @@ pub struct VegaGroupItem { pub(crate) x: f32, #[serde(default)] pub(crate) y: f32, + pub name: Option, pub width: Option, pub height: Option, + pub fill: Option, + pub stroke: Option, + pub stroke_width: Option, + pub corner_radius: Option, + pub opacity: Option, + pub fill_opacity: Option, + pub stroke_opacity: Option, + pub stroke_offset: Option, + pub zindex: Option, } impl VegaMarkItem for VegaGroupItem {} @@ -63,7 +75,26 @@ impl VegaGroupItem { }; marks.extend(item_marks); } + + let mut gradients = Vec::::new(); + let fill = if let Some(v) = &self.fill { + let opacity = self.fill_opacity.unwrap_or(1.0) * self.opacity.unwrap_or(1.0); + Some(v.to_color_or_grad(opacity, &mut gradients)?) + } else { + None + }; + let stroke = if let Some(v) = &self.stroke { + let opacity = self.fill_opacity.unwrap_or(1.0) * self.opacity.unwrap_or(1.0); + Some(v.to_color_or_grad(opacity, &mut gradients)?) + } else { + None + }; + Ok(SceneGroup { + name: self + .name + .clone() + .unwrap_or_else(|| "group_item".to_string()), bounds: GroupBounds { x: self.x, y: self.y, @@ -71,6 +102,12 @@ impl VegaGroupItem { height: self.height, }, marks, + gradients, + fill, + stroke, + stroke_width: self.stroke_width, + stroke_offset: self.stroke_offset, + corner_radius: self.corner_radius, }) } } diff --git a/avenger-vega/src/marks/symbol.rs b/avenger-vega/src/marks/symbol.rs index 2b7a39b..a33db10 100644 --- a/avenger-vega/src/marks/symbol.rs +++ b/avenger-vega/src/marks/symbol.rs @@ -82,6 +82,7 @@ impl VegaMarkContainer { line_marks.push(SceneMark::Line(mark)); } return Ok(SceneMark::Group(SceneGroup { + name: "symbol_line_legend".to_string(), bounds: GroupBounds { x: 0.0, y: 0.0, @@ -89,6 +90,12 @@ impl VegaMarkContainer { height: None, }, marks: line_marks, + gradients: vec![], + fill: None, + stroke: None, + stroke_width: None, + stroke_offset: None, + corner_radius: None, })); } diff --git a/avenger-vega/src/marks/text.rs b/avenger-vega/src/marks/text.rs index c4c54eb..7866d69 100644 --- a/avenger-vega/src/marks/text.rs +++ b/avenger-vega/src/marks/text.rs @@ -10,8 +10,9 @@ use serde::{Deserialize, Serialize}; #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct VegaTextItem { - // Required + #[serde(default)] pub x: f32, + #[serde(default)] pub y: f32, pub text: String, diff --git a/avenger-wgpu/Cargo.toml b/avenger-wgpu/Cargo.toml index 29ac536..74274cd 100644 --- a/avenger-wgpu/Cargo.toml +++ b/avenger-wgpu/Cargo.toml @@ -27,6 +27,7 @@ image = "0.24.7" futures-intrusive = "^0.5" etagere = "0.2.10" colorgrad = "0.6.2" +lazy_static = { workspace=true } # glyphon branch that includes text rotation support: https://github.com/jonmmease/glyphon/pull/1 glyphon = { git = "https://github.com/jonmmease/glyphon.git", rev="c468f5dacd4130b27a29b098c4de3f4d5c146209", optional = true } diff --git a/avenger-wgpu/src/canvas.rs b/avenger-wgpu/src/canvas.rs index 8ba0aa0..0aba5ab 100644 --- a/avenger-wgpu/src/canvas.rs +++ b/avenger-wgpu/src/canvas.rs @@ -267,6 +267,11 @@ pub trait Canvas { group: &SceneGroup, group_bounds: GroupBounds, ) -> Result<(), Sg2dWgpuError> { + // Maybe add rect around group boundary + if let Some(rect) = group.make_rect() { + self.add_rect_mark(&rect, group_bounds)?; + } + // Compute new group bounds let group_bounds = GroupBounds { x: group_bounds.x + group.bounds.x, diff --git a/avenger-wgpu/src/lib.rs b/avenger-wgpu/src/lib.rs index 67abdd2..6916c88 100644 --- a/avenger-wgpu/src/lib.rs +++ b/avenger-wgpu/src/lib.rs @@ -1,3 +1,6 @@ +#[macro_use] +extern crate lazy_static; + pub mod canvas; pub mod error; pub mod marks; diff --git a/avenger-wgpu/src/marks/text.rs b/avenger-wgpu/src/marks/text.rs index a2b1587..a4cd5bc 100644 --- a/avenger-wgpu/src/marks/text.rs +++ b/avenger-wgpu/src/marks/text.rs @@ -3,16 +3,76 @@ use avenger::marks::group::GroupBounds; use avenger::marks::text::{ FontStyleSpec, FontWeightNameSpec, FontWeightSpec, TextAlignSpec, TextBaselineSpec, TextMark, }; + use glyphon::{ - Attrs, Buffer, Color, Family, FontSystem, Metrics, Resolution, Shaping, SwashCache, TextArea, - TextAtlas, TextBounds, TextRenderer, Weight, + Attrs, Buffer, Color, ColorMode, Family, FontSystem, Metrics, Resolution, Shaping, SwashCache, + TextArea, TextAtlas, TextBounds, TextRenderer, Weight, }; use itertools::izip; +use std::collections::HashSet; +use std::sync::Mutex; use wgpu::{ CommandBuffer, CommandEncoderDescriptor, Device, MultisampleState, Operations, Queue, RenderPassColorAttachment, RenderPassDescriptor, TextureFormat, TextureView, }; +lazy_static! { + static ref FONT_SYSTEM: Mutex = Mutex::new(build_font_system()); + static ref SWASH_CACHE: Mutex = Mutex::new(SwashCache::new()); +} + +fn build_font_system() -> FontSystem { + let mut font_system = FontSystem::new(); + + // Override default families based on what system fonts are available + let fontdb = font_system.db_mut(); + let families: HashSet = fontdb + .faces() + .flat_map(|face| { + face.families + .iter() + .map(|(fam, _lang)| fam.clone()) + .collect::>() + }) + .collect(); + + // Set default sans serif + for family in ["Helvetica", "Arial", "Liberation Sans"] { + if families.contains(family) { + fontdb.set_sans_serif_family(family); + break; + } + } + + // Set default monospace font family + for family in [ + "Courier New", + "Courier", + "Liberation Mono", + "DejaVu Sans Mono", + ] { + if families.contains(family) { + fontdb.set_monospace_family(family); + break; + } + } + + // Set default serif font family + for family in [ + "Times New Roman", + "Times", + "Liberation Serif", + "DejaVu Serif", + ] { + if families.contains(family) { + fontdb.set_serif_family(family); + break; + } + } + + font_system +} + #[derive(Clone, Debug)] pub struct TextInstance { pub text: String, @@ -91,8 +151,6 @@ impl TextInstance { } pub struct TextMarkRenderer { - pub font_system: FontSystem, - pub cache: SwashCache, pub atlas: TextAtlas, pub text_renderer: TextRenderer, pub instances: Vec, @@ -111,9 +169,7 @@ impl TextMarkRenderer { group_bounds: GroupBounds, ) -> Self { let instances = TextInstance::iter_from_spec(mark, group_bounds).collect::>(); - let font_system = FontSystem::new(); - let cache = SwashCache::new(); - let mut atlas = TextAtlas::new(device, queue, texture_format); + let mut atlas = TextAtlas::with_color_mode(device, queue, texture_format, ColorMode::Web); let text_renderer = TextRenderer::new( &mut atlas, device, @@ -126,8 +182,6 @@ impl TextMarkRenderer { ); Self { - font_system, - cache, atlas, text_renderer, dimensions, @@ -143,6 +197,13 @@ impl TextMarkRenderer { texture_view: &TextureView, resolve_target: Option<&TextureView>, ) -> CommandBuffer { + let mut font_system = FONT_SYSTEM + .lock() + .expect("Failed to acquire lock on FONT_SYSTEM"); + let mut cache = SWASH_CACHE + .lock() + .expect("Failed to acquire lock on SWASH_CACHE"); + // Collect buffer into a vector first so that they live as long as the text areas // that reference them below let buffers = self @@ -152,7 +213,7 @@ impl TextMarkRenderer { // Ad-hoc size adjustment for better match with resvg let font_size_scale = 0.99f32; let mut buffer = Buffer::new( - &mut self.font_system, + &mut font_system, Metrics::new( instance.font_size * self.dimensions.scale * font_size_scale, instance.font_size * self.dimensions.scale * font_size_scale, @@ -160,7 +221,7 @@ impl TextMarkRenderer { ); let family = match instance.font.to_lowercase().as_str() { "serif" => Family::Serif, - "sans serif" => Family::SansSerif, + "sans serif" | "sans-serif" => Family::SansSerif, "cursive" => Family::Cursive, "fantasy" => Family::Fantasy, "monospace" => Family::Monospace, @@ -173,17 +234,17 @@ impl TextMarkRenderer { }; buffer.set_text( - &mut self.font_system, + &mut font_system, &instance.text, Attrs::new().family(family).weight(weight), Shaping::Advanced, ); buffer.set_size( - &mut self.font_system, + &mut font_system, self.dimensions.size[0] * self.dimensions.scale, self.dimensions.size[1] * self.dimensions.scale, ); - buffer.shape_until_scroll(&mut self.font_system); + buffer.shape_until_scroll(&mut font_system); buffer }) @@ -241,14 +302,14 @@ impl TextMarkRenderer { .prepare( device, queue, - &mut self.font_system, + &mut font_system, &mut self.atlas, Resolution { width: self.dimensions.to_physical_width(), height: self.dimensions.to_physical_height(), }, areas, - &mut self.cache, + &mut cache, ) .unwrap(); diff --git a/avenger-wgpu/tests/test_image_baselines.rs b/avenger-wgpu/tests/test_image_baselines.rs index ea748dd..1d18036 100644 --- a/avenger-wgpu/tests/test_image_baselines.rs +++ b/avenger-wgpu/tests/test_image_baselines.rs @@ -48,6 +48,9 @@ mod test_image_baselines { case("text", "bar_axis_labels", 0.01), case("text", "text_rotation", 0.015), case("text", "letter_scatter", 0.012), + + // vl-convert doesn't support emoji at all + case("text", "emoji", 2.0), case("arc", "single_arc_no_inner", 0.0005), case("arc", "single_arc_with_inner_radius", 0.0005), case("arc", "single_arc_with_inner_radius_wrap", 0.0005), diff --git a/avenger/src/marks/group.rs b/avenger/src/marks/group.rs index 7b17738..b09d2d7 100644 --- a/avenger/src/marks/group.rs +++ b/avenger/src/marks/group.rs @@ -1,4 +1,6 @@ use crate::marks::mark::SceneMark; +use crate::marks::rect::RectMark; +use crate::marks::value::{ColorOrGradient, EncodingValue, Gradient}; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Copy, Serialize, Deserialize)] @@ -22,6 +24,71 @@ impl Default for GroupBounds { #[derive(Debug, Clone, Serialize, Deserialize)] pub struct SceneGroup { + pub name: String, pub bounds: GroupBounds, pub marks: Vec, + pub gradients: Vec, + pub fill: Option, + pub stroke: Option, + pub stroke_width: Option, + pub stroke_offset: Option, + pub corner_radius: Option, +} + +impl SceneGroup { + pub fn make_rect(&self) -> Option { + if self.fill.is_none() && self.stroke.is_none() { + return None; + } + let stroke_width = + self.stroke_width + .unwrap_or(if self.stroke.is_some() { 1.0 } else { 0.0 }); + let stroke_offset = if let Some(stroke_offset) = self.stroke_offset { + stroke_offset + } else { + // From Vega's default stroke offset logic + if self.stroke.is_some() && stroke_width > 0.5 && stroke_width < 1.5 { + 0.5 - (stroke_width - 1.0).abs() + } else { + 0.0 + } + }; + Some(RectMark { + name: format!("rect_{}", self.name), + clip: false, + len: 1, + gradients: self.gradients.clone(), + x: EncodingValue::Scalar { + value: self.bounds.x + stroke_offset, + }, + y: EncodingValue::Scalar { + value: self.bounds.y + stroke_offset, + }, + width: EncodingValue::Scalar { + value: self.bounds.width.unwrap_or(0.0), + }, + height: EncodingValue::Scalar { + value: self.bounds.height.unwrap_or(0.0), + }, + fill: EncodingValue::Scalar { + value: self + .fill + .clone() + .unwrap_or(ColorOrGradient::Color([0.0, 0.0, 0.0, 0.0])), + }, + stroke: EncodingValue::Scalar { + value: self + .stroke + .clone() + .unwrap_or(ColorOrGradient::Color([0.0, 0.0, 0.0, 0.0])), + }, + stroke_width: EncodingValue::Scalar { + value: stroke_width, + }, + corner_radius: EncodingValue::Scalar { + value: self.corner_radius.unwrap_or(0.0), + }, + indices: None, + }) + } } diff --git a/examples/scatter-panning/Cargo.lock b/examples/scatter-panning/Cargo.lock index dcde17f..46afaff 100644 --- a/examples/scatter-panning/Cargo.lock +++ b/examples/scatter-panning/Cargo.lock @@ -170,6 +170,7 @@ dependencies = [ "glyphon", "image", "itertools", + "lazy_static", "log", "lyon", "pollster", diff --git a/examples/wgpu-winit/Cargo.lock b/examples/wgpu-winit/Cargo.lock index 7e30487..6c764b8 100644 --- a/examples/wgpu-winit/Cargo.lock +++ b/examples/wgpu-winit/Cargo.lock @@ -169,6 +169,7 @@ dependencies = [ "futures-intrusive", "image", "itertools", + "lazy_static", "log", "lyon", "pollster", diff --git a/pixi.lock b/pixi.lock new file mode 100644 index 0000000..dd2e020 --- /dev/null +++ b/pixi.lock @@ -0,0 +1,3276 @@ +version: 3 +metadata: + content_hash: + osx-arm64: e90c2ee71ad70fc0a1c8302029533a7d1498f2bffcd0eaa8d2934700e775dc1d + channels: + - url: https://conda.anaconda.org/conda-forge/ + used_env_vars: [] + platforms: + - osx-arm64 + sources: [] + time_metadata: null + git_metadata: null + inputs_metadata: null + custom_metadata: null +package: +- platform: osx-arm64 + name: altair + version: 5.2.0 + category: main + manager: conda + dependencies: + - importlib-metadata + - jinja2 + - jsonschema >=3.0 + - numpy + - packaging + - pandas >=0.25 + - python >=3.8 + - toolz + - typing-extensions >=4.0.1 + url: https://conda.anaconda.org/conda-forge/noarch/altair-5.2.0-pyhd8ed1ab_0.conda + hash: + md5: 2521e261fff0b285be099322cf557a7c + sha256: 9fbaf9d1d8b3c8b5649a36c27311d2a1ad4874ac69b2f8b77bb45989e1d0042d + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 457454 + timestamp: 1701735672437 + purls: + - pkg:pypi/altair +- platform: osx-arm64 + name: anyio + version: 4.2.0 + category: main + manager: conda + dependencies: + - exceptiongroup >=1.0.2 + - idna >=2.8 + - python >=3.8 + - sniffio >=1.1 + - typing_extensions >=4.1 + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.2.0-pyhd8ed1ab_0.conda + hash: + md5: 81ce9f3d9697b534d95118bb86c8a07e + sha256: 68458e31bdf3334f0e85f08767718ca9bc35bc2a79a6c503942ac99da98e510a + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + constrains: + - trio >=0.23 + - uvloop >=0.17 + license: MIT + license_family: MIT + noarch: python + size: 101592 + timestamp: 1702909362897 + purls: + - pkg:pypi/anyio +- platform: osx-arm64 + name: appnope + version: 0.1.3 + category: main + manager: conda + dependencies: + - python >=2.7 + url: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 54ac328d703bff191256ffa1183126d1 + sha256: b209a68ac55eb9ecad7042f0d4eedef5da924699f6cdf54ac1826869cfdae742 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 8095 + timestamp: 1649077760928 + purls: + - pkg:pypi/appnope +- platform: osx-arm64 + name: argon2-cffi + version: 23.1.0 + category: main + manager: conda + dependencies: + - argon2-cffi-bindings + - python >=3.7 + - typing-extensions + url: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-23.1.0-pyhd8ed1ab_0.conda + hash: + md5: 3afef1f55a1366b4d3b6a0d92e2235e4 + sha256: 130766446f5507bd44df957b6b5c898a8bd98f024bb426ed6cb9ff1ad67fc677 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + constrains: + - argon2_cffi ==999 + license: MIT + license_family: MIT + noarch: python + size: 18602 + timestamp: 1692818472638 + purls: + - pkg:pypi/argon2-cffi +- platform: osx-arm64 + name: argon2-cffi-bindings + version: 21.2.0 + category: main + manager: conda + dependencies: + - cffi >=1.0.1 + - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12.0rc3,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-21.2.0-py312h02f2b3b_4.conda + hash: + md5: 015edbb6fae68ab35881f55f149d4725 + sha256: 1cfcf4b2d36a3b183a5cb1c69f85768166e50af6ced5ae381c440666a6da12c6 + build: py312h02f2b3b_4 + arch: aarch64 + subdir: osx-arm64 + build_number: 4 + license: MIT + license_family: MIT + size: 33607 + timestamp: 1695387216062 + purls: + - pkg:pypi/argon2-cffi-bindings +- platform: osx-arm64 + name: arrow + version: 1.3.0 + category: main + manager: conda + dependencies: + - python >=3.8 + - python-dateutil >=2.7.0 + - types-python-dateutil >=2.8.10 + url: https://conda.anaconda.org/conda-forge/noarch/arrow-1.3.0-pyhd8ed1ab_0.conda + hash: + md5: b77d8c2313158e6e461ca0efb1c2c508 + sha256: ff49825c7f9e29e09afa6284300810e7a8640d621740efb47c4541f4dc4969db + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + noarch: python + size: 100096 + timestamp: 1696129131844 +- platform: osx-arm64 + name: asttokens + version: 2.4.1 + category: main + manager: conda + dependencies: + - python >=3.5 + - six >=1.12.0 + url: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda + hash: + md5: 5f25798dcefd8252ce5f9dc494d5f571 + sha256: 708168f026df19a0344983754d27d1f7b28bb21afc7b97a82f02c4798a3d2111 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + noarch: python + size: 28922 + timestamp: 1698341257884 + purls: + - pkg:pypi/asttokens +- platform: osx-arm64 + name: async-lru + version: 2.0.4 + category: main + manager: conda + dependencies: + - python >=3.8 + - typing_extensions >=4.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.4-pyhd8ed1ab_0.conda + hash: + md5: 3d081de3a6ea9f894bbb585e8e3a4dcb + sha256: 7ed83731979fe5b046c157730e50af0e24454468bbba1ed8fc1a3107db5d7518 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 15342 + timestamp: 1690563152778 + purls: + - pkg:pypi/async-lru +- platform: osx-arm64 + name: attrs + version: 23.2.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + hash: + md5: 5e4c0743c70186509d1412e03c2d8dfa + sha256: 77c7d03bdb243a048fff398cedc74327b7dc79169ebe3b4c8448b0331ea55fea + build: pyh71513ae_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 54582 + timestamp: 1704011393776 + purls: + - pkg:pypi/attrs +- platform: osx-arm64 + name: babel + version: 2.14.0 + category: main + manager: conda + dependencies: + - python >=3.7 + - pytz + - setuptools + url: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda + hash: + md5: 9669586875baeced8fc30c0826c3270e + sha256: 8584e3da58e92b72641c89ff9b98c51f0d5dbe76e527867804cbdf03ac91d8e6 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 7609750 + timestamp: 1702422720584 + purls: + - pkg:pypi/babel +- platform: osx-arm64 + name: beautifulsoup4 + version: 4.12.3 + category: main + manager: conda + dependencies: + - python >=3.6 + - soupsieve >=1.2 + url: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda + hash: + md5: 332493000404d8411859539a5a630865 + sha256: 7b05b2d0669029326c623b9df7a29fa49d1982a9e7e31b2fea34b4c9a4a72317 + build: pyha770c72_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 118200 + timestamp: 1705564819537 +- platform: osx-arm64 + name: bleach + version: 6.1.0 + category: main + manager: conda + dependencies: + - packaging + - python >=3.6 + - setuptools + - six >=1.9.0 + - webencodings + url: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda + hash: + md5: 0ed9d7c0e9afa7c025807a9a8136ea3e + sha256: 845e77ef495376c5c3c328ccfd746ca0ef1978150cae8eae61a300fe7755fb08 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + noarch: python + size: 131220 + timestamp: 1696630354218 + purls: + - pkg:pypi/bleach +- platform: osx-arm64 + name: brotli-python + version: 1.1.0 + category: main + manager: conda + dependencies: + - libcxx >=15.0.7 + - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12.0rc3,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312h9f69965_1.conda + hash: + md5: 1bc01b9ffdf42beb1a9fe4e9222e0567 + sha256: 3418b1738243abba99e931c017b952771eeaa1f353c07f7d45b55e83bb74fcb3 + build: py312h9f69965_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + constrains: + - libbrotlicommon 1.1.0 hb547adb_1 + license: MIT + license_family: MIT + size: 343435 + timestamp: 1695990731924 +- platform: osx-arm64 + name: bzip2 + version: 1.0.8 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda + hash: + md5: 1bbc659ca658bfd49a481b5ef7a0f40f + sha256: bfa84296a638bea78a8bb29abc493ee95f2a0218775642474a840411b950fe5f + build: h93a5062_5 + arch: aarch64 + subdir: osx-arm64 + build_number: 5 + license: bzip2-1.0.6 + license_family: BSD + size: 122325 + timestamp: 1699280294368 +- platform: osx-arm64 + name: ca-certificates + version: 2023.11.17 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2023.11.17-hf0a4a13_0.conda + hash: + md5: c01da7c77cfcba2107174e25c1d47384 + sha256: 75f4762a55f7e9453a603c967d549bfa0a7a9669d502d103cb6fbf8c86d993c6 + build: hf0a4a13_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: ISC + size: 154444 + timestamp: 1700280972188 +- platform: osx-arm64 + name: cached-property + version: 1.5.2 + category: main + manager: conda + dependencies: + - cached_property >=1.5.2,<1.5.3.0a0 + url: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 + hash: + md5: 9b347a7ec10940d3f7941ff6c460b551 + sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17 + build: hd8ed1ab_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 4134 + timestamp: 1615209571450 +- platform: osx-arm64 + name: cached_property + version: 1.5.2 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 + hash: + md5: 576d629e47797577ab0f1b351297ef4a + sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7 + build: pyha770c72_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 11065 + timestamp: 1615209567874 + purls: + - pkg:pypi/cached-property +- platform: osx-arm64 + name: certifi + version: 2023.11.17 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda + hash: + md5: 2011bcf45376341dd1d690263fdbc789 + sha256: afa22b77128a812cb57bc707c297d926561bd225a3d9dd74205d87a3b2d14a96 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: ISC + noarch: python + size: 158939 + timestamp: 1700303562512 +- platform: osx-arm64 + name: cffi + version: 1.16.0 + category: main + manager: conda + dependencies: + - libffi >=3.4,<4.0a0 + - pycparser + - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12.0rc3,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py312h8e38eb3_0.conda + hash: + md5: 960ecbd65860d3b1de5e30373e1bffb1 + sha256: 1544403cb1a5ca2aeabf0dac86d9ce6066d6fb4363493643b33ffd1b78038d18 + build: py312h8e38eb3_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + size: 284245 + timestamp: 1696002181644 +- platform: osx-arm64 + name: charset-normalizer + version: 3.3.2 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.3.2-pyhd8ed1ab_0.conda + hash: + md5: 7f4a9e3fcff3f6356ae99244a014da6a + sha256: 20cae47d31fdd58d99c4d2e65fbdcefa0b0de0c84e455ba9d6356a4bdbc4b5b9 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 46597 + timestamp: 1698833765762 + purls: + - pkg:pypi/charset-normalizer +- platform: osx-arm64 + name: comm + version: 0.2.1 + category: main + manager: conda + dependencies: + - python >=3.6 + - traitlets >=5.3 + url: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.1-pyhd8ed1ab_0.conda + hash: + md5: f4385072f4909bc974f6675a36e76796 + sha256: bd90a200e6f7092a89f02c4800729a4a6d2b2de49d70a9706aeb083a635308c1 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 12198 + timestamp: 1704278590206 + purls: + - pkg:pypi/comm +- platform: osx-arm64 + name: debugpy + version: 1.8.0 + category: main + manager: conda + dependencies: + - libcxx >=15.0.7 + - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12.0rc3,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.0-py312h9f69965_1.conda + hash: + md5: 86aa5172acd2140b7a5134397938dd5a + sha256: d626f7e616ad7082e828fd4991a919d1f26925b5586fbd28baece8a3aa95ae52 + build: py312h9f69965_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + license: MIT + license_family: MIT + size: 2764216 + timestamp: 1695534715799 + purls: + - pkg:pypi/debugpy +- platform: osx-arm64 + name: decorator + version: 5.1.1 + category: main + manager: conda + dependencies: + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 43afe5ab04e35e17ba28649471dd7364 + sha256: 328a6a379f9bdfd0230e51de291ce858e6479411ea4b0545fb377c71662ef3e2 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 12072 + timestamp: 1641555714315 + purls: + - pkg:pypi/decorator +- platform: osx-arm64 + name: defusedxml + version: 0.7.1 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 961b3a227b437d82ad7054484cfa71b2 + sha256: 9717a059677553562a8f38ff07f3b9f61727bd614f505658b0a5ecbcf8df89be + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + noarch: python + size: 24062 + timestamp: 1615232388757 + purls: + - pkg:pypi/defusedxml +- platform: osx-arm64 + name: entrypoints + version: '0.4' + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 3cf04868fee0a029769bd41f4b2fbf2d + sha256: 2ec4a0900a4a9f42615fc04d0fb3286b796abe56590e8e042f6ec25e102dd5af + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 9199 + timestamp: 1643888357950 + purls: + - pkg:pypi/entrypoints +- platform: osx-arm64 + name: exceptiongroup + version: 1.2.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + hash: + md5: 8d652ea2ee8eaee02ed8dc820bc794aa + sha256: a6ae416383bda0e3ed14eaa187c653e22bec94ff2aa3b56970cdf0032761e80d + build: pyhd8ed1ab_2 + arch: aarch64 + subdir: osx-arm64 + build_number: 2 + license: MIT and PSF-2.0 + noarch: python + size: 20551 + timestamp: 1704921321122 + purls: + - pkg:pypi/exceptiongroup +- platform: osx-arm64 + name: executing + version: 2.0.1 + category: main + manager: conda + dependencies: + - python >=2.7 + url: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda + hash: + md5: e16be50e378d8a4533b989035b196ab8 + sha256: c738804ab1e6376f8ea63372229a04c8d658dc90fd5a218c6273a2eaf02f4057 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 27689 + timestamp: 1698580072627 + purls: + - pkg:pypi/executing +- platform: osx-arm64 + name: fqdn + version: 1.5.1 + category: main + manager: conda + dependencies: + - cached-property >=1.3.0 + - python >=2.7,<4 + url: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 642d35437078749ef23a5dca2c9bb1f3 + sha256: 6cfd1f9bcd2358a69fb571f4b3af049b630d52647d906822dbedac03e84e4f63 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MPL-2.0 + license_family: MOZILLA + noarch: python + size: 14395 + timestamp: 1638810388635 +- platform: osx-arm64 + name: idna + version: '3.6' + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.6-pyhd8ed1ab_0.conda + hash: + md5: 1a76f09108576397c41c0b0c5bd84134 + sha256: 6ee4c986d69ce61e60a20b2459b6f2027baeba153f0a64995fd3cb47c2cc7e07 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 50124 + timestamp: 1701027126206 + purls: + - pkg:pypi/idna +- platform: osx-arm64 + name: importlib-metadata + version: 7.0.1 + category: main + manager: conda + dependencies: + - python >=3.8 + - zipp >=0.5 + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-7.0.1-pyha770c72_0.conda + hash: + md5: 746623a787e06191d80a2133e5daff17 + sha256: e72d05f171f4567004c9360a838e9d5df21e23dcfeb945066b53a6e5f754b861 + build: pyha770c72_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 26450 + timestamp: 1703269427097 +- platform: osx-arm64 + name: importlib_metadata + version: 7.0.1 + category: main + manager: conda + dependencies: + - importlib-metadata >=7.0.1,<7.0.2.0a0 + url: https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-7.0.1-hd8ed1ab_0.conda + hash: + md5: 4a2f43a20fa404b998859c6a470ba316 + sha256: bc362df1d4f5a04c38dff29cd9c2d0ac584f9c4b45d3e4683ee090944a38fba4 + build: hd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: generic + size: 9575 + timestamp: 1703269436329 +- platform: osx-arm64 + name: importlib_resources + version: 6.1.1 + category: main + manager: conda + dependencies: + - python >=3.8 + - zipp >=3.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.1.1-pyhd8ed1ab_0.conda + hash: + md5: 3d5fa25cf42f3f32a12b2d874ace8574 + sha256: e584f9ae08fb2d242af0ce7e19e3cd2f85f362d8523119e08f99edb962db99ed + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + constrains: + - importlib-resources >=6.1.1,<6.1.2.0a0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 29951 + timestamp: 1699364734111 + purls: + - pkg:pypi/importlib-resources +- platform: osx-arm64 + name: ipykernel + version: 6.29.0 + category: main + manager: conda + dependencies: + - __osx + - appnope + - comm >=0.1.1 + - debugpy >=1.6.5 + - ipython >=7.23.1 + - jupyter_client >=6.1.12 + - jupyter_core >=4.12,!=5.0.* + - matplotlib-inline >=0.1 + - nest-asyncio + - packaging + - psutil + - python >=3.8 + - pyzmq >=24 + - tornado >=6.1 + - traitlets >=5.4.0 + url: https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.29.0-pyh3cd1d5f_0.conda + hash: + md5: 17b1e24f82177f01ac7c6c518288612c + sha256: 6df088b8d356281347a71388315c7bbf49f0a5a10e6b16000553a43d74f5222d + build: pyh3cd1d5f_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 118633 + timestamp: 1705418395667 + purls: + - pkg:pypi/ipykernel +- platform: osx-arm64 + name: ipython + version: 8.20.0 + category: main + manager: conda + dependencies: + - __unix + - decorator + - exceptiongroup + - jedi >=0.16 + - matplotlib-inline + - pexpect >4.3 + - pickleshare + - prompt-toolkit >=3.0.41,<3.1.0 + - pygments >=2.4.0 + - python >=3.10 + - stack_data + - traitlets >=5 + - typing_extensions + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.20.0-pyh707e725_0.conda + hash: + md5: c2d2d7453560c80a2138c354610c08ba + sha256: 94fddc9f2f344d70aadabcccc595d0f32d87acaf4f2bce264058d4bb67c1c27f + build: pyh707e725_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 591018 + timestamp: 1704719019020 + purls: + - pkg:pypi/ipython +- platform: osx-arm64 + name: isoduration + version: 20.11.0 + category: main + manager: conda + dependencies: + - arrow >=0.15.0 + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 4cb68948e0b8429534380243d063a27a + sha256: 7bb5c4d994361022f47a807b5e7d101b3dce16f7dd8a0af6ffad9f479d346493 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 17189 + timestamp: 1638811664194 +- platform: osx-arm64 + name: jedi + version: 0.19.1 + category: main + manager: conda + dependencies: + - parso >=0.8.3,<0.9.0 + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda + hash: + md5: 81a3be0b2023e1ea8555781f0ad904a2 + sha256: 362f0936ef37dfd1eaa860190e42a6ebf8faa094eaa3be6aa4d9ace95f40047a + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 841312 + timestamp: 1696326218364 + purls: + - pkg:pypi/jedi +- platform: osx-arm64 + name: jinja2 + version: 3.1.3 + category: main + manager: conda + dependencies: + - markupsafe >=2.0 + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.3-pyhd8ed1ab_0.conda + hash: + md5: e7d8df6509ba635247ff9aea31134262 + sha256: fd517b7dd3a61eca34f8a6f9f92f306397149cae1204fce72ac3d227107dafdc + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 111589 + timestamp: 1704967140287 + purls: + - pkg:pypi/jinja2 +- platform: osx-arm64 + name: json5 + version: 0.9.14 + category: main + manager: conda + dependencies: + - python >=3.7,<4.0 + url: https://conda.anaconda.org/conda-forge/noarch/json5-0.9.14-pyhd8ed1ab_0.conda + hash: + md5: dac1dabba2b5a9d1aee175c5fcc7b436 + sha256: 41514104208c092959bef0713cbd795e72c535f2f939b7903d8c97809f2adaa7 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 25003 + timestamp: 1688248468479 + purls: + - pkg:pypi/json5 +- platform: osx-arm64 + name: jsonpointer + version: '2.4' + category: main + manager: conda + dependencies: + - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12.0rc3,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-2.4-py312h81bd7bf_3.conda + hash: + md5: 327361b24f5348cab04ad9b1f74e831d + sha256: 6cb2d17da9083e05f5ead7902a5cd6ec9567cd3da972c65c03f090515c9fa176 + build: py312h81bd7bf_3 + arch: aarch64 + subdir: osx-arm64 + build_number: 3 + license: BSD-3-Clause + license_family: BSD + size: 18542 + timestamp: 1695397720755 + purls: + - pkg:pypi/jsonpointer +- platform: osx-arm64 + name: jsonschema + version: 4.21.1 + category: main + manager: conda + dependencies: + - attrs >=22.2.0 + - importlib_resources >=1.4.0 + - jsonschema-specifications >=2023.03.6 + - pkgutil-resolve-name >=1.3.10 + - python >=3.8 + - referencing >=0.28.4 + - rpds-py >=0.7.1 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.1-pyhd8ed1ab_0.conda + hash: + md5: 8a3a3d01629da20befa340919e3dd2c4 + sha256: c5c1b4e08e91fdd697289015be1a176409b4e63942899a43b276f1f250be8129 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 72817 + timestamp: 1705707712082 +- platform: osx-arm64 + name: jsonschema-specifications + version: 2023.12.1 + category: main + manager: conda + dependencies: + - importlib_resources >=1.4.0 + - python >=3.8 + - referencing >=0.31.0 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.12.1-pyhd8ed1ab_0.conda + hash: + md5: a0e4efb5f35786a05af4809a2fb1f855 + sha256: a9630556ddc3121c0be32f4cbf792dd9102bd380d5cd81d57759d172cf0c2da2 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 16431 + timestamp: 1703778502971 + purls: + - pkg:pypi/jsonschema-specifications +- platform: osx-arm64 + name: jsonschema-with-format-nongpl + version: 4.21.1 + category: main + manager: conda + dependencies: + - fqdn + - idna + - isoduration + - jsonpointer >1.13 + - jsonschema >=4.21.1,<4.21.2.0a0 + - python + - rfc3339-validator + - rfc3986-validator >0.1.0 + - uri-template + - webcolors >=1.11 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.21.1-pyhd8ed1ab_0.conda + hash: + md5: 26bce4b5405738c09304d4f4796b2c2a + sha256: 6e458c325c097956ac4605ef386f0d67bad5223041cedd66819892988b72f83a + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 7452 + timestamp: 1705707742938 +- platform: osx-arm64 + name: jupyter-lsp + version: 2.2.2 + category: main + manager: conda + dependencies: + - importlib-metadata >=4.8.3 + - jupyter_server >=1.1.2 + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.2.2-pyhd8ed1ab_0.conda + hash: + md5: ed56b103cac2db68f22909e9f5cca6b6 + sha256: d8ab253be3df67be1b31fe040a8386e071ff065ef4442b94a722a45fa3562fbe + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 55130 + timestamp: 1705532233523 +- platform: osx-arm64 + name: jupyter_client + version: 8.6.0 + category: main + manager: conda + dependencies: + - importlib_metadata >=4.8.3 + - jupyter_core >=4.12,!=5.0.* + - python >=3.8 + - python-dateutil >=2.8.2 + - pyzmq >=23.0 + - tornado >=6.2 + - traitlets >=5.3 + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.0-pyhd8ed1ab_0.conda + hash: + md5: 6bd3f1069cdebb44c7ae9efb900e312d + sha256: 86cbb9070862cf23a245451efce539ca214e610849d0950bb8ac90c545bd158d + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 105838 + timestamp: 1699284056169 + purls: + - pkg:pypi/jupyter-client +- platform: osx-arm64 + name: jupyter_core + version: 5.7.1 + category: main + manager: conda + dependencies: + - platformdirs >=2.5 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - traitlets >=5.3 + url: https://conda.anaconda.org/conda-forge/osx-arm64/jupyter_core-5.7.1-py312h81bd7bf_0.conda + hash: + md5: 64dc06b5c9b1ff20ad9afcf00f588cfc + sha256: 56e3b3527364b8065a178112c146f07a59106eefe0a73f6cfaac38ea0f93eec8 + build: py312h81bd7bf_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 92987 + timestamp: 1704727587406 +- platform: osx-arm64 + name: jupyter_events + version: 0.9.0 + category: main + manager: conda + dependencies: + - jsonschema-with-format-nongpl >=4.18.0 + - python >=3.8 + - python-json-logger >=2.0.4 + - pyyaml >=5.3 + - referencing + - rfc3339-validator + - rfc3986-validator >=0.1.1 + - traitlets >=5.3 + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.9.0-pyhd8ed1ab_0.conda + hash: + md5: 00ba25993f0dba38cf72a7224e33289f + sha256: 713f0cc927a862862a6d35bfb29c4114f987e4f59e2a8a14f71f23fcd7edfec3 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 21354 + timestamp: 1699286038042 +- platform: osx-arm64 + name: jupyter_server + version: 2.12.5 + category: main + manager: conda + dependencies: + - anyio >=3.1.0 + - argon2-cffi + - jinja2 + - jupyter_client >=7.4.4 + - jupyter_core >=4.12,!=5.0.* + - jupyter_events >=0.9.0 + - jupyter_server_terminals + - nbconvert-core >=6.4.4 + - nbformat >=5.3.0 + - overrides + - packaging + - prometheus_client + - python >=3.8 + - pyzmq >=24 + - send2trash >=1.8.2 + - terminado >=0.8.3 + - tornado >=6.2.0 + - traitlets >=5.6.0 + - websocket-client + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.12.5-pyhd8ed1ab_0.conda + hash: + md5: 755177a956fa6dd90d5cfcbbb5084de2 + sha256: 43dcd238c656c7ecf3228be8735def530cad5181f990c042ba202b9e383d2b1f + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 320177 + timestamp: 1705418316315 + purls: + - pkg:pypi/jupyter-server +- platform: osx-arm64 + name: jupyter_server_terminals + version: 0.5.2 + category: main + manager: conda + dependencies: + - python >=3.8 + - terminado >=0.8.3 + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.2-pyhd8ed1ab_0.conda + hash: + md5: a0152d13c9deb13639fc84df884d50b6 + sha256: a625150744fdffb646fb4451edc68b3eff56eeace4e86b83dc4a860479c9857c + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 19876 + timestamp: 1706006876397 + purls: + - pkg:pypi/jupyter-server-terminals +- platform: osx-arm64 + name: jupyterlab + version: 4.0.11 + category: main + manager: conda + dependencies: + - async-lru >=1.0.0 + - importlib_metadata >=4.8.3 + - importlib_resources >=1.4 + - ipykernel + - jinja2 >=3.0.3 + - jupyter-lsp >=2.0.0 + - jupyter_core + - jupyter_server >=2.4.0,<3 + - jupyterlab_server >=2.19.0,<3 + - notebook-shim >=0.2 + - packaging + - python >=3.8 + - tomli + - tornado >=6.2.0 + - traitlets + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.0.11-pyhd8ed1ab_0.conda + hash: + md5: 42370604825af7396ef4317b67b22e2c + sha256: a6193a5160b9d3760a6b898858c69e9cfafddb126db45782429fc6b898011eee + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 5861540 + timestamp: 1705683961171 + purls: + - pkg:pypi/jupyterlab +- platform: osx-arm64 + name: jupyterlab_pygments + version: 0.3.0 + category: main + manager: conda + dependencies: + - pygments >=2.4.1,<3 + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_0.conda + hash: + md5: 3f0915b1fb2252ab73686a533c5f9d3f + sha256: 6ee596138a778a841261476408435da78e3000661f3ee025fb6c3ed17d28c8b3 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 18651 + timestamp: 1700744201155 + purls: + - pkg:pypi/jupyterlab-pygments +- platform: osx-arm64 + name: jupyterlab_server + version: 2.25.2 + category: main + manager: conda + dependencies: + - babel >=2.10 + - importlib-metadata >=4.8.3 + - jinja2 >=3.0.3 + - json5 >=0.9.0 + - jsonschema >=4.18 + - jupyter_server >=1.21,<3 + - packaging >=21.3 + - python >=3.8 + - requests >=2.31 + url: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.25.2-pyhd8ed1ab_0.conda + hash: + md5: f45557d5551b54dc2a74133a310bc1ba + sha256: 51c13a87072a64df1a0ae14fbb470bc4e36becf4d50693ffab53174199ca4f4b + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + constrains: + - openapi-core >=0.18.0,<0.19.0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 48860 + timestamp: 1700310989409 +- platform: osx-arm64 + name: libblas + version: 3.9.0 + category: main + manager: conda + dependencies: + - libopenblas >=0.3.26,<0.3.27.0a0 + - libopenblas >=0.3.26,<1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-21_osxarm64_openblas.conda + hash: + md5: b3804f4af39eca9d77360b12811e6d1d + sha256: 9a553af92af9f241457f4d14eabb872bc341cd0ddea1da6e7939e9c6a7ee1a25 + build: 21_osxarm64_openblas + arch: aarch64 + subdir: osx-arm64 + build_number: 21 + constrains: + - libcblas 3.9.0 21_osxarm64_openblas + - liblapack 3.9.0 21_osxarm64_openblas + - blas * openblas + - liblapacke 3.9.0 21_osxarm64_openblas + license: BSD-3-Clause + license_family: BSD + size: 14915 + timestamp: 1705980172730 +- platform: osx-arm64 + name: libcblas + version: 3.9.0 + category: main + manager: conda + dependencies: + - libblas 3.9.0 21_osxarm64_openblas + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-21_osxarm64_openblas.conda + hash: + md5: 48e9d42c65ce664d8fccef2ac6af853c + sha256: 4510e3e4824693c3f80fc54e72d81dd89acaa6e6d68cd948af0870a640ea7eeb + build: 21_osxarm64_openblas + arch: aarch64 + subdir: osx-arm64 + build_number: 21 + constrains: + - liblapack 3.9.0 21_osxarm64_openblas + - blas * openblas + - liblapacke 3.9.0 21_osxarm64_openblas + license: BSD-3-Clause + license_family: BSD + size: 14800 + timestamp: 1705980195551 +- platform: osx-arm64 + name: libcxx + version: 16.0.6 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-16.0.6-h4653b0c_0.conda + hash: + md5: 9d7d724faf0413bf1dbc5a85935700c8 + sha256: 11d3fb51c14832d9e4f6d84080a375dec21ea8a3a381a1910e67ff9cedc20355 + build: h4653b0c_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 1160232 + timestamp: 1686896993785 +- platform: osx-arm64 + name: libexpat + version: 2.5.0 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.5.0-hb7217d7_1.conda + hash: + md5: 5a097ad3d17e42c148c9566280481317 + sha256: 7d143a9c991579ad4207f84c632650a571c66329090daa32b3c87cf7311c3381 + build: hb7217d7_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + constrains: + - expat 2.5.0.* + license: MIT + license_family: MIT + size: 63442 + timestamp: 1680190916539 +- platform: osx-arm64 + name: libffi + version: 3.4.2 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + hash: + md5: 086914b672be056eb70fd4285b6783b6 + sha256: 41b3d13efb775e340e4dba549ab5c029611ea6918703096b2eaa9c015c0750ca + build: h3422bc3_5 + arch: aarch64 + subdir: osx-arm64 + build_number: 5 + license: MIT + license_family: MIT + size: 39020 + timestamp: 1636488587153 +- platform: osx-arm64 + name: libgfortran + version: 5.0.0 + category: main + manager: conda + dependencies: + - libgfortran5 13.2.0 hf226fd6_2 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_2.conda + hash: + md5: 50c44da4cd89e99a5b18382f565585d8 + sha256: 8af9f94c34150567f2993392c7c1036c99b6844625aea0338535293e4d7b5d23 + build: 13_2_0_hd922786_2 + arch: aarch64 + subdir: osx-arm64 + build_number: 2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 110207 + timestamp: 1705769417313 +- platform: osx-arm64 + name: libgfortran5 + version: 13.2.0 + category: main + manager: conda + dependencies: + - llvm-openmp >=8.0.0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_2.conda + hash: + md5: 55c6859a3606c1516d89768a05ce9074 + sha256: 0b7e069f0227402deef36d04a2695411b0302ef99fe6bf8a9488e472d2e217c1 + build: hf226fd6_2 + arch: aarch64 + subdir: osx-arm64 + build_number: 2 + constrains: + - libgfortran 5.0.0 13_2_0_*_2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 997116 + timestamp: 1705769362034 +- platform: osx-arm64 + name: liblapack + version: 3.9.0 + category: main + manager: conda + dependencies: + - libblas 3.9.0 21_osxarm64_openblas + url: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-21_osxarm64_openblas.conda + hash: + md5: a4510e3913ef552d69ab2080a0048523 + sha256: a917e99f26d205df1ec22d7a9fff0d2f2f3c7ba06ea2be886dc220a8340d5917 + build: 21_osxarm64_openblas + arch: aarch64 + subdir: osx-arm64 + build_number: 21 + constrains: + - libcblas 3.9.0 21_osxarm64_openblas + - blas * openblas + - liblapacke 3.9.0 21_osxarm64_openblas + license: BSD-3-Clause + license_family: BSD + size: 14829 + timestamp: 1705980215575 +- platform: osx-arm64 + name: libopenblas + version: 0.3.26 + category: main + manager: conda + dependencies: + - libgfortran 5.* + - libgfortran5 >=12.3.0 + - llvm-openmp >=16.0.6 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.26-openmp_h6c19121_0.conda + hash: + md5: 000970261d954431ccca3cce68d873d8 + sha256: 2a59b92c412fd0f59a8079dfa21c561ae17e72e72e47d4d7aee474bf6fd642e1 + build: openmp_h6c19121_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + constrains: + - openblas >=0.3.26,<0.3.27.0a0 + license: BSD-3-Clause + license_family: BSD + size: 2917606 + timestamp: 1704950245195 +- platform: osx-arm64 + name: libsodium + version: 1.0.18 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.18-h27ca646_1.tar.bz2 + hash: + md5: 90859688dbca4735b74c02af14c4c793 + sha256: 1d95fe5e5e6a0700669aab454b2a32f97289c9ed8d1f7667c2ba98327a6f05bc + build: h27ca646_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + license: ISC + size: 324912 + timestamp: 1605135878892 +- platform: osx-arm64 + name: libsqlite + version: 3.44.2 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.44.2-h091b4b1_0.conda + hash: + md5: d7e1af696cfadec251a0abdd7b79ed77 + sha256: f0dc2fe69eddb4bab72ff6bb0da51d689294f466ee1b01e80ced1e7878a21aa5 + build: h091b4b1_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Unlicense + size: 815254 + timestamp: 1700863572318 +- platform: osx-arm64 + name: libzlib + version: 1.2.13 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.2.13-h53f4e23_5.conda + hash: + md5: 1a47f5236db2e06a320ffa0392f81bd8 + sha256: ab1c8aefa2d54322a63aaeeefe9cf877411851738616c4068e0dccc66b9c758a + build: h53f4e23_5 + arch: aarch64 + subdir: osx-arm64 + build_number: 5 + constrains: + - zlib 1.2.13 *_5 + license: Zlib + license_family: Other + size: 48102 + timestamp: 1686575426584 +- platform: osx-arm64 + name: llvm-openmp + version: 17.0.6 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-17.0.6-hcd81f8e_0.conda + hash: + md5: 52019d2fa0eddbbc4e6dcd30fae0c0a4 + sha256: 0c217326c5931c1416b82f98169b8a8a52139f6f5f299dbb2efa7b21f65f225a + build: hcd81f8e_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + constrains: + - openmp 17.0.6|17.0.6.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + size: 274631 + timestamp: 1701222947083 +- platform: osx-arm64 + name: markupsafe + version: 2.1.4 + category: main + manager: conda + dependencies: + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-2.1.4-py312he37b823_0.conda + hash: + md5: dda1bbe19ffae341fe8bebd9e292f1a8 + sha256: 8756fa7a972d51ebd99f364949bc3b4f2e1e72a4f17ba726bdc96c9414b22659 + build: py312he37b823_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + constrains: + - jinja2 >=3.0.0 + license: BSD-3-Clause + license_family: BSD + size: 26228 + timestamp: 1705779300913 + purls: + - pkg:pypi/markupsafe +- platform: osx-arm64 + name: matplotlib-inline + version: 0.1.6 + category: main + manager: conda + dependencies: + - python >=3.6 + - traitlets + url: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b21613793fcc81d944c76c9f2864a7de + sha256: aa091b88aec55bfa2d9207028d8cdc689b9efb090ae27b99557e93c675be2f3c + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 12273 + timestamp: 1660814913405 + purls: + - pkg:pypi/matplotlib-inline +- platform: osx-arm64 + name: maturin + version: 1.4.0 + category: main + manager: conda + dependencies: + - openssl >=3.2.0,<4.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - tomli >=1.1.0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/maturin-1.4.0-py312h99f8e83_0.conda + hash: + md5: 9e820d047dba9ccd98034a4543db3254 + sha256: 6e34542e1cc6748835c0197678a5877f7f982c65dc03ac5560f22d746eb64c20 + build: py312h99f8e83_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + size: 4752542 + timestamp: 1701548180659 +- platform: osx-arm64 + name: mistune + version: 3.0.2 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/mistune-3.0.2-pyhd8ed1ab_0.conda + hash: + md5: 5cbee699846772cc939bef23a0d524ed + sha256: f95cb70007e3cc2ba44e17c29a056b499e6dadf08746706d0c817c8e2f47e05c + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 66022 + timestamp: 1698947249750 + purls: + - pkg:pypi/mistune +- platform: osx-arm64 + name: nbclient + version: 0.8.0 + category: main + manager: conda + dependencies: + - jupyter_client >=6.1.12 + - jupyter_core >=4.12,!=5.0.* + - nbformat >=5.1 + - python >=3.8 + - traitlets >=5.4 + url: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.8.0-pyhd8ed1ab_0.conda + hash: + md5: e78da91cf428faaf05701ce8cc8f2f9b + sha256: 4ebd237cdf4bfa5226f92d2ae78fab8dba27696909391884dc6594ca6f9df5ff + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 64852 + timestamp: 1684791049212 + purls: + - pkg:pypi/nbclient +- platform: osx-arm64 + name: nbconvert-core + version: 7.14.2 + category: main + manager: conda + dependencies: + - beautifulsoup4 + - bleach + - defusedxml + - entrypoints >=0.2.2 + - jinja2 >=3.0 + - jupyter_core >=4.7 + - jupyterlab_pygments + - markupsafe >=2.0 + - mistune >=2.0.3,<4 + - nbclient >=0.5.0 + - nbformat >=5.1 + - packaging + - pandocfilters >=1.4.1 + - pygments >=2.4.1 + - python >=3.8 + - tinycss2 + - traitlets >=5.0 + url: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.14.2-pyhd8ed1ab_0.conda + hash: + md5: 631800aa8cc7ccf61e70087355d95827 + sha256: ba3e9a42ea03411d77ac28f14ce9bc6f70710ce1a8f4a970322b2daa91e47ce5 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + constrains: + - pandoc >=2.14.2,<4.0.0 + - nbconvert =7.14.2=*_0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 187942 + timestamp: 1705418659841 +- platform: osx-arm64 + name: nbformat + version: 5.9.2 + category: main + manager: conda + dependencies: + - jsonschema >=2.6 + - jupyter_core + - python >=3.8 + - python-fastjsonschema + - traitlets >=5.1 + url: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.9.2-pyhd8ed1ab_0.conda + hash: + md5: 61ba076de6530d9301a0053b02f093d2 + sha256: fc82c5a9116820757b03ffb836b36f0f50e4cd390018024dbadb0ee0217f6992 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 100446 + timestamp: 1690815009867 + purls: + - pkg:pypi/nbformat +- platform: osx-arm64 + name: ncurses + version: '6.4' + category: main + manager: conda + dependencies: + - __osx >=10.9 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.4-h463b476_2.conda + hash: + md5: 52b6f254a7b9663e854f44b6570ed982 + sha256: f6890634f815e8408d08f36503353f8dfd7b055e4c3b9ea2ee52180255cf4b0a + build: h463b476_2 + arch: aarch64 + subdir: osx-arm64 + build_number: 2 + license: X11 AND BSD-3-Clause + size: 794741 + timestamp: 1698751574074 +- platform: osx-arm64 + name: nest-asyncio + version: 1.6.0 + category: main + manager: conda + dependencies: + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_0.conda + hash: + md5: 6598c056f64dc8800d40add25e4e2c34 + sha256: 30db21d1f7e59b3408b831a7e0417b83b53ee6223afae56482c5f26da3ceb49a + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 11638 + timestamp: 1705850780510 + purls: + - pkg:pypi/nest-asyncio +- platform: osx-arm64 + name: notebook-shim + version: 0.2.3 + category: main + manager: conda + dependencies: + - jupyter_server >=1.8,<3 + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.3-pyhd8ed1ab_0.conda + hash: + md5: 67e0fe74c156267d9159e9133df7fd37 + sha256: f028d7ad1f2175cde307db08b60d07e371b9d6f035cfae6c81ea94b4c408c538 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 16783 + timestamp: 1682360712235 + purls: + - pkg:pypi/notebook-shim +- platform: osx-arm64 + name: numpy + version: 1.26.3 + category: main + manager: conda + dependencies: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=15 + - liblapack >=3.9.0,<4.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.3-py312h8442bc7_0.conda + hash: + md5: bb3fc436e78e8bc43af8c672079749ea + sha256: bdd17ab28470b805dcef9d2298266e802107052781fbb1050e2fec2860c69abf + build: py312h8442bc7_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 6104818 + timestamp: 1704281458036 + purls: + - pkg:pypi/numpy +- platform: osx-arm64 + name: openssl + version: 3.2.0 + category: main + manager: conda + dependencies: + - ca-certificates + url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.2.0-h0d3ecfb_1.conda + hash: + md5: 47d16d26100f19ca495882882b7bc93b + sha256: a53e1c6c058b621fd1d13cca6f9cccd534d2b3f4b4ac789fe26f7902031d6c41 + build: h0d3ecfb_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + constrains: + - pyopenssl >=22.1 + license: Apache-2.0 + license_family: Apache + size: 2856233 + timestamp: 1701162541844 +- platform: osx-arm64 + name: overrides + version: 7.7.0 + category: main + manager: conda + dependencies: + - python >=3.6 + - typing_utils + url: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_0.conda + hash: + md5: 24fba5a9d161ad8103d4e84c0e1a3ed4 + sha256: 5e238e5e646414d517a13f6786c7227206ace58271e3ef63f6adca4d6a4c2839 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 30232 + timestamp: 1706394723472 +- platform: osx-arm64 + name: packaging + version: '23.2' + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/packaging-23.2-pyhd8ed1ab_0.conda + hash: + md5: 79002079284aa895f883c6b7f3f88fd6 + sha256: 69b3ace6cca2dab9047b2c24926077d81d236bef45329d264b394001e3c3e52f + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 49452 + timestamp: 1696202521121 + purls: + - pkg:pypi/packaging +- platform: osx-arm64 + name: pandas + version: 2.2.0 + category: main + manager: conda + dependencies: + - libcxx >=15 + - numpy >=1.26.3,<2.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python-dateutil >=2.8.1 + - python-tzdata >=2022a + - python_abi 3.12.* *_cp312 + - pytz >=2020.1 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.0-py312h88edd18_0.conda + hash: + md5: 118b50e4e7c92c1554cdd5b14816a122 + sha256: 96718cc34d54c72c380c75387ecf5ef8838f56acc9fa6fac882a914afb073a6f + build: py312h88edd18_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 14480741 + timestamp: 1705729364215 +- platform: osx-arm64 + name: pandocfilters + version: 1.5.0 + category: main + manager: conda + dependencies: + - python !=3.0,!=3.1,!=3.2,!=3.3 + url: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 457c2c8c08e54905d6954e79cb5b5db9 + sha256: 2bb9ba9857f4774b85900c2562f7e711d08dd48e2add9bee4e1612fbee27e16f + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 11627 + timestamp: 1631603397334 + purls: + - pkg:pypi/pandocfilters +- platform: osx-arm64 + name: parso + version: 0.8.3 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 17a565a0c3899244e938cdf417e7b094 + sha256: 4e26d5daf5de0e31aa5e74ac56386a361b202433b83f024fdadbf07d4a244da4 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 71048 + timestamp: 1638335054552 + purls: + - pkg:pypi/parso +- platform: osx-arm64 + name: pexpect + version: 4.9.0 + category: main + manager: conda + dependencies: + - ptyprocess >=0.5 + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + hash: + md5: 629f3203c99b32e0988910c93e77f3b6 + sha256: 90a09d134a4a43911b716d4d6eb9d169238aff2349056f7323d9db613812667e + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: ISC + noarch: python + size: 53600 + timestamp: 1706113273252 + purls: + - pkg:pypi/pexpect +- platform: osx-arm64 + name: pickleshare + version: 0.7.5 + category: main + manager: conda + dependencies: + - python >=3 + url: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 + hash: + md5: 415f0ebb6198cc2801c73438a9fb5761 + sha256: a1ed1a094dd0d1b94a09ed85c283a0eb28943f2e6f22161fb45e128d35229738 + build: py_1003 + arch: aarch64 + subdir: osx-arm64 + build_number: 1003 + license: MIT + license_family: MIT + noarch: python + size: 9332 + timestamp: 1602536313357 + purls: + - pkg:pypi/pickleshare +- platform: osx-arm64 + name: pip + version: 23.3.2 + category: main + manager: conda + dependencies: + - python >=3.7 + - setuptools + - wheel + url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.2-pyhd8ed1ab_0.conda + hash: + md5: 8591c748f98dcc02253003533bc2e4b1 + sha256: 29096d1d53c61aeef518729add2f405df86b3629d1d738a35b15095e6a02eeed + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 1395000 + timestamp: 1702822023465 + purls: + - pkg:pypi/pip +- platform: osx-arm64 + name: pkgutil-resolve-name + version: 1.3.10 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda + hash: + md5: 405678b942f2481cecdb3e010f4925d9 + sha256: fecf95377134b0e8944762d92ecf7b0149c07d8186fb5db583125a2705c7ea0a + build: pyhd8ed1ab_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + license: MIT AND PSF-2.0 + noarch: python + size: 10778 + timestamp: 1694617398467 + purls: + - pkg:pypi/pkgutil-resolve-name +- platform: osx-arm64 + name: platformdirs + version: 4.1.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.1.0-pyhd8ed1ab_0.conda + hash: + md5: 45a5065664da0d1dfa8f8cd2eaf05ab9 + sha256: 9e4ff17ce802159ed31344eb913eaa877688226765b77947b102b42255a53853 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 20058 + timestamp: 1701708396900 + purls: + - pkg:pypi/platformdirs +- platform: osx-arm64 + name: prometheus_client + version: 0.19.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.19.0-pyhd8ed1ab_0.conda + hash: + md5: 7baa10fa8073c371155cf451b71b848d + sha256: 1235a3dbb033f914163e0deaf22d244cb1c1b5d8829d0089e38c34079286acbe + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + noarch: python + size: 48463 + timestamp: 1700579462182 + purls: + - pkg:pypi/prometheus-client +- platform: osx-arm64 + name: prompt-toolkit + version: 3.0.42 + category: main + manager: conda + dependencies: + - python >=3.7 + - wcwidth + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.42-pyha770c72_0.conda + hash: + md5: 0bf64bf10eee21f46ac83c161917fa86 + sha256: 58525b2a9305fb154b2b0d43a48b9a6495441b80e4fbea44f2a34a597d2cef16 + build: pyha770c72_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + constrains: + - prompt_toolkit 3.0.42 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 270398 + timestamp: 1702399557137 +- platform: osx-arm64 + name: psutil + version: 5.9.8 + category: main + manager: conda + dependencies: + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-5.9.8-py312he37b823_0.conda + hash: + md5: cd6e99b9c5a623735161973b5f693a86 + sha256: a996bd5f878da264d1d3ba7fde717b0a2c158a86645efb1e899d087cca74832d + build: py312he37b823_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 499490 + timestamp: 1705722767772 + purls: + - pkg:pypi/psutil +- platform: osx-arm64 + name: ptyprocess + version: 0.7.0 + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + hash: + md5: 359eeb6536da0e687af562ed265ec263 + sha256: fb31e006a25eb2e18f3440eb8d17be44c8ccfae559499199f73584566d0a444a + build: pyhd3deb0d_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: ISC + noarch: python + size: 16546 + timestamp: 1609419417991 + purls: + - pkg:pypi/ptyprocess +- platform: osx-arm64 + name: pure_eval + version: 0.2.2 + category: main + manager: conda + dependencies: + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 6784285c7e55cb7212efabc79e4c2883 + sha256: 72792f9fc2b1820e37cc57f84a27bc819c71088c3002ca6db05a2e56404f9d44 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 14551 + timestamp: 1642876055775 + purls: + - pkg:pypi/pure-eval +- platform: osx-arm64 + name: pycparser + version: '2.21' + category: main + manager: conda + dependencies: + - python ==2.7.*|>=3.4 + url: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 076becd9e05608f8dc72757d5f3a91ff + sha256: 74c63fd03f1f1ea2b54e8bc529fd1a600aaafb24027b738d0db87909ee3a33dc + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 102747 + timestamp: 1636257201998 + purls: + - pkg:pypi/pycparser +- platform: osx-arm64 + name: pygments + version: 2.17.2 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.17.2-pyhd8ed1ab_0.conda + hash: + md5: 140a7f159396547e9799aa98f9f0742e + sha256: af5f8867450dc292f98ea387d4d8945fc574284677c8f60eaa9846ede7387257 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 860425 + timestamp: 1700608076927 + purls: + - pkg:pypi/pygments +- platform: osx-arm64 + name: pyobjc-core + version: '10.1' + category: main + manager: conda + dependencies: + - libffi >=3.4,<4.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - setuptools + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-core-10.1-py312h9d22092_0.conda + hash: + md5: dfdb0f8a37baf06a8dec8dd270c23753 + sha256: 06a95d717dfb01a7179e2008d77ada2c58c5c900dc1d36f95068ccd170f49a89 + build: py312h9d22092_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + size: 456233 + timestamp: 1702120202721 +- platform: osx-arm64 + name: pyobjc-framework-cocoa + version: '10.1' + category: main + manager: conda + dependencies: + - libffi >=3.4,<4.0a0 + - pyobjc-core 10.1.* + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-framework-cocoa-10.1-py312h9d22092_0.conda + hash: + md5: 27dc04bb8bb427ee52facd69f7a6cabb + sha256: a6a4e8b5bd67d054c0c731cf86795d8040a9cc1c6a92d5116115e4cf4e59beec + build: py312h9d22092_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + size: 371148 + timestamp: 1702125850698 +- platform: osx-arm64 + name: pysocks + version: 1.7.1 + category: main + manager: conda + dependencies: + - __unix + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 + hash: + md5: 2a7de29fb590ca14b5243c4c812c8025 + sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b + build: pyha2e5f31_6 + arch: aarch64 + subdir: osx-arm64 + build_number: 6 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 18981 + timestamp: 1661604969727 + purls: + - pkg:pypi/pysocks +- platform: osx-arm64 + name: python + version: 3.12.1 + category: main + manager: conda + dependencies: + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.5.0,<3.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.44.2,<4.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ncurses >=6.4,<7.0a0 + - openssl >=3.2.0,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.1-hdf0ec26_1_cpython.conda + hash: + md5: 7b5d48e25f131864762bfef1914d2014 + sha256: c9bdc2478a983da8c1b965727889fe58e2ea594c6f280a73c822beab1926d40d + build: hdf0ec26_1_cpython + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + size: 13089201 + timestamp: 1703318862740 +- platform: osx-arm64 + name: python-dateutil + version: 2.8.2 + category: main + manager: conda + dependencies: + - python >=3.6 + - six >=1.5 + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: dd999d1cc9f79e67dbb855c8924c7984 + sha256: 54d7785c7678166aa45adeaccfc1d2b8c3c799ca2dc05d4a82bb39b1968bd7da + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 245987 + timestamp: 1626286448716 + purls: + - pkg:pypi/python-dateutil +- platform: osx-arm64 + name: python-fastjsonschema + version: 2.19.1 + category: main + manager: conda + dependencies: + - python >=3.3 + url: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.19.1-pyhd8ed1ab_0.conda + hash: + md5: 4d3ceee3af4b0f9a1f48f57176bf8625 + sha256: 38b2db169d65cc5595e3ce63294c4fdb6a242ecf71f70b3ad8cad3bd4230d82f + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 225250 + timestamp: 1703781171097 + purls: + - pkg:pypi/fastjsonschema +- platform: osx-arm64 + name: python-json-logger + version: 2.0.7 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda + hash: + md5: a61bf9ec79426938ff785eb69dbb1960 + sha256: 4790787fe1f4e8da616edca4acf6a4f8ed4e7c6967aa31b920208fc8f95efcca + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 13383 + timestamp: 1677079727691 + purls: + - pkg:pypi/python-json-logger +- platform: osx-arm64 + name: python-tzdata + version: '2023.4' + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.4-pyhd8ed1ab_0.conda + hash: + md5: c79cacf8a06a51552fc651652f170208 + sha256: d2381037bf362c78654a8ece0e0f54715e09113448ddd7ed837f688536cbf176 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 146007 + timestamp: 1703878849208 + purls: + - pkg:pypi/tzdata +- platform: osx-arm64 + name: python_abi + version: '3.12' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-4_cp312.conda + hash: + md5: bbb3a02c78b2d8219d7213f76d644a2a + sha256: db25428e4f24f8693ffa39f3ff6dfbb8fd53bc298764b775b57edab1c697560f + build: 4_cp312 + arch: aarch64 + subdir: osx-arm64 + build_number: 4 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6508 + timestamp: 1695147497048 +- platform: osx-arm64 + name: pytz + version: 2023.3.post1 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.conda + hash: + md5: c93346b446cd08c169d843ae5fc0da97 + sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 187454 + timestamp: 1693930444432 + purls: + - pkg:pypi/pytz +- platform: osx-arm64 + name: pyyaml + version: 6.0.1 + category: main + manager: conda + dependencies: + - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12.0rc3,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - yaml >=0.2.5,<0.3.0a0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py312h02f2b3b_1.conda + hash: + md5: a0c843e52a1c4422d8657dd76e9eb994 + sha256: b6b4027b89c17b9bbd8089aec3e44bc29f802a7d5668d5a75b5358d7ed9705ca + build: py312h02f2b3b_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + license: MIT + license_family: MIT + size: 182705 + timestamp: 1695373895409 +- platform: osx-arm64 + name: pyzmq + version: 25.1.2 + category: main + manager: conda + dependencies: + - __osx >=10.9 + - libcxx >=16.0.6 + - libsodium >=1.0.18,<1.0.19.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - zeromq >=4.3.5,<4.4.0a0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-25.1.2-py312h1edf716_0.conda + hash: + md5: 913db29987f836f5d80fa319e36b0a33 + sha256: a89712c6b0cab1e3385e44e0130a57b9d03df99b6f540486c0f00e2dae079e77 + build: py312h1edf716_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause AND LGPL-3.0-or-later + size: 495070 + timestamp: 1701783687130 + purls: + - pkg:pypi/pyzmq +- platform: osx-arm64 + name: readline + version: '8.2' + category: main + manager: conda + dependencies: + - ncurses >=6.3,<7.0a0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + hash: + md5: 8cbb776a2f641b943d413b3e19df71f4 + sha256: a1dfa679ac3f6007362386576a704ad2d0d7a02e98f5d0b115f207a2da63e884 + build: h92ec313_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + license: GPL-3.0-only + license_family: GPL + size: 250351 + timestamp: 1679532511311 +- platform: osx-arm64 + name: referencing + version: 0.32.1 + category: main + manager: conda + dependencies: + - attrs >=22.2.0 + - python >=3.8 + - rpds-py >=0.7.0 + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.32.1-pyhd8ed1ab_0.conda + hash: + md5: 753a592b4e99d7d2cde6a8fd0797f414 + sha256: 658beff40c6355af0eeec624bbe4e892b4c68c0af2d8ff4c06677e6547140506 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 39009 + timestamp: 1704489374195 + purls: + - pkg:pypi/referencing +- platform: osx-arm64 + name: requests + version: 2.31.0 + category: main + manager: conda + dependencies: + - certifi >=2017.4.17 + - charset-normalizer >=2,<4 + - idna >=2.5,<4 + - python >=3.7 + - urllib3 >=1.21.1,<3 + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.31.0-pyhd8ed1ab_0.conda + hash: + md5: a30144e4156cdbb236f99ebb49828f8b + sha256: 9f629d6fd3c8ac5f2a198639fe7af87c4db2ac9235279164bfe0fcb49d8c4bad + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + constrains: + - chardet >=3.0.2,<6 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 56690 + timestamp: 1684774408600 + purls: + - pkg:pypi/requests +- platform: osx-arm64 + name: rfc3339-validator + version: 0.1.4 + category: main + manager: conda + dependencies: + - python >=3.5 + - six + url: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_0.tar.bz2 + hash: + md5: fed45fc5ea0813240707998abe49f520 + sha256: 7c7052b51de0b5c558f890bb11f8b5edbb9934a653d76be086b1182b9f54185d + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 8064 + timestamp: 1638811838081 + purls: + - pkg:pypi/rfc3339-validator +- platform: osx-arm64 + name: rfc3986-validator + version: 0.1.1 + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 912a71cc01012ee38e6b90ddd561e36f + sha256: 2a5b495a1de0f60f24d8a74578ebc23b24aa53279b1ad583755f223097c41c37 + build: pyh9f0ad1d_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 7818 + timestamp: 1598024297745 + purls: + - pkg:pypi/rfc3986-validator +- platform: osx-arm64 + name: rpds-py + version: 0.17.1 + category: main + manager: conda + dependencies: + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.17.1-py312h5280bc4_0.conda + hash: + md5: 7b0b4879880d11be49c5edfdae68bc39 + sha256: 1e6a413e4ed984cf9d62c4eb1b921ceb6efc3f8470dbfa2f5a23790724b8ff0d + build: py312h5280bc4_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + size: 310844 + timestamp: 1705160382759 + purls: + - pkg:pypi/rpds-py +- platform: osx-arm64 + name: send2trash + version: 1.8.2 + category: main + manager: conda + dependencies: + - __osx + - pyobjc-framework-cocoa + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.2-pyhd1c38e8_0.conda + hash: + md5: 2657c3de5371c571aef6678afb4aaadd + sha256: dca4022bae47618ed738ab7d45ead5202d174b741cfb98e4484acdc6e76da32a + build: pyhd1c38e8_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 23021 + timestamp: 1682601619389 + purls: + - pkg:pypi/send2trash +- platform: osx-arm64 + name: setuptools + version: 69.0.3 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.0.3-pyhd8ed1ab_0.conda + hash: + md5: 40695fdfd15a92121ed2922900d0308b + sha256: 0fe2a0473ad03dac6c7f5c42ef36a8e90673c88a0350dfefdea4b08d43803db2 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 470548 + timestamp: 1704224855187 + purls: + - pkg:pypi/setuptools +- platform: osx-arm64 + name: six + version: 1.16.0 + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + hash: + md5: e5f25f8dbc060e9a8d912e432202afc2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + build: pyh6c4a22f_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 14259 + timestamp: 1620240338595 + purls: + - pkg:pypi/six +- platform: osx-arm64 + name: sniffio + version: 1.3.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: dd6cbc539e74cb1f430efbd4575b9303 + sha256: a3fd30754c20ddb28b777db38345ea00d958f46701f0decd6291a81c0f4eee78 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + noarch: python + size: 14358 + timestamp: 1662051357638 + purls: + - pkg:pypi/sniffio +- platform: osx-arm64 + name: soupsieve + version: '2.5' + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.5-pyhd8ed1ab_1.conda + hash: + md5: 3f144b2c34f8cb5a9abd9ed23a39c561 + sha256: 54ae221033db8fbcd4998ccb07f3c3828b4d77e73b0c72b18c1d6a507059059c + build: pyhd8ed1ab_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + license: MIT + license_family: MIT + noarch: python + size: 36754 + timestamp: 1693929424267 + purls: + - pkg:pypi/soupsieve +- platform: osx-arm64 + name: stack_data + version: 0.6.2 + category: main + manager: conda + dependencies: + - asttokens + - executing + - pure_eval + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda + hash: + md5: e7df0fdd404616638df5ece6e69ba7af + sha256: a58433e75229bec39f3be50c02efbe9b7083e53a1f31d8ee247564f370191eec + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 26205 + timestamp: 1669632203115 + purls: + - pkg:pypi/stack-data +- platform: osx-arm64 + name: terminado + version: 0.18.0 + category: main + manager: conda + dependencies: + - __osx + - ptyprocess + - python >=3.8 + - tornado >=6.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.0-pyh31c8845_0.conda + hash: + md5: 14759b57f5b9d97033e633fff0a2d27e + sha256: 8e8741c688ade9be8f86c0b209780c7fbe4a97e4265311ca9d8dda5fcedc6a28 + build: pyh31c8845_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 22631 + timestamp: 1699810378589 + purls: + - pkg:pypi/terminado +- platform: osx-arm64 + name: tinycss2 + version: 1.2.1 + category: main + manager: conda + dependencies: + - python >=3.5 + - webencodings >=0.4 + url: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.2.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 7234c9eefff659501cd2fe0d2ede4d48 + sha256: f0db1a2298a5e10e30f4b947566c7229442834702f549dded40a73ecdea7502d + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 23235 + timestamp: 1666100385187 + purls: + - pkg:pypi/tinycss2 +- platform: osx-arm64 + name: tk + version: 8.6.13 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + hash: + md5: b50a57ba89c32b62428b71a875291c9b + sha256: 72457ad031b4c048e5891f3f6cb27a53cb479db68a52d965f796910e71a403a8 + build: h5083fa2_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + license: TCL + license_family: BSD + size: 3145523 + timestamp: 1699202432999 +- platform: osx-arm64 + name: tomli + version: 2.0.1 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 5844808ffab9ebdb694585b50ba02a96 + sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 15940 + timestamp: 1644342331069 + purls: + - pkg:pypi/tomli +- platform: osx-arm64 + name: toolz + version: 0.12.1 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.1-pyhd8ed1ab_0.conda + hash: + md5: 2fcb582444635e2c402e8569bb94e039 + sha256: 22b0a9790317526e08609d5dfdd828210ae89e6d444a9e954855fc29012e90c6 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 52358 + timestamp: 1706112720607 +- platform: osx-arm64 + name: tornado + version: 6.3.3 + category: main + manager: conda + dependencies: + - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12.0rc3,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.3.3-py312h02f2b3b_1.conda + hash: + md5: 3ec18cacdeb6f7a87fee073b28bc7118 + sha256: f59281be797e9cfa2f1cfd5bff89a8268823e98fe49aaa6bede9a91b27e887ab + build: py312h02f2b3b_1 + arch: aarch64 + subdir: osx-arm64 + build_number: 1 + license: Apache-2.0 + license_family: Apache + size: 826881 + timestamp: 1695374110756 + purls: + - pkg:pypi/tornado +- platform: osx-arm64 + name: traitlets + version: 5.14.1 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.1-pyhd8ed1ab_0.conda + hash: + md5: 1c6acfdc7ecbfe09954c4216da99c146 + sha256: fa78d68f74ec8aae5c93f135140bfdbbf0ab60a79c6062b55d73c316068545ec + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 110329 + timestamp: 1704213177224 + purls: + - pkg:pypi/traitlets +- platform: osx-arm64 + name: types-python-dateutil + version: 2.8.19.20240106 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/types-python-dateutil-2.8.19.20240106-pyhd8ed1ab_0.conda + hash: + md5: c9096a546660b9079dce531c0039e074 + sha256: 09ef8cc587bdea80a83b6f820dbae24daadcf82be088fb0a9f6495781653e300 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 AND MIT + noarch: python + size: 21896 + timestamp: 1704512704737 +- platform: osx-arm64 + name: typing-extensions + version: 4.9.0 + category: main + manager: conda + dependencies: + - typing_extensions 4.9.0 pyha770c72_0 + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.9.0-hd8ed1ab_0.conda + hash: + md5: c16524c1b7227dc80b36b4fa6f77cc86 + sha256: d795c1eb1db4ea147f01ece74e5a504d7c2e8d5ee8c11ec987884967dd938f9c + build: hd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + noarch: python + size: 10191 + timestamp: 1702176301116 +- platform: osx-arm64 + name: typing_extensions + version: 4.9.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.9.0-pyha770c72_0.conda + hash: + md5: a92a6440c3fe7052d63244f3aba2a4a7 + sha256: f3c5be8673bfd905c4665efcb27fa50192f24f84fa8eff2f19cba5d09753d905 + build: pyha770c72_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + noarch: python + size: 36058 + timestamp: 1702176292645 + purls: + - pkg:pypi/typing-extensions +- platform: osx-arm64 + name: typing_utils + version: 0.1.0 + category: main + manager: conda + dependencies: + - python >=3.6.1 + url: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_0.tar.bz2 + hash: + md5: eb67e3cace64c66233e2d35949e20f92 + sha256: 9e3758b620397f56fb709f796969de436d63b7117897159619b87938e1f78739 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 13829 + timestamp: 1622899345711 + purls: + - pkg:pypi/typing-utils +- platform: osx-arm64 + name: tzdata + version: 2023d + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023d-h0c530f3_0.conda + hash: + md5: 8dee24b8be2d9ff81e7bd4d7d97ff1b0 + sha256: 04f2ab3e36f2015841551415bf16bf62933bd94b7085d4be5493b388e95a9c3d + build: h0c530f3_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: LicenseRef-Public-Domain + noarch: generic + size: 119639 + timestamp: 1703250910370 +- platform: osx-arm64 + name: uri-template + version: 1.3.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_0.conda + hash: + md5: 0944dc65cb4a9b5b68522c3bb585d41c + sha256: b76904b53721dc88a46352324c79d2b077c2f74a9f7208ad2c4249892669ae94 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 23999 + timestamp: 1688655976471 +- platform: osx-arm64 + name: urllib3 + version: 2.1.0 + category: main + manager: conda + dependencies: + - brotli-python >=1.0.9 + - pysocks >=1.5.6,<2.0,!=1.5.7 + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.1.0-pyhd8ed1ab_0.conda + hash: + md5: f8ced8ee63830dec7ecc1be048d1470a + sha256: eff5029820b4eaeab3a291a39854a6cd8fc8c4216264087f68c2d8d59822c869 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 85324 + timestamp: 1699933655057 + purls: + - pkg:pypi/urllib3 +- platform: osx-arm64 + name: vega_datasets + version: 0.9.0 + category: main + manager: conda + dependencies: + - pandas + - python + url: https://conda.anaconda.org/conda-forge/noarch/vega_datasets-0.9.0-pyhd3deb0d_0.tar.bz2 + hash: + md5: c754e69d9d5de4a69ff0972318349bd0 + sha256: 8dbed6cb5f1f861940af3bd2bc6ed05b1134878b5f944a0386b8268c54d882aa + build: pyhd3deb0d_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 183450 + timestamp: 1606414171959 + purls: + - pkg:pypi/vega-datasets +- platform: osx-arm64 + name: vl-convert-python + version: 1.2.2 + category: main + manager: conda + dependencies: + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + url: https://conda.anaconda.org/conda-forge/osx-arm64/vl-convert-python-1.2.2-py312he37b823_0.conda + hash: + md5: b45f8c02318fe9571e58173762b5db87 + sha256: 4086bad1d4ec280ce5ce8939c1db49fb21c809af25b0d32e9dca56fdf21c4d3d + build: py312he37b823_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 19238695 + timestamp: 1706028976056 + purls: + - pkg:pypi/vl-convert-python +- platform: osx-arm64 + name: wcwidth + version: 0.2.13 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda + hash: + md5: 68f0738df502a14213624b288c60c9ad + sha256: b6cd2fee7e728e620ec736d8dfee29c6c9e2adbd4e695a31f1d8f834a83e57e3 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 32709 + timestamp: 1704731373922 + purls: + - pkg:pypi/wcwidth +- platform: osx-arm64 + name: webcolors + version: '1.13' + category: main + manager: conda + dependencies: + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/webcolors-1.13-pyhd8ed1ab_0.conda + hash: + md5: 166212fe82dad8735550030488a01d03 + sha256: 6e097d5fe92849ad3af2c2a313771ad2fbf1cadd4dc4afd552303b2bf3f85211 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 18186 + timestamp: 1679900907305 + purls: + - pkg:pypi/webcolors +- platform: osx-arm64 + name: webencodings + version: 0.5.1 + category: main + manager: conda + dependencies: + - python >=2.6 + url: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_2.conda + hash: + md5: daf5160ff9cde3a468556965329085b9 + sha256: 2adf9bd5482802837bc8814cbe28d7b2a4cbd2e2c52e381329eaa283b3ed1944 + build: pyhd8ed1ab_2 + arch: aarch64 + subdir: osx-arm64 + build_number: 2 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 15600 + timestamp: 1694681458271 +- platform: osx-arm64 + name: websocket-client + version: 1.7.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.7.0-pyhd8ed1ab_0.conda + hash: + md5: 50ad31e07d706aae88b14a4ac9c73f23 + sha256: d9b537d5b7c5aa7a02a4ce4c6b755e458bd8083b67752a73c92d113ccec6c10f + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 46626 + timestamp: 1701630814576 + purls: + - pkg:pypi/websocket-client +- platform: osx-arm64 + name: wheel + version: 0.42.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.42.0-pyhd8ed1ab_0.conda + hash: + md5: 1cdea58981c5cbc17b51973bcaddcea7 + sha256: 80be0ccc815ce22f80c141013302839b0ed938a2edb50b846cf48d8a8c1cfa01 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 57553 + timestamp: 1701013309664 + purls: + - pkg:pypi/wheel +- platform: osx-arm64 + name: xz + version: 5.2.6 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + hash: + md5: 39c6b54e94014701dd157f4f576ed211 + sha256: 59d78af0c3e071021cfe82dc40134c19dab8cdf804324b62940f5c8cd71803ec + build: h57fd34a_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: LGPL-2.1 and GPL-2.0 + size: 235693 + timestamp: 1660346961024 +- platform: osx-arm64 + name: yaml + version: 0.2.5 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 + hash: + md5: 4bb3f014845110883a3c5ee811fd84b4 + sha256: 93181a04ba8cfecfdfb162fc958436d868cc37db504c58078eab4c1a3e57fbb7 + build: h3422bc3_2 + arch: aarch64 + subdir: osx-arm64 + build_number: 2 + license: MIT + license_family: MIT + size: 88016 + timestamp: 1641347076660 +- platform: osx-arm64 + name: zeromq + version: 4.3.5 + category: main + manager: conda + dependencies: + - __osx >=10.9 + - libcxx >=16.0.6 + - libsodium >=1.0.18,<1.0.19.0a0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h965bd2d_0.conda + hash: + md5: f460bbcb0ec8dc77989288fe8caa0f84 + sha256: 06abddc92d0bf83cd9faf25f26c98d7c2cc681cb50504011580b0584cf3cb1c5 + build: h965bd2d_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MPL-2.0 + license_family: MOZILLA + size: 287460 + timestamp: 1697056868401 +- platform: osx-arm64 + name: zipp + version: 3.17.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda + hash: + md5: 2e4d6bc0b14e10f895fc6791a7d9b26a + sha256: bced1423fdbf77bca0a735187d05d9b9812d2163f60ab426fc10f11f92ecbe26 + build: pyhd8ed1ab_0 + arch: aarch64 + subdir: osx-arm64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 18954 + timestamp: 1695255262261 + purls: + - pkg:pypi/zipp diff --git a/pixi.toml b/pixi.toml new file mode 100644 index 0000000..5f205e6 --- /dev/null +++ b/pixi.toml @@ -0,0 +1,18 @@ +[project] +name = "avenger" +version = "0.0.1" +description = "Add a short description here" +authors = ["Jon Mease "] +channels = ["conda-forge"] +platforms = ["osx-arm64"] + +[tasks] + +[dependencies] +python = "3.12.*" +jupyterlab = ">=4.0.11,<4.1" +maturin = ">=1.4.0,<1.5" +pip = ">=23.3.2,<23.4" +vl-convert-python = ">=1.2.2,<1.3" +altair = ">=5.2.0,<5.3" +vega_datasets = ">=0.9.0,<0.10"