DaSPi 2.3.0__tar.gz → 2.3.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.
Files changed (190) hide show
  1. {daspi-2.3.0 → daspi-2.3.2}/PKG-INFO +1 -1
  2. {daspi-2.3.0 → daspi-2.3.2}/daspi/constants.py +358 -38
  3. {daspi-2.3.0 → daspi-2.3.2}/daspi/plotlib/plotter.py +8 -5
  4. {daspi-2.3.0 → daspi-2.3.2}/pyproject.toml +1 -1
  5. daspi-2.3.2/tests/charts/JointChart_pareto_marked.png +0 -0
  6. daspi-2.3.2/tests/charts/MultivariateChart_full-stripes.png +0 -0
  7. daspi-2.3.2/tests/charts/Precasts_gage_study_model_basic.png +0 -0
  8. daspi-2.3.2/tests/charts/Precasts_parameter_relevance_charts_basic.png +0 -0
  9. daspi-2.3.2/tests/charts/Precasts_process-capabity-analysis-charts_hue.png +0 -0
  10. daspi-2.3.2/tests/charts/SingleChart_fitted-density_cdf-multiple.png +0 -0
  11. daspi-2.3.2/tests/charts/SingleChart_fitted-density_pdf-data.png +0 -0
  12. daspi-2.3.2/tests/charts/SingleChart_fitted-density_pdf-norm.png +0 -0
  13. daspi-2.3.2/tests/charts/SingleChart_scatter_simple-stripes-65ci.png +0 -0
  14. daspi-2.3.2/tests/charts/SingleChart_scatter_simple-stripes-99ci.png +0 -0
  15. daspi-2.3.2/tests/charts/SingleChart_scatter_simple-stripes.png +0 -0
  16. {daspi-2.3.0 → daspi-2.3.2}/tests/plotlib_plotter_test.py +1 -1
  17. daspi-2.3.0/tests/charts/JointChart_pareto_marked.png +0 -0
  18. daspi-2.3.0/tests/charts/MultivariateChart_full-stripes.png +0 -0
  19. daspi-2.3.0/tests/charts/Precasts_gage_study_model_basic.png +0 -0
  20. daspi-2.3.0/tests/charts/Precasts_parameter_relevance_charts_basic.png +0 -0
  21. daspi-2.3.0/tests/charts/Precasts_process-capabity-analysis-charts_hue.png +0 -0
  22. daspi-2.3.0/tests/charts/SingleChart_fitted-density_cdf-multiple.png +0 -0
  23. daspi-2.3.0/tests/charts/SingleChart_fitted-density_pdf-data.png +0 -0
  24. daspi-2.3.0/tests/charts/SingleChart_fitted-density_pdf-norm.png +0 -0
  25. daspi-2.3.0/tests/charts/SingleChart_scatter_simple-stripes-65ci.png +0 -0
  26. daspi-2.3.0/tests/charts/SingleChart_scatter_simple-stripes-99ci.png +0 -0
  27. daspi-2.3.0/tests/charts/SingleChart_scatter_simple-stripes.png +0 -0
  28. {daspi-2.3.0 → daspi-2.3.2}/LICENSE +0 -0
  29. {daspi-2.3.0 → daspi-2.3.2}/README.md +0 -0
  30. {daspi-2.3.0 → daspi-2.3.2}/daspi/__init__.py +0 -0
  31. {daspi-2.3.0 → daspi-2.3.2}/daspi/_typing.py +0 -0
  32. {daspi-2.3.0 → daspi-2.3.2}/daspi/_version.py +0 -0
  33. {daspi-2.3.0 → daspi-2.3.2}/daspi/anova/__init__.py +0 -0
  34. {daspi-2.3.0 → daspi-2.3.2}/daspi/anova/convert.py +0 -0
  35. {daspi-2.3.0 → daspi-2.3.2}/daspi/anova/model.py +0 -0
  36. {daspi-2.3.0 → daspi-2.3.2}/daspi/anova/tables.py +0 -0
  37. {daspi-2.3.0 → daspi-2.3.2}/daspi/config.py +0 -0
  38. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/__init__.py +0 -0
  39. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/ancova.csv +0 -0
  40. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/anova.csv +0 -0
  41. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/anova2.csv +0 -0
  42. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/anova2_unbalanced.csv +0 -0
  43. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/anova3.csv +0 -0
  44. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/anova3_unbalanced.csv +0 -0
  45. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/carpet_full-factorial.csv +0 -0
  46. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/covariate.csv +0 -0
  47. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/drop_card.csv +0 -0
  48. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/eeprom_full-factorial.csv +0 -0
  49. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/eeprom_partial-factorial.csv +0 -0
  50. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/grnr_adjustment.csv +0 -0
  51. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/grnr_layer_thickness.csv +0 -0
  52. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/grnr_spc.csv +0 -0
  53. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/iris.csv +0 -0
  54. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/mpg.csv +0 -0
  55. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/painkillers-dissolution.csv +0 -0
  56. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/partial_factorial.csv +0 -0
  57. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/penguins.csv +0 -0
  58. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/process_capability.mpx +0 -0
  59. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/salt_sticks.csv +0 -0
  60. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/shoe-sole.csv +0 -0
  61. {daspi-2.3.0 → daspi-2.3.2}/daspi/datasets/tips.csv +0 -0
  62. {daspi-2.3.0 → daspi-2.3.2}/daspi/doe/__init__.py +0 -0
  63. {daspi-2.3.0 → daspi-2.3.2}/daspi/doe/build.py +0 -0
  64. {daspi-2.3.0 → daspi-2.3.2}/daspi/plotlib/__init__.py +0 -0
  65. {daspi-2.3.0 → daspi-2.3.2}/daspi/plotlib/appearance.py +0 -0
  66. {daspi-2.3.0 → daspi-2.3.2}/daspi/plotlib/chart.py +0 -0
  67. {daspi-2.3.0 → daspi-2.3.2}/daspi/plotlib/classify.py +0 -0
  68. {daspi-2.3.0 → daspi-2.3.2}/daspi/plotlib/facets.py +0 -0
  69. {daspi-2.3.0 → daspi-2.3.2}/daspi/plotlib/precast.py +0 -0
  70. {daspi-2.3.0 → daspi-2.3.2}/daspi/plotlib/styles/daspi-dark.mplstyle +0 -0
  71. {daspi-2.3.0 → daspi-2.3.2}/daspi/plotlib/styles/daspi.mplstyle +0 -0
  72. {daspi-2.3.0 → daspi-2.3.2}/daspi/plotlib/styles/ggplot2.mplstyle +0 -0
  73. {daspi-2.3.0 → daspi-2.3.2}/daspi/plotlib/styles/seaborn.mplstyle +0 -0
  74. {daspi-2.3.0 → daspi-2.3.2}/daspi/requirements.txt +0 -0
  75. {daspi-2.3.0 → daspi-2.3.2}/daspi/statistics/__init__.py +0 -0
  76. {daspi-2.3.0 → daspi-2.3.2}/daspi/statistics/confidence.py +0 -0
  77. {daspi-2.3.0 → daspi-2.3.2}/daspi/statistics/estimation.py +0 -0
  78. {daspi-2.3.0 → daspi-2.3.2}/daspi/statistics/hypothesis.py +0 -0
  79. {daspi-2.3.0 → daspi-2.3.2}/daspi/statistics/montecarlo.py +0 -0
  80. {daspi-2.3.0 → daspi-2.3.2}/daspi/strings.py +0 -0
  81. {daspi-2.3.0 → daspi-2.3.2}/tests/ANOVA_SS_Fehler.mpx +0 -0
  82. {daspi-2.3.0 → daspi-2.3.2}/tests/ANOVA_SS_Fehler.mpx.bak +0 -0
  83. {daspi-2.3.0 → daspi-2.3.2}/tests/GageRnR.mpx +0 -0
  84. {daspi-2.3.0 → daspi-2.3.2}/tests/GageRnR.mpx.bak +0 -0
  85. {daspi-2.3.0 → daspi-2.3.2}/tests/__init__.py +0 -0
  86. {daspi-2.3.0 → daspi-2.3.2}/tests/anova_convert_test.py +0 -0
  87. {daspi-2.3.0 → daspi-2.3.2}/tests/anova_model_test.py +0 -0
  88. {daspi-2.3.0 → daspi-2.3.2}/tests/anova_tables_test.py +0 -0
  89. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Formatting_Features_Test_alignments_basic.png +0 -0
  90. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Formatting_Features_Test_all_alignments.png +0 -0
  91. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Formatting_Features_Test_angles_basic.png +0 -0
  92. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Formatting_Features_Test_callable_formatters.png +0 -0
  93. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Formatting_Features_Test_combined_all_features.png +0 -0
  94. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Formatting_Features_Test_extreme_angles.png +0 -0
  95. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Formatting_Features_Test_formatters_basic.png +0 -0
  96. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Formatting_Features_Test_formatters_scientific.png +0 -0
  97. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Formatting_Features_Test_multivariate_formatting.png +0 -0
  98. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Formatting_Features_Test_orientation_mapping.png +0 -0
  99. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Formatting_Features_Test_percentage_formatter.png +0 -0
  100. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/GaussianKDEContourUnivariate_comparison_with_violin.png +0 -0
  101. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/GaussianKDEContourUnivariate_custom_color.png +0 -0
  102. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/GaussianKDEContourUnivariate_custom_width.png +0 -0
  103. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/GaussianKDEContourUnivariate_joint_chart_mixed_plots.png +0 -0
  104. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/GaussianKDEContourUnivariate_multivariate_chart_facets.png +0 -0
  105. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/GaussianKDEContourUnivariate_resolution_high.png +0 -0
  106. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/GaussianKDEContourUnivariate_single_chart_horizontal.png +0 -0
  107. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/GaussianKDEContourUnivariate_single_chart_no_fade.png +0 -0
  108. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/GaussianKDEContourUnivariate_single_chart_no_fill.png +0 -0
  109. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/GaussianKDEContourUnivariate_single_chart_simple.png +0 -0
  110. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/GaussianKDEContourUnivariate_single_chart_with_hue.png +0 -0
  111. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/JointChart_bar_stacking.png +0 -0
  112. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/JointChart_kdes_kde-mean.png +0 -0
  113. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/JointChart_kdes_mixed-kde.png +0 -0
  114. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/JointChart_probability_dists-prob.png +0 -0
  115. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/JointChart_probability_norm-prob.png +0 -0
  116. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/JointChart_regression_kde.png +0 -0
  117. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/MultivariateChart_full.png +0 -0
  118. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Precasts_bivariate-univariate-charts_contour-mean-test.png +0 -0
  119. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Precasts_bivariate-univariate-charts_mean-test.png +0 -0
  120. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Precasts_bivariate-univariate-charts_simple.png +0 -0
  121. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Precasts_bivariate-univariate-charts_smoothed.png +0 -0
  122. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Precasts_bivariate-univariate-charts_user.png +0 -0
  123. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Precasts_gage_rnr_model_basic.png +0 -0
  124. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Precasts_pair_comparison_charts_basic.png +0 -0
  125. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/Precasts_residual_charts_basic.png +0 -0
  126. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_KDE-cumulative_multiple.png +0 -0
  127. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_KDE-cumulative_simple.png +0 -0
  128. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_KDE_multiple.png +0 -0
  129. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_KDE_ridge.png +0 -0
  130. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_KDE_simple.png +0 -0
  131. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_beeswarm_multiple.png +0 -0
  132. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_beeswarm_simple.png +0 -0
  133. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_blandaltman_simple.png +0 -0
  134. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_blandaltman_user.png +0 -0
  135. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_box_fill.png +0 -0
  136. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_box_multiple.png +0 -0
  137. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_box_simple.png +0 -0
  138. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_categorical-float-features_simple.png +0 -0
  139. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_errorbar_mean-test.png +0 -0
  140. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_errorbar_sem.png +0 -0
  141. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_errorbar_std-test.png +0 -0
  142. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_errorbar_var-test.png +0 -0
  143. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_jitter_multiple.png +0 -0
  144. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_jitter_simple.png +0 -0
  145. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_line_hue.png +0 -0
  146. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_line_hue_size.png +0 -0
  147. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_pareto_simple.png +0 -0
  148. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_pareto_transposed.png +0 -0
  149. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_quantiles_multiple.png +0 -0
  150. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_quantiles_simple.png +0 -0
  151. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_scatter_full.png +0 -0
  152. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_scatter_hue-shape.png +0 -0
  153. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_scatter_hue-size.png +0 -0
  154. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_scatter_hue.png +0 -0
  155. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_scatter_shape.png +0 -0
  156. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_scatter_simple.png +0 -0
  157. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_scatter_size-shape.png +0 -0
  158. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_scatter_size.png +0 -0
  159. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_scatter_transposed.png +0 -0
  160. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_violin_mono.png +0 -0
  161. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_violin_multiple.png +0 -0
  162. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_violin_simple.png +0 -0
  163. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_violine-contour_simple.png +0 -0
  164. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_violine_mono.png +0 -0
  165. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_violine_multiple.png +0 -0
  166. {daspi-2.3.0 → daspi-2.3.2}/tests/charts/SingleChart_violine_simple.png +0 -0
  167. {daspi-2.3.0 → daspi-2.3.2}/tests/config_test.py +0 -0
  168. {daspi-2.3.0 → daspi-2.3.2}/tests/data/anova3_result.csv +0 -0
  169. {daspi-2.3.0 → daspi-2.3.2}/tests/data/dists_10-samples.csv +0 -0
  170. {daspi-2.3.0 → daspi-2.3.2}/tests/data/dists_25-samples.csv +0 -0
  171. {daspi-2.3.0 → daspi-2.3.2}/tests/data/gage_rnr.csv +0 -0
  172. {daspi-2.3.0 → daspi-2.3.2}/tests/data/gage_study.csv +0 -0
  173. {daspi-2.3.0 → daspi-2.3.2}/tests/data/generate_dists.py +0 -0
  174. {daspi-2.3.0 → daspi-2.3.2}/tests/data/grnr_d-optimal.csv +0 -0
  175. {daspi-2.3.0 → daspi-2.3.2}/tests/data/uncertainties.csv +0 -0
  176. {daspi-2.3.0 → daspi-2.3.2}/tests/doe_build_test.py +0 -0
  177. {daspi-2.3.0 → daspi-2.3.2}/tests/plotlib_appearance_test.py +0 -0
  178. {daspi-2.3.0 → daspi-2.3.2}/tests/plotlib_chart_test.py +0 -0
  179. {daspi-2.3.0 → daspi-2.3.2}/tests/plotlib_classify_test.py +0 -0
  180. {daspi-2.3.0 → daspi-2.3.2}/tests/plotlib_facets_test.py +0 -0
  181. {daspi-2.3.0 → daspi-2.3.2}/tests/plotlib_templates_test.py +0 -0
  182. {daspi-2.3.0 → daspi-2.3.2}/tests/plotlib_visual_test.py +0 -0
  183. {daspi-2.3.0 → daspi-2.3.2}/tests/r2_pred.mpx +0 -0
  184. {daspi-2.3.0 → daspi-2.3.2}/tests/r2_pred.mpx.bak +0 -0
  185. {daspi-2.3.0 → daspi-2.3.2}/tests/statistics_confidence_test.py +0 -0
  186. {daspi-2.3.0 → daspi-2.3.2}/tests/statistics_estimation_test.py +0 -0
  187. {daspi-2.3.0 → daspi-2.3.2}/tests/statistics_hypothesis_test.py +0 -0
  188. {daspi-2.3.0 → daspi-2.3.2}/tests/statistics_montecarlo_test.py +0 -0
  189. {daspi-2.3.0 → daspi-2.3.2}/tests/strings_test.py +0 -0
  190. {daspi-2.3.0 → daspi-2.3.2}/tests/test_full_factorial_design_builder.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: DaSPi
