QuasarCode 0.32.9__tar.gz → 0.32.11__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 (122) hide show
  1. {quasarcode-0.32.9 → quasarcode-0.32.11}/PKG-INFO +1 -1
  2. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Plotting/_CachedFigureGrid.py +10 -5
  3. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Plotting/_CachedPlot.py +29 -15
  4. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Plotting/_CachedPlotCustomLegend.py +32 -28
  5. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Plotting/_CachedPlotElements.py +41 -33
  6. quasarcode-0.32.11/src/QuasarCode/__about__.py +1 -0
  7. quasarcode-0.32.9/src/QuasarCode/__about__.py +0 -1
  8. {quasarcode-0.32.9 → quasarcode-0.32.11}/.gitattributes +0 -0
  9. {quasarcode-0.32.9 → quasarcode-0.32.11}/.gitignore +0 -0
  10. {quasarcode-0.32.9 → quasarcode-0.32.11}/.vscode/settings.json +0 -0
  11. {quasarcode-0.32.9 → quasarcode-0.32.11}/LICENSE.txt +0 -0
  12. {quasarcode-0.32.9 → quasarcode-0.32.11}/README.md +0 -0
  13. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/UnitTests_Python.pyproj +0 -0
  14. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/test_QuasarCode.py +0 -0
  15. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/test_edp.py +0 -0
  16. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/test_games.py +0 -0
  17. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/test_io.py +0 -0
  18. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/test_mpi.py +0 -0
  19. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/test_science.py +0 -0
  20. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/test_tools.py +0 -0
  21. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/testconfig.json +0 -0
  22. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/testconfig.properties +0 -0
  23. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/testconfig.yaml +0 -0
  24. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/testconfig_2.yaml +0 -0
  25. {quasarcode-0.32.9 → quasarcode-0.32.11}/old__UnitTests_Python/testingFigure.png +0 -0
  26. {quasarcode-0.32.9 → quasarcode-0.32.11}/pyproject.toml +0 -0
  27. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Data/_AuthorInfomation.py +0 -0
  28. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Data/_PersonInfomation.py +0 -0
  29. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Data/_Rect.py +0 -0
  30. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Data/_Rect3D.py +0 -0
  31. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Data/_VersionInformation.py +0 -0
  32. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Data/__init__.py +0 -0
  33. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Cards/_CardGroup.py +0 -0
  34. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Cards/_CardQueue.py +0 -0
  35. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Cards/_CardStack.py +0 -0
  36. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Cards/_Deck.py +0 -0
  37. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Cards/_IPlayingCard.py +0 -0
  38. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Cards/_PlayingCard.py +0 -0
  39. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Cards/__init__.py +0 -0
  40. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Dice/_Dice12.py +0 -0
  41. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Dice/_Dice6.py +0 -0
  42. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Dice/_Dice8.py +0 -0
  43. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Dice/_DiceCup.py +0 -0
  44. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Dice/_IDice.py +0 -0
  45. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Dice/_NDice.py +0 -0
  46. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Dice/__init__.py +0 -0
  47. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Spinners/_ISpinner.py +0 -0
  48. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Spinners/_Spinner.py +0 -0
  49. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/Spinners/__init__.py +0 -0
  50. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Games/__init__.py +0 -0
  51. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Caching/_CacheTarget.py +0 -0
  52. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Caching/_CacheTargetFactory.py +0 -0
  53. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Caching/_Cacheable.py +0 -0
  54. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Caching/_CacheableList.py +0 -0
  55. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Caching/__init__.py +0 -0
  56. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Checkpointing/_CheckpointBase.py +0 -0
  57. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Checkpointing/_CheckpointController.py +0 -0
  58. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Checkpointing/_CheckpointState.py +0 -0
  59. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Checkpointing/_PickleCheckpoint.py +0 -0
  60. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Checkpointing/__init__.py +0 -0
  61. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Configurations/_ConfigsBase.py +0 -0
  62. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Configurations/__init__.py +0 -0
  63. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Configurations/_json.py +0 -0
  64. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Configurations/_properties.py +0 -0
  65. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Configurations/_yaml.py +0 -0
  66. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Text/__init__.py +0 -0
  67. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Text/_console.py +0 -0
  68. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/Text/_stopwatch.py +0 -0
  69. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/IO/__init__.py +0 -0
  70. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/MPI/_MPI_Config_Base.py +0 -0
  71. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/MPI/__init__.py +0 -0
  72. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/MPI/_dependant_dummy/__init__.py +0 -0
  73. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/MPI/_dependant_dummy/_convinience_methods.py +0 -0
  74. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/MPI/_dependant_mpi/__init__.py +0 -0
  75. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/MPI/_dependant_mpi/_convinience_methods.py +0 -0
  76. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/MPI/_independant_dummy/_mpi_config.py +0 -0
  77. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/MPI/_independant_mpi/_mpi_config.py +0 -0
  78. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Plotting/_Bins.py +0 -0
  79. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Plotting/_CachedFigureGridFactory.py +0 -0
  80. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Plotting/_CachedPlotFactory.py +0 -0
  81. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Plotting/_CachedPlotFontInfo.py +0 -0
  82. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Plotting/_Contour.py +0 -0
  83. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Plotting/_Hexbin.py +0 -0
  84. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Plotting/__init__.py +0 -0
  85. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Science/__init__.py +0 -0
  86. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Science/_hexbin.py +0 -0
  87. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Science/_plotting.py +0 -0
  88. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Science/data.py +0 -0
  89. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Science/figure.py +0 -0
  90. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Science/fitline.py +0 -0
  91. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Science/graph.py +0 -0
  92. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/StringLiterals.py +0 -0
  93. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/Validators.py +0 -0
  94. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_CacheableFunction.py +0 -0
  95. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_Char.py +0 -0
  96. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_ScreenResolution.py +0 -0
  97. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_Struct.py +0 -0
  98. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/__init__.py +0 -0
  99. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_array_visuliser.py +0 -0
  100. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_async.py +0 -0
  101. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_autoproperty.py +0 -0
  102. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_cast.py +0 -0
  103. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_common_casts.py +0 -0
  104. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_directorys_and_imports.py +0 -0
  105. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_edit_locals.py +0 -0
  106. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_multiItterator.py +0 -0
  107. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_networking.py +0 -0
  108. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_script_wrapper.py +0 -0
  109. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_stopwatch.py +0 -0
  110. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/Tools/_typeshield.py +0 -0
  111. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/__init__.py +0 -0
  112. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/_global_settings.py +0 -0
  113. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/edp/_Event.py +0 -0
  114. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/edp/_NotEnoughArgumentsError.py +0 -0
  115. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/edp/_SubscriberNotPresentError.py +0 -0
  116. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/edp/_UndersubscribedEventError.py +0 -0
  117. {quasarcode-0.32.9 → quasarcode-0.32.11}/src/QuasarCode/edp/__init__.py +0 -0
  118. {quasarcode-0.32.9 → quasarcode-0.32.11}/tests/__init__.py +0 -0
  119. {quasarcode-0.32.9 → quasarcode-0.32.11}/tests/test_CachedPlot.py +0 -0
  120. {quasarcode-0.32.9 → quasarcode-0.32.11}/tests/test_ScriptWrapper.py +0 -0
  121. {quasarcode-0.32.9 → quasarcode-0.32.11}/tests/test_array_visuliser.py +0 -0
  122. {quasarcode-0.32.9 → quasarcode-0.32.11}/tests/test_autoproperty.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: QuasarCode
