plotnine 0.15.0.dev3__tar.gz → 0.15.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- plotnine-0.15.2/.github/DISCUSSION_TEMPLATE/2025-plotnine-contest.yml +103 -0
- plotnine-0.15.2/.github/utils/_repo.py +228 -0
- plotnine-0.15.2/.github/utils/please.py +84 -0
- plotnine-0.15.2/.github/workflows/documentation.yml +87 -0
- plotnine-0.15.2/.github/workflows/release.yml +106 -0
- plotnine-0.15.2/.github/workflows/testing.yml +152 -0
- plotnine-0.15.2/.github/workflows/weekly.yml +236 -0
- plotnine-0.15.2/.gitignore +89 -0
- plotnine-0.15.2/.pre-commit-config.yaml +9 -0
- plotnine-0.15.2/Makefile +126 -0
- plotnine-0.15.2/PKG-INFO +262 -0
- plotnine-0.15.2/README.md +173 -0
- plotnine-0.15.2/doc/Makefile +77 -0
- plotnine-0.15.2/doc/_quartodoc.yml +605 -0
- plotnine-0.15.2/doc/_renderer.py +124 -0
- plotnine-0.15.2/doc/changelog.qmd +1587 -0
- plotnine-0.15.2/doc/plotnine.scss +47 -0
- plotnine-0.15.2/plotnine/__init__.py +512 -0
- plotnine-0.15.2/plotnine/_mpl/layout_manager/_engine.py +87 -0
- plotnine-0.15.2/plotnine/_mpl/layout_manager/_layout_items.py +961 -0
- plotnine-0.15.2/plotnine/_mpl/layout_manager/_layout_tree.py +1076 -0
- plotnine-0.15.2/plotnine/_mpl/layout_manager/_spaces.py +1224 -0
- plotnine-0.15.2/plotnine/_mpl/patches.py +126 -0
- plotnine-0.15.2/plotnine/_mpl/text.py +194 -0
- plotnine-0.15.2/plotnine/_mpl/utils.py +146 -0
- plotnine-0.15.2/plotnine/_utils/__init__.py +1209 -0
- plotnine-0.15.2/plotnine/_utils/context.py +144 -0
- plotnine-0.15.2/plotnine/_utils/ipython.py +66 -0
- plotnine-0.15.2/plotnine/_utils/quarto.py +59 -0
- plotnine-0.15.2/plotnine/_utils/yippie.py +115 -0
- plotnine-0.15.2/plotnine/composition/__init__.py +11 -0
- plotnine-0.15.2/plotnine/composition/_beside.py +55 -0
- plotnine-0.15.2/plotnine/composition/_compose.py +471 -0
- plotnine-0.15.2/plotnine/composition/_plot_spacer.py +60 -0
- plotnine-0.15.2/plotnine/composition/_stack.py +55 -0
- plotnine-0.15.2/plotnine/coords/coord.py +250 -0
- plotnine-0.15.2/plotnine/data/__init__.py +651 -0
- plotnine-0.15.2/plotnine/data/anscombe-quartet.csv +45 -0
- plotnine-0.15.2/plotnine/doctools.py +541 -0
- plotnine-0.15.2/plotnine/facets/facet.py +623 -0
- plotnine-0.15.2/plotnine/facets/strips.py +188 -0
- plotnine-0.15.2/plotnine/geoms/annotate.py +150 -0
- plotnine-0.15.2/plotnine/geoms/annotation_logticks.py +287 -0
- plotnine-0.15.2/plotnine/geoms/annotation_stripes.py +196 -0
- plotnine-0.15.2/plotnine/geoms/geom.py +587 -0
- plotnine-0.15.2/plotnine/geoms/geom_abline.py +120 -0
- plotnine-0.15.2/plotnine/geoms/geom_area.py +42 -0
- plotnine-0.15.2/plotnine/geoms/geom_bar.py +68 -0
- plotnine-0.15.2/plotnine/geoms/geom_bin_2d.py +29 -0
- plotnine-0.15.2/plotnine/geoms/geom_blank.py +44 -0
- plotnine-0.15.2/plotnine/geoms/geom_boxplot.py +327 -0
- plotnine-0.15.2/plotnine/geoms/geom_col.py +42 -0
- plotnine-0.15.2/plotnine/geoms/geom_count.py +25 -0
- plotnine-0.15.2/plotnine/geoms/geom_crossbar.py +217 -0
- plotnine-0.15.2/plotnine/geoms/geom_density_2d.py +27 -0
- plotnine-0.15.2/plotnine/geoms/geom_dotplot.py +266 -0
- plotnine-0.15.2/plotnine/geoms/geom_errorbar.py +84 -0
- plotnine-0.15.2/plotnine/geoms/geom_errorbarh.py +84 -0
- plotnine-0.15.2/plotnine/geoms/geom_histogram.py +21 -0
- plotnine-0.15.2/plotnine/geoms/geom_hline.py +98 -0
- plotnine-0.15.2/plotnine/geoms/geom_linerange.py +62 -0
- plotnine-0.15.2/plotnine/geoms/geom_map.py +309 -0
- plotnine-0.15.2/plotnine/geoms/geom_path.py +558 -0
- plotnine-0.15.2/plotnine/geoms/geom_point.py +175 -0
- plotnine-0.15.2/plotnine/geoms/geom_pointdensity.py +25 -0
- plotnine-0.15.2/plotnine/geoms/geom_pointrange.py +101 -0
- plotnine-0.15.2/plotnine/geoms/geom_polygon.py +161 -0
- plotnine-0.15.2/plotnine/geoms/geom_qq.py +21 -0
- plotnine-0.15.2/plotnine/geoms/geom_qq_line.py +25 -0
- plotnine-0.15.2/plotnine/geoms/geom_quantile.py +37 -0
- plotnine-0.15.2/plotnine/geoms/geom_raster.py +208 -0
- plotnine-0.15.2/plotnine/geoms/geom_rect.py +145 -0
- plotnine-0.15.2/plotnine/geoms/geom_ribbon.py +198 -0
- plotnine-0.15.2/plotnine/geoms/geom_rug.py +127 -0
- plotnine-0.15.2/plotnine/geoms/geom_segment.py +104 -0
- plotnine-0.15.2/plotnine/geoms/geom_sina.py +34 -0
- plotnine-0.15.2/plotnine/geoms/geom_smooth.py +138 -0
- plotnine-0.15.2/plotnine/geoms/geom_step.py +87 -0
- plotnine-0.15.2/plotnine/geoms/geom_text.py +401 -0
- plotnine-0.15.2/plotnine/geoms/geom_violin.py +225 -0
- plotnine-0.15.2/plotnine/geoms/geom_vline.py +136 -0
- plotnine-0.15.2/plotnine/ggplot.py +805 -0
- plotnine-0.15.2/plotnine/guides/guide.py +277 -0
- plotnine-0.15.2/plotnine/guides/guide_colorbar.py +546 -0
- plotnine-0.15.2/plotnine/guides/guide_legend.py +457 -0
- plotnine-0.15.2/plotnine/guides/guides.py +492 -0
- plotnine-0.15.2/plotnine/helpers.py +49 -0
- plotnine-0.15.2/plotnine/iapi.py +387 -0
- plotnine-0.15.2/plotnine/labels.py +153 -0
- plotnine-0.15.2/plotnine/layer.py +570 -0
- plotnine-0.15.2/plotnine/mapping/_atomic.py +178 -0
- plotnine-0.15.2/plotnine/mapping/_env.py +244 -0
- plotnine-0.15.2/plotnine/mapping/_eval_environment.py +85 -0
- plotnine-0.15.2/plotnine/mapping/aes.py +667 -0
- plotnine-0.15.2/plotnine/scales/__init__.py +254 -0
- plotnine-0.15.2/plotnine/scales/limits.py +242 -0
- plotnine-0.15.2/plotnine/scales/scale.py +315 -0
- plotnine-0.15.2/plotnine/scales/scale_color.py +704 -0
- plotnine-0.15.2/plotnine/scales/scale_continuous.py +543 -0
- plotnine-0.15.2/plotnine/scales/scale_datetime.py +115 -0
- plotnine-0.15.2/plotnine/scales/scale_discrete.py +320 -0
- plotnine-0.15.2/plotnine/scales/scale_identity.py +123 -0
- plotnine-0.15.2/plotnine/scales/scale_manual.py +175 -0
- plotnine-0.15.2/plotnine/scales/scale_xy.py +384 -0
- plotnine-0.15.2/plotnine/stats/binning.py +350 -0
- plotnine-0.15.2/plotnine/stats/smoothers.py +614 -0
- plotnine-0.15.2/plotnine/stats/stat.py +412 -0
- plotnine-0.15.2/plotnine/stats/stat_bin.py +142 -0
- plotnine-0.15.2/plotnine/stats/stat_bin_2d.py +187 -0
- plotnine-0.15.2/plotnine/stats/stat_bindot.py +324 -0
- plotnine-0.15.2/plotnine/stats/stat_boxplot.py +230 -0
- plotnine-0.15.2/plotnine/stats/stat_count.py +78 -0
- plotnine-0.15.2/plotnine/stats/stat_density.py +351 -0
- plotnine-0.15.2/plotnine/stats/stat_density_2d.py +185 -0
- plotnine-0.15.2/plotnine/stats/stat_ecdf.py +69 -0
- plotnine-0.15.2/plotnine/stats/stat_ellipse.py +259 -0
- plotnine-0.15.2/plotnine/stats/stat_function.py +130 -0
- plotnine-0.15.2/plotnine/stats/stat_hull.py +69 -0
- plotnine-0.15.2/plotnine/stats/stat_identity.py +24 -0
- plotnine-0.15.2/plotnine/stats/stat_pointdensity.py +82 -0
- plotnine-0.15.2/plotnine/stats/stat_qq.py +115 -0
- plotnine-0.15.2/plotnine/stats/stat_qq_line.py +104 -0
- plotnine-0.15.2/plotnine/stats/stat_quantile.py +101 -0
- plotnine-0.15.2/plotnine/stats/stat_sina.py +281 -0
- plotnine-0.15.2/plotnine/stats/stat_smooth.py +235 -0
- plotnine-0.15.2/plotnine/stats/stat_sum.py +67 -0
- plotnine-0.15.2/plotnine/stats/stat_summary.py +327 -0
- plotnine-0.15.2/plotnine/stats/stat_summary_bin.py +168 -0
- plotnine-0.15.2/plotnine/stats/stat_unique.py +24 -0
- plotnine-0.15.2/plotnine/stats/stat_ydensity.py +192 -0
- plotnine-0.15.2/plotnine/themes/elements/__init__.py +14 -0
- plotnine-0.15.2/plotnine/themes/elements/element_line.py +73 -0
- plotnine-0.15.2/plotnine/themes/elements/margin.py +167 -0
- plotnine-0.15.2/plotnine/themes/theme.py +560 -0
- plotnine-0.15.2/plotnine/themes/theme_538.py +32 -0
- plotnine-0.15.2/plotnine/themes/theme_bw.py +30 -0
- plotnine-0.15.2/plotnine/themes/theme_dark.py +33 -0
- plotnine-0.15.2/plotnine/themes/theme_gray.py +150 -0
- plotnine-0.15.2/plotnine/themes/theme_light.py +37 -0
- plotnine-0.15.2/plotnine/themes/theme_matplotlib.py +130 -0
- plotnine-0.15.2/plotnine/themes/theme_seaborn.py +136 -0
- plotnine-0.15.2/plotnine/themes/theme_void.py +102 -0
- plotnine-0.15.2/plotnine/themes/theme_xkcd.py +68 -0
- plotnine-0.15.2/plotnine/themes/themeable.py +2748 -0
- plotnine-0.15.2/plotnine/typing.py +155 -0
- plotnine-0.15.2/plotnine/watermark.py +72 -0
- plotnine-0.15.2/plotnine.egg-info/PKG-INFO +262 -0
- plotnine-0.15.2/plotnine.egg-info/SOURCES.txt +677 -0
- plotnine-0.15.2/plotnine.egg-info/requires.txt +49 -0
- plotnine-0.15.2/pyproject.toml +250 -0
- plotnine-0.15.2/requirements/doc.txt +3 -0
- plotnine-0.15.2/tests/baseline_images/test_aes/irregular_shapes.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_annotate/annotate_faceting.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_annotation_logticks/annotation_logticks_faceting.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_annotation_stripes/annotation_stripes_faceting.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_coords/coord_fixed.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_coords/coord_flip.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_coords/coord_trans.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_coords/coord_trans_reverse.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facet_labelling/aslabeller_dict_0tag.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facet_labelling/aslabeller_func_hashtagit.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facet_labelling/label_both.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facet_labelling/label_context.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facet_labelling/label_context_wrap2vars.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facet_labelling/label_value.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facet_labelling/labeller_cols_both_grid.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facet_labelling/labeller_cols_both_wrap.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facet_labelling/labeller_towords.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facet_labelling/uneven_num_of_lines.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/array_mapping_and_evaluation.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/dir_v_ncol.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_grid_drop_false.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_grid_expression.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_grid_formula_only_cols.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_grid_formula_only_rows.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_grid_margins.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_grid_one_by_one_var.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_grid_scales_free_x.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_grid_scales_free_y.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_grid_space_free.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_grid_space_ratios.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_wrap_direction_v.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_wrap_expression.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_wrap_label_both.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_wrap_not_as_table.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_wrap_not_as_table_direction_v.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_wrap_one_var.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/facet_wrap_two_vars.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/manual_mapping_with_lists.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/non_mapped_facetting.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_facets/variable_and_annotate.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_abline/aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_bar_col_histogram/bar-count.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_bar_col_histogram/col.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_bar_col_histogram/histogram-count.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_bar_col_histogram/histogram_weights.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_bar_col_histogram/stat-count-float.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_bar_col_histogram/stat-count-int.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_boxplot/aesthetics+coord_flip.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_boxplot/aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_boxplot/params.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_crossbar/aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_density/few_datapoints.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_density/gaussian-trimmed.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_density/gaussian.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_density/gaussian_weighted.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_density/triangular.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_dotplot/group_basic.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_dotplot/group_stackgroups.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_dotplot/group_stackgroups_binaxis_y.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_errorbar_errorbarh/errorbarh_aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_freqpoly/midpoint.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_hline/aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_map/facet_wrap.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_path_line_step/arrow_facets.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_point/aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_point/color_only_mapping.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_polygon/aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_rect_tile/coord-trans-groups.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_rect_tile/rect-aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_rect_tile/tile-aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_ribbon_area/area_aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_ribbon_area/ribbon_aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_ribbon_area/ribbon_facetting.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_segment/aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_smooth/legend_fill_ratio.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_spoke/aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_text_label/label_aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_text_label/text_aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_violin/aesthetics+coord_flip.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_violin/aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_violin/overlap.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_violin/quantiles_width_dodge.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_violin/scales_free.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_geom_vline/aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_guide_internals/guide_legend_after_scale.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_layout/facet_grid.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_layout/facet_wrap.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_layout/facet_wrap_scales_free.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/and_operator.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/basic_horizontal_align_resize.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/basic_vertical_align_resize.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/complex_composition.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/facets.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/horizontal_tag_align.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/minus.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/mul_operator.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/nested_horizontal_align_resize.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/nested_vertical_align_resize.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/plus_operator.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/test_nested_horizontal_align_1.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/test_nested_horizontal_align_2.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/test_nested_vertical_align_1.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/test_nested_vertical_align_2.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_plot_composition/vertical_tag_align.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_position/dodge.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_position/dodge2.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_position/dodge2_varwidth.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_position/dodge_preserve_single.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_position/dodge_preserve_single_text.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_position/fill.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_position/jitterdodge.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_position/stack-negative.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_position/stack-non-linear-scale.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_position/stack.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_internals/datetime_scale_expansion.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_internals/discrete_xy_scale_drop_limits.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_internals/legend_ordering_added_scales.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_1.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_2.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_1.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_2.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_internals/legend_ordering_mixed_scope_aesthetics.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_internals/missing_data_discrete_position_scale.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_internals/missing_data_discrete_scale.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_internals/transform_datetime_aes_param.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_scale_labelling/caption_complex.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_stat_hull/hull.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/element_text_with_sequence_values.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/override_axis_text.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_538.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_bw.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_classic.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_dark.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_gray.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_light.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_linedraw.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_matplotlib.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_minimal.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_seaborn.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_tufte.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_void.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_xkcd.png +0 -0
- plotnine-0.15.2/tests/baseline_images/test_theme/theme_xkcd_ci.png +0 -0
- plotnine-0.15.2/tests/conftest.py +282 -0
- plotnine-0.15.2/tests/test_aes.py +136 -0
- plotnine-0.15.2/tests/test_annotate.py +75 -0
- plotnine-0.15.2/tests/test_geom_bar_col_histogram.py +113 -0
- plotnine-0.15.2/tests/test_geom_dotplot.py +87 -0
- plotnine-0.15.2/tests/test_geom_quantile.py +35 -0
- plotnine-0.15.2/tests/test_ggplot_internals.py +405 -0
- plotnine-0.15.2/tests/test_helpers.py +40 -0
- plotnine-0.15.2/tests/test_layers.py +133 -0
- plotnine-0.15.2/tests/test_plot_composition.py +153 -0
- plotnine-0.15.2/tests/test_scale_internals.py +914 -0
- plotnine-0.15.2/tests/test_stat.py +86 -0
- plotnine-0.15.2/tests/test_theme.py +296 -0
- plotnine-0.15.2/tools/release-checklist-tpl.md +121 -0
- plotnine-0.15.0.dev3/.github/utils/_repo.py +0 -219
- plotnine-0.15.0.dev3/.github/utils/please.py +0 -55
- plotnine-0.15.0.dev3/.github/workflows/documentation.yml +0 -105
- plotnine-0.15.0.dev3/.github/workflows/release.yml +0 -123
- plotnine-0.15.0.dev3/.github/workflows/testing.yml +0 -185
- plotnine-0.15.0.dev3/.github/workflows/weekly.yml +0 -295
- plotnine-0.15.0.dev3/.gitignore +0 -87
- plotnine-0.15.0.dev3/.pre-commit-config.yaml +0 -9
- plotnine-0.15.0.dev3/Makefile +0 -102
- plotnine-0.15.0.dev3/PKG-INFO +0 -255
- plotnine-0.15.0.dev3/README.md +0 -168
- plotnine-0.15.0.dev3/doc/Makefile +0 -71
- plotnine-0.15.0.dev3/doc/_quartodoc.yml +0 -586
- plotnine-0.15.0.dev3/doc/_renderer.py +0 -70
- plotnine-0.15.0.dev3/doc/changelog.qmd +0 -1479
- plotnine-0.15.0.dev3/doc/plotnine.scss +0 -41
- plotnine-0.15.0.dev3/plotnine/__init__.py +0 -510
- plotnine-0.15.0.dev3/plotnine/_mpl/layout_manager/_engine.py +0 -87
- plotnine-0.15.0.dev3/plotnine/_mpl/layout_manager/_layout_items.py +0 -876
- plotnine-0.15.0.dev3/plotnine/_mpl/layout_manager/_layout_tree.py +0 -678
- plotnine-0.15.0.dev3/plotnine/_mpl/layout_manager/_spaces.py +0 -1020
- plotnine-0.15.0.dev3/plotnine/_mpl/patches.py +0 -90
- plotnine-0.15.0.dev3/plotnine/_mpl/text.py +0 -113
- plotnine-0.15.0.dev3/plotnine/_mpl/utils.py +0 -146
- plotnine-0.15.0.dev3/plotnine/_utils/__init__.py +0 -1266
- plotnine-0.15.0.dev3/plotnine/_utils/context.py +0 -68
- plotnine-0.15.0.dev3/plotnine/_utils/ipython.py +0 -82
- plotnine-0.15.0.dev3/plotnine/_utils/quarto.py +0 -33
- plotnine-0.15.0.dev3/plotnine/coords/coord.py +0 -250
- plotnine-0.15.0.dev3/plotnine/data/__init__.py +0 -620
- plotnine-0.15.0.dev3/plotnine/doctools.py +0 -541
- plotnine-0.15.0.dev3/plotnine/facets/facet.py +0 -623
- plotnine-0.15.0.dev3/plotnine/facets/strips.py +0 -199
- plotnine-0.15.0.dev3/plotnine/geoms/annotate.py +0 -150
- plotnine-0.15.0.dev3/plotnine/geoms/annotation_logticks.py +0 -288
- plotnine-0.15.0.dev3/plotnine/geoms/annotation_stripes.py +0 -196
- plotnine-0.15.0.dev3/plotnine/geoms/geom.py +0 -554
- plotnine-0.15.0.dev3/plotnine/geoms/geom_abline.py +0 -119
- plotnine-0.15.0.dev3/plotnine/geoms/geom_area.py +0 -42
- plotnine-0.15.0.dev3/plotnine/geoms/geom_bar.py +0 -67
- plotnine-0.15.0.dev3/plotnine/geoms/geom_bin_2d.py +0 -25
- plotnine-0.15.0.dev3/plotnine/geoms/geom_blank.py +0 -47
- plotnine-0.15.0.dev3/plotnine/geoms/geom_boxplot.py +0 -323
- plotnine-0.15.0.dev3/plotnine/geoms/geom_col.py +0 -42
- plotnine-0.15.0.dev3/plotnine/geoms/geom_count.py +0 -21
- plotnine-0.15.0.dev3/plotnine/geoms/geom_crossbar.py +0 -217
- plotnine-0.15.0.dev3/plotnine/geoms/geom_density_2d.py +0 -23
- plotnine-0.15.0.dev3/plotnine/geoms/geom_dotplot.py +0 -266
- plotnine-0.15.0.dev3/plotnine/geoms/geom_errorbar.py +0 -84
- plotnine-0.15.0.dev3/plotnine/geoms/geom_errorbarh.py +0 -84
- plotnine-0.15.0.dev3/plotnine/geoms/geom_histogram.py +0 -21
- plotnine-0.15.0.dev3/plotnine/geoms/geom_hline.py +0 -97
- plotnine-0.15.0.dev3/plotnine/geoms/geom_linerange.py +0 -62
- plotnine-0.15.0.dev3/plotnine/geoms/geom_map.py +0 -309
- plotnine-0.15.0.dev3/plotnine/geoms/geom_path.py +0 -559
- plotnine-0.15.0.dev3/plotnine/geoms/geom_point.py +0 -176
- plotnine-0.15.0.dev3/plotnine/geoms/geom_pointdensity.py +0 -21
- plotnine-0.15.0.dev3/plotnine/geoms/geom_pointrange.py +0 -103
- plotnine-0.15.0.dev3/plotnine/geoms/geom_polygon.py +0 -162
- plotnine-0.15.0.dev3/plotnine/geoms/geom_qq.py +0 -17
- plotnine-0.15.0.dev3/plotnine/geoms/geom_qq_line.py +0 -21
- plotnine-0.15.0.dev3/plotnine/geoms/geom_quantile.py +0 -33
- plotnine-0.15.0.dev3/plotnine/geoms/geom_raster.py +0 -209
- plotnine-0.15.0.dev3/plotnine/geoms/geom_rect.py +0 -146
- plotnine-0.15.0.dev3/plotnine/geoms/geom_ribbon.py +0 -198
- plotnine-0.15.0.dev3/plotnine/geoms/geom_rug.py +0 -127
- plotnine-0.15.0.dev3/plotnine/geoms/geom_segment.py +0 -104
- plotnine-0.15.0.dev3/plotnine/geoms/geom_sina.py +0 -34
- plotnine-0.15.0.dev3/plotnine/geoms/geom_smooth.py +0 -134
- plotnine-0.15.0.dev3/plotnine/geoms/geom_step.py +0 -87
- plotnine-0.15.0.dev3/plotnine/geoms/geom_text.py +0 -402
- plotnine-0.15.0.dev3/plotnine/geoms/geom_violin.py +0 -222
- plotnine-0.15.0.dev3/plotnine/geoms/geom_vline.py +0 -135
- plotnine-0.15.0.dev3/plotnine/ggplot.py +0 -826
- plotnine-0.15.0.dev3/plotnine/guides/guide.py +0 -280
- plotnine-0.15.0.dev3/plotnine/guides/guide_colorbar.py +0 -546
- plotnine-0.15.0.dev3/plotnine/guides/guide_legend.py +0 -457
- plotnine-0.15.0.dev3/plotnine/guides/guides.py +0 -492
- plotnine-0.15.0.dev3/plotnine/iapi.py +0 -364
- plotnine-0.15.0.dev3/plotnine/labels.py +0 -153
- plotnine-0.15.0.dev3/plotnine/layer.py +0 -553
- plotnine-0.15.0.dev3/plotnine/mapping/_env.py +0 -233
- plotnine-0.15.0.dev3/plotnine/mapping/_eval_environment.py +0 -85
- plotnine-0.15.0.dev3/plotnine/mapping/aes.py +0 -631
- plotnine-0.15.0.dev3/plotnine/plot_composition/__init__.py +0 -10
- plotnine-0.15.0.dev3/plotnine/plot_composition/_compose.py +0 -436
- plotnine-0.15.0.dev3/plotnine/plot_composition/_spacer.py +0 -32
- plotnine-0.15.0.dev3/plotnine/scales/__init__.py +0 -252
- plotnine-0.15.0.dev3/plotnine/scales/limits.py +0 -242
- plotnine-0.15.0.dev3/plotnine/scales/scale.py +0 -315
- plotnine-0.15.0.dev3/plotnine/scales/scale_color.py +0 -640
- plotnine-0.15.0.dev3/plotnine/scales/scale_continuous.py +0 -541
- plotnine-0.15.0.dev3/plotnine/scales/scale_datetime.py +0 -101
- plotnine-0.15.0.dev3/plotnine/scales/scale_discrete.py +0 -320
- plotnine-0.15.0.dev3/plotnine/scales/scale_identity.py +0 -104
- plotnine-0.15.0.dev3/plotnine/scales/scale_manual.py +0 -169
- plotnine-0.15.0.dev3/plotnine/scales/scale_xy.py +0 -384
- plotnine-0.15.0.dev3/plotnine/stats/binning.py +0 -347
- plotnine-0.15.0.dev3/plotnine/stats/smoothers.py +0 -627
- plotnine-0.15.0.dev3/plotnine/stats/stat.py +0 -424
- plotnine-0.15.0.dev3/plotnine/stats/stat_bin.py +0 -141
- plotnine-0.15.0.dev3/plotnine/stats/stat_bin_2d.py +0 -185
- plotnine-0.15.0.dev3/plotnine/stats/stat_bindot.py +0 -327
- plotnine-0.15.0.dev3/plotnine/stats/stat_boxplot.py +0 -230
- plotnine-0.15.0.dev3/plotnine/stats/stat_count.py +0 -81
- plotnine-0.15.0.dev3/plotnine/stats/stat_density.py +0 -354
- plotnine-0.15.0.dev3/plotnine/stats/stat_density_2d.py +0 -181
- plotnine-0.15.0.dev3/plotnine/stats/stat_ecdf.py +0 -68
- plotnine-0.15.0.dev3/plotnine/stats/stat_ellipse.py +0 -256
- plotnine-0.15.0.dev3/plotnine/stats/stat_function.py +0 -128
- plotnine-0.15.0.dev3/plotnine/stats/stat_hull.py +0 -66
- plotnine-0.15.0.dev3/plotnine/stats/stat_identity.py +0 -21
- plotnine-0.15.0.dev3/plotnine/stats/stat_pointdensity.py +0 -84
- plotnine-0.15.0.dev3/plotnine/stats/stat_qq.py +0 -89
- plotnine-0.15.0.dev3/plotnine/stats/stat_qq_line.py +0 -99
- plotnine-0.15.0.dev3/plotnine/stats/stat_quantile.py +0 -95
- plotnine-0.15.0.dev3/plotnine/stats/stat_sina.py +0 -283
- plotnine-0.15.0.dev3/plotnine/stats/stat_smooth.py +0 -237
- plotnine-0.15.0.dev3/plotnine/stats/stat_sum.py +0 -64
- plotnine-0.15.0.dev3/plotnine/stats/stat_summary.py +0 -330
- plotnine-0.15.0.dev3/plotnine/stats/stat_summary_bin.py +0 -171
- plotnine-0.15.0.dev3/plotnine/stats/stat_unique.py +0 -21
- plotnine-0.15.0.dev3/plotnine/stats/stat_ydensity.py +0 -195
- plotnine-0.15.0.dev3/plotnine/themes/elements/__init__.py +0 -13
- plotnine-0.15.0.dev3/plotnine/themes/elements/element_line.py +0 -65
- plotnine-0.15.0.dev3/plotnine/themes/elements/margin.py +0 -104
- plotnine-0.15.0.dev3/plotnine/themes/theme.py +0 -552
- plotnine-0.15.0.dev3/plotnine/themes/theme_538.py +0 -33
- plotnine-0.15.0.dev3/plotnine/themes/theme_bw.py +0 -31
- plotnine-0.15.0.dev3/plotnine/themes/theme_dark.py +0 -34
- plotnine-0.15.0.dev3/plotnine/themes/theme_gray.py +0 -149
- plotnine-0.15.0.dev3/plotnine/themes/theme_light.py +0 -37
- plotnine-0.15.0.dev3/plotnine/themes/theme_matplotlib.py +0 -130
- plotnine-0.15.0.dev3/plotnine/themes/theme_seaborn.py +0 -133
- plotnine-0.15.0.dev3/plotnine/themes/theme_void.py +0 -101
- plotnine-0.15.0.dev3/plotnine/themes/theme_xkcd.py +0 -69
- plotnine-0.15.0.dev3/plotnine/themes/themeable.py +0 -2670
- plotnine-0.15.0.dev3/plotnine/typing.py +0 -144
- plotnine-0.15.0.dev3/plotnine/watermark.py +0 -72
- plotnine-0.15.0.dev3/plotnine.egg-info/PKG-INFO +0 -255
- plotnine-0.15.0.dev3/plotnine.egg-info/SOURCES.txt +0 -648
- plotnine-0.15.0.dev3/plotnine.egg-info/requires.txt +0 -47
- plotnine-0.15.0.dev3/pyproject.toml +0 -246
- plotnine-0.15.0.dev3/requirements/doc.txt +0 -3
- plotnine-0.15.0.dev3/tests/baseline_images/test_annotation_logticks/annotation_logticks_faceting.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_annotation_stripes/annotation_stripes_faceting.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_coords/coord_fixed.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_coords/coord_flip.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_coords/coord_trans.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_coords/coord_trans_reverse.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facet_labelling/aslabeller_dict_0tag.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facet_labelling/aslabeller_func_hashtagit.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facet_labelling/label_both.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facet_labelling/label_context.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facet_labelling/label_context_wrap2vars.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facet_labelling/label_value.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facet_labelling/labeller_cols_both_grid.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facet_labelling/labeller_cols_both_wrap.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facet_labelling/labeller_towords.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facet_labelling/uneven_num_of_lines.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/array_mapping_and_evaluation.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/dir_v_ncol.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_grid_drop_false.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_grid_expression.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_grid_formula_only_cols.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_grid_formula_only_rows.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_grid_margins.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_grid_one_by_one_var.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_grid_scales_free_x.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_grid_scales_free_y.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_grid_space_free.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_grid_space_ratios.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_wrap_direction_v.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_wrap_expression.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_wrap_label_both.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_wrap_not_as_table.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_wrap_not_as_table_direction_v.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_wrap_one_var.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/facet_wrap_two_vars.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/manual_mapping_with_lists.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/non_mapped_facetting.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_facets/variable_and_annotate.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_abline/aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_bar_col_histogram/bar-count.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_bar_col_histogram/col.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_bar_col_histogram/histogram-count.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_bar_col_histogram/stat-count-float.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_bar_col_histogram/stat-count-int.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_boxplot/aesthetics+coord_flip.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_boxplot/aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_boxplot/params.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_crossbar/aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_density/few_datapoints.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_density/gaussian-trimmed.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_density/gaussian.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_density/gaussian_weighted.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_density/triangular.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_dotplot/group_basic.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_dotplot/group_stackgroups.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_dotplot/group_stackgroups_binaxis_y.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_errorbar_errorbarh/errorbarh_aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_freqpoly/midpoint.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_hline/aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_map/facet_wrap.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_path_line_step/arrow_facets.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_point/aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_point/color_only_mapping.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_polygon/aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_rect_tile/coord-trans-groups.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_rect_tile/rect-aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_rect_tile/tile-aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_ribbon_area/area_aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_ribbon_area/ribbon_aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_ribbon_area/ribbon_facetting.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_segment/aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_smooth/legend_fill_ratio.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_spoke/aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_text_label/label_aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_text_label/text_aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_violin/aesthetics+coord_flip.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_violin/aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_violin/overlap.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_violin/quantiles_width_dodge.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_violin/scales_free.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_geom_vline/aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_guide_internals/guide_legend_after_scale.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_layout/facet_grid.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_layout/facet_wrap.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_layout/facet_wrap_scales_free.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_position/dodge.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_position/dodge2.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_position/dodge2_varwidth.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_position/dodge_preserve_single.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_position/dodge_preserve_single_text.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_position/fill.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_position/jitterdodge.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_position/stack-negative.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_position/stack-non-linear-scale.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_position/stack.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_internals/datetime_scale_expansion.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_internals/discrete_xy_scale_drop_limits.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_internals/legend_ordering_added_scales.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_1.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_internals/legend_ordering_global_aesthetics_2.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_1.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_internals/legend_ordering_local_aesthetics_2.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_internals/legend_ordering_mixed_scope_aesthetics.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_internals/missing_data_discrete_position_scale.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_internals/missing_data_discrete_scale.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_internals/transform_datetime_aes_param.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_scale_labelling/caption_complex.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_stat_hull/hull.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/element_text_with_sequence_values.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_538.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_bw.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_classic.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_dark.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_gray.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_light.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_linedraw.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_matplotlib.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_minimal.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_seaborn.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_tufte.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_void.png +0 -0
- plotnine-0.15.0.dev3/tests/baseline_images/test_theme/theme_xkcd.png +0 -0
- plotnine-0.15.0.dev3/tests/conftest.py +0 -234
- plotnine-0.15.0.dev3/tests/test_aes.py +0 -109
- plotnine-0.15.0.dev3/tests/test_annotate.py +0 -48
- plotnine-0.15.0.dev3/tests/test_geom_bar_col_histogram.py +0 -101
- plotnine-0.15.0.dev3/tests/test_geom_dotplot.py +0 -82
- plotnine-0.15.0.dev3/tests/test_geom_quantile.py +0 -24
- plotnine-0.15.0.dev3/tests/test_ggplot_internals.py +0 -393
- plotnine-0.15.0.dev3/tests/test_layers.py +0 -133
- plotnine-0.15.0.dev3/tests/test_scale_internals.py +0 -909
- plotnine-0.15.0.dev3/tests/test_stat.py +0 -87
- plotnine-0.15.0.dev3/tests/test_theme.py +0 -271
- plotnine-0.15.0.dev3/tools/gha_check_semver.py +0 -114
- plotnine-0.15.0.dev3/tools/release-checklist-tpl.md +0 -129
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/.gitattributes +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/.github/DISCUSSION_TEMPLATE/2024-plotnine-contest.yml +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/.readthedocs.yaml +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/CITATION.bib +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/LICENSE +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/code-of-conduct.md +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/codecov.yml +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/.gitignore +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/_config.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/_quarto.yml +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/images/favicon-16x16.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/images/favicon-32x32.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/images/logo-512.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/images/logo.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/images/readme-image-1.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/images/readme-image-2.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/images/readme-image-3.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/images/readme-image-4.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/images/readme-image-5.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/images/readme-image-5alt.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/doc/images/readme_images.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/licences/SEABORN_LICENSE +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/_mpl/__init__.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/_mpl/gridspec.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/_mpl/layout_manager/__init__.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/_mpl/offsetbox.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/_mpl/ticker.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/_mpl/transforms.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/_utils/dev.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/_utils/registry.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/animation.py +0 -0
- {plotnine-0.15.0.dev3/plotnine/plot_composition → plotnine-0.15.2/plotnine/composition}/_plotspec.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/coords/__init__.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/coords/coord_cartesian.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/coords/coord_fixed.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/coords/coord_flip.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/coords/coord_trans.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/diamonds.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/economics.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/economics_long.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/faithful.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/faithfuld.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/huron.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/luv_colours.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/meat.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/midwest.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/mpg.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/msleep.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/mtcars.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/pageviews.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/penguins.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/presidential.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/seals.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/data/txhousing.csv +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/exceptions.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/facets/__init__.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/facets/facet_grid.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/facets/facet_null.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/facets/facet_wrap.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/facets/labelling.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/facets/layout.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/geoms/__init__.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/geoms/geom_density.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/geoms/geom_freqpoly.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/geoms/geom_jitter.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/geoms/geom_label.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/geoms/geom_line.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/geoms/geom_spoke.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/geoms/geom_tile.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/guides/__init__.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/guides/guide_axis.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/mapping/__init__.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/mapping/evaluation.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/options.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/positions/__init__.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/positions/position.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/positions/position_dodge.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/positions/position_dodge2.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/positions/position_fill.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/positions/position_identity.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/positions/position_jitter.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/positions/position_jitterdodge.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/positions/position_nudge.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/positions/position_stack.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/py.typed +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/qplot.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/scales/_expand.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/scales/_runtime_typing.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/scales/range.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/scales/scale_alpha.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/scales/scale_linetype.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/scales/scale_shape.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/scales/scale_size.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/scales/scale_stroke.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/scales/scales.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/stats/__init__.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/stats/density.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/stats/distributions.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/themes/__init__.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/themes/elements/element_base.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/themes/elements/element_blank.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/themes/elements/element_rect.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/themes/elements/element_text.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/themes/seaborn_rcmod.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/themes/targets.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/themes/theme_classic.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/themes/theme_linedraw.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/themes/theme_minimal.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine/themes/theme_tufte.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine.egg-info/dependency_links.txt +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/plotnine.egg-info/top_level.txt +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/setup.cfg +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_aes/geom_crossbar.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_aes/reorder.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_aes/reorder_index.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_aes/stat_bin_2d.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_aes/stat_ecdf.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_aes/test_stat_function.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotate/multiple_annotation_geoms.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_logticks/annotation_logticks.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_logticks/annotation_logticks_base_5.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_logticks/annotation_logticks_base_8.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip_discrete.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_logticks/annotation_logticks_coord_flip_discrete_bottom.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_stripes/annotation_stripes.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_stripes/annotation_stripes_continuous_scale.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_stripes/annotation_stripes_coord_flip.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_direction_extend.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_range.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_stripes/annotation_stripes_fill_range_cycle.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_annotation_stripes/annotation_stripes_single_stripe.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_coords/coord_trans_backtransform.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_coords/datetime_scale_limits.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_abline/aes_inheritance.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_bar_col_histogram/col_just.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_bin_2d/drop_false.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_bin_2d/drop_true.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_blank/blank.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_boxplot/no_outliers.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_boxplot/position_nudge.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_boxplot/weight.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_count/continuous_x_y.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_count/discrete_x.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_count/discrete_y.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_density/bounds.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_density_2d/contours.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_density_2d/points.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_density_2d/polygon.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_dotplot/binaxis_y.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_dotplot/dotdensity.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_dotplot/histodot.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_dotplot/stackdir_center.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_dotplot/stackdir_centerwhole.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_dotplot/stackdir_down.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_dotplot/stackratio.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_errorbar_errorbarh/errorbar_aesthetics.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_linerange_pointrange/linerange_aesthetics.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_linerange_pointrange/pointrange_aesthetics.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_map/geometries.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_map/multipoint.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_map/multipolygon.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_path_line_step/aesthetics.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_path_line_step/arrow.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_path_line_step/missing_values.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_path_line_step/no_missing_values.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_path_line_step/path_line_step.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_path_line_step/step.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_path_line_step/step_mid.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_point/custom_shapes.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_point/legend_transparency.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_point/no_fill.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_point/no_mapping.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_pointdensity/contours.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_pointdensity/points.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_polygon/no_fill.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_qq_qq_line/normal.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_qq_qq_line/normal_with_line.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_quantile/lines.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_raster/gap_no_interpolation.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_raster/gap_with_interpolation.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_raster/rectangle.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_raster/square.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_rect_tile/coord-trans.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_rect_tile/infinite-rects.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_rect_tile/rect-nofill.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_ribbon_area/ribbon_coord_flip.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_ribbon_area/ribbon_outline_type.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_ribbon_area/ribbon_outline_type_coord_flip.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_ribbon_area/ribbon_where.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_rug/aesthetics.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_rug/coord_flip.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_segment/arrow.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_sina/method_counts.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_sina/scale_area+coord_flip.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_sina/scale_area.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_sina/scale_count.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_sina/style.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/continuous_x.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/continuous_x_fullrange.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/coord_trans_se_false.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/discrete_x.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/discrete_x_fullrange.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/glm_formula.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/gls_formula.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/init_and_fit_kwargs.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/linear_smooth.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/linear_smooth_no_ci.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/lm_formula.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/lm_formula_weights.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/non_linear_smooth.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/non_linear_smooth_no_ci.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/rlm_formula.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_smooth/sorts_by_x.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_spoke/test_unmapped_angle.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_text_label/adjust_label.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_text_label/adjust_text.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_text_label/adjust_text_default_color.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_text_label/format_missing_values.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_violin/no_trim.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_violin/scale.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_violin/style.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_geom_violin/style_alternating.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_ggplot_internals/after_scale_mapping.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_ggplot_internals/to_pandas.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layers/inserting_layers.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/axis_text_justification.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/axis_title_x_justification.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/axis_title_y_justification.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/colorbar_frame.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/default.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/default_tag_location.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/different_colorbar_themes.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/inside_legend_90pct_top_right.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/inside_legend_left.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/inside_legend_top.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/inside_legend_top_right.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/justification_with_blank_title_and_text.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/legend_at_the_bottom.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/legend_at_top.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/legend_on_the_left.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/legends_in_different_positions.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/margin_bottom.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/outside_legend_bottom_left.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/outside_legend_left_top.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/outside_legend_right_bottom.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/outside_legend_top_right.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/panel_bottomleft.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/panel_topleft_margin_in_fig.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/panel_topleft_margin_in_pt.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/panel_topleft_margin_in_pt_ar1.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/panel_xycoords.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/plot_margin_aspect_ratio.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/plot_margin_protruding_axis_text.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/plot_title_justification.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/plot_titles_and_caption_positioning.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/plot_topright.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/plot_topright_margin_in_fig.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/plot_topright_margin_in_pt.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/plot_xycoords.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_layout/turn_off_guide.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_position/dodge2_preserve_single_interval.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_position/dodge_segment.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_position/jitter.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_position/nudge.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_qplot/arrays.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_qplot/multiple_geoms.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_qplot/onlyx.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_qplot/onlyy.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_qplot/range.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_qplot/sample.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_qplot/scalars.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_qplot/series_labelling.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_qplot/string-arrays.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_qplot/xlim.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_qplot/ylim.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_internals/bool_mapping.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_internals/breaks_and_labels_outside_of_limits.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_internals/datetime_scale_limits.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_internals/expand_limits.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_internals/missing_manual_dict_aesthetic.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_internals/multiple_aesthetics.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_internals/ordinal_scale.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_internals/test_legend_ordering_with_identity_scale.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_internals/transform_aes_defaults_and_params.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_labelling/caption_simple.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_labelling/labelling_with_colour.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_linetype/scale_linetype_manual_strings.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_linetype/scale_linetype_manual_tuples.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_scale_symlog/scale_y_symlog.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_ecdf/computed_y_column.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_ecdf/ecdf.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_ecdf/ecdf_no_pad.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_ellipse/ellipse.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_function/args.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_function/limits.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_summary/fun_args.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_summary/mean_cl_boot.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_summary/mean_cl_normal.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_summary/mean_sdl.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_summary/mean_se.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_summary/median_hilow.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_summary/summary_functions.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_summary_bin/continuous_x.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_summary_bin/discrete_x.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_stat_summary_bin/setting_binwidth.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_theme/axis_ticks_and_length.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_theme/no_ticks.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/baseline_images/test_watermark/watermark.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/images/plotnine-watermark.png +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_animation.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_annotation_logticks.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_annotation_stripes.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_binning.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_coords.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_doctools.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_facet_labelling.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_facets.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_abline.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_bin_2d.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_blank.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_boxplot.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_count.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_crossbar.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_density.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_density_2d.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_errorbar_errorbarh.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_freqpoly.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_hline.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_linerange_pointrange.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_map.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_path_line_step.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_point.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_pointdensity.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_polygon.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_qq_qq_line.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_raster.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_rect_tile.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_ribbon_area.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_rug.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_segment.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_sina.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_smooth.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_spoke.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_text_label.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_violin.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_geom_vline.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_ggsave.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_guide_internals.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_layout.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_lint_and_format.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_position.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_qplot.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_save_as_pdf_pages.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_scale_labelling.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_scale_linetype.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_scale_symlog.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_stat_calculate_methods.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_stat_ecdf.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_stat_ellipse.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_stat_function.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_stat_hull.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_stat_summary.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_stat_summary_bin.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_utils.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tests/test_watermark.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tools/release-checklist.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tools/term.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tools/update_baseline_images.py +0 -0
- {plotnine-0.15.0.dev3 → plotnine-0.15.2}/tools/visualize_tests.py +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
labels: ["contest-2025"]
|
|
2
|
+
body:
|
|
3
|
+
- type: markdown
|
|
4
|
+
|
|
5
|
+
attributes:
|
|
6
|
+
value: >-
|
|
7
|
+
Thank you for submitting to the [2025 Plotnine Contest](https://github.com/has2k1/plotnine/discussions/972).
|
|
8
|
+
The submission deadline is Friday, October 3, 2025 ([Anywhere on Earth](https://time.is/Anywhere_on_Earth)).
|
|
9
|
+
|
|
10
|
+
<details>
|
|
11
|
+
<summary><b>What should my submission include?</b></summary>
|
|
12
|
+
<br/>
|
|
13
|
+
To produce your final plot, every submission must include all the code, data, and processing steps, at least minimally documented.
|
|
14
|
+
<br/><br/>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
#### 1. Code
|
|
18
|
+
|
|
19
|
+
<br>
|
|
20
|
+
A link to the repository or script that fully reproduces your submission. Please include any data used to produce the plot.
|
|
21
|
+
<br><br>
|
|
22
|
+
|
|
23
|
+
#### 2. Plot
|
|
24
|
+
|
|
25
|
+
<br>
|
|
26
|
+
Include your plot. If your submission includes many plots (e.g. it’s a multipart tutorial or article that includes many plots), please also link away to the full article.
|
|
27
|
+
<br><br>
|
|
28
|
+
|
|
29
|
+
#### 3. Documentation
|
|
30
|
+
|
|
31
|
+
<br>
|
|
32
|
+
Whether as code comments or via prose in something like a Quarto doc or Jupyter notebook, be sure to include an explanation of what you are doing, and how your code works. Comments may be minimal, but they should help a novice to plotnine understand how your code produces your final plot.
|
|
33
|
+
|
|
34
|
+
<br/><br/>
|
|
35
|
+
</details>
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
<details>
|
|
39
|
+
<summary><b>How will submissions be judged?</b></summary>
|
|
40
|
+
<br>
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
Broadly, entries will be judged based on utility and beauty.
|
|
44
|
+
Is your plot easy to read and comprehend?
|
|
45
|
+
Is it a technically impressive, well-documented example?
|
|
46
|
+
Does it demonstrate novel, useful elements of plot design?
|
|
47
|
+
Is it aesthetically pleasing?
|
|
48
|
+
We recognize that some plots may excel in one of these categories, with some in another (and some in all).
|
|
49
|
+
We promise that the evaluation will keep this in mind.
|
|
50
|
+
<br><br>
|
|
51
|
+
We also realize our judging criteria are subjective.
|
|
52
|
+
Therefore, Hassan Kibirige, the creator of plotnine, along with a panel of visualization wizards will help review this year’s submissions.
|
|
53
|
+
|
|
54
|
+
</details>
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
<details>
|
|
58
|
+
<summary><b>What are the prizes?</b></summary>
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
#### 1. Fabulous Prizes
|
|
62
|
+
|
|
63
|
+
We are still working out the fabulous prizes, but anticipate some beautiful combo of stickers, and sundry Posit swag.
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
</details>
|
|
67
|
+
|
|
68
|
+
- type: textarea
|
|
69
|
+
id: output
|
|
70
|
+
attributes:
|
|
71
|
+
label: Plot
|
|
72
|
+
description: "This is your submission!"
|
|
73
|
+
validations:
|
|
74
|
+
required: true
|
|
75
|
+
- type: input
|
|
76
|
+
id: authors
|
|
77
|
+
attributes:
|
|
78
|
+
label: Authors
|
|
79
|
+
description: "List full names of all authors of the submission. If you include affiliation, please do so inside parentheses."
|
|
80
|
+
validations:
|
|
81
|
+
required: true
|
|
82
|
+
- type: input
|
|
83
|
+
id: links
|
|
84
|
+
attributes:
|
|
85
|
+
label: Links
|
|
86
|
+
description: "Any social or website links for authors. Use markdown for, e.g. `[twitter](https://twitter.com/HKibirige)`, `[github](https://github.com/has2k1)`"
|
|
87
|
+
placeholder: "e.g. [twitter](https://twitter.com/HKibirige), [github](https://github.com/has2k1)"
|
|
88
|
+
validations:
|
|
89
|
+
required: false
|
|
90
|
+
- type: textarea
|
|
91
|
+
id: description
|
|
92
|
+
attributes:
|
|
93
|
+
label: Full description
|
|
94
|
+
description: "Fully describe your submission. Feel free to link away to a Quarto Pub post, a README, personal blog, or similar. This can be edited after your submission."
|
|
95
|
+
validations:
|
|
96
|
+
required: true
|
|
97
|
+
- type: textarea
|
|
98
|
+
id: repo
|
|
99
|
+
attributes:
|
|
100
|
+
label: Code repository
|
|
101
|
+
description: "Link to a repo with data & code for reproducing your plotnine plot."
|
|
102
|
+
validations:
|
|
103
|
+
required: false
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
import os
|
|
5
|
+
import re
|
|
6
|
+
import shlex
|
|
7
|
+
from subprocess import PIPE, Popen
|
|
8
|
+
from typing import Literal, Sequence, TypeAlias
|
|
9
|
+
|
|
10
|
+
ReleaseType: TypeAlias = Literal[
|
|
11
|
+
"alpha",
|
|
12
|
+
"beta",
|
|
13
|
+
"candidate",
|
|
14
|
+
"development",
|
|
15
|
+
"stable",
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
pre_release_lookup: dict[str, ReleaseType] = {
|
|
19
|
+
"a": "alpha",
|
|
20
|
+
"alpha": "alpha",
|
|
21
|
+
"b": "beta",
|
|
22
|
+
"beta": "beta",
|
|
23
|
+
"rc": "candidate",
|
|
24
|
+
"dev": "development",
|
|
25
|
+
".dev": "development",
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
# https://docs.github.com/en/actions/learn-github-actions/variables
|
|
29
|
+
# #default-environment-variables
|
|
30
|
+
GITHUB_VARS = [
|
|
31
|
+
"GITHUB_REF_NAME", # main, dev, v0.1.0, v0.1.3a1
|
|
32
|
+
"GITHUB_REF_TYPE", # "branch" or "tag"
|
|
33
|
+
"GITHUB_REPOSITORY", # has2k1/scikit-misc
|
|
34
|
+
"GITHUB_SERVER_URL", # https://github.com
|
|
35
|
+
"GITHUB_SHA", # commit shasum
|
|
36
|
+
"GITHUB_WORKSPACE", # /home/runner/work/scikit-misc/scikit-misc
|
|
37
|
+
"GITHUB_EVENT_NAME", # push, schedule, workflow_dispatch, ...
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
count = r"(?:[0-9]|[1-9][0-9]+)"
|
|
42
|
+
DESCRIBE = re.compile(
|
|
43
|
+
r"^v"
|
|
44
|
+
rf"(?P<version>{count}\.{count}\.{count})"
|
|
45
|
+
rf"((?P<pre>a|b|rc|alpha|beta|\.dev){count})?"
|
|
46
|
+
r"(-(?P<commits>\d+)-g(?P<hash>[a-z0-9]+))?"
|
|
47
|
+
r"(?P<dirty>-dirty)?"
|
|
48
|
+
r"$"
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
# Define a stable release version to be valid according to PEP440
|
|
52
|
+
# and is a semver
|
|
53
|
+
STABLE_TAG = re.compile(r"^v" rf"{count}\.{count}\.{count}" r"$")
|
|
54
|
+
|
|
55
|
+
# Prerelease version
|
|
56
|
+
PRE_RELEASE_TAG = re.compile(
|
|
57
|
+
r"^v"
|
|
58
|
+
rf"{count}\.{count}\.{count}"
|
|
59
|
+
rf"((?P<pre>a|b|rc|alpha|beta|\.dev){count})?"
|
|
60
|
+
r"$"
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
REF_NAME = os.environ.get("GITHUB_REF_NAME", "")
|
|
64
|
+
REF_TYPE = os.environ.get("GITHUB_REF_TYPE", "")
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def run(cmd: str | Sequence[str]) -> str:
|
|
68
|
+
if isinstance(cmd, str) and os.name == "posix":
|
|
69
|
+
cmd = shlex.split(cmd)
|
|
70
|
+
with Popen(
|
|
71
|
+
cmd, stdin=PIPE, stderr=PIPE, stdout=PIPE, text=True, encoding="utf-8"
|
|
72
|
+
) as p:
|
|
73
|
+
stdout, _ = p.communicate()
|
|
74
|
+
return stdout.strip()
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class Git:
|
|
78
|
+
@staticmethod
|
|
79
|
+
def checkout(committish):
|
|
80
|
+
"""
|
|
81
|
+
Return True if inside a git repo
|
|
82
|
+
"""
|
|
83
|
+
res = run(f"git checkout {committish}")
|
|
84
|
+
return res
|
|
85
|
+
|
|
86
|
+
@staticmethod
|
|
87
|
+
def commit_titles(n=1) -> list[str]:
|
|
88
|
+
"""
|
|
89
|
+
Return a list n of commit titles
|
|
90
|
+
"""
|
|
91
|
+
output = run(
|
|
92
|
+
f"git log --oneline --no-merges --pretty='format:%s' -{n}"
|
|
93
|
+
)
|
|
94
|
+
return output.split("\n")[:n]
|
|
95
|
+
|
|
96
|
+
@staticmethod
|
|
97
|
+
def commit_messages(n=1) -> list[str]:
|
|
98
|
+
"""
|
|
99
|
+
Return a list n of commit messages
|
|
100
|
+
"""
|
|
101
|
+
sep = "______ MESSAGE _____"
|
|
102
|
+
output = run(
|
|
103
|
+
f"git log --no-merges --pretty='format:%B{sep}' -{n}"
|
|
104
|
+
).strip()
|
|
105
|
+
if output.endswith(sep):
|
|
106
|
+
output = output[: -len(sep)]
|
|
107
|
+
return output.split(sep)[:n]
|
|
108
|
+
|
|
109
|
+
@staticmethod
|
|
110
|
+
def commit_title() -> str:
|
|
111
|
+
"""
|
|
112
|
+
Commit subject
|
|
113
|
+
"""
|
|
114
|
+
return Git.commit_titles(1)[0]
|
|
115
|
+
|
|
116
|
+
@staticmethod
|
|
117
|
+
def commit_message() -> str:
|
|
118
|
+
"""
|
|
119
|
+
Commit title
|
|
120
|
+
"""
|
|
121
|
+
return Git.commit_messages(1)[0]
|
|
122
|
+
|
|
123
|
+
@staticmethod
|
|
124
|
+
def is_repo():
|
|
125
|
+
"""
|
|
126
|
+
Return True if inside a git repo
|
|
127
|
+
"""
|
|
128
|
+
res = run("git rev-parse --is-inside-work-tree")
|
|
129
|
+
return res == "return"
|
|
130
|
+
|
|
131
|
+
@staticmethod
|
|
132
|
+
def fetch_tags() -> str:
|
|
133
|
+
"""
|
|
134
|
+
Fetch all tags
|
|
135
|
+
"""
|
|
136
|
+
return run("git fetch --tags --force")
|
|
137
|
+
|
|
138
|
+
@staticmethod
|
|
139
|
+
def is_shallow() -> bool:
|
|
140
|
+
"""
|
|
141
|
+
Return True if current repo is shallow
|
|
142
|
+
"""
|
|
143
|
+
res = run("git rev-parse --is-shallow-repository")
|
|
144
|
+
return res == "true"
|
|
145
|
+
|
|
146
|
+
@staticmethod
|
|
147
|
+
def deepen(n: int = 1) -> str:
|
|
148
|
+
"""
|
|
149
|
+
Fetch n commits beyond the shallow limit
|
|
150
|
+
"""
|
|
151
|
+
return run(f"git fetch --deepen={n}")
|
|
152
|
+
|
|
153
|
+
@staticmethod
|
|
154
|
+
def describe() -> str:
|
|
155
|
+
"""
|
|
156
|
+
Git describe to determine version
|
|
157
|
+
"""
|
|
158
|
+
return run("git describe --dirty --tags --long --match '*[0-9]*'")
|
|
159
|
+
|
|
160
|
+
@staticmethod
|
|
161
|
+
def can_describe() -> bool:
|
|
162
|
+
"""
|
|
163
|
+
Return True if repo can be "described" from a semver tag
|
|
164
|
+
"""
|
|
165
|
+
return bool(DESCRIBE.match(Git.describe()))
|
|
166
|
+
|
|
167
|
+
@staticmethod
|
|
168
|
+
def get_tag_at_commit(committish: str) -> str:
|
|
169
|
+
"""
|
|
170
|
+
Get tag of a given commit
|
|
171
|
+
"""
|
|
172
|
+
return run(f"git describe --exact-match {committish}")
|
|
173
|
+
|
|
174
|
+
@staticmethod
|
|
175
|
+
def tag_message(tag: str) -> str:
|
|
176
|
+
"""
|
|
177
|
+
Get the message of a tag
|
|
178
|
+
"""
|
|
179
|
+
return run(f"git tag -l --format='%(subject)' {tag}")
|
|
180
|
+
|
|
181
|
+
@staticmethod
|
|
182
|
+
def is_annotated(tag: str) -> bool:
|
|
183
|
+
"""
|
|
184
|
+
Return true if tag is annotated tag
|
|
185
|
+
"""
|
|
186
|
+
# LHS prints to stderr and returns nothing when
|
|
187
|
+
# tag is an empty string
|
|
188
|
+
return run(f"git cat-file -t {tag}") == "tag"
|
|
189
|
+
|
|
190
|
+
@staticmethod
|
|
191
|
+
def shallow_checkout(branch: str, url: str, depth: int = 1) -> str:
|
|
192
|
+
"""
|
|
193
|
+
Shallow clone upto n commits
|
|
194
|
+
"""
|
|
195
|
+
_branch = f"--branch={branch}"
|
|
196
|
+
_depth = f"--depth={depth}"
|
|
197
|
+
return run(f"git clone {_depth} {_branch} {url} .")
|
|
198
|
+
|
|
199
|
+
@staticmethod
|
|
200
|
+
def is_stable_release():
|
|
201
|
+
"""
|
|
202
|
+
Return True if event is a stable release
|
|
203
|
+
"""
|
|
204
|
+
return REF_TYPE == "tag" and bool(STABLE_TAG.match(REF_NAME))
|
|
205
|
+
|
|
206
|
+
@staticmethod
|
|
207
|
+
def is_pre_release():
|
|
208
|
+
"""
|
|
209
|
+
Return True if event is any kind of pre-release
|
|
210
|
+
"""
|
|
211
|
+
return REF_TYPE == "tag" and bool(PRE_RELEASE_TAG.match(REF_NAME))
|
|
212
|
+
|
|
213
|
+
@staticmethod
|
|
214
|
+
def release_type() -> ReleaseType | None:
|
|
215
|
+
if Git.is_stable_release():
|
|
216
|
+
return "stable"
|
|
217
|
+
elif Git.is_pre_release():
|
|
218
|
+
match = PRE_RELEASE_TAG.match(REF_NAME)
|
|
219
|
+
assert match is not None
|
|
220
|
+
pre = match.group("pre")
|
|
221
|
+
return pre_release_lookup[pre]
|
|
222
|
+
|
|
223
|
+
@staticmethod
|
|
224
|
+
def branch():
|
|
225
|
+
"""
|
|
226
|
+
Return event branch
|
|
227
|
+
"""
|
|
228
|
+
return REF_NAME if REF_TYPE == "branch" else ""
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
from typing import Callable, TypeAlias
|
|
5
|
+
|
|
6
|
+
from _repo import Git
|
|
7
|
+
|
|
8
|
+
Ask: TypeAlias = Callable[[], bool | str]
|
|
9
|
+
Do: TypeAlias = Callable[[], str]
|
|
10
|
+
|
|
11
|
+
gh_output_file = os.environ.get("GITHUB_OUTPUT")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def set_deploy_to():
|
|
15
|
+
"""
|
|
16
|
+
Write where to deploy to deploy_on in the GITHUB_OUTPUT env
|
|
17
|
+
"""
|
|
18
|
+
if not gh_output_file:
|
|
19
|
+
return
|
|
20
|
+
|
|
21
|
+
if Git.is_stable_release():
|
|
22
|
+
deploy_to = "website"
|
|
23
|
+
elif Git.is_pre_release():
|
|
24
|
+
deploy_to = "pre-website"
|
|
25
|
+
elif Git.branch() in {"main", "dev"}:
|
|
26
|
+
deploy_to = "gh-pages"
|
|
27
|
+
else:
|
|
28
|
+
deploy_to = ""
|
|
29
|
+
|
|
30
|
+
with Path(gh_output_file).open("a") as f:
|
|
31
|
+
print(f"deploy_to={deploy_to}", file=f)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def set_publish_on():
|
|
35
|
+
"""
|
|
36
|
+
Write index (pypi or testpypi) to publish_on in the GITHUB_OUTPUT env
|
|
37
|
+
|
|
38
|
+
i.e. Where to release
|
|
39
|
+
"""
|
|
40
|
+
# Probably not on GHA
|
|
41
|
+
if not gh_output_file:
|
|
42
|
+
return
|
|
43
|
+
|
|
44
|
+
rtype = Git.release_type()
|
|
45
|
+
|
|
46
|
+
if rtype in {"stable", "alpha", "beta", "development"}:
|
|
47
|
+
publish_on = "pypi"
|
|
48
|
+
elif rtype == "candidate":
|
|
49
|
+
publish_on = "testpypi"
|
|
50
|
+
else:
|
|
51
|
+
publish_on = ""
|
|
52
|
+
|
|
53
|
+
with Path(gh_output_file).open("a") as f:
|
|
54
|
+
print(f"publish_on={publish_on}", file=f)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def set_commit_title():
|
|
58
|
+
"""
|
|
59
|
+
Write the commit title to commit_title in the GITHUB_OUTPUT env
|
|
60
|
+
"""
|
|
61
|
+
if not gh_output_file:
|
|
62
|
+
return
|
|
63
|
+
|
|
64
|
+
with Path(gh_output_file).open("a") as f:
|
|
65
|
+
print(f"commit_title={Git.commit_title()}", file=f)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def process_request(task_name: str) -> str | None:
|
|
69
|
+
if task_name in TASKS:
|
|
70
|
+
return TASKS[task_name]()
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
TASKS: dict[str, Callable[[], str | None]] = {
|
|
74
|
+
"set_deploy_to": set_deploy_to,
|
|
75
|
+
"set_publish_on": set_publish_on,
|
|
76
|
+
"set_commit_title": set_commit_title,
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if __name__ == "__main__":
|
|
80
|
+
if len(sys.argv) == 2:
|
|
81
|
+
arg = sys.argv[1]
|
|
82
|
+
output = process_request(arg)
|
|
83
|
+
if output:
|
|
84
|
+
print(output)
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
workflow_call:
|
|
6
|
+
|
|
7
|
+
env:
|
|
8
|
+
HEAD_COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
parse_commit_info:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
outputs:
|
|
14
|
+
deploy_to: ${{ steps.variables.outputs.deploy_to }}
|
|
15
|
+
commit_title: ${{ steps.variables.outputs.commit_title }}
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout Code
|
|
19
|
+
uses: actions/checkout@v4
|
|
20
|
+
with:
|
|
21
|
+
fetch-depth: 0
|
|
22
|
+
|
|
23
|
+
- name: Copy build utils
|
|
24
|
+
run: cp -r .github/utils ../utils
|
|
25
|
+
|
|
26
|
+
- name: Decide where to deploy and create output variables
|
|
27
|
+
id: variables
|
|
28
|
+
run: |
|
|
29
|
+
python ../utils/please.py set_deploy_to
|
|
30
|
+
python ../utils/please.py set_commit_title
|
|
31
|
+
|
|
32
|
+
echo github.ref ${{ github.ref }}
|
|
33
|
+
|
|
34
|
+
- name: See outputs
|
|
35
|
+
run: |
|
|
36
|
+
echo 'deploy_to=${{ steps.variables.outputs.deploy_to }}'
|
|
37
|
+
echo 'commit_title=${{ steps.variables.outputs.commit_title }}'
|
|
38
|
+
|
|
39
|
+
build-documentation:
|
|
40
|
+
runs-on: ubuntu-latest
|
|
41
|
+
needs: parse_commit_info
|
|
42
|
+
|
|
43
|
+
strategy:
|
|
44
|
+
matrix:
|
|
45
|
+
python-version: [3.13]
|
|
46
|
+
|
|
47
|
+
steps:
|
|
48
|
+
- name: Checkout Code
|
|
49
|
+
uses: actions/checkout@v4
|
|
50
|
+
|
|
51
|
+
- name: Install uv and set python version
|
|
52
|
+
uses: astral-sh/setup-uv@v6
|
|
53
|
+
with:
|
|
54
|
+
python-version: ${{ matrix.python-version }}
|
|
55
|
+
|
|
56
|
+
- name: Install Quarto
|
|
57
|
+
uses: quarto-dev/quarto-actions/setup@v2
|
|
58
|
+
with:
|
|
59
|
+
version: pre-release
|
|
60
|
+
|
|
61
|
+
- name: Install Documentation Dependencies
|
|
62
|
+
run: |
|
|
63
|
+
uv venv
|
|
64
|
+
make doc-dependencies
|
|
65
|
+
|
|
66
|
+
- name: Environment Information
|
|
67
|
+
run: |
|
|
68
|
+
ls -la
|
|
69
|
+
ls -la doc
|
|
70
|
+
uv pip list
|
|
71
|
+
|
|
72
|
+
- name: Build docs
|
|
73
|
+
run: make doc
|
|
74
|
+
|
|
75
|
+
- name: Environment Information
|
|
76
|
+
run: |
|
|
77
|
+
ls -la doc
|
|
78
|
+
ls -la doc/reference
|
|
79
|
+
cat doc/_variables.yml
|
|
80
|
+
|
|
81
|
+
- name: Deploy to Documentation to a Branch
|
|
82
|
+
uses: JamesIves/github-pages-deploy-action@v4
|
|
83
|
+
if: ${{ needs.parse_commit_info.outputs.deploy_to != '' }}
|
|
84
|
+
with:
|
|
85
|
+
folder: doc/_site
|
|
86
|
+
branch: ${{ needs.parse_commit_info.outputs.deploy_to }}
|
|
87
|
+
commit-message: ${{ needs.parse_commit_info.outputs.commit_title }}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v[0-9]*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
run-tests:
|
|
10
|
+
name: Run all tests
|
|
11
|
+
uses: ./.github/workflows/testing.yml
|
|
12
|
+
with:
|
|
13
|
+
skip_codecov: true
|
|
14
|
+
|
|
15
|
+
check-semver-tag:
|
|
16
|
+
name: Check if the tag is in semantic version format
|
|
17
|
+
needs: [run-tests]
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
outputs:
|
|
20
|
+
publish_on: ${{ steps.variables.outputs.publish_on }}
|
|
21
|
+
|
|
22
|
+
strategy:
|
|
23
|
+
matrix:
|
|
24
|
+
python-version: ["3.13"]
|
|
25
|
+
|
|
26
|
+
steps:
|
|
27
|
+
- name: Checkout Code
|
|
28
|
+
uses: actions/checkout@v4
|
|
29
|
+
|
|
30
|
+
- name: Install a specific version of uv
|
|
31
|
+
uses: astral-sh/setup-uv@v6
|
|
32
|
+
with:
|
|
33
|
+
python-version: ${{ matrix.python-version }}
|
|
34
|
+
|
|
35
|
+
- name: Copy build utils
|
|
36
|
+
run: cp -r .github/utils ../utils
|
|
37
|
+
|
|
38
|
+
- name: Decide where to publish and create output variables
|
|
39
|
+
id: variables
|
|
40
|
+
run: uv run python ../utils/please.py set_publish_on
|
|
41
|
+
|
|
42
|
+
- name: See outputs
|
|
43
|
+
run: echo "publish_on="${{ steps.variables.outputs.publish_on }}
|
|
44
|
+
|
|
45
|
+
# Ref: https://github.com/pypa/gh-action-pypi-publish
|
|
46
|
+
publish:
|
|
47
|
+
name: Build and publish Python 🐍 distributions 📦 to TestPyPI or PyPI
|
|
48
|
+
needs: [check-semver-tag]
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
|
|
51
|
+
if: ${{ needs.check-semver-tag.outputs.publish_on != '' }}
|
|
52
|
+
|
|
53
|
+
environment:
|
|
54
|
+
name: release
|
|
55
|
+
url: https://github.com/has2k1/plotnine
|
|
56
|
+
|
|
57
|
+
permissions:
|
|
58
|
+
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
|
|
59
|
+
|
|
60
|
+
strategy:
|
|
61
|
+
matrix:
|
|
62
|
+
python-version: ["3.13"]
|
|
63
|
+
|
|
64
|
+
steps:
|
|
65
|
+
- name: Checkout Code
|
|
66
|
+
uses: actions/checkout@v4
|
|
67
|
+
|
|
68
|
+
- name: Install a specific version of uv
|
|
69
|
+
uses: astral-sh/setup-uv@v6
|
|
70
|
+
with:
|
|
71
|
+
python-version: ${{ matrix.python-version }}
|
|
72
|
+
|
|
73
|
+
- name: Install Packages
|
|
74
|
+
run: uv run uv pip install build
|
|
75
|
+
|
|
76
|
+
- name: Build a wheel and a source tarball
|
|
77
|
+
run: make dist
|
|
78
|
+
|
|
79
|
+
- name: Publish distribution 📦 to Test PyPI
|
|
80
|
+
if: ${{ needs.check-semver-tag.outputs.publish_on == 'testpypi' }}
|
|
81
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
82
|
+
with:
|
|
83
|
+
repository-url: https://test.pypi.org/legacy/
|
|
84
|
+
skip-existing: true
|
|
85
|
+
|
|
86
|
+
- name: Publish distribution 📦 to PyPI
|
|
87
|
+
if: ${{ needs.check-semver-tag.outputs.publish_on == 'pypi' }}
|
|
88
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
89
|
+
with:
|
|
90
|
+
skip-existing: true
|
|
91
|
+
|
|
92
|
+
- name: Build Website (Dev)
|
|
93
|
+
if: ${{ needs.check-semver-tag.outputs.publish_on == 'testpypi' }}
|
|
94
|
+
uses: peter-evans/repository-dispatch@v3
|
|
95
|
+
with:
|
|
96
|
+
token: ${{ secrets.PLOTNINE_WEBSITE }}
|
|
97
|
+
repository: has2k1/plotnine.org
|
|
98
|
+
event-type: plotnine-pre-release
|
|
99
|
+
|
|
100
|
+
- name: Build Website
|
|
101
|
+
if: ${{ needs.check-semver-tag.outputs.publish_on == 'pypi' }}
|
|
102
|
+
uses: peter-evans/repository-dispatch@v3
|
|
103
|
+
with:
|
|
104
|
+
token: ${{ secrets.PLOTNINE_WEBSITE }}
|
|
105
|
+
repository: has2k1/plotnine.org
|
|
106
|
+
event-type: plotnine-release
|