3
- Version: 2.3.0
3
+ Version: 2.3.2
4
4
  Summary: Visualize and analyze your data with DaSPi. This package is designed for users who want to find relevant influencing factors in processes and validate improvements.
5
5
  Author-Email: Reto Jäggli <reto@jaeggli.email>
6
6
  License: MIT
@@ -46,21 +46,47 @@ PERCENT_DECIMALS = 2
46
46
 
47
47
  @dataclass(frozen=True)
48
48
  class _Line_:
49
+ """Line style and width constants used throughout the DaSPi library.
50
+ Don't instantiate this class directly. Use the `LINE` constant
51
+ instead."""
52
+
49
53
  WIDTH: float = 1.0
50
54
  """Line width for special lines e.g. StripeLines."""
55
+
51
56
  SOLID: LineStyle = (0, ())
52
57
  """Line style argument for a solid line."""
58
+
53
59
  DOTTED: LineStyle = (0, (2, 2))
54
60
  """Line style argument for a dotted line."""
61
+
55
62
  DASHED: LineStyle = (0, (5, 5))
56
63
  """Line style argument for a dashed line."""
64
+
57
65
  DASHDOT: LineStyle = (0, (8, 5, 2, 5))
58
66
  """Line style argument for a dashed dotted line."""
67
+
59
68
  LINE = _Line_()