3
- Version: 0.32.9
3
+ Version: 0.32.11
4
4
  Summary: A general purpose library for Python applications.
5
5
  Project-URL: Documentation, https://github.com/QuasarX1/QuasarCode/blob/master/README.md
6
6
  Project-URL: Issues, https://github.com/QuasarX1/QuasarCode/issues
@@ -92,11 +92,16 @@ class CachedFigureGrid(CacheableStruct):
92
92
  self.rows = len(self.mosaic)
93
93
  self.columns = max(len(row) for row in self.mosaic)
94
94
 
95
- self.plots = {}
96
- self.colourbars = {}
97
- self.custom_legends = {}
98
- self.default_font = CachedPlotFontInfo()
99
- self.title_font = CachedPlotFontInfo()
95
+ if "plots" not in kwargs:
96
+ self.plots = {}
97
+ if "colourbars" not in kwargs:
98
+ self.colourbars = {}
99
+ if "custom_legends" not in kwargs:
100
+ self.custom_legends = {}
101
+ if "default_font" not in kwargs:
102
+ self.default_font = CachedPlotFontInfo()
103
+ if "title_font" not in kwargs:
104
+ self.title_font = CachedPlotFontInfo()
100
105
 
101
106
  def set_resolution_custom(self, width_pixels: int|None = None, height_pixels: int|None = None, file_only: bool = False) -> None:
102
107
  """
@@ -82,19 +82,33 @@ class CachedPlot(CacheableStruct):
82
82
  ),
83
83
  **kwargs
84
84
  )
85
- self.plot_elements = {}
86
- self.colourbars = {}
87
- self.custom_legends = {}
88
- self.default_font = CachedPlotFontInfo()
89
- self.title_font = CachedPlotFontInfo()
90
- self.x_axis_label_font = CachedPlotFontInfo()
91
- self.y_axis_label_font = CachedPlotFontInfo()
92
- self.alt_x_axis_label_font = CachedPlotFontInfo()
93
- self.alt_y_axis_label_font = CachedPlotFontInfo()
94
- self.x_tick_label_font = CachedPlotFontInfo()
95
- self.y_tick_label_font = CachedPlotFontInfo()
96
- self.alt_x_tick_label_font = CachedPlotFontInfo()
97
- self.alt_y_tick_label_font = CachedPlotFontInfo()
85
+
86
+ if "plot_elements" not in kwargs:
87
+ self.plot_elements = {}
88
+ if "colourbars" not in kwargs:
89
+ self.colourbars = {}
90
+ if "custom_legends" not in kwargs:
91
+ self.custom_legends = {}
92
+ if "default_font" not in kwargs:
93
+ self.default_font = CachedPlotFontInfo()
94
+ if "title_font" not in kwargs:
95
+ self.title_font = CachedPlotFontInfo()
96
+ if "x_axis_label_font" not in kwargs:
97
+ self.x_axis_label_font = CachedPlotFontInfo()
98
+ if "y_axis_label_font" not in kwargs:
99
+ self.y_axis_label_font = CachedPlotFontInfo()
100
+ if "alt_x_axis_label_font" not in kwargs:
101
+ self.alt_x_axis_label_font = CachedPlotFontInfo()
102
+ if "alt_y_axis_label_font" not in kwargs:
103
+ self.alt_y_axis_label_font = CachedPlotFontInfo()
104
+ if "x_tick_label_font" not in kwargs:
105
+ self.x_tick_label_font = CachedPlotFontInfo()
106
+ if "y_tick_label_font" not in kwargs:
107
+ self.y_tick_label_font = CachedPlotFontInfo()
108
+ if "alt_x_tick_label_font" not in kwargs:
109
+ self.alt_x_tick_label_font = CachedPlotFontInfo()
110
+ if "alt_y_tick_label_font" not in kwargs:
111
+ self.alt_y_tick_label_font = CachedPlotFontInfo()
98
112
 
99
113
  def __check_element_name_is_new(self, name: str) -> bool:
100
114
  return name not in self.plot_elements
@@ -180,7 +194,7 @@ class CachedPlot(CacheableStruct):
180
194
  functions = tuple(self.alt_x_axis_functions)
181
195
  )
182
196
  if self.alt_x_axis_label is not None:
183
- self._alt_x_axis.set_xlabel(self.alt_x_axis_label, **self.alt_x_axis_label_font.with_default(self.default_font).with_default(figure_default_font).fontdict)
197
+ self._alt_x_axis.set_xlabel(self.alt_x_axis_label, **self.alt_x_axis_label_font.with_default(self.x_axis_label_font).with_default(self.default_font).with_default(figure_default_font).fontdict)
184
198
  alt_x_tick_label_font = self.alt_x_tick_label_font.with_default(self.x_tick_label_font).with_default(self.default_font).with_default(figure_default_font)
185
199
  alt_x_tick_label_font_kwargs = {}
186
200
  if alt_x_tick_label_font.size is not None:
@@ -203,7 +217,7 @@ class CachedPlot(CacheableStruct):
203
217
  functions = tuple(self.alt_y_axis_functions)
204
218
  )
205
219
  if self.alt_y_axis_label is not None:
206
- self._alt_y_axis.set_xlabel(self.alt_y_axis_label, **self.alt_y_axis_label_font.with_default(self.default_font).with_default(figure_default_font).fontdict)
220
+ self._alt_y_axis.set_xlabel(self.alt_y_axis_label, **self.alt_y_axis_label_font.with_default(self.y_axis_label_font).with_default(self.default_font).with_default(figure_default_font).fontdict)
207
221
  alt_y_tick_label_font = self.alt_y_tick_label_font.with_default(self.y_tick_label_font).with_default(self.default_font).with_default(figure_default_font)
208
222
  alt_y_tick_label_font_kwargs = {}
209
223
  if alt_y_tick_label_font.size is not None:
@@ -27,33 +27,33 @@ class CachedPlotLegendBoxProperties(CacheableStruct):
27
27
  )
28
28
 
29
29
  class CachedPlotCustomLegend(CacheableStruct):
30
- title = AutoProperty [str ](allow_uninitialised = True)
31
- element_targets = AutoProperty_NonNullable[dict[str,str|tuple[str,str]] ]() # Label : target element | (target plot, target element)
32
- reverse_order = AutoProperty_NonNullable[bool ](default_value = False)
33
- columns = AutoProperty_NonNullable[int ](default_value = 1)
34
- position = AutoProperty_NonNullable[Literal["best", "upper left", "upper center", "upper right", "center left", "center", "center right", "lower left", "lower center", "lower right"]|tuple[float, float]](default_value = "best")
35
- anchor_region = AutoProperty [Rect ](allow_uninitialised = True) # Max. one of these \/ can be set
36
- anchor = AutoProperty [tuple[int,int] ](allow_uninitialised = True) # Max. one of these /\ can be set
37
- anchor_space = AutoProperty [Literal["figure-space", "axis-space", "axis-data-space"]](allow_uninitialised = True)
38
- label_font = AutoProperty_NonNullable[CachedPlotFontInfo ]()
39
- label_colours = AutoProperty [str|Literal["linecolor", "markerfacecolor", "markeredgecolor"]|list[str|Literal["linecolor", "markerfacecolor", "markeredgecolor"]]](allow_uninitialised = True)
40
- title_font = AutoProperty_NonNullable[CachedPlotFontInfo ]()
41
- alignment = AutoProperty_NonNullable[Literal["left", "center", "right"]](default_value = "center")
30
+ title = AutoProperty [str ](allow_uninitialised = True)
31
+ element_targets = AutoProperty_NonNullable[dict[str,str|tuple[str,str]] ]() # Label : target element | (target plot, target element)
32
+ reverse_order = AutoProperty_NonNullable[bool ](default_value = False)
33
+ columns = AutoProperty_NonNullable[int ](default_value = 1)
34
+ position = AutoProperty_NonNullable[Literal["best", "upper left", "upper center", "upper right", "center left", "center", "center right", "lower left", "lower center", "lower right"]|tuple[float, float]](default_value = "best")
35
+ anchor_region = AutoProperty [Rect ](allow_uninitialised = True) # Max. one of these \/ can be set
36
+ anchor = AutoProperty [tuple[int,int] ](allow_uninitialised = True) # Max. one of these /\ can be set
37
+ anchor_space = AutoProperty [Literal["figure-space", "axis-space", "axis-data-space"]](allow_uninitialised = True)
38
+ label_font = AutoProperty_NonNullable[CachedPlotFontInfo ]()
39
+ label_colours = AutoProperty [str|Literal["linecolor", "markerfacecolor", "markeredgecolor"]|list[str|Literal["linecolor", "markerfacecolor", "markeredgecolor"]]](allow_uninitialised = True)
40
+ title_font = AutoProperty_NonNullable[CachedPlotFontInfo ]()
41
+ alignment = AutoProperty_NonNullable[Literal["left", "center", "right"]](default_value = "center")
42
42
 
43
- line_render_points = AutoProperty [int ](allow_uninitialised = True)
44
- scatter_render_points = AutoProperty [int ](allow_uninitialised = True)
43
+ line_render_points = AutoProperty [int ](allow_uninitialised = True)
44
+ scatter_render_points = AutoProperty [int ](allow_uninitialised = True)
45
45
  scatter_render_points_y_offsets = AutoProperty_NonNullable[list[float] ](default_value = [0.375, 0.5, 0.3125]) # Relative to the font height (0 -> 1)
46
- marker_scale = AutoProperty [float ](allow_uninitialised = True)
47
- marker_location = AutoProperty_NonNullable[Literal["left", "right"] ](default_value = "left")
48
- vertical_spacing = AutoProperty [float ](allow_uninitialised = True) # in units of font-size
49
- horizontal_spacing = AutoProperty [float ](allow_uninitialised = True) # in units of font-size
50
- handle_length = AutoProperty [float ](allow_uninitialised = True) # in units of font-size
51
- handle_height = AutoProperty [float ](allow_uninitialised = True) # in units of font-size
52
- handle_text_space = AutoProperty [float ](allow_uninitialised = True) # in units of font-size
46
+ marker_scale = AutoProperty [float ](allow_uninitialised = True)
47
+ marker_location = AutoProperty_NonNullable[Literal["left", "right"] ](default_value = "left")
48
+ vertical_spacing = AutoProperty [float ](allow_uninitialised = True) # in units of font-size
49
+ horizontal_spacing = AutoProperty [float ](allow_uninitialised = True) # in units of font-size
50
+ handle_length = AutoProperty [float ](allow_uninitialised = True) # in units of font-size
51
+ handle_height = AutoProperty [float ](allow_uninitialised = True) # in units of font-size
52
+ handle_text_space = AutoProperty [float ](allow_uninitialised = True) # in units of font-size
53
53
 
54
- box = AutoProperty_NonNullable[CachedPlotLegendBoxProperties]()
55
- expand_into_horizontal_space = AutoProperty_NonNullable[bool ](default_value = False)
56
- mouse_draggable = AutoProperty_NonNullable[bool ](default_value = False)
54
+ box = AutoProperty_NonNullable[CachedPlotLegendBoxProperties]()
55
+ expand_into_horizontal_space = AutoProperty_NonNullable[bool ](default_value = False)
56
+ mouse_draggable = AutoProperty_NonNullable[bool ](default_value = False)
57
57
 
58
58
  def __init__(self, **kwargs):
59
59
  super().__init__(
@@ -67,10 +67,14 @@ class CachedPlotCustomLegend(CacheableStruct):
67
67
  ],
68
68
  **kwargs
69
69
  )
70
- self.element_targets = {}
71
- self.label_font = CachedPlotFontInfo()
72
- self.title_font = CachedPlotFontInfo()
73
- self.box = CachedPlotLegendBoxProperties()
70
+ if "element_targets" not in kwargs:
71
+ self.element_targets = {}
72
+ if "label_font" not in kwargs:
73
+ self.label_font = CachedPlotFontInfo()
74
+ if "title_font" not in kwargs:
75
+ self.title_font = CachedPlotFontInfo()
76
+ if "box" not in kwargs:
77
+ self.box = CachedPlotLegendBoxProperties()
74
78
 
75
79
  def render(self, figure: Figure, axis: Axes|None, default_font: CachedPlotFontInfo, plot_elements: Optional[dict[str, CachedPlotElement]] = None, elements_by_figure_plot: Optional[dict[str, dict[str, CachedPlotElement]]] = None, *args: Any, **kwargs: Any) -> None:
76
80
 
@@ -220,9 +220,12 @@ class CachedPlotColourbar(CachedPlotElement[Colorbar]):
220
220
  tick_label_font = AutoProperty_NonNullable[CachedPlotFontInfo]()
221
221
  def __init__(self, **kwargs):
222
222
  super().__init__("target_element", "target_plot", "label", "add_to_axis", "location", "orientation", "extend", "default_font", "label_font", "tick_label_font", **kwargs)
223
- self.default_font = CachedPlotFontInfo()
224
- self.label_font = CachedPlotFontInfo()
225
- self.tick_label_font = CachedPlotFontInfo()
223
+ if "default_font" not in kwargs:
224
+ self.default_font = CachedPlotFontInfo()
225
+ if "label_font" not in kwargs:
226
+ self.label_font = CachedPlotFontInfo()
227
+ if "tick_label_font" not in kwargs:
228
+ self.tick_label_font = CachedPlotFontInfo()
226
229
  def render(self, figure: Figure, axis: Axes, target: ScalarMappable|ColorizingArtist, default_font: CachedPlotFontInfo, *args: Any, **kwargs: Any) -> None:
227
230
  """