69
+ """Line style and width constants used throughout the DaSPi library.
70
+
71
+ Examples
72
+ --------
73
+
74
+ ```python
75
+ import matplotlib.pyplot as plt
76
+ import daspi as dsp
77
+
78
+ plt.plot([0, 1], [0, 1], **dsp.LINE.SOLID)
79
+ ```
80
+ """
60
81
 
61
82
 
62
83
  @dataclass(frozen=True)
63
84
  class _Kw_:
85
+ """Keyword arguments for various plotting elements used throughout
86
+ the DaSPi library.
87
+
88
+ Don't instantiate this class directly. Use the `KW` constant
89
+ instead."""
64
90
 
65
91
  _margin: float = 0.01
66
92
  """Margin between label and figure border."""
@@ -259,80 +285,158 @@ class _Kw_:
259
285
  'alpha': COLOR.MARKER_ALPHA}
260
286
 
261
287
  KW = _Kw_()
288
+ """Keyword arguments for various plotting elements used throughout the
289
+ DaSPi library.
290
+
291
+ Example usage:
292
+
293
+ ```python
294
+ import daspi as dsp
295
+ print(dsp.KW.MEAN_LINE)
296
+ ```
297
+ """
262
298
 
263
299
 
264
300
  @dataclass(frozen=True)