228
231
  Render the element on the given figure and axis, using the target element.
@@ -273,10 +276,9 @@ class CachedPlotContour(CachedPlotElement[QuadContourSet]):
273
276
  labeled_level_indexes = AutoProperty [Sequence[int] ](allow_uninitialised = True)
274
277
  label_positions = AutoProperty [Sequence[tuple[float, float]]](allow_uninitialised = True)
275
278
  label_format = AutoProperty [CacheableFunction ](allow_uninitialised = True)
276
- font = AutoProperty_NonNullable[CachedPlotFontInfo]()
279
+ fontsize = AutoProperty[float|Literal["xx-small","x-small","small","medium","large","x-large","xx-large"]](allow_uninitialised = True) # Matplotlib default is 10.0
277
280
  def __init__(self, **kwargs):
278
- self.font = CachedPlotFontInfo()
279
- super().__init__("x", "y", "extent", "z", "levels", "linewidths", "linestyles", "alpha_values", "colours", "labeled_level_indexes", "label_positions", "label_format", "font", **kwargs)
281
+ super().__init__("x", "y", "extent", "z", "levels", "linewidths", "linestyles", "alpha_values", "colours", "labeled_level_indexes", "label_positions", "label_format", "fontsize", **kwargs)
280
282
  def render(self, figure: Figure, axis: Axes, default_font: CachedPlotFontInfo, *args: Any, **kwargs: Any) -> None:
281
283
  if sum([self.x is not None, self.y is not None]) == 1:
282
284
  raise ValueError("Both x and y must be provided together or not at all.")
@@ -296,13 +298,16 @@ class CachedPlotContour(CachedPlotElement[QuadContourSet]):
296
298
  )
297
299
  if self.labeled_level_indexes is not None:
298
300
  labelled_levels = [self._result.levels[i] for i in self.labeled_level_indexes]
301
+ font_kwargs = {}
302
+ if self.fontsize is not None:
303
+ font_kwargs["fontsize"] = self.fontsize
299
304
  axis.clabel(
300
- CS = self._result,
301
- levels = labelled_levels,
302
- fmt = [self.label_format(level) for level in labelled_levels] if self.label_format is not None else None,
303
- inline = 1,
304
- manual = self.label_positions,
305
- **self.font.with_default(default_font).fontdict,
305
+ CS = self._result,
306
+ levels = labelled_levels,
307
+ fmt = [self.label_format(level) for level in labelled_levels] if self.label_format is not None else None,
308
+ inline = 1,
309
+ manual = self.label_positions,
310
+ **font_kwargs,
306
311
  )
307
312
  @staticmethod
308
313
  def from_contours(contours: QuadContourSet, x: np.ndarray[tuple[int], np.dtype[np.floating]], y: np.ndarray[tuple[int], np.dtype[np.floating]], z: np.ndarray[tuple[int], np.dtype[np.floating]], uses_single_colour_value: bool = False) -> "CachedPlotContour":