265
301
  class _Regex_:
302
+ """Class containing precompiled regular expression patterns used
303
+ throughout the DaSPi library.
304
+
305
+ Don't instantiate this class directly. Use the `RE` constant
306
+ instead."""
266
307
 
267
308
  ENCODED_NAME: Pattern = re.compile(r'(.+)\[[T.]?.+\]')
268
309
  """Patsy encoded column name."""
310
+
269
311
  ENCODED_VALUE: Pattern = re.compile(r'\[T.(.+)]')
270
312
  """Patsy encoded value shown in parameter name."""
271
313
 
272
314
  RE = _Regex_()
315
+ """Precompiled regular expression patterns used throughout the DaSPi
316
+ library."""
273
317
 
274
318
 
275
319
  @dataclass(frozen=True)
276
320
  class _Color_:
321
+ """Color constants used throughout the DaSPi library.
322
+
323
+ Don't instantiate this class directly. Use the `COLOR` constant
324
+ instead."""
277
325
 
278
326
  GOOD: str = '#2ca02c7f'
279
327
  """Color for things that should be represented as 'good'."""
328
+
280
329
  BAD: str = '#d627287f'
281
330
  """Color for things that should be represented as 'bad'."""
331
+
282
332
  ANOMALY: str = '#ff7f0e7f'
283
333
  """Color for anomalies."""
334
+
284
335
  SPECIAL_LINE: str = "#0e8bff7e"
285
336
  """Color for fitted lines or thresholds in precas charts."""
337
+
286
338
  MEAN: str = '#2F3333'
287
339
  """Color for mean line used for StripesFacets."""
340
+
288
341
  MEDIAN: str = '#626666'
289
342
  """Color for median line used for StripesFacets."""
343
+
290
344
  PERCENTIL: str = '#979A9A'
291
345
  """Color for upper and lower percentil line used for StripesFacets."""
346
+
292
347
  HANDLES: str = '#626666'
293
348
  """Color for size and shape legend handles."""
349
+
294
350
  STRIPE: str = '#CACCCC'
295
351
  """Color for individual stripes."""
352
+
296
353
  TRANSPARENT: str = '#ffffff00'
297
354
  """Transparent 'color' to hide ticks or other stuff."""
355
+
298
356
  BLUR: str = '#ffffffaa'
299
357
  """Color to blur other colors, by adding 2/3 white."""
358
+
300
359
  DARKEN: str = '#00000019'
301
360
  """Color to darken other colors, by adding 10 % black."""
361
+
302
362
  MARKER_ALPHA: float = 0.5
303
363
  """The covering capacity of markers."""
364
+
304
365
  FILL_ALPHA: float = 0.5
305
366
  """The covering capacity of filled areas."""
367
+
306
368
  CI_ALPHA: float = 0.2
307
369
  """The covering capacity of confidence intervals."""
370
+
308
371
  CI_STRIPES: str = '#D7DBDF'
309
372
  """Color for confidence interval stripes."""
373
+
310
374
  SPECIAL_AREA1: str = "#145a5aa0"
311
375
  """Color for special area 1."""
376
+
312
377
  SPECIAL_AREA2: str = "#5a47149f"
313
378
  """Color for special area 2."""
314
379
 
315
380
  @property
316
381
  def PALETTE(self) -> list[str]:
317
- """Get prop cycler color palette."""
382
+ """Color palette from the current matplotlib rcParams property
383
+ cycle."""
318
384
  return plt.rcParams['axes.prop_cycle'].by_key()['color']
319
385
 
320
386
  @property
321
387
  def LIMITS(self) -> tuple[str, str]:
322
- """Color for specification limits."""
388
+ """Color for specification limits. It returns a tuple containing
389
+ the colors for the lower and upper specification limits,
390
+ respectively, and is defined by the constant :attr:`BAD`
391
+ (twice)."""
323
392
  return (self.BAD, self.BAD)
324
393
 
325
394
  @property
326
395
  def STATISTIC_LINES(self) -> tuple[str, str, str]:
327
396
  """Statistic lines color in order lower (Percentil Q_0.99865)
328
- upper (Percentil Q_0.00135) and mean."""
397
+ upper (Percentil Q_0.00135) and mean.
398
+
399
+ It returns a tuple containing the colors for the lower
400
+ percentile line, upper percentile line, and mean line,
401
+ respectively and is defined by the constants :attr:`PERCENTIL`
402
+ and :attr:`MEAN`.
403
+ """
329
404
  return (self.PERCENTIL, self.PERCENTIL, self.MEAN)
330
405
 
331
406
  COLOR = _Color_()
407
+ """Color constants for the plotting library. Used to maintain consistent
408
+ color schemes across different plots.
409
+
410
+ Examples
411
+ --------
412
+ Getting the color palette:
413
+ ```python
414
+ import daspi as dsp
415
+
416
+ print(dsp.COLOR.PALETTE)
417
+ ```
418
+
419
+ Use individual color constants for a Stripe within a plot:
420
+ ```python
421
+ import numpy as np
422
+ import daspi as dsp
423
+
424
+ x = np.array([1, 2, 3, 4, 5]) # Example data for demonstration purposes
425
+ x_bar = np.mean(x)
426
+
427
+ stripe = dsp.StripeLine(
428
+ label=r'\bar x = 'f'{x_bar:.2f}',
429
+ position=x_bar,
430
+ color=dsp.COLOR.SPECIAL_LINE,)
431
+ ```
432
+ """
332
433
 
333
434
 
334
435
  @dataclass(frozen=True)
335
436
  class _Label_:
437
+ """Class containing label-related constants used throughout the
438
+ DaSPi library. Don't instantiate this class directly. Use the
439
+ `LABEL` constant instead."""
336
440
 
337
441
  PPI: float = 1/72
338
442
  """Font size points per inch."""
@@ -340,52 +444,79 @@ class _Label_:
340
444
  """Additional padding in pixels between labels e.g. title and
341
445
  subtitle."""
342
446
  X_ALIGNEMENT: int = 35
343
- """Horizontal alignment of labels (fig title, sub title and info)."""
447
+ """Horizontal alignment of labels (fig title, sub title and info),
448
+ given in pixels from the left figure border."""
344
449
 
345
450
  LABEL = _Label_()
451
+ """Label-related constants used throughout the DaSPi library, such as
452
+ font size conversion, padding between labels and horizontal alignment
453
+ of figure titles."""
346
454
 
347
455
 
348
456
  @dataclass(frozen=True)
349
457
  class _Plotter_:
458
+ """Column name constants used internally by the plotter classes to
459
+ store generated or transformed data (e.g. fitted values, confidence
460
+ intervals, LOWESS results).
461
+
462
+ Don't instantiate this class directly. Use the `PLOTTER` constant
463
+ instead."""
350
464
 
351
465
  FEATURE: Literal['_feature_'] = '_feature_'
352
466
  """Column name for generated features."""
467
+
353
468
  TRANSFORMED_FEATURE: Literal['_transformed_'] = '_transformed_'
354
469
  """Column name for transformed feature if no features were given
355
470
  during initialization."""
471
+
356
472
  F_BASE_NAME: Literal['_base_'] = '_base_'
357
473
  """Column name for the base position of transformed features such
358
474
  as Jitter or KDE."""
475
+
359
476
  LOWER: Literal['_lower_'] = '_lower_'
360
477
  """Column name for lower points used for e.g. error bars."""
478
+
361
479
  UPPER: Literal['_upper_'] = '_upper_'
362
480
  """Column name for upper points used for e.g. error bars."""
481
+
363
482
  FITTED_VALUES: Literal['_fitted_values_'] = '_fitted_values_'
364
483
  """Column name for fitted values."""
484
+
365
485
  FIT_CI_LOW: Literal['_fit_ci_low_'] = '_fit_ci_low_'
366
486
  """Column name for lower confidence of fitted values."""
487
+
367
488
  FIT_CI_UPP: Literal['_fit_ci_upp_'] = '_fit_ci_upp_'
368
489
  """Column name for upper confidence of fitted values."""
490
+
369
491
  PRED_CI_LOW: Literal['_pred_ci_low_'] = '_pred_ci_low_'
370
492
  """Column name for lower confidence of fitted line."""
493
+
371
494
  PRED_CI_UPP: Literal['_pred_ci_upp_'] = '_pred_ci_upp_'
372
495
  """Column name for upper confidence of fitted line."""
496
+
373
497
  LOWESS_TARGET: Literal['lowess_target'] = 'lowess_target'
374
498
  """Column name for lowess target values."""
499
+
375
500
  LOWESS_FEATURE: Literal['lowess_feature'] = 'lowess_feature'
376
501
  """Column name for lowess feature values."""
502
+
377
503
  LOWESS_LOW: Literal['lowess_low'] = 'lowess_low'
378
504
  """Column name for lower confidence of fitted values."""
505
+
379
506
  LOWESS_UPP: Literal['lowess_upp'] = 'lowess_upp'
380
507
  """Column name for upper confidence of fitted values."""
508
+
381
509
  PARETO_N_TICKS: Literal[11] = 11
382
510
  """Number of ticks to represent percentage values in Pareto charts."""
511
+
383
512
  PARETO_AXLIM_FACTOR: float = 1.05
384
513
  """Factor to set the axis limit for the upper value in the Pareto