@@ -356,19 +361,21 @@ class CachedPlotText(CachedPlotElement[Text]):
356
361
  x = AutoProperty_NonNullable[np.ndarray[tuple[int], np.dtype[np.floating]]]()
357
362
  y = AutoProperty_NonNullable[np.ndarray[tuple[int], np.dtype[np.floating]]]()
358
363
  font = AutoProperty_NonNullable[CachedPlotFontInfo ]()
359
- colour = AutoProperty [ColorType ]()
364
+ # colour = AutoProperty [ColorType ]()
360
365
  alpha = AutoProperty_NonNullable[float ](default_value = 1.0)
361
366
  box_colour = AutoProperty [ColorType ](allow_uninitialised = True)
362
367
  border_colour = AutoProperty [ColorType ](allow_uninitialised = True)
363
368
  def __init__(self, **kwargs):
364
369
  super().__init__("text", "x", "y", "font", "alpha", "box_colour", "border_colour", **kwargs)
365
- self.font = CachedPlotFontInfo()
370
+ if "font" not in kwargs:
371
+ self.font = CachedPlotFontInfo()
366
372
  def render(self, figure: Figure, axis: Axes, default_font: CachedPlotFontInfo, *args: Any, **kwargs: Any) -> None:
367
373
  self._result = axis.text(
368
374
  x = self.x,
369
375
  y = self.y,
370
376
  s = self.text,
371
377
  **self.font.with_default(default_font).fontdict,
378
+ color = self.font.colour,
372
379
  alpha = self.alpha,
373
380
  bbox = dict(facecolor = self.box_colour, edgecolor = self.border_colour) if (self.box_colour is not None or self.border_colour is not None) else None,
374
381
  **kwargs,
@@ -387,28 +394,29 @@ class CachedPlotText(CachedPlotElement[Text]):
387
394
  )