385
514
  diagram."""
515
+
386
516
  PARETO_F_MARGIN: float = 0.1
387
517
  """Margin in feature axis direction to ensure space for percentage
388
518
  values."""
519
+
389
520
  SUBGROUP: Literal['_subgroup_'] = '_subgroup_'
390
521
  """Column name for subgroups used mostly in TransformPlotter."""
391
522
 
@@ -403,20 +534,31 @@ class _Plotter_:
403
534
  return names
404
535
 
405
536
  PLOTTER = _Plotter_()
537
+ """Column name constants used internally by the plotter classes to
538
+ store generated or transformed data."""
406
539
 
407
540
 
408
541
  @dataclass(frozen=True)
409
542
  class _Category_:
543
+ """Constants used to visually distinguish categorical data (hue,
544
+ size and shape) in plots.
545
+
546
+ Don't instantiate this class directly. Use the `CATEGORY` constant
547
+ instead."""
410
548
 
411
549
  MARKERS: tuple[str, ...] = ('o', 's', '^', 'p', 'D', 'v', 'P', 'X', '*')
412
550
  """Markers for visually easy distinction."""
551
+
413
552
  MARKERSIZE_LIMITS: tuple[int, int] = (1, 13)
414
553
  """Marker size limits used for sizing."""
554
+
415
555
  N_SIZE_BINS: int = 5
416
556
  """Amount of size bins in the legend."""
557
+
417
558
  FEATURE_SPACE: float = 0.8
418
559
  """Space required in the direction of the feature axis to draw
419
560
  categorical artists such as violin or jitter."""
561
+
420
562
  FEATURE_PAD: float = 0.05
421
563
  """Padding between dodget artists."""
422
564
 
@@ -433,29 +575,144 @@ class _Category_:
433
575
  return tuple(COLOR.PALETTE)
434
576
 
435
577
  CATEGORY = _Category_()
578
+ """Constants used to visually distinguish categorical data (hue, size
579
+ and shape) in plots."""
436
580
 
437
581
 
438
582
  @dataclass(frozen=True)
439
583
  class _Distribution_:
584
+ """Groups of Scipy continuous distribution names used for fitting
585
+ and selecting distributions throughout the DaSPi library.
586
+
587
+ Don't instantiate this class directly. Use the `DIST` constant
588
+ instead."""
589
+
590
+ POSSIBLE: tuple[str, ...] = tuple(
591
+ d for d in _distn_names
592
+ if d not in ('levy_stable', 'studentized_range'))
593
+ """Get all possible continuous distributions from Scipy, except
594
+ 'levy_stable' and 'studentized_range'. These distributions are often
595
+ problematic or have special requirements, so they are excluded."""
596
+
597
+ COMMON: tuple[str, ...] = (
598
+ 'norm',
599
+ 'chi2',
600
+ 'foldnorm',
601
+ 'rayleigh',
602
+ 'weibull_min',
603
+ 'gamma',
604
+ 'wald',
605
+ 'expon',
606
+ 'logistic',
607
+ 'lognorm',)
608
+ """Distributions that commonly occur in practice. These are often a
609
+ good starting point for fitting. It includes the following
610
+ distributions:
611
+ - norm
612
+ - chi2
613
+ - foldnorm
614
+ - rayleigh
615
+ - weibull_min
616
+ - gamma
617
+ - wald
618
+ - expon
619
+ - logistic
620
+ - lognorm
621
+ """
440
622
 
441
- _ignore_: tuple[str, ...] = ('levy_stable', 'studentized_range')
623
+ COMMON_NOT_NORM: tuple[str, ...] = tuple(d for d in COMMON if d != 'norm')
624
+ """Get all common distributions but norm, usefull to fit if norm
625
+ tests fail. It includes the following distributions:
626
+ - chi2
627
+ - foldnorm
628
+ - rayleigh
629
+ - weibull_min
630
+ - gamma
631
+ - wald
632
+ - expon
633
+ - logistic
634
+ - lognorm
635
+ """
442
636
 
443
- COMMON: tuple[str, ...] = (
444
- 'norm', 'chi2', 'foldnorm', 'rayleigh', 'weibull_min', 'gamma', 'wald',
445
- 'expon', 'logistic', 'lognorm')
446
- """Get distributions that commonly occur in practice."""
637
+ POSITIVE: tuple[str, ...] = (
638
+ 'chi2',
639
+ 'rayleigh',
640
+ 'expon',
641
+ 'gamma',
642
+ 'weibull_min',
643
+ 'lognorm',
644
+ 'invgauss',)
645
+ """Continuous distributions with support x >= 0. Those are useful
646
+ when modeling quantities that cannot be negative. It includes the
647
+ following distributions:
648
+ - chi2
649
+ - rayleigh
650
+ - expon
651
+ - gamma
652
+ - weibull_min
653
+ - lognorm
654
+ - invgauss
655
+ """
447
656
 
448
- @property
449
- def POSSIBLE(self) -> tuple[str, ...]:
450
- """Get all possible continuous distributions from Scipy, except
451
- 'levy_stable' and 'studentized_range'."""
452
- return tuple(d for d in _distn_names if d not in self._ignore_)
657
+ POSITIVE_SKEWED: tuple[str, ...] = (
658
+ 'expon',
659
+ 'gamma',
660
+ 'weibull_min',
661
+ 'lognorm',
662
+ 'invgauss',
663
+ 'rayleigh',)
664
+ """Common positive and right-skewed distributions. These are often
665
+ used when modeling quantities that are strictly positive and exhibit
666
+ right skewness. It includes the following distributions:
667
+ - expon
668
+ - gamma
669
+ - weibull_min
670
+ - lognorm
671
+ - invgauss
672
+ - rayleigh
673
+ """
453
674
 
454
- @property
455
- def COMMON_NOT_NORM(self) -> tuple[str, ...]:
456
- """Get all common distributions but norm, usefull to fit if norm
457
- tests fail."""
458
- return tuple(d for d in self.COMMON if d != 'norm')
675
+ SYMMETRIC: tuple[str, ...] = (
676
+ 'norm',
677
+ 'logistic',)
678
+ """Common symmetric distributions. These distributions have a
679
+ symmetric shape around their mean. It includes the following
680
+ distributions:
681
+ - norm
682
+ - logistic
683
+ """
684
+
685
+ LIFETIME: tuple[str, ...] = (
686
+ 'expon',
687
+ 'gamma',
688
+ 'weibull_min',
689
+ 'lognorm',
690
+ 'invgauss',)
691
+ """Common lifetime and reliability distributions. These
692
+ distributions are often used to model the time until an event
693
+ occurs, such as failure or death. It includes the following
694
+ distributions:
695
+ - expon
696
+ - gamma
697
+ - weibull_min
698
+ - lognorm
699
+ - invgauss
700
+ """
701
+
702
+ FAST_FIT: tuple[str, ...] = (
703
+ 'norm',
704
+ 'gamma',
705
+ 'weibull_min',
706
+ 'lognorm',)
707
+ """Distributions that are fast to fit and cover surprisingly many
708
+ real datasets. These distributions are typically chosen when a
709
+ balance between computational efficiency and modeling flexibility is
710
+ desired. It includes the following distributions:
711
+ - norm
712
+ - gamma
713
+ - weibull_min
714
+ - lognorm
715
+ """
459
716
 
460
717
  @property
461
718
  def UNCERTAINTY_FACTORS(self) -> dict[str, float]:
@@ -474,31 +731,43 @@ class _Distribution_:
474
731
  -------
475
732
  - https://de.wikipedia.org/wiki/Stetige_Gleichverteilung
476
733
  - https://www.versuchsmethoden.de/Mess-System-Analyse.pdf"""