388
395
 
389
396
  class CachedPlotPie(CachedPlotElement[tuple[list[Wedge], list[Text]] | tuple[list[Wedge], list[Text], list[Text]]]):
390
- values = AutoProperty_NonNullable[Sequence[float]|Sequence[str]]()
391
- colours = AutoProperty_NonNullable[Sequence[ColorType]|Sequence[str]]()
392
- texture = AutoProperty_NonNullable[Sequence[Literal["/","\\","|","-","+", "x", "o", "O", ".", "*"]]]()
393
- shadow = AutoProperty_NonNullable[bool](default_value = False)
394
- labels = AutoProperty_NonNullable[Sequence[str]]()
395
- label_distance = AutoProperty[float](default_value = 1.1, allow_uninitialised = True)
396
- rotate_labels = AutoProperty_NonNullable[bool](default_value = False)
397
- percentage_format = AutoProperty[str|CacheableFunction](allow_uninitialised = True)
398
- percentage_distance = AutoProperty_NonNullable[float](default_value = 0.6)
399
- centre = AutoProperty_NonNullable[tuple[float,float]](default_value = (0, 0))
400
- radius = AutoProperty_NonNullable[float](default_value = 1.0)
401
- start_angle = AutoProperty_NonNullable[float](default_value = 0.0)
397
+ values = AutoProperty_NonNullable[Sequence[float]|Sequence[str] ]()
398
+ colours = AutoProperty [Sequence[ColorType]|Sequence[str] ](allow_uninitialised = True)
399
+ texture = AutoProperty [Sequence[Literal["", "/","\\","|","-","+", "x", "o", "O", ".", "*"]|str]|str](allow_uninitialised = True)
400
+ shadow = AutoProperty_NonNullable[bool ](default_value = False)
401
+ labels = AutoProperty [Sequence[str] ](allow_uninitialised = True)
402
+ label_distance = AutoProperty [float ](default_value = 1.1, allow_uninitialised = True)
403
+ rotate_labels = AutoProperty_NonNullable[bool ](default_value = False)
404
+ percentage_format = AutoProperty [str|CacheableFunction ](allow_uninitialised = True)
405
+ percentage_distance = AutoProperty_NonNullable[float ](default_value = 0.6)
406
+ centre = AutoProperty_NonNullable[tuple[float,float] ](default_value = (0, 0))
407
+ radius = AutoProperty_NonNullable[float ](default_value = 1.0)
408
+ start_angle = AutoProperty_NonNullable[float ](default_value = 0.0)
402
409
  segment_rotation = AutoProperty_NonNullable[Literal["clockwise", "anticlockwise"]](default_value = "anticlockwise")