477
- factors = {
734
+ return {
478
735
  'rectangular': 3**0.5, # ≈ 1.732
479
736
  'triangular': 2.0,
480
737
  'normal': 1.0}
481
- return factors
482
738
 
483
739
  DIST = _Distribution_()
740
+ """Groups of Scipy continuous distribution names used for fitting and
741
+ selecting distributions throughout the DaSPi library."""
484
742
 
485
743
 
486
744
  @dataclass(frozen=True)
487
745
  class _Default_:
746
+ """Default values used throughout the DaSPi library, e.g. confidence
747
+ level, sequence lengths for kernel density estimation and LOWESS,
748
+ and quantile ranges.
749
+
750
+ Don't instantiate this class directly. Use the `DEFAULT` constant
751
+ instead."""
488
752
 
489
753
  CONFIDENCE_LEVEL: float = 0.95
490
754
  """Default confidence level. 95 % confidence interval is used very
491
755
  frequently in practice."""
756
+
492
757
  FEATURE_BASE: Literal[0] = 0
493
758
  """Default feature base position for e.g. Jitter or KDE."""
759
+
494
760
  KD_SEQUENCE_LEN: Literal[300] = 300
495
761
  """Amount of points for kernel density sequence."""
762
+
496
763
  LOWESS_SEQUENCE_LEN: Literal[300] = 300
497
764
  """Amount of points for LOWESS curve."""
765
+
498
766
  PLOTTING_COLOR: str = '#2F3333'
499
767
  """Default color in plots if there is no hueing only used for styles
500
768
  they dont use the regular color palette order (e.g. daspi and
501
769
  ggplot2)."""
770
+
502
771
  QUANTILE_RANGES: tuple[float, float, float] = (0.682, 0.954, 0.997)
503
772
  """Default quantile ranges for the Quantile Plotter.
504
773
 
@@ -528,51 +797,91 @@ class _Default_:
528
797
  return marker
529
798
 
530
799
  DEFAULT = _Default_()
800
+ """Default values used throughout the DaSPi library, e.g. confidence
801
+ level, sequence lengths for kernel density estimation and LOWESS, and
802
+ quantile ranges."""
531
803
 
532
804
 
533
805
  @dataclass(frozen=True)
534
806
  class _Anova_:
807
+ """Column and row names used when building ANOVA, VIF, Gage R&R and
808
+ uncertainty tables throughout the DaSPi library.
809
+
810
+ Don't instantiate this class directly. Use the `ANOVA` constant
811
+ instead."""
535
812
 
536
813
  SEP: Literal[':'] = ':'
537
- """Column name separator for interactions """
814
+ """Separator joining the names of interacting factors into a single
815
+ column name, e.g. 'A:B' for the interaction between factors 'A' and
816
+ 'B'."""
817
+
538
818
  INTERCEPT: str = INTERCEPT.name()
539
- """Column name for intercept"""
819
+ """Column name used by patsy for the intercept term of a linear
820
+ model."""
821
+
540
822
  EFFECTS: Literal['effects'] = 'effects'
541
- """"Default name for effects"""
823
+ """Default column name for the effect names (factors and their
824
+ interactions) in a model's results."""
825
+
542
826
  TARGET: Literal['target'] = 'target'
543
- """"Default name for target used in GageStudyModel."""
827
+ """Default column name for the target (measured) values used in
828
+ `GageStudyModel`."""
829
+
544
830
  FACTORS: Literal['factors'] = 'factors'
545
- """"Default name for factors"""
831
+ """Default column name for the factor values used when building a
832
+ design matrix."""
833
+
546
834
  REFERENCE: Literal['reference'] = 'reference'
547
- """"Default name for reference used in GageStudyModel."""
835
+ """Default column name for the reference (true or nominal) values
836
+ used in `GageStudyModel`."""
837
+
548
838
  SOURCE: Literal['Source'] = 'Source'
549
- """"Default name for source used in ANOVA table."""
839
+ """Default column name for the source of variation (e.g. factor or
840
+ residual name) in an ANOVA table."""
841
+
550
842
  VIF: Literal['VIF'] = 'VIF'
551
- """"Default column name for VIF values in ANOVA table."""
843
+ """Default column name for the Variance Inflation Factor values used
844
+ to detect multicollinearity in an ANOVA table."""
845
+
552
846
  SMALLEST_INTERACTION_ORDER: int = 2
553
- """Smallest possible interaction"""
847
+ """Smallest possible interaction order, i.e. the interaction between
848
+ two factors (A:B)."""
849
+
554
850
  RESIDUAL: Literal['Residual'] = 'Residual'
555
851
  """Name in anova table for residual (not explained) values."""
852
+
556
853
  OBSERVATION: Literal['Observation'] = 'Observation'
557
854
  """Name in residual table for observation order."""
855
+
558
856
  PREDICTION: Literal['Prediction'] = 'Prediction'
559
857
  """Name in residual table for predicted values."""
858
+
560
859
  TOTAL: Literal['Total'] = 'Total'
561
860
  """Name in anova table for total (sum of the others) values."""
861
+
562
862
  PV: Literal['PV'] = 'PV'
563
- """Name in anova table for part values (Part Variation)."""
863
+ """Name in Gage R&R table for Part Variation, i.e. the variation
864
+ coming from differences between the measured parts."""
865
+
564
866
  EV: Literal['EV'] = 'EV'
565
- """Name in anova table for repeatability values
566
- (Equipement Variation)."""
867
+ """Name in Gage R&R table for Equipment Variation (repeatability),
868
+ i.e. the variation coming from the measurement equipment itself."""
869
+
567
870
  AV: Literal['AV'] = 'AV'
568
- """Name in anova table for reproducibility values
569
- (Appraiser Variation)."""
871
+ """Name in Gage R&R table for Appraiser Variation (reproducibility),
872
+ i.e. the variation coming from different appraisers/operators."""
873
+
570
874
  GV: Literal['GV'] = 'GV'
571
- """Name in anova table for Gage Variation."""
875
+ """Name in Gage R&R table for Gage Variation, i.e. the combination of
876
+ `EV` and `AV`."""
877
+
572
878
  IA: Literal['IA'] = 'IA'
573
- """Name in R&R table for interaction values."""
879
+ """Name in R&R table for the interaction between appraiser and part
880
+ values."""
881
+
574
882
  RNR: Literal['R&R'] = 'R&R'
575
- """Name in rnr table for sum of R&R."""
883
+ """Name in R&R table for the total Gage R&R value, i.e. the sum of
884
+ `GV` and `PV`."""
576
885
 
577
886
  @property
578
887
  def TABLE_COLNAMES(self) -> list[str]:
@@ -627,7 +936,10 @@ class _Anova_:
627
936
  """Column names when crating the reference analysis table using
628
937
  the `reference_analysis` method of GageRnRModel."""
629
938
  return ['Ref', 'mean', 'Bias', 's', 'R']
939
+
630
940
  ANOVA = _Anova_()
941
+ """Column and row names used when building ANOVA, VIF, Gage R&R and
942
+ uncertainty tables throughout the DaSPi library."""
631
943
 
632
944
 
633
945
  @dataclass(frozen=True)
@@ -636,14 +948,22 @@ class _DOE_:
636
948
 
637
949
  STD_ORDER: Literal['std_order'] = 'std_order'
638
950
  """Name for standard order in the design space."""
951
+
639
952
  RUN_ORDER: Literal['run_order'] = 'run_order'
640
953
  """Name for run order in the design space."""
954
+
641
955
  CENTRAL_POINT: Literal['central_point'] = 'central_point'
642
956
  """Name for central points in the design space."""
957
+
643
958
  BLOCK: Literal['block'] = 'block'
644
959
  """Name for block in the design space."""
960
+
645
961
  REPLICA: Literal['replica'] = 'replica'
646
962
  """Name for replicate in the design space."""
963
+
647
964
  CORRECTED_CENTRAL: int = 0
648
965
  """Coded value for central points in the design space."""
966
+
649
967
  DOE = _DOE_()
968
+ """Design of Experiments (DOE) constants used for column names and
969
+ coded values in the design space."""