403
- wedge_properties = AutoProperty[dict](allow_uninitialised = True)
404
- explode_distance = AutoProperty[Sequence[float]|Sequence[str]](allow_uninitialised = True)
405
- font = AutoProperty_NonNullable[CachedPlotFontInfo]()
406
- hide_axes = AutoProperty_NonNullable[bool](default_value = True)
407
- ensure_complete_pie = AutoProperty_NonNullable[bool](default_value = True)
408
- labled_data = AutoProperty[dict](allow_uninitialised = True)
410
+ wedge_properties = AutoProperty [dict ](allow_uninitialised = True)
411
+ explode_distance = AutoProperty [Sequence[float]|Sequence[str] ](allow_uninitialised = True)
412
+ font = AutoProperty_NonNullable[CachedPlotFontInfo ]()
413
+ hide_axes = AutoProperty_NonNullable[bool ](default_value = True)
414
+ ensure_complete_pie = AutoProperty_NonNullable[bool ](default_value = True)
415
+ labled_data = AutoProperty [dict ](allow_uninitialised = True)
409
416
  def __init__(self, **kwargs):
410
417
  super().__init__("values", "colours", "texture", "shadow", "labels", "label_distance", "rotate_labels", "percentage_format", "percentage_distance", "centre", "radius", "start_angle", "segment_rotation", "wedge_properties", "explode_distance", "font", "hide_axes", "ensure_complete_pie", "labled_data", **kwargs)
411
- self.font = CachedPlotFontInfo()
418
+ if "font" not in kwargs:
419
+ self.font = CachedPlotFontInfo()
412
420
  def render(self, figure: Figure, axis: Axes, default_font: CachedPlotFontInfo, *args: Any, **kwargs: Any):
413
421
  if not self.ensure_complete_pie and sum(self.values) > 1:
414
422
  raise ValueError("The sum of the values must not exceed 1 when ensure_complete_pie is False.")
@@ -0,0 +1 @@
1
+ __version__ = "0.32.11"
@@ -1 +0,0 @@
1
- __version__ = "0.32.9"
File without changes
File without changes
File without changes
File without changes
File without changes