densitty 0.8.2__tar.gz → 0.9.0__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 (857) hide show
  1. densitty-0.9.0/.github/workflows/checks.yml +40 -0
  2. densitty-0.9.0/.github/workflows/periodic.yml +42 -0
  3. densitty-0.9.0/.github/workflows/tests.yml +43 -0
  4. densitty-0.9.0/Makefile +70 -0
  5. densitty-0.9.0/PKG-INFO +39 -0
  6. densitty-0.9.0/README.md +14 -0
  7. densitty-0.9.0/densitty/axis.py +402 -0
  8. densitty-0.9.0/densitty/binning.py +311 -0
  9. densitty-0.9.0/densitty/detect.py +525 -0
  10. densitty-0.9.0/densitty/plot.py +209 -0
  11. densitty-0.9.0/densitty/smoothing.py +317 -0
  12. densitty-0.9.0/densitty/truecolor.py +171 -0
  13. densitty-0.9.0/densitty/util.py +236 -0
  14. densitty-0.9.0/densitty/util.pyi +37 -0
  15. densitty-0.9.0/densitty.egg-info/PKG-INFO +39 -0
  16. densitty-0.9.0/densitty.egg-info/SOURCES.txt +651 -0
  17. densitty-0.9.0/docs/16-colors.png +0 -0
  18. densitty-0.9.0/docs/256-colors.png +0 -0
  19. densitty-0.9.0/docs/FAQ.md +12 -0
  20. densitty-0.9.0/docs/api.md +213 -0
  21. densitty-0.9.0/docs/ascii-art.png +0 -0
  22. densitty-0.9.0/docs/rgb-colors.png +0 -0
  23. densitty-0.9.0/examples/colormaps.py +66 -0
  24. densitty-0.9.0/pyproject.toml +62 -0
  25. densitty-0.9.0/tests/axis_tests.py +243 -0
  26. densitty-0.9.0/tests/color_tests.py +132 -0
  27. densitty-0.9.0/tests/golden.py +45 -0
  28. densitty-0.9.0/tests/golden_diff.py +192 -0
  29. densitty-0.9.0/tests/goldens/ansi.FADE_IN_16 +1 -0
  30. densitty-0.9.0/tests/goldens/ansi.FADE_IN_16_halfheight +1 -0
  31. densitty-0.9.0/tests/goldens/merge_chars +1 -0
  32. densitty-0.9.0/tests/goldens/merge_lines +1 -0
  33. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-False-False-False-False +1 -0
  34. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-False-False-False-True +1 -0
  35. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-False-False-True-False +1 -0
  36. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-False-False-True-True +1 -0
  37. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-False-True-False-False +1 -0
  38. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-False-True-False-True +1 -0
  39. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-False-True-True-False +1 -0
  40. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-False-True-True-True +1 -0
  41. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-True-False-False-False +1 -0
  42. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-True-False-False-True +1 -0
  43. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-True-False-True-False +1 -0
  44. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-True-False-True-True +1 -0
  45. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-True-True-False-False +1 -0
  46. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-True-True-False-True +1 -0
  47. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-True-True-True-False +1 -0
  48. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0)-ext-True-True-True-True +1 -0
  49. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-False-False-False-False +1 -0
  50. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-False-False-False-True +1 -0
  51. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-False-False-True-False +1 -0
  52. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-False-False-True-True +1 -0
  53. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-False-True-False-False +1 -0
  54. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-False-True-False-True +1 -0
  55. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-False-True-True-False +1 -0
  56. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-False-True-True-True +1 -0
  57. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-True-False-False-False +1 -0
  58. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-True-False-False-True +1 -0
  59. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-True-False-True-False +1 -0
  60. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-True-False-True-True +1 -0
  61. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-True-True-False-False +1 -0
  62. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-True-True-False-True +1 -0
  63. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-True-True-True-False +1 -0
  64. densitty-0.9.0/tests/goldens/test_axes-False-(-1-0.100000000)-ext-True-True-True-True +1 -0
  65. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-False-False-False-False +1 -0
  66. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-False-False-False-True +1 -0
  67. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-False-False-True-False +1 -0
  68. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-False-False-True-True +1 -0
  69. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-False-True-False-False +1 -0
  70. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-False-True-False-True +1 -0
  71. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-False-True-True-False +1 -0
  72. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-False-True-True-True +1 -0
  73. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-True-False-False-False +1 -0
  74. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-True-False-False-True +1 -0
  75. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-True-False-True-False +1 -0
  76. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-True-False-True-True +1 -0
  77. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-True-True-False-False +1 -0
  78. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-True-True-False-True +1 -0
  79. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-True-True-True-False +1 -0
  80. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1)-ext-True-True-True-True +1 -0
  81. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-False-False-False-False +1 -0
  82. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-False-False-False-True +1 -0
  83. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-False-False-True-False +1 -0
  84. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-False-False-True-True +1 -0
  85. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-False-True-False-False +1 -0
  86. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-False-True-False-True +1 -0
  87. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-False-True-True-False +1 -0
  88. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-False-True-True-True +1 -0
  89. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-True-False-False-False +1 -0
  90. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-True-False-False-True +1 -0
  91. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-True-False-True-False +1 -0
  92. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-True-False-True-True +1 -0
  93. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-True-True-False-False +1 -0
  94. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-True-True-False-True +1 -0
  95. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-True-True-True-False +1 -0
  96. densitty-0.9.0/tests/goldens/test_axes-False-(-1-1.5)-ext-True-True-True-True +1 -0
  97. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-False-False-False-False +1 -0
  98. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-False-False-False-True +1 -0
  99. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-False-False-True-False +1 -0
  100. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-False-False-True-True +1 -0
  101. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-False-True-False-False +1 -0
  102. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-False-True-False-True +1 -0
  103. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-False-True-True-False +1 -0
  104. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-False-True-True-True +1 -0
  105. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-True-False-False-False +1 -0
  106. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-True-False-False-True +1 -0
  107. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-True-False-True-False +1 -0
  108. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-True-False-True-True +1 -0
  109. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-True-True-False-False +1 -0
  110. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-True-True-False-True +1 -0
  111. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-True-True-True-False +1 -0
  112. densitty-0.9.0/tests/goldens/test_axes-False-(-1-10)-ext-True-True-True-True +1 -0
  113. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-False-False-False-False +1 -0
  114. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-False-False-False-True +1 -0
  115. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-False-False-True-False +1 -0
  116. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-False-False-True-True +1 -0
  117. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-False-True-False-False +1 -0
  118. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-False-True-False-True +1 -0
  119. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-False-True-True-False +1 -0
  120. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-False-True-True-True +1 -0
  121. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-True-False-False-False +1 -0
  122. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-True-False-False-True +1 -0
  123. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-True-False-True-False +1 -0
  124. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-True-False-True-True +1 -0
  125. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-True-True-False-False +1 -0
  126. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-True-True-False-True +1 -0
  127. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-True-True-True-False +1 -0
  128. densitty-0.9.0/tests/goldens/test_axes-False-(-1-2)-ext-True-True-True-True +1 -0
  129. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-False-False-False-False +1 -0
  130. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-False-False-False-True +1 -0
  131. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-False-False-True-False +1 -0
  132. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-False-False-True-True +1 -0
  133. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-False-True-False-False +1 -0
  134. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-False-True-False-True +1 -0
  135. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-False-True-True-False +1 -0
  136. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-False-True-True-True +1 -0
  137. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-True-False-False-False +1 -0
  138. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-True-False-False-True +1 -0
  139. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-True-False-True-False +1 -0
  140. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-True-False-True-True +1 -0
  141. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-True-True-False-False +1 -0
  142. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-True-True-False-True +1 -0
  143. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-True-True-True-False +1 -0
  144. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0)-ext-True-True-True-True +1 -0
  145. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-False-False-False-False +1 -0
  146. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-False-False-False-True +1 -0
  147. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-False-False-True-False +1 -0
  148. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-False-False-True-True +1 -0
  149. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-False-True-False-False +1 -0
  150. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-False-True-False-True +1 -0
  151. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-False-True-True-False +1 -0
  152. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-False-True-True-True +1 -0
  153. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-True-False-False-False +1 -0
  154. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-True-False-False-True +1 -0
  155. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-True-False-True-False +1 -0
  156. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-True-False-True-True +1 -0
  157. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-True-True-False-False +1 -0
  158. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-True-True-False-True +1 -0
  159. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-True-True-True-False +1 -0
  160. densitty-0.9.0/tests/goldens/test_axes-True-(-1-0.100000000)-ext-True-True-True-True +1 -0
  161. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-False-False-False-False +1 -0
  162. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-False-False-False-True +1 -0
  163. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-False-False-True-False +1 -0
  164. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-False-False-True-True +1 -0
  165. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-False-True-False-False +1 -0
  166. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-False-True-False-True +1 -0
  167. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-False-True-True-False +1 -0
  168. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-False-True-True-True +1 -0
  169. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-True-False-False-False +1 -0
  170. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-True-False-False-True +1 -0
  171. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-True-False-True-False +1 -0
  172. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-True-False-True-True +1 -0
  173. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-True-True-False-False +1 -0
  174. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-True-True-False-True +1 -0
  175. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-True-True-True-False +1 -0
  176. densitty-0.9.0/tests/goldens/test_axes-True-(-1-10)-ext-True-True-True-True +1 -0
  177. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-False-False-False-False +1 -0
  178. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-False-False-False-True +1 -0
  179. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-False-False-True-False +1 -0
  180. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-False-False-True-True +1 -0
  181. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-False-True-False-False +1 -0
  182. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-False-True-False-True +1 -0
  183. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-False-True-True-False +1 -0
  184. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-False-True-True-True +1 -0
  185. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-True-False-False-False +1 -0
  186. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-True-False-False-True +1 -0
  187. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-True-False-True-False +1 -0
  188. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-True-False-True-True +1 -0
  189. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-True-True-False-False +1 -0
  190. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-True-True-False-True +1 -0
  191. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-True-True-True-False +1 -0
  192. densitty-0.9.0/tests/goldens/test_axes-True-(-1-2)-ext-True-True-True-True +1 -0
  193. densitty-0.9.0/tests/goldens/test_axes_1 +1 -0
  194. densitty-0.9.0/tests/goldens/test_axes_2 +1 -0
  195. densitty-0.9.0/tests/goldens/test_axes_3 +1 -0
  196. densitty-0.9.0/tests/goldens/test_axes_ascii-False-False-False-False +1 -0
  197. densitty-0.9.0/tests/goldens/test_axes_ascii-False-False-False-True +1 -0
  198. densitty-0.9.0/tests/goldens/test_axes_ascii-False-False-True-False +1 -0
  199. densitty-0.9.0/tests/goldens/test_axes_ascii-False-False-True-True +1 -0
  200. densitty-0.9.0/tests/goldens/test_axes_ascii-False-True-False-False +1 -0
  201. densitty-0.9.0/tests/goldens/test_axes_ascii-False-True-False-True +1 -0
  202. densitty-0.9.0/tests/goldens/test_axes_ascii-False-True-True-False +1 -0
  203. densitty-0.9.0/tests/goldens/test_axes_ascii-False-True-True-True +1 -0
  204. densitty-0.9.0/tests/goldens/test_axes_ascii-True-False-False-False +1 -0
  205. densitty-0.9.0/tests/goldens/test_axes_ascii-True-False-False-True +1 -0
  206. densitty-0.9.0/tests/goldens/test_axes_ascii-True-False-True-False +1 -0
  207. densitty-0.9.0/tests/goldens/test_axes_ascii-True-False-True-True +1 -0
  208. densitty-0.9.0/tests/goldens/test_axes_ascii-True-True-False-False +1 -0
  209. densitty-0.9.0/tests/goldens/test_axes_ascii-True-True-False-True +1 -0
  210. densitty-0.9.0/tests/goldens/test_axes_ascii-True-True-True-False +1 -0
  211. densitty-0.9.0/tests/goldens/test_axes_ascii-True-True-True-True +1 -0
  212. densitty-0.9.0/tests/goldens/test_axes_invalid_1 +1 -0
  213. densitty-0.9.0/tests/goldens/test_axes_single_pixel +1 -0
  214. densitty-0.9.0/tests/goldens/test_histplot2d_1 +1 -0
  215. densitty-0.9.0/tests/goldens/test_histplot2d_3 +1 -0
  216. densitty-0.9.0/tests/goldens/test_histplot2d_4 +1 -0
  217. densitty-0.9.0/tests/goldens/test_maxsize_fitscreen +1 -0
  218. densitty-0.9.0/tests/goldens/test_maxsize_set_default_size +1 -0
  219. densitty-0.9.0/tests/goldens/test_single_data +1 -0
  220. densitty-0.9.0/tests/goldens/test_single_valued_data +1 -0
  221. densitty-0.9.0/tests/goldens/test_smooth_data_1 +1 -0
  222. densitty-0.9.0/tests/goldens/test_smooth_data_1_x_axis +1 -0
  223. densitty-0.9.0/tests/goldens/test_smooth_data_1_y_axis +1 -0
  224. densitty-0.9.0/tests/goldens/test_smooth_data_2 +1 -0
  225. densitty-0.9.0/tests/goldens/test_smooth_data_2_x_axis +1 -0
  226. densitty-0.9.0/tests/goldens/test_smooth_data_2_y_axis +1 -0
  227. densitty-0.9.0/tests/goldens/test_smooth_data_3 +1 -0
  228. densitty-0.9.0/tests/goldens/test_smooth_data_3_x_axis +1 -0
  229. densitty-0.9.0/tests/goldens/test_smooth_data_3_y_axis +1 -0
  230. densitty-0.9.0/tests/goldens/x_axis_100_-0.0819162998_510.002284_0 +1 -0
  231. densitty-0.9.0/tests/goldens/x_axis_100_-0.0819162998_510.002284_1 +1 -0
  232. densitty-0.9.0/tests/goldens/x_axis_100_0.0194307864_0.0194307906_0 +1 -0
  233. densitty-0.9.0/tests/goldens/x_axis_100_0.0194307864_0.0194307906_1 +1 -0
  234. densitty-0.9.0/tests/goldens/x_axis_101_1.42762354E-8_25.8269209_0 +1 -0
  235. densitty-0.9.0/tests/goldens/x_axis_101_1.42762354E-8_25.8269209_1 +1 -0
  236. densitty-0.9.0/tests/goldens/x_axis_102_1670249.07_2864582.59_0 +1 -0
  237. densitty-0.9.0/tests/goldens/x_axis_102_1670249.07_2864582.59_1 +1 -0
  238. densitty-0.9.0/tests/goldens/x_axis_103_1.89783411E-8_1.85232704E+9_0 +1 -0
  239. densitty-0.9.0/tests/goldens/x_axis_103_1.89783411E-8_1.85232704E+9_1 +1 -0
  240. densitty-0.9.0/tests/goldens/x_axis_104_1.73938891E-7_3790422.49_0 +1 -0
  241. densitty-0.9.0/tests/goldens/x_axis_104_1.73938891E-7_3790422.49_1 +1 -0
  242. densitty-0.9.0/tests/goldens/x_axis_105_1.68750941E-8_0.796975597_0 +1 -0
  243. densitty-0.9.0/tests/goldens/x_axis_105_1.68750941E-8_0.796975597_1 +1 -0
  244. densitty-0.9.0/tests/goldens/x_axis_105_5.09236527E-8_9.66938005_0 +1 -0
  245. densitty-0.9.0/tests/goldens/x_axis_105_5.09236527E-8_9.66938005_1 +1 -0
  246. densitty-0.9.0/tests/goldens/x_axis_109_-2.96955623E-10_83.0330135_0 +1 -0
  247. densitty-0.9.0/tests/goldens/x_axis_109_-2.96955623E-10_83.0330135_1 +1 -0
  248. densitty-0.9.0/tests/goldens/x_axis_109_-6.81808565E-9_5.14837567E-8_0 +1 -0
  249. densitty-0.9.0/tests/goldens/x_axis_109_-6.81808565E-9_5.14837567E-8_1 +1 -0
  250. densitty-0.9.0/tests/goldens/x_axis_110_10.0967520_10.0967520_0 +1 -0
  251. densitty-0.9.0/tests/goldens/x_axis_110_10.0967520_10.0967520_1 +1 -0
  252. densitty-0.9.0/tests/goldens/x_axis_111_-4.93860860E-9_1.38921000E-7_0 +1 -0
  253. densitty-0.9.0/tests/goldens/x_axis_111_-4.93860860E-9_1.38921000E-7_1 +1 -0
  254. densitty-0.9.0/tests/goldens/x_axis_112_-32410436.8_-32410436.8_0 +1 -0
  255. densitty-0.9.0/tests/goldens/x_axis_112_-32410436.8_-32410436.8_1 +1 -0
  256. densitty-0.9.0/tests/goldens/x_axis_113_-504327.128_-504326.751_0 +1 -0
  257. densitty-0.9.0/tests/goldens/x_axis_113_-504327.128_-504326.751_1 +1 -0
  258. densitty-0.9.0/tests/goldens/x_axis_116_-1.50971589E-7_0.0105108249_0 +1 -0
  259. densitty-0.9.0/tests/goldens/x_axis_116_-1.50971589E-7_0.0105108249_1 +1 -0
  260. densitty-0.9.0/tests/goldens/x_axis_118_2.20802474E-10_6.52519242E-10_0 +1 -0
  261. densitty-0.9.0/tests/goldens/x_axis_118_2.20802474E-10_6.52519242E-10_1 +1 -0
  262. densitty-0.9.0/tests/goldens/x_axis_119_-0.000605219562_139019378_0 +1 -0
  263. densitty-0.9.0/tests/goldens/x_axis_119_-0.000605219562_139019378_1 +1 -0
  264. densitty-0.9.0/tests/goldens/x_axis_119_0.00198534542_0.00198534573_0 +1 -0
  265. densitty-0.9.0/tests/goldens/x_axis_119_0.00198534542_0.00198534573_1 +1 -0
  266. densitty-0.9.0/tests/goldens/x_axis_11_1.96692248E-8_0.00820748193_0 +1 -0
  267. densitty-0.9.0/tests/goldens/x_axis_11_1.96692248E-8_0.00820748193_1 +1 -0
  268. densitty-0.9.0/tests/goldens/x_axis_129_2.59739235E-9_965070365_0 +1 -0
  269. densitty-0.9.0/tests/goldens/x_axis_129_2.59739235E-9_965070365_1 +1 -0
  270. densitty-0.9.0/tests/goldens/x_axis_131_0.145524462_4.65087154E+9_0 +1 -0
  271. densitty-0.9.0/tests/goldens/x_axis_131_0.145524462_4.65087154E+9_1 +1 -0
  272. densitty-0.9.0/tests/goldens/x_axis_135_-0.0000229191696_2267.64355_0 +1 -0
  273. densitty-0.9.0/tests/goldens/x_axis_135_-0.0000229191696_2267.64355_1 +1 -0
  274. densitty-0.9.0/tests/goldens/x_axis_135_1.22598302E-8_8.04329142E-8_0 +1 -0
  275. densitty-0.9.0/tests/goldens/x_axis_135_1.22598302E-8_8.04329142E-8_1 +1 -0
  276. densitty-0.9.0/tests/goldens/x_axis_141_-2.14314230E-7_19791.9707_0 +1 -0
  277. densitty-0.9.0/tests/goldens/x_axis_141_-2.14314230E-7_19791.9707_1 +1 -0
  278. densitty-0.9.0/tests/goldens/x_axis_141_3.41218635E-9_0.000593451723_0 +1 -0
  279. densitty-0.9.0/tests/goldens/x_axis_141_3.41218635E-9_0.000593451723_1 +1 -0
  280. densitty-0.9.0/tests/goldens/x_axis_143_2.69365458E-7_1.93715817_0 +1 -0
  281. densitty-0.9.0/tests/goldens/x_axis_143_2.69365458E-7_1.93715817_1 +1 -0
  282. densitty-0.9.0/tests/goldens/x_axis_145_-0.000773494593_8763857.68_0 +1 -0
  283. densitty-0.9.0/tests/goldens/x_axis_145_-0.000773494593_8763857.68_1 +1 -0
  284. densitty-0.9.0/tests/goldens/x_axis_145_-1.75397138E+9_-1.75397138E+9_0 +1 -0
  285. densitty-0.9.0/tests/goldens/x_axis_145_-1.75397138E+9_-1.75397138E+9_1 +1 -0
  286. densitty-0.9.0/tests/goldens/x_axis_148_0.00935627980_42504.9078_0 +1 -0
  287. densitty-0.9.0/tests/goldens/x_axis_148_0.00935627980_42504.9078_1 +1 -0
  288. densitty-0.9.0/tests/goldens/x_axis_153_-0.114808950_-0.114672276_0 +1 -0
  289. densitty-0.9.0/tests/goldens/x_axis_153_-0.114808950_-0.114672276_1 +1 -0
  290. densitty-0.9.0/tests/goldens/x_axis_153_-661104672_-661104672_0 +1 -0
  291. densitty-0.9.0/tests/goldens/x_axis_153_-661104672_-661104672_1 +1 -0
  292. densitty-0.9.0/tests/goldens/x_axis_154_-187.732088_-187.730832_0 +1 -0
  293. densitty-0.9.0/tests/goldens/x_axis_154_-187.732088_-187.730832_1 +1 -0
  294. densitty-0.9.0/tests/goldens/x_axis_156_-22304704.4_-20842350.2_0 +1 -0
  295. densitty-0.9.0/tests/goldens/x_axis_156_-22304704.4_-20842350.2_1 +1 -0
  296. densitty-0.9.0/tests/goldens/x_axis_157_-3.50954588E-10_947.964004_0 +1 -0
  297. densitty-0.9.0/tests/goldens/x_axis_157_-3.50954588E-10_947.964004_1 +1 -0
  298. densitty-0.9.0/tests/goldens/x_axis_158_-1234211.79_-1234211.70_0 +1 -0
  299. densitty-0.9.0/tests/goldens/x_axis_158_-1234211.79_-1234211.70_1 +1 -0
  300. densitty-0.9.0/tests/goldens/x_axis_160_194487990_194494183_0 +1 -0
  301. densitty-0.9.0/tests/goldens/x_axis_160_194487990_194494183_1 +1 -0
  302. densitty-0.9.0/tests/goldens/x_axis_162_-185285035_-185285035_0 +1 -0
  303. densitty-0.9.0/tests/goldens/x_axis_162_-185285035_-185285035_1 +1 -0
  304. densitty-0.9.0/tests/goldens/x_axis_164_33859.0360_33859.0944_0 +1 -0
  305. densitty-0.9.0/tests/goldens/x_axis_164_33859.0360_33859.0944_1 +1 -0
  306. densitty-0.9.0/tests/goldens/x_axis_166_67.3265318_75019876.3_0 +1 -0
  307. densitty-0.9.0/tests/goldens/x_axis_166_67.3265318_75019876.3_1 +1 -0
  308. densitty-0.9.0/tests/goldens/x_axis_167_4.45843689E-10_652665182_0 +1 -0
  309. densitty-0.9.0/tests/goldens/x_axis_167_4.45843689E-10_652665182_1 +1 -0
  310. densitty-0.9.0/tests/goldens/x_axis_168_3.26337097E-8_793724.663_0 +1 -0
  311. densitty-0.9.0/tests/goldens/x_axis_168_3.26337097E-8_793724.663_1 +1 -0
  312. densitty-0.9.0/tests/goldens/x_axis_169_-1.37817983E-7_115283107_0 +1 -0
  313. densitty-0.9.0/tests/goldens/x_axis_169_-1.37817983E-7_115283107_1 +1 -0
  314. densitty-0.9.0/tests/goldens/x_axis_169_25.1180938_31.9108379_0 +1 -0
  315. densitty-0.9.0/tests/goldens/x_axis_169_25.1180938_31.9108379_1 +1 -0
  316. densitty-0.9.0/tests/goldens/x_axis_172_-3329659.06_-3329659.06_0 +1 -0
  317. densitty-0.9.0/tests/goldens/x_axis_172_-3329659.06_-3329659.06_1 +1 -0
  318. densitty-0.9.0/tests/goldens/x_axis_172_19.8982303_4.98789640E+9_0 +1 -0
  319. densitty-0.9.0/tests/goldens/x_axis_172_19.8982303_4.98789640E+9_1 +1 -0
  320. densitty-0.9.0/tests/goldens/x_axis_176_98529298.9_98529299.0_0 +1 -0
  321. densitty-0.9.0/tests/goldens/x_axis_176_98529298.9_98529299.0_1 +1 -0
  322. densitty-0.9.0/tests/goldens/x_axis_177_0.0992866123_5373.66561_0 +1 -0
  323. densitty-0.9.0/tests/goldens/x_axis_177_0.0992866123_5373.66561_1 +1 -0
  324. densitty-0.9.0/tests/goldens/x_axis_180_-1358.72046_-1358.71997_0 +1 -0
  325. densitty-0.9.0/tests/goldens/x_axis_180_-1358.72046_-1358.71997_1 +1 -0
  326. densitty-0.9.0/tests/goldens/x_axis_187_-0.00362557327_243858998_0 +1 -0
  327. densitty-0.9.0/tests/goldens/x_axis_187_-0.00362557327_243858998_1 +1 -0
  328. densitty-0.9.0/tests/goldens/x_axis_188_0.000735951891_0.000743931104_0 +1 -0
  329. densitty-0.9.0/tests/goldens/x_axis_188_0.000735951891_0.000743931104_1 +1 -0
  330. densitty-0.9.0/tests/goldens/x_axis_189_3.52864510_3.52875891_0 +1 -0
  331. densitty-0.9.0/tests/goldens/x_axis_189_3.52864510_3.52875891_1 +1 -0
  332. densitty-0.9.0/tests/goldens/x_axis_190_2.22673610E-7_0.00903559932_0 +1 -0
  333. densitty-0.9.0/tests/goldens/x_axis_190_2.22673610E-7_0.00903559932_1 +1 -0
  334. densitty-0.9.0/tests/goldens/x_axis_191_0.000194623302_3.75022510_0 +1 -0
  335. densitty-0.9.0/tests/goldens/x_axis_191_0.000194623302_3.75022510_1 +1 -0
  336. densitty-0.9.0/tests/goldens/x_axis_196_-20.8607706_-20.8607561_0 +1 -0
  337. densitty-0.9.0/tests/goldens/x_axis_196_-20.8607706_-20.8607561_1 +1 -0
  338. densitty-0.9.0/tests/goldens/x_axis_196_-3592221.71_-3592221.71_0 +1 -0
  339. densitty-0.9.0/tests/goldens/x_axis_196_-3592221.71_-3592221.71_1 +1 -0
  340. densitty-0.9.0/tests/goldens/x_axis_198_75308.2184_409641.537_0 +1 -0
  341. densitty-0.9.0/tests/goldens/x_axis_198_75308.2184_409641.537_1 +1 -0
  342. densitty-0.9.0/tests/goldens/x_axis_21_-10.3544087_1086.65585_0 +1 -0
  343. densitty-0.9.0/tests/goldens/x_axis_21_-10.3544087_1086.65585_1 +1 -0
  344. densitty-0.9.0/tests/goldens/x_axis_26_-1.47776457E-10_2697757.41_0 +1 -0
  345. densitty-0.9.0/tests/goldens/x_axis_26_-1.47776457E-10_2697757.41_1 +1 -0
  346. densitty-0.9.0/tests/goldens/x_axis_29_-0.418828618_-0.418813422_0 +1 -0
  347. densitty-0.9.0/tests/goldens/x_axis_29_-0.418828618_-0.418813422_1 +1 -0
  348. densitty-0.9.0/tests/goldens/x_axis_36_-0.143016182_-0.121454748_0 +1 -0
  349. densitty-0.9.0/tests/goldens/x_axis_36_-0.143016182_-0.121454748_1 +1 -0
  350. densitty-0.9.0/tests/goldens/x_axis_37_-2.02514159E-9_0.0449531366_0 +1 -0
  351. densitty-0.9.0/tests/goldens/x_axis_37_-2.02514159E-9_0.0449531366_1 +1 -0
  352. densitty-0.9.0/tests/goldens/x_axis_39_-0.000161165673_-0.000160874037_0 +1 -0
  353. densitty-0.9.0/tests/goldens/x_axis_39_-0.000161165673_-0.000160874037_1 +1 -0
  354. densitty-0.9.0/tests/goldens/x_axis_3_0.00000979906217_0.000360412287_0 +1 -0
  355. densitty-0.9.0/tests/goldens/x_axis_3_0.00000979906217_0.000360412287_1 +1 -0
  356. densitty-0.9.0/tests/goldens/x_axis_45_99167646.7_99167646.7_0 +1 -0
  357. densitty-0.9.0/tests/goldens/x_axis_45_99167646.7_99167646.7_1 +1 -0
  358. densitty-0.9.0/tests/goldens/x_axis_46_-0.00000321721634_-0.00000321459619_0 +1 -0
  359. densitty-0.9.0/tests/goldens/x_axis_46_-0.00000321721634_-0.00000321459619_1 +1 -0
  360. densitty-0.9.0/tests/goldens/x_axis_46_0.00000291015154_0.733200207_0 +1 -0
  361. densitty-0.9.0/tests/goldens/x_axis_46_0.00000291015154_0.733200207_1 +1 -0
  362. densitty-0.9.0/tests/goldens/x_axis_48_-2.23566201E-7_74131862.3_0 +1 -0
  363. densitty-0.9.0/tests/goldens/x_axis_48_-2.23566201E-7_74131862.3_1 +1 -0
  364. densitty-0.9.0/tests/goldens/x_axis_48_-3.46356324E+9_-3.46286549E+9_0 +1 -0
  365. densitty-0.9.0/tests/goldens/x_axis_48_-3.46356324E+9_-3.46286549E+9_1 +1 -0
  366. densitty-0.9.0/tests/goldens/x_axis_48_-5.73379077E-7_0.0000146411803_0 +1 -0
  367. densitty-0.9.0/tests/goldens/x_axis_48_-5.73379077E-7_0.0000146411803_1 +1 -0
  368. densitty-0.9.0/tests/goldens/x_axis_48_7.83507705_7.83514258_0 +1 -0
  369. densitty-0.9.0/tests/goldens/x_axis_48_7.83507705_7.83514258_1 +1 -0
  370. densitty-0.9.0/tests/goldens/x_axis_4_-1099.01594_-1097.97364_0 +1 -0
  371. densitty-0.9.0/tests/goldens/x_axis_4_-1099.01594_-1097.97364_1 +1 -0
  372. densitty-0.9.0/tests/goldens/x_axis_50_-5675725.76_-5591838.17_0 +1 -0
  373. densitty-0.9.0/tests/goldens/x_axis_50_-5675725.76_-5591838.17_1 +1 -0
  374. densitty-0.9.0/tests/goldens/x_axis_53_0.499461762_0.499470226_0 +1 -0
  375. densitty-0.9.0/tests/goldens/x_axis_53_0.499461762_0.499470226_1 +1 -0
  376. densitty-0.9.0/tests/goldens/x_axis_56_1348178.28_1348178.28_0 +1 -0
  377. densitty-0.9.0/tests/goldens/x_axis_56_1348178.28_1348178.28_1 +1 -0
  378. densitty-0.9.0/tests/goldens/x_axis_60_1572.09156_1572.09156_0 +1 -0
  379. densitty-0.9.0/tests/goldens/x_axis_60_1572.09156_1572.09156_1 +1 -0
  380. densitty-0.9.0/tests/goldens/x_axis_62_0.0000834552114_162044199_0 +1 -0
  381. densitty-0.9.0/tests/goldens/x_axis_62_0.0000834552114_162044199_1 +1 -0
  382. densitty-0.9.0/tests/goldens/x_axis_68_-64.8155821_-64.8153334_0 +1 -0
  383. densitty-0.9.0/tests/goldens/x_axis_68_-64.8155821_-64.8153334_1 +1 -0
  384. densitty-0.9.0/tests/goldens/x_axis_76_100.966337_100.966349_0 +1 -0
  385. densitty-0.9.0/tests/goldens/x_axis_76_100.966337_100.966349_1 +1 -0
  386. densitty-0.9.0/tests/goldens/x_axis_78_-0.0000147372573_-0.0000147370017_0 +1 -0
  387. densitty-0.9.0/tests/goldens/x_axis_78_-0.0000147372573_-0.0000147370017_1 +1 -0
  388. densitty-0.9.0/tests/goldens/x_axis_7_1.49865727E-9_1.06805033_0 +1 -0
  389. densitty-0.9.0/tests/goldens/x_axis_7_1.49865727E-9_1.06805033_1 +1 -0
  390. densitty-0.9.0/tests/goldens/x_axis_80_-0.000259728201_6.72258436_0 +1 -0
  391. densitty-0.9.0/tests/goldens/x_axis_80_-0.000259728201_6.72258436_1 +1 -0
  392. densitty-0.9.0/tests/goldens/x_axis_80_19.4507640_868.195082_0 +1 -0
  393. densitty-0.9.0/tests/goldens/x_axis_80_19.4507640_868.195082_1 +1 -0
  394. densitty-0.9.0/tests/goldens/x_axis_84_228572.332_228572.332_0 +1 -0
  395. densitty-0.9.0/tests/goldens/x_axis_84_228572.332_228572.332_1 +1 -0
  396. densitty-0.9.0/tests/goldens/x_axis_86_-2.04771899E+9_-2.04771899E+9_0 +1 -0
  397. densitty-0.9.0/tests/goldens/x_axis_86_-2.04771899E+9_-2.04771899E+9_1 +1 -0
  398. densitty-0.9.0/tests/goldens/x_axis_86_1724.60078_1724.60078_0 +1 -0
  399. densitty-0.9.0/tests/goldens/x_axis_86_1724.60078_1724.60078_1 +1 -0
  400. densitty-0.9.0/tests/goldens/x_axis_86_9.56108668E-9_0.0000741047291_0 +1 -0
  401. densitty-0.9.0/tests/goldens/x_axis_86_9.56108668E-9_0.0000741047291_1 +1 -0
  402. densitty-0.9.0/tests/goldens/x_axis_88_-4.62043384E-9_0.00645016333_0 +1 -0
  403. densitty-0.9.0/tests/goldens/x_axis_88_-4.62043384E-9_0.00645016333_1 +1 -0
  404. densitty-0.9.0/tests/goldens/x_axis_89_0.00230228979_0.00230229174_0 +1 -0
  405. densitty-0.9.0/tests/goldens/x_axis_89_0.00230228979_0.00230229174_1 +1 -0
  406. densitty-0.9.0/tests/goldens/x_axis_89_8.49639722E-8_8.81452078E-8_0 +1 -0
  407. densitty-0.9.0/tests/goldens/x_axis_89_8.49639722E-8_8.81452078E-8_1 +1 -0
  408. densitty-0.9.0/tests/goldens/x_axis_8_-16602642.5_-16601902.4_0 +1 -0
  409. densitty-0.9.0/tests/goldens/x_axis_8_-16602642.5_-16601902.4_1 +1 -0
  410. densitty-0.9.0/tests/goldens/x_axis_8_-3716374.14_-3716374.02_0 +1 -0
  411. densitty-0.9.0/tests/goldens/x_axis_8_-3716374.14_-3716374.02_1 +1 -0
  412. densitty-0.9.0/tests/goldens/x_axis_8_0.850889413_38.8443390_0 +1 -0
  413. densitty-0.9.0/tests/goldens/x_axis_8_0.850889413_38.8443390_1 +1 -0
  414. densitty-0.9.0/tests/goldens/x_axis_8_2191761.87_2191772.44_0 +1 -0
  415. densitty-0.9.0/tests/goldens/x_axis_8_2191761.87_2191772.44_1 +1 -0
  416. densitty-0.9.0/tests/goldens/x_axis_90_-882580.430_-882580.430_0 +1 -0
  417. densitty-0.9.0/tests/goldens/x_axis_90_-882580.430_-882580.430_1 +1 -0
  418. densitty-0.9.0/tests/goldens/x_axis_91_-5.88268935_-5.88264807_0 +1 -0
  419. densitty-0.9.0/tests/goldens/x_axis_91_-5.88268935_-5.88264807_1 +1 -0
  420. densitty-0.9.0/tests/goldens/x_axis_93_-0.00790606166_17905215.6_0 +1 -0
  421. densitty-0.9.0/tests/goldens/x_axis_93_-0.00790606166_17905215.6_1 +1 -0
  422. densitty-0.9.0/tests/goldens/x_axis_93_-0.0503566340_177.327115_0 +1 -0
  423. densitty-0.9.0/tests/goldens/x_axis_93_-0.0503566340_177.327115_1 +1 -0
  424. densitty-0.9.0/tests/goldens/x_axis_99_2.90983509E-9_10613370.5_0 +1 -0
  425. densitty-0.9.0/tests/goldens/x_axis_99_2.90983509E-9_10613370.5_1 +1 -0
  426. densitty-0.9.0/tests/goldens/x_axis_9_-0.0000214145534_6521844.58_0 +1 -0
  427. densitty-0.9.0/tests/goldens/x_axis_9_-0.0000214145534_6521844.58_1 +1 -0
  428. densitty-0.9.0/tests/goldens/x_axis_9_0.124174552_7.78910615_0 +1 -0
  429. densitty-0.9.0/tests/goldens/x_axis_9_0.124174552_7.78910615_1 +1 -0
  430. densitty-0.9.0/tests/goldens/y_axis_100_-0.0819162998_510.002284 +1 -0
  431. densitty-0.9.0/tests/goldens/y_axis_100_0.0194307864_0.0194307906 +1 -0
  432. densitty-0.9.0/tests/goldens/y_axis_101_1.42762354E-8_25.8269209 +1 -0
  433. densitty-0.9.0/tests/goldens/y_axis_102_1670249.07_2864582.59 +1 -0
  434. densitty-0.9.0/tests/goldens/y_axis_103_1.89783411E-8_1.85232704E+9 +1 -0
  435. densitty-0.9.0/tests/goldens/y_axis_104_1.73938891E-7_3790422.49 +1 -0
  436. densitty-0.9.0/tests/goldens/y_axis_105_1.68750941E-8_0.796975597 +1 -0
  437. densitty-0.9.0/tests/goldens/y_axis_105_5.09236527E-8_9.66938005 +1 -0
  438. densitty-0.9.0/tests/goldens/y_axis_109_-2.96955623E-10_83.0330135 +1 -0
  439. densitty-0.9.0/tests/goldens/y_axis_109_-6.81808565E-9_5.14837567E-8 +1 -0
  440. densitty-0.9.0/tests/goldens/y_axis_110_10.0967520_10.0967520 +1 -0
  441. densitty-0.9.0/tests/goldens/y_axis_111_-4.93860860E-9_1.38921000E-7 +1 -0
  442. densitty-0.9.0/tests/goldens/y_axis_112_-32410436.8_-32410436.8 +1 -0
  443. densitty-0.9.0/tests/goldens/y_axis_113_-504327.128_-504326.751 +1 -0
  444. densitty-0.9.0/tests/goldens/y_axis_116_-1.50971589E-7_0.0105108249 +1 -0
  445. densitty-0.9.0/tests/goldens/y_axis_118_2.20802474E-10_6.52519242E-10 +1 -0
  446. densitty-0.9.0/tests/goldens/y_axis_119_-0.000605219562_139019378 +1 -0
  447. densitty-0.9.0/tests/goldens/y_axis_119_0.00198534542_0.00198534573 +1 -0
  448. densitty-0.9.0/tests/goldens/y_axis_11_1.96692248E-8_0.00820748193 +1 -0
  449. densitty-0.9.0/tests/goldens/y_axis_129_2.59739235E-9_965070365 +1 -0
  450. densitty-0.9.0/tests/goldens/y_axis_131_0.145524462_4.65087154E+9 +1 -0
  451. densitty-0.9.0/tests/goldens/y_axis_135_-0.0000229191696_2267.64355 +1 -0
  452. densitty-0.9.0/tests/goldens/y_axis_135_1.22598302E-8_8.04329142E-8 +1 -0
  453. densitty-0.9.0/tests/goldens/y_axis_141_-2.14314230E-7_19791.9707 +1 -0
  454. densitty-0.9.0/tests/goldens/y_axis_141_3.41218635E-9_0.000593451723 +1 -0
  455. densitty-0.9.0/tests/goldens/y_axis_143_2.69365458E-7_1.93715817 +1 -0
  456. densitty-0.9.0/tests/goldens/y_axis_145_-0.000773494593_8763857.68 +1 -0
  457. densitty-0.9.0/tests/goldens/y_axis_145_-1.75397138E+9_-1.75397138E+9 +1 -0
  458. densitty-0.9.0/tests/goldens/y_axis_148_0.00935627980_42504.9078 +1 -0
  459. densitty-0.9.0/tests/goldens/y_axis_153_-0.114808950_-0.114672276 +1 -0
  460. densitty-0.9.0/tests/goldens/y_axis_153_-661104672_-661104672 +1 -0
  461. densitty-0.9.0/tests/goldens/y_axis_154_-187.732088_-187.730832 +1 -0
  462. densitty-0.9.0/tests/goldens/y_axis_156_-22304704.4_-20842350.2 +1 -0
  463. densitty-0.9.0/tests/goldens/y_axis_157_-3.50954588E-10_947.964004 +1 -0
  464. densitty-0.9.0/tests/goldens/y_axis_158_-1234211.79_-1234211.70 +1 -0
  465. densitty-0.9.0/tests/goldens/y_axis_160_194487990_194494183 +1 -0
  466. densitty-0.9.0/tests/goldens/y_axis_162_-185285035_-185285035 +1 -0
  467. densitty-0.9.0/tests/goldens/y_axis_164_33859.0360_33859.0944 +1 -0
  468. densitty-0.9.0/tests/goldens/y_axis_166_67.3265318_75019876.3 +1 -0
  469. densitty-0.9.0/tests/goldens/y_axis_167_4.45843689E-10_652665182 +1 -0
  470. densitty-0.9.0/tests/goldens/y_axis_168_3.26337097E-8_793724.663 +1 -0
  471. densitty-0.9.0/tests/goldens/y_axis_169_-1.37817983E-7_115283107 +1 -0
  472. densitty-0.9.0/tests/goldens/y_axis_169_25.1180938_31.9108379 +1 -0
  473. densitty-0.9.0/tests/goldens/y_axis_172_-3329659.06_-3329659.06 +1 -0
  474. densitty-0.9.0/tests/goldens/y_axis_172_19.8982303_4.98789640E+9 +1 -0
  475. densitty-0.9.0/tests/goldens/y_axis_176_98529298.9_98529299.0 +1 -0
  476. densitty-0.9.0/tests/goldens/y_axis_177_0.0992866123_5373.66561 +1 -0
  477. densitty-0.9.0/tests/goldens/y_axis_180_-1358.72046_-1358.71997 +1 -0
  478. densitty-0.9.0/tests/goldens/y_axis_187_-0.00362557327_243858998 +1 -0
  479. densitty-0.9.0/tests/goldens/y_axis_188_0.000735951891_0.000743931104 +1 -0
  480. densitty-0.9.0/tests/goldens/y_axis_189_3.52864510_3.52875891 +1 -0
  481. densitty-0.9.0/tests/goldens/y_axis_190_2.22673610E-7_0.00903559932 +1 -0
  482. densitty-0.9.0/tests/goldens/y_axis_191_0.000194623302_3.75022510 +1 -0
  483. densitty-0.9.0/tests/goldens/y_axis_196_-20.8607706_-20.8607561 +1 -0
  484. densitty-0.9.0/tests/goldens/y_axis_196_-3592221.71_-3592221.71 +1 -0
  485. densitty-0.9.0/tests/goldens/y_axis_198_75308.2184_409641.537 +1 -0
  486. densitty-0.9.0/tests/goldens/y_axis_21_-10.3544087_1086.65585 +1 -0
  487. densitty-0.9.0/tests/goldens/y_axis_26_-1.47776457E-10_2697757.41 +1 -0
  488. densitty-0.9.0/tests/goldens/y_axis_29_-0.418828618_-0.418813422 +1 -0
  489. densitty-0.9.0/tests/goldens/y_axis_36_-0.143016182_-0.121454748 +1 -0
  490. densitty-0.9.0/tests/goldens/y_axis_37_-2.02514159E-9_0.0449531366 +1 -0
  491. densitty-0.9.0/tests/goldens/y_axis_39_-0.000161165673_-0.000160874037 +1 -0
  492. densitty-0.9.0/tests/goldens/y_axis_3_0.00000979906217_0.000360412287 +1 -0
  493. densitty-0.9.0/tests/goldens/y_axis_45_99167646.7_99167646.7 +1 -0
  494. densitty-0.9.0/tests/goldens/y_axis_46_-0.00000321721634_-0.00000321459619 +1 -0
  495. densitty-0.9.0/tests/goldens/y_axis_46_0.00000291015154_0.733200207 +1 -0
  496. densitty-0.9.0/tests/goldens/y_axis_48_-2.23566201E-7_74131862.3 +1 -0
  497. densitty-0.9.0/tests/goldens/y_axis_48_-3.46356324E+9_-3.46286549E+9 +1 -0
  498. densitty-0.9.0/tests/goldens/y_axis_48_-5.73379077E-7_0.0000146411803 +1 -0
  499. densitty-0.9.0/tests/goldens/y_axis_48_7.83507705_7.83514258 +1 -0
  500. densitty-0.9.0/tests/goldens/y_axis_4_-1099.01594_-1097.97364 +1 -0
  501. densitty-0.9.0/tests/goldens/y_axis_50_-5675725.76_-5591838.17 +1 -0
  502. densitty-0.9.0/tests/goldens/y_axis_53_0.499461762_0.499470226 +1 -0
  503. densitty-0.9.0/tests/goldens/y_axis_56_1348178.28_1348178.28 +1 -0
  504. densitty-0.9.0/tests/goldens/y_axis_60_1572.09156_1572.09156 +1 -0
  505. densitty-0.9.0/tests/goldens/y_axis_62_0.0000834552114_162044199 +1 -0
  506. densitty-0.9.0/tests/goldens/y_axis_68_-64.8155821_-64.8153334 +1 -0
  507. densitty-0.9.0/tests/goldens/y_axis_76_100.966337_100.966349 +1 -0
  508. densitty-0.9.0/tests/goldens/y_axis_78_-0.0000147372573_-0.0000147370017 +1 -0
  509. densitty-0.9.0/tests/goldens/y_axis_7_1.49865727E-9_1.06805033 +1 -0
  510. densitty-0.9.0/tests/goldens/y_axis_80_-0.000259728201_6.72258436 +1 -0
  511. densitty-0.9.0/tests/goldens/y_axis_80_19.4507640_868.195082 +1 -0
  512. densitty-0.9.0/tests/goldens/y_axis_84_228572.332_228572.332 +1 -0
  513. densitty-0.9.0/tests/goldens/y_axis_86_-2.04771899E+9_-2.04771899E+9 +1 -0
  514. densitty-0.9.0/tests/goldens/y_axis_86_1724.60078_1724.60078 +1 -0
  515. densitty-0.9.0/tests/goldens/y_axis_86_9.56108668E-9_0.0000741047291 +1 -0
  516. densitty-0.9.0/tests/goldens/y_axis_88_-4.62043384E-9_0.00645016333 +1 -0
  517. densitty-0.9.0/tests/goldens/y_axis_89_0.00230228979_0.00230229174 +1 -0
  518. densitty-0.9.0/tests/goldens/y_axis_89_8.49639722E-8_8.81452078E-8 +1 -0
  519. densitty-0.9.0/tests/goldens/y_axis_8_-16602642.5_-16601902.4 +1 -0
  520. densitty-0.9.0/tests/goldens/y_axis_8_-3716374.14_-3716374.02 +1 -0
  521. densitty-0.9.0/tests/goldens/y_axis_8_0.850889413_38.8443390 +1 -0
  522. densitty-0.9.0/tests/goldens/y_axis_8_2191761.87_2191772.44 +1 -0
  523. densitty-0.9.0/tests/goldens/y_axis_90_-882580.430_-882580.430 +1 -0
  524. densitty-0.9.0/tests/goldens/y_axis_91_-5.88268935_-5.88264807 +1 -0
  525. densitty-0.9.0/tests/goldens/y_axis_93_-0.00790606166_17905215.6 +1 -0
  526. densitty-0.9.0/tests/goldens/y_axis_93_-0.0503566340_177.327115 +1 -0
  527. densitty-0.9.0/tests/goldens/y_axis_99_2.90983509E-9_10613370.5 +1 -0
  528. densitty-0.9.0/tests/goldens/y_axis_9_-0.0000214145534_6521844.58 +1 -0
  529. densitty-0.9.0/tests/goldens/y_axis_9_0.124174552_7.78910615 +1 -0
  530. densitty-0.9.0/tests/helper_tests.py +59 -0
  531. densitty-0.9.0/tests/label_tests.py +137 -0
  532. densitty-0.9.0/tests/smoothing_tests.py +103 -0
  533. densitty-0.9.0/tests/util_tests.py +22 -0
  534. densitty-0.8.2/Makefile +0 -57
  535. densitty-0.8.2/PKG-INFO +0 -36
  536. densitty-0.8.2/README.md +0 -14
  537. densitty-0.8.2/densitty/axis.py +0 -265
  538. densitty-0.8.2/densitty/binning.py +0 -240
  539. densitty-0.8.2/densitty/detect.py +0 -465
  540. densitty-0.8.2/densitty/plot.py +0 -201
  541. densitty-0.8.2/densitty/truecolor.py +0 -170
  542. densitty-0.8.2/densitty/util.py +0 -234
  543. densitty-0.8.2/densitty.egg-info/PKG-INFO +0 -36
  544. densitty-0.8.2/densitty.egg-info/SOURCES.txt +0 -322
  545. densitty-0.8.2/docs/FAQ.md +0 -12
  546. densitty-0.8.2/pyproject.toml +0 -71
  547. densitty-0.8.2/tests/axis_tests.py +0 -160
  548. densitty-0.8.2/tests/color_tests.py +0 -129
  549. densitty-0.8.2/tests/golden.py +0 -31
  550. densitty-0.8.2/tests/golden_diff.py +0 -171
  551. densitty-0.8.2/tests/goldens/merge_chars +0 -1
  552. densitty-0.8.2/tests/goldens/merge_lines +0 -1
  553. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-False-False-False-False +0 -1
  554. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-False-False-False-True +0 -1
  555. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-False-False-True-False +0 -1
  556. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-False-False-True-True +0 -1
  557. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-False-True-False-False +0 -1
  558. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-False-True-False-True +0 -1
  559. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-False-True-True-False +0 -1
  560. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-False-True-True-True +0 -1
  561. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-True-False-False-False +0 -1
  562. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-True-False-False-True +0 -1
  563. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-True-False-True-False +0 -1
  564. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-True-False-True-True +0 -1
  565. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-True-True-False-False +0 -1
  566. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-True-True-False-True +0 -1
  567. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-True-True-True-False +0 -1
  568. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0)-ext-True-True-True-True +0 -1
  569. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-False-False-False-False +0 -1
  570. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-False-False-False-True +0 -1
  571. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-False-False-True-False +0 -1
  572. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-False-False-True-True +0 -1
  573. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-False-True-False-False +0 -1
  574. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-False-True-False-True +0 -1
  575. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-False-True-True-False +0 -1
  576. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-False-True-True-True +0 -1
  577. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-True-False-False-False +0 -1
  578. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-True-False-False-True +0 -1
  579. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-True-False-True-False +0 -1
  580. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-True-False-True-True +0 -1
  581. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-True-True-False-False +0 -1
  582. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-True-True-False-True +0 -1
  583. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-True-True-True-False +0 -1
  584. densitty-0.8.2/tests/goldens/test_axes-False-(-1-0.1)-ext-True-True-True-True +0 -1
  585. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-False-False-False-False +0 -1
  586. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-False-False-False-True +0 -1
  587. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-False-False-True-False +0 -1
  588. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-False-False-True-True +0 -1
  589. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-False-True-False-False +0 -1
  590. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-False-True-False-True +0 -1
  591. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-False-True-True-False +0 -1
  592. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-False-True-True-True +0 -1
  593. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-True-False-False-False +0 -1
  594. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-True-False-False-True +0 -1
  595. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-True-False-True-False +0 -1
  596. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-True-False-True-True +0 -1
  597. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-True-True-False-False +0 -1
  598. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-True-True-False-True +0 -1
  599. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-True-True-True-False +0 -1
  600. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1)-ext-True-True-True-True +0 -1
  601. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-False-False-False-False +0 -1
  602. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-False-False-False-True +0 -1
  603. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-False-False-True-False +0 -1
  604. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-False-False-True-True +0 -1
  605. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-False-True-False-False +0 -1
  606. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-False-True-False-True +0 -1
  607. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-False-True-True-False +0 -1
  608. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-False-True-True-True +0 -1
  609. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-True-False-False-False +0 -1
  610. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-True-False-False-True +0 -1
  611. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-True-False-True-False +0 -1
  612. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-True-False-True-True +0 -1
  613. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-True-True-False-False +0 -1
  614. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-True-True-False-True +0 -1
  615. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-True-True-True-False +0 -1
  616. densitty-0.8.2/tests/goldens/test_axes-False-(-1-1.5)-ext-True-True-True-True +0 -1
  617. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-False-False-False-False +0 -1
  618. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-False-False-False-True +0 -1
  619. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-False-False-True-False +0 -1
  620. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-False-False-True-True +0 -1
  621. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-False-True-False-False +0 -1
  622. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-False-True-False-True +0 -1
  623. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-False-True-True-False +0 -1
  624. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-False-True-True-True +0 -1
  625. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-True-False-False-False +0 -1
  626. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-True-False-False-True +0 -1
  627. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-True-False-True-False +0 -1
  628. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-True-False-True-True +0 -1
  629. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-True-True-False-False +0 -1
  630. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-True-True-False-True +0 -1
  631. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-True-True-True-False +0 -1
  632. densitty-0.8.2/tests/goldens/test_axes-False-(-1-10)-ext-True-True-True-True +0 -1
  633. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-False-False-False-False +0 -1
  634. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-False-False-False-True +0 -1
  635. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-False-False-True-False +0 -1
  636. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-False-False-True-True +0 -1
  637. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-False-True-False-False +0 -1
  638. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-False-True-False-True +0 -1
  639. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-False-True-True-False +0 -1
  640. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-False-True-True-True +0 -1
  641. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-True-False-False-False +0 -1
  642. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-True-False-False-True +0 -1
  643. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-True-False-True-False +0 -1
  644. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-True-False-True-True +0 -1
  645. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-True-True-False-False +0 -1
  646. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-True-True-False-True +0 -1
  647. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-True-True-True-False +0 -1
  648. densitty-0.8.2/tests/goldens/test_axes-False-(-1-2)-ext-True-True-True-True +0 -1
  649. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-False-False-False-False +0 -1
  650. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-False-False-False-True +0 -1
  651. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-False-False-True-False +0 -1
  652. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-False-False-True-True +0 -1
  653. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-False-True-False-False +0 -1
  654. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-False-True-False-True +0 -1
  655. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-False-True-True-False +0 -1
  656. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-False-True-True-True +0 -1
  657. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-True-False-False-False +0 -1
  658. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-True-False-False-True +0 -1
  659. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-True-False-True-False +0 -1
  660. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-True-False-True-True +0 -1
  661. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-True-True-False-False +0 -1
  662. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-True-True-False-True +0 -1
  663. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-True-True-True-False +0 -1
  664. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0)-ext-True-True-True-True +0 -1
  665. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-False-False-False-False +0 -1
  666. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-False-False-False-True +0 -1
  667. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-False-False-True-False +0 -1
  668. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-False-False-True-True +0 -1
  669. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-False-True-False-False +0 -1
  670. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-False-True-False-True +0 -1
  671. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-False-True-True-False +0 -1
  672. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-False-True-True-True +0 -1
  673. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-True-False-False-False +0 -1
  674. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-True-False-False-True +0 -1
  675. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-True-False-True-False +0 -1
  676. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-True-False-True-True +0 -1
  677. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-True-True-False-False +0 -1
  678. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-True-True-False-True +0 -1
  679. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-True-True-True-False +0 -1
  680. densitty-0.8.2/tests/goldens/test_axes-True-(-1-0.1)-ext-True-True-True-True +0 -1
  681. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-False-False-False-False +0 -1
  682. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-False-False-False-True +0 -1
  683. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-False-False-True-False +0 -1
  684. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-False-False-True-True +0 -1
  685. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-False-True-False-False +0 -1
  686. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-False-True-False-True +0 -1
  687. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-False-True-True-False +0 -1
  688. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-False-True-True-True +0 -1
  689. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-True-False-False-False +0 -1
  690. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-True-False-False-True +0 -1
  691. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-True-False-True-False +0 -1
  692. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-True-False-True-True +0 -1
  693. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-True-True-False-False +0 -1
  694. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-True-True-False-True +0 -1
  695. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-True-True-True-False +0 -1
  696. densitty-0.8.2/tests/goldens/test_axes-True-(-1-10)-ext-True-True-True-True +0 -1
  697. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-False-False-False-False +0 -1
  698. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-False-False-False-True +0 -1
  699. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-False-False-True-False +0 -1
  700. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-False-False-True-True +0 -1
  701. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-False-True-False-False +0 -1
  702. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-False-True-False-True +0 -1
  703. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-False-True-True-False +0 -1
  704. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-False-True-True-True +0 -1
  705. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-True-False-False-False +0 -1
  706. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-True-False-False-True +0 -1
  707. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-True-False-True-False +0 -1
  708. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-True-False-True-True +0 -1
  709. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-True-True-False-False +0 -1
  710. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-True-True-False-True +0 -1
  711. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-True-True-True-False +0 -1
  712. densitty-0.8.2/tests/goldens/test_axes-True-(-1-2)-ext-True-True-True-True +0 -1
  713. densitty-0.8.2/tests/goldens/test_axes_ascii-False-False-False-False +0 -1
  714. densitty-0.8.2/tests/goldens/test_axes_ascii-False-False-False-True +0 -1
  715. densitty-0.8.2/tests/goldens/test_axes_ascii-False-False-True-False +0 -1
  716. densitty-0.8.2/tests/goldens/test_axes_ascii-False-False-True-True +0 -1
  717. densitty-0.8.2/tests/goldens/test_axes_ascii-False-True-False-False +0 -1
  718. densitty-0.8.2/tests/goldens/test_axes_ascii-False-True-False-True +0 -1
  719. densitty-0.8.2/tests/goldens/test_axes_ascii-False-True-True-False +0 -1
  720. densitty-0.8.2/tests/goldens/test_axes_ascii-False-True-True-True +0 -1
  721. densitty-0.8.2/tests/goldens/test_axes_ascii-True-False-False-False +0 -1
  722. densitty-0.8.2/tests/goldens/test_axes_ascii-True-False-False-True +0 -1
  723. densitty-0.8.2/tests/goldens/test_axes_ascii-True-False-True-False +0 -1
  724. densitty-0.8.2/tests/goldens/test_axes_ascii-True-False-True-True +0 -1
  725. densitty-0.8.2/tests/goldens/test_axes_ascii-True-True-False-False +0 -1
  726. densitty-0.8.2/tests/goldens/test_axes_ascii-True-True-False-True +0 -1
  727. densitty-0.8.2/tests/goldens/test_axes_ascii-True-True-True-False +0 -1
  728. densitty-0.8.2/tests/goldens/test_axes_ascii-True-True-True-True +0 -1
  729. densitty-0.8.2/tests/goldens/test_histplot2d_1 +0 -1
  730. densitty-0.8.2/tests/goldens/test_histplot2d_3 +0 -1
  731. densitty-0.8.2/tests/goldens/test_histplot2d_4 +0 -1
  732. densitty-0.8.2/tests/goldens/test_maxsize_fitscreen +0 -1
  733. densitty-0.8.2/tests/goldens/test_maxsize_set_default_size +0 -1
  734. densitty-0.8.2/tests/goldens/test_single_data +0 -1
  735. densitty-0.8.2/tests/goldens/test_single_valued_data +0 -1
  736. densitty-0.8.2/tests/helper_tests.py +0 -50
  737. densitty-0.8.2/tests/util_tests.py +0 -10
  738. {densitty-0.8.2 → densitty-0.9.0}/.gitignore +0 -0
  739. {densitty-0.8.2 → densitty-0.9.0}/LICENSE +0 -0
  740. {densitty-0.8.2 → densitty-0.9.0}/densitty/__init__.py +0 -0
  741. {densitty-0.8.2 → densitty-0.9.0}/densitty/ansi.py +0 -0
  742. {densitty-0.8.2 → densitty-0.9.0}/densitty/ascii_art.py +0 -0
  743. {densitty-0.8.2 → densitty-0.9.0}/densitty/lineart.py +0 -0
  744. {densitty-0.8.2 → densitty-0.9.0}/densitty.egg-info/dependency_links.txt +0 -0
  745. {densitty-0.8.2 → densitty-0.9.0}/densitty.egg-info/top_level.txt +0 -0
  746. {densitty-0.8.2 → densitty-0.9.0}/docs/examples.md +0 -0
  747. {densitty-0.8.2 → densitty-0.9.0}/docs/eyeplot.png +0 -0
  748. {densitty-0.8.2 → densitty-0.9.0}/docs/hist2d-axes.png +0 -0
  749. {densitty-0.8.2 → densitty-0.9.0}/docs/hist2d-basic.png +0 -0
  750. {densitty-0.8.2 → densitty-0.9.0}/docs/hist2d-finer-color-borderline.png +0 -0
  751. {densitty-0.8.2 → densitty-0.9.0}/docs/hist2d-helper.png +0 -0
  752. {densitty-0.8.2 → densitty-0.9.0}/docs/hist2d-scaled.png +0 -0
  753. {densitty-0.8.2 → densitty-0.9.0}/docs/inline-histplot2d.png +0 -0
  754. {densitty-0.8.2 → densitty-0.9.0}/docs/terminal_support.md +0 -0
  755. {densitty-0.8.2 → densitty-0.9.0}/docs/usage.md +0 -0
  756. {densitty-0.8.2 → densitty-0.9.0}/examples/eye_plot.py +0 -0
  757. {densitty-0.8.2 → densitty-0.9.0}/examples/run_examples.py +0 -0
  758. {densitty-0.8.2 → densitty-0.9.0}/setup.cfg +0 -0
  759. {densitty-0.8.2 → densitty-0.9.0}/tests/#lineart_tests.py# +0 -0
  760. {densitty-0.8.2 → densitty-0.9.0}/tests/binning_tests.py +0 -0
  761. {densitty-0.8.2 → densitty-0.9.0}/tests/convert_tests.py +0 -0
  762. {densitty-0.8.2 → densitty-0.9.0}/tests/detect_tests.py +0 -0
  763. {densitty-0.8.2 → densitty-0.9.0}/tests/gen_norm_data.py +0 -0
  764. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.BLUE_RED +0 -0
  765. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.BLUE_RED_halfheight +0 -0
  766. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.COOL +0 -0
  767. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.COOL_halfheight +0 -0
  768. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.FADE_IN +0 -0
  769. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.FADE_IN_halfheight +0 -0
  770. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.GRAYSCALE +0 -0
  771. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.GRAYSCALE_halfheight +0 -0
  772. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.HOT +0 -0
  773. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.HOT_halfheight +0 -0
  774. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.RAINBOW +0 -0
  775. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.RAINBOW_16 +0 -0
  776. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.RAINBOW_16_halfheight +0 -0
  777. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ansi.RAINBOW_halfheight +0 -0
  778. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/ascii-map +0 -0
  779. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/auto_allzero +0 -0
  780. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/auto_color_limits +0 -0
  781. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/halfheight +0 -0
  782. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/halfheight_single_row +0 -0
  783. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/simple_glyph_ascii +0 -0
  784. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/simple_glyph_basic +0 -0
  785. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/simple_glyph_extended +0 -0
  786. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-False-False-False-False +0 -0
  787. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-False-False-False-True +0 -0
  788. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-False-False-True-False +0 -0
  789. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-False-False-True-True +0 -0
  790. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-False-True-False-False +0 -0
  791. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-False-True-False-True +0 -0
  792. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-False-True-True-False +0 -0
  793. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-False-True-True-True +0 -0
  794. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-True-False-False-False +0 -0
  795. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-True-False-False-True +0 -0
  796. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-True-False-True-False +0 -0
  797. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-True-False-True-True +0 -0
  798. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-True-True-False-False +0 -0
  799. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-True-True-False-True +0 -0
  800. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-True-True-True-False +0 -0
  801. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1)-ext-True-True-True-True +0 -0
  802. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-False-False-False-False +0 -0
  803. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-False-False-False-True +0 -0
  804. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-False-False-True-False +0 -0
  805. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-False-False-True-True +0 -0
  806. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-False-True-False-False +0 -0
  807. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-False-True-False-True +0 -0
  808. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-False-True-True-False +0 -0
  809. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-False-True-True-True +0 -0
  810. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-True-False-False-False +0 -0
  811. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-True-False-False-True +0 -0
  812. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-True-False-True-False +0 -0
  813. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-True-False-True-True +0 -0
  814. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-True-True-False-False +0 -0
  815. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-True-True-False-True +0 -0
  816. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-True-True-True-False +0 -0
  817. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes-True-(-1-1.5)-ext-True-True-True-True +0 -0
  818. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes_labelsgiven +0 -0
  819. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_axes_small +0 -0
  820. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_bin_data_1 +0 -0
  821. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_bin_data_2 +0 -0
  822. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_bin_data_3 +0 -0
  823. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_bin_data_unaligned +0 -0
  824. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_binning_auto_spec_range_1 +0 -0
  825. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_binning_drop_data +0 -0
  826. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_binning_edge_1 +0 -0
  827. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_binning_edge_2 +0 -0
  828. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_binning_fixed_1 +0 -0
  829. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_binning_fixed_2 +0 -0
  830. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_binning_no_drop_data +0 -0
  831. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_binning_provide_edges +0 -0
  832. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_binning_simple_1 +0 -0
  833. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_binning_simple_2 +0 -0
  834. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_border_nonhist_toscreen +0 -0
  835. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_empty_data +0 -0
  836. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_histplot2d_2 +0 -0
  837. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_maxsize_fitscreen_noaxes +0 -0
  838. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_maxsize_keepaspect +0 -0
  839. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_maxsize_reservemargin +0 -0
  840. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/test_simple_hist_toscreen +0 -0
  841. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.BLUE_RED +0 -0
  842. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.BLUE_RED_halfheight +0 -0
  843. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.COOL +0 -0
  844. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.COOL_halfheight +0 -0
  845. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.FADE_IN +0 -0
  846. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.FADE_IN_halfheight +0 -0
  847. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.GRAYSCALE +0 -0
  848. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.GRAYSCALE_LINEAR +0 -0
  849. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.GRAYSCALE_LINEAR_halfheight +0 -0
  850. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.GRAYSCALE_halfheight +0 -0
  851. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.HOT +0 -0
  852. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.HOT_halfheight +0 -0
  853. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.RAINBOW +0 -0
  854. {densitty-0.8.2 → densitty-0.9.0}/tests/goldens/truecolor.RAINBOW_halfheight +0 -0
  855. {densitty-0.8.2 → densitty-0.9.0}/tests/lineart_tests.py +0 -0
  856. {densitty-0.8.2 → densitty-0.9.0}/tests/numpy_tests.py +0 -0
  857. {densitty-0.8.2 → densitty-0.9.0}/tests/scale_tests.py +0 -0
@@ -0,0 +1,40 @@
1
+ # Presubmit Lint/Format/Type checking
2
+ # For documentation on GitHub Actions Workflows, see:
3
+ # https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
4
+ name: Checks
5
+ on:
6
+ pull_request:
7
+ types: [opened, synchronize, reopened]
8
+ branches: [main]
9
+ push:
10
+ branches: [main]
11
+
12
+ jobs:
13
+ checks:
14
+ runs-on: ubuntu-latest
15
+ defaults:
16
+ run:
17
+ shell: bash
18
+ steps:
19
+ - name: Check out
20
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
21
+ with:
22
+ fetch-depth: 0 # Needed for setuptools_scm to work correctly
23
+
24
+ - name: Install uv
25
+ uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867
26
+
27
+ - name: Set up Python 3.14
28
+ uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548
29
+ with:
30
+ python-version: 3.14
31
+ allow-prereleases: true
32
+
33
+ - name: Install the project
34
+ run: uv sync --all-extras --dev
35
+
36
+ - name: Run lint
37
+ run: uv run --with pylint python -m pylint --ignore util.pyi densitty
38
+
39
+ - name: Check format
40
+ run: uv run --with black python -m black -l 99 --check densitty/*.py tests/*.py
@@ -0,0 +1,42 @@
1
+ # Test on 3.10-3.15 on all platforms, weekly, just in case something breaks on
2
+ # intermediate or beta python versions.
3
+
4
+ # For documentation on GitHub Actions Workflows, see:
5
+ # https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
6
+ name: PeriodicTests
7
+ on:
8
+ schedule:
9
+ - cron: "40 4 2,9,16,22 * *"
10
+
11
+ jobs:
12
+ test_schedule:
13
+ strategy:
14
+ matrix:
15
+ os: [ubuntu-latest, macos-latest, windows-latest]
16
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t", "3.15"]
17
+ fail-fast: false
18
+
19
+ runs-on: ${{ matrix.os }}
20
+ defaults:
21
+ run:
22
+ shell: bash
23
+ steps:
24
+ - name: Check out
25
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
26
+ with:
27
+ fetch-depth: 0 # Needed for setuptools_scm to work correctly
28
+
29
+ - name: Install uv
30
+ uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867
31
+
32
+ - name: Set up Python ${{ matrix.python-version }}
33
+ uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548
34
+ with:
35
+ python-version: ${{ matrix.python-version }}
36
+ allow-prereleases: true
37
+
38
+ - name: Install the project
39
+ run: uv sync --all-extras --dev
40
+
41
+ - name: Run tests
42
+ run: make test-ci
@@ -0,0 +1,43 @@
1
+ # Pre-submit testing, for Python 3.10 and 3.14 on Linux/Mac/Windows
2
+ # For documentation on GitHub Actions Workflows, see:
3
+ # https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
4
+ name: Tests
5
+ on:
6
+ pull_request:
7
+ types: [opened, synchronize, reopened]
8
+ branches: [main]
9
+ push:
10
+ branches: [main]
11
+
12
+ jobs:
13
+ tests:
14
+ strategy:
15
+ matrix:
16
+ os: [ubuntu-latest, macos-latest, windows-latest]
17
+ python-version: ["3.10", "3.14", "3.14t"]
18
+ fail-fast: false
19
+
20
+ runs-on: ${{ matrix.os }}
21
+ defaults:
22
+ run:
23
+ shell: bash
24
+ steps:
25
+ - name: Check out
26
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
27
+ with:
28
+ fetch-depth: 0 # Needed for setuptools_scm to work correctly
29
+
30
+ - name: Install uv
31
+ uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867
32
+
33
+ - name: Set up Python ${{ matrix.python-version }}
34
+ uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548
35
+ with:
36
+ python-version: ${{ matrix.python-version }}
37
+ allow-prereleases: true
38
+
39
+ - name: Install the project
40
+ run: uv sync --all-extras --dev
41
+
42
+ - name: Run tests
43
+ run: make test-ci
@@ -0,0 +1,70 @@
1
+ #TEST_PACKAGES := numpy,pytest,readchar,rich
2
+
3
+ .PHONY: test-ci
4
+ test-ci:
5
+ PYTHONPATH=. uv run python -m pytest tests/*.py
6
+
7
+ .PHONY: test
8
+ test: test-ci ## Add output to show current test coverage, but no report
9
+ PYTHONPATH=. uv run python -m pytest --cov=densitty tests/*.py
10
+
11
+ .PHONY: testcov
12
+ testcov: ## Output test coverage report
13
+ PYTHONPATH=. uv run python -m pytest --cov=densitty --cov-report=html tests/*.py
14
+
15
+ .PHONY: golden-accept
16
+ golden-accept:
17
+ PYTHONPATH=. uv run python tests/golden_diff.py
18
+
19
+ .PHONY: lint
20
+ lint:
21
+ ## Ignore stub file, as it seems to confuse pylint
22
+ PYTHONPATH=. uv run python -m pylint --ignore util.pyi densitty
23
+
24
+ .PHONY: format
25
+ format:
26
+ uv run python -m black -l 99 densitty/*.py
27
+ uv run python -m black -l 99 tests/*.py
28
+
29
+ .PHONY: check-format
30
+ check-format:
31
+ uv run python -m black -l 99 --check densitty/*.py tests/*.py
32
+
33
+ .PHONY: typecheck
34
+ typecheck:
35
+ PYTHONPATH=. uv run python -m mypy densitty
36
+ PYTHONPATH=. uv run python -m mypy tests/numpy_tests.py
37
+ PYTHONPATH=. uv run python -m mypy tests/axis_tests.py
38
+
39
+ .PHONY: check ## essentially the same as the presubmit checks
40
+ check: lint check-format typecheck test
41
+
42
+ .PHONY: colors
43
+ colors:
44
+ PYTHONPATH=. uv run python tests/color_tests.py
45
+
46
+ .PHONY: build
47
+ build: ## Build wheel file
48
+ rm -rf ./dist
49
+ uvx --from build pyproject-build --installer uv
50
+
51
+ .PHONY: tag
52
+ tag: ## Add a Git tag and push it to origin with syntax: make tag TAG=tag_name
53
+ ifeq ($(origin TAG),undefined)
54
+ $(error "ERROR: use like 'make tag TAG=tag_name'")
55
+ else
56
+ @echo "Creating git tag: ${TAG}"
57
+ git tag -a ${TAG} -m ""
58
+ @echo "Pushing tag to origin: ${TAG}"
59
+ git push origin ${TAG}
60
+ endif
61
+
62
+ .PHONY: publish-test
63
+ publish-test: build
64
+ @echo "Publishing to testpypi"
65
+ uvx twine upload --repository testpypi dist/*
66
+
67
+ .PHONY: publish
68
+ publish: build
69
+ @echo "Publishing to REAL pypi"
70
+ uvx twine upload dist/*
@@ -0,0 +1,39 @@
1
+ Metadata-Version: 2.4
2
+ Name: densitty
3
+ Version: 0.9.0
4
+ Summary: densitty - create textual 2-D density plots, heatmaps, and 2-D histograms in Python
5
+ Author: Bill Tompkins
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/BillTompkins/densitty
8
+ Keywords: densitty,ascii,ascii-art,plotting,terminal,Python
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Environment :: Console
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3 :: Only
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
19
+ Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Dynamic: license-file
25
+
26
+ <h1 align="center">densitty</h1>
27
+ <h2 align="center"> Terminal-based 2-D Histogram, Density Plots, and Heatmaps</h2>
28
+
29
+ Generate 2-D histograms (density plots, heat maps, eye diagrams) similar to [matplotlib's hist2d](https://matplotlib.org/stable/gallery/statistics/hist.html "hist2d"), but with output in the terminal, and no external dependencies.
30
+
31
+ ![Plot Output](https://billtompkins.github.io/densitty/docs/inline-histplot2d.png "example output image")
32
+
33
+ ## [Examples/Gallery](https://billtompkins.github.io/densitty/docs/examples.html)
34
+
35
+ ## [Sub-modules / Usage Notes](https://billtompkins.github.io/densitty/docs/usage.html)
36
+
37
+ ## [Color, Size, and Glyph Support](https://billtompkins.github.io/densitty/docs/terminal_support.html)
38
+
39
+ ## [API](https://billtompkins.github.io/densitty/docs/api.html)
@@ -0,0 +1,14 @@
1
+ <h1 align="center">densitty</h1>
2
+ <h2 align="center"> Terminal-based 2-D Histogram, Density Plots, and Heatmaps</h2>
3
+
4
+ Generate 2-D histograms (density plots, heat maps, eye diagrams) similar to [matplotlib's hist2d](https://matplotlib.org/stable/gallery/statistics/hist.html "hist2d"), but with output in the terminal, and no external dependencies.
5
+
6
+ ![Plot Output](https://billtompkins.github.io/densitty/docs/inline-histplot2d.png "example output image")
7
+
8
+ ## [Examples/Gallery](https://billtompkins.github.io/densitty/docs/examples.html)
9
+
10
+ ## [Sub-modules / Usage Notes](https://billtompkins.github.io/densitty/docs/usage.html)
11
+
12
+ ## [Color, Size, and Glyph Support](https://billtompkins.github.io/densitty/docs/terminal_support.html)
13
+
14
+ ## [API](https://billtompkins.github.io/densitty/docs/api.html)
@@ -0,0 +1,402 @@
1
+ """Axis-generation support."""
2
+
3
+ import dataclasses
4
+ from decimal import Decimal
5
+ import itertools
6
+ import math
7
+ from typing import Optional, Sequence
8
+
9
+ from . import lineart, util
10
+ from .util import FloatLike, ValueRange
11
+
12
+
13
+ @dataclasses.dataclass
14
+ class BorderChars:
15
+ """Characters to use for X/Y border"""
16
+
17
+ first: str
18
+ middle: str
19
+ last: str
20
+
21
+
22
+ y_border = {False: BorderChars(" ", " ", " "), True: BorderChars("╷", "│", "╵")}
23
+ x_border = {False: BorderChars(" ", " ", " "), True: BorderChars("╶", "─", "╴")}
24
+
25
+ ###############################################
26
+ # Helper functions used by the Axis class below
27
+
28
+
29
+ def pick_step_size(lower_bound) -> Decimal:
30
+ """Try to pick a step size that gives nice round values for step positions."""
31
+ if lower_bound <= 0:
32
+ raise ValueError("pick_step_size called with 0 or negative value")
33
+
34
+ _, frac, exp = util.sfrexp10(lower_bound) # 0.1 <= frac < 1.0
35
+
36
+ # round up to an appropriate "round" value that starts with 1/2/5
37
+ if frac <= Decimal("0.2"):
38
+ out = Decimal((0, (2,), exp - 1))
39
+ elif frac <= Decimal("0.5"):
40
+ out = Decimal((0, (5,), exp - 1))
41
+ else:
42
+ out = Decimal((0, (1,), exp))
43
+
44
+ if out >= 10:
45
+ # this will be printed as 1E1 or such. Give it more significant figures so
46
+ # it is printed as an integer:
47
+ return out.quantize(1)
48
+ return out
49
+
50
+
51
+ def add_x_label(line: list[str], label: str, ctr_pos: FloatLike):
52
+ """Adds the label string to the output line, centered at specified position
53
+ The output line is a list of single-character strings, to make this kind of thing
54
+ straightforward"""
55
+ width = len(label)
56
+ start_col = int(max(float(ctr_pos) + 0.49 - width / 2, 0))
57
+ end_col = start_col + width
58
+ line[start_col:end_col] = list(label)
59
+
60
+
61
+ def add_x_tick(line: list[str], start_pos: float, left_margin: int, num_cols: int):
62
+ """Adds a (possibly fractional) tick to the output line, centered at specified position"""
63
+ base_idx = int(start_pos)
64
+ fractional_pos = start_pos - base_idx
65
+ margined_idx = base_idx + left_margin
66
+ if 0.25 <= fractional_pos <= 0.75:
67
+ # add a tick in the center of the appropriate bin
68
+ line[margined_idx] = lineart.merge_chars("│", line[margined_idx])
69
+ return
70
+ if fractional_pos < 0.25:
71
+ left_idx = max(margined_idx - 1, 0)
72
+ else:
73
+ left_idx = margined_idx
74
+
75
+ if base_idx == 0:
76
+ line[left_idx] = lineart.merge_chars("│", line[left_idx])
77
+ else:
78
+ line[left_idx] = "╱"
79
+
80
+ if base_idx >= num_cols - 1:
81
+ line[left_idx + 1] = lineart.merge_chars("│", line[left_idx + 1])
82
+ else:
83
+ line[left_idx + 1] = "╲"
84
+
85
+
86
+ def gen_tick_values(value_range, tick_step):
87
+ """Produce tick values in the specified range. Basically numpy.arange"""
88
+
89
+ tick = math.ceil(value_range.min / tick_step) * tick_step
90
+ while tick <= value_range.max:
91
+ yield tick
92
+ tick += tick_step
93
+
94
+
95
+ def filter_labels(labels: dict, values_to_print: Sequence):
96
+ """Remove printed value with empty string (just a tick) for any
97
+ labels that aren't in values_to_print"""
98
+
99
+ return {k: v if k in values_to_print else "" for k, v in labels.items()}
100
+
101
+
102
+ def calc_min_step(
103
+ value_range: ValueRange,
104
+ bin_width: FloatLike,
105
+ accomodate_values: bool,
106
+ tick_space: int,
107
+ fmt: str,
108
+ ):
109
+ """Calculate minimum step size for tick placement.
110
+
111
+ When accomodate_values is True, considers the width of printed labels.
112
+ Otherwise, only considers tick spacing requirements.
113
+ """
114
+ if accomodate_values:
115
+ # find a representative printed label width to use for basic calculations
116
+ test_tick_step = pick_step_size((value_range.max - value_range.min) / 5)
117
+ test_values_printed = tuple(
118
+ fmt.format(value) for value in gen_tick_values(value_range, test_tick_step)
119
+ )
120
+ widths_in_bins = tuple(len(p) for p in test_values_printed)
121
+ # get the 3'd lowest width, or highest if there are less than 3 due to tick-step roundup:
122
+ example_width = sorted(widths_in_bins)[:3][-1]
123
+ min_printed_step = (example_width + 1) * bin_width
124
+ # If the printed labels are small (single-digit), the ticks themselves might be the
125
+ # limiting factor, especially if they are X-axis fractional ticks like "/\"
126
+ return max(min_printed_step, bin_width * (2 + tick_space * 2))
127
+ return bin_width * (2 + tick_space)
128
+
129
+
130
+ def gen_label_subsets(positions: tuple, tick_step: Decimal) -> list[tuple]:
131
+ """Generate candidate label subsets based on tick step digit.
132
+
133
+ For tick steps starting with 1 or 2: generates every-5th subsets (5 variants).
134
+ For tick steps starting with 5: generates every-2nd subsets (2 variants).
135
+ """
136
+ step_digit = tick_step.as_tuple().digits[0] # leading digit of tick step: 1, 2, or 5
137
+
138
+ # we want to pick different label subsets depending on whether we're advancing by
139
+ # 1eX, 2eX, or 5eX:
140
+ label_subsets = []
141
+ if step_digit in (1, 2):
142
+ # print on every fifth label, starting at 0..4
143
+ label_subsets += list(positions[start::5] for start in range(5))
144
+ elif step_digit in (1, 5):
145
+ # print on every second label, starting at 0 or 1
146
+ label_subsets += list(positions[start::2] for start in range(2))
147
+ return label_subsets
148
+
149
+
150
+ def label_ends_only(labels, positions, tick_step, bin_width, accomodate_values):
151
+ """See if printing just the labels for the first and last ticks will fit"""
152
+
153
+ if not accomodate_values:
154
+ # For Y axis / we don't care about printed widths
155
+ return labels
156
+
157
+ half_len_a = len(labels[positions[0]]) // 2
158
+ half_len_b = (len(labels[positions[-1]]) + 1) // 2
159
+ space_available = math.floor(tick_step / bin_width)
160
+
161
+ if half_len_a + half_len_b <= space_available:
162
+ # We can fit values on the first and last ticks
163
+ return filter_labels(labels, (positions[0], positions[-1]))
164
+
165
+ # Not enough space to print two values, so just print the first
166
+ return filter_labels(labels, positions[0:1])
167
+
168
+
169
+ def find_fitting_subset(label_subsets, labels, tick_step, bin_width, accomodate_values):
170
+ """Find roundest label subset that fits within space constraints"""
171
+ for label_subset in util.roundness_ordered(label_subsets):
172
+ if not accomodate_values:
173
+ return filter_labels(labels, label_subset)
174
+ # We're printing at most one value for every 2 ticks, so just make sure
175
+ # that the printed values will not run over the adjacent ticks' area
176
+ # Given the initial min_step logic, this will likely always be true
177
+ allowed_width = tick_step / bin_width * 2 - 2
178
+ max_printed_width = max(len(labels[k]) for k in label_subset)
179
+ if max_printed_width <= allowed_width:
180
+ return filter_labels(labels, label_subset)
181
+ return None
182
+
183
+
184
+ def gen_full_labels(value_range: ValueRange, num_bins, accomodate_values, tick_space, fmt):
185
+ """Generate positions for labels (plain ticks & ticks with value)"""
186
+ bin_width = (value_range.max - value_range.min) / num_bins
187
+
188
+ if bin_width <= 0:
189
+ # we don't have a sensible range for the axis values, so just have empty ticks
190
+ return {}
191
+
192
+ min_step = calc_min_step(value_range, bin_width, accomodate_values, tick_space, fmt)
193
+ cur_tick_step = pick_step_size(min_step)
194
+
195
+ while True:
196
+ labels = {
197
+ value: fmt.format(value) for value in gen_tick_values(value_range, cur_tick_step)
198
+ }
199
+ positions = tuple(labels.keys())
200
+
201
+ if len(labels) == 0:
202
+ # No suitable ticks/labels.
203
+ if accomodate_values:
204
+ # Printed value labels won't fit, try without them
205
+ return gen_full_labels(value_range, num_bins, False, tick_space, "")
206
+ # Nothing fits
207
+ return {}
208
+ if len(labels) == 1:
209
+ return labels
210
+
211
+ label_subsets = gen_label_subsets(positions, cur_tick_step)
212
+
213
+ # Check to see if all generated label subsets only have a single entry
214
+ if max(len(subset) for subset in label_subsets) == 1:
215
+ # Try to just label the ends:
216
+ return label_ends_only(labels, positions, cur_tick_step, bin_width, accomodate_values)
217
+
218
+ result = find_fitting_subset(
219
+ label_subsets, labels, cur_tick_step, bin_width, accomodate_values
220
+ )
221
+ if result is not None:
222
+ return result
223
+
224
+ cur_tick_step = pick_step_size(float(cur_tick_step) * 1.01)
225
+
226
+
227
+ def calc_edges(value_range, num_bins, values_are_edges):
228
+ """Calculate the top/bottom or left/right values for each of 'num_bins' bins
229
+
230
+ Parameters
231
+ ----------
232
+ value_range: util.ValueRange
233
+ Coordinate values for first/last bin
234
+ Can be center of bin, or outside edge (see values_are_edges)
235
+ num_bins: int
236
+ Number of bins/intervals to produce edges for
237
+ values_are_edges: bool
238
+ Indicates that value_range specifies outside edges rather than bin centers
239
+ """
240
+ if values_are_edges or num_bins == 1:
241
+ bin_delta = (value_range.max - value_range.min) / num_bins
242
+ first_bin_min = value_range.min
243
+ else:
244
+ bin_delta = (value_range.max - value_range.min) / (num_bins - 1)
245
+ first_bin_min = value_range.min - (bin_delta / 2)
246
+ bin_edges = tuple(first_bin_min + i * bin_delta for i in range(num_bins + 1))
247
+ return itertools.pairwise(bin_edges)
248
+
249
+
250
+ ###############################################
251
+ # The User-facing interface: the Axis class
252
+
253
+
254
+ @dataclasses.dataclass
255
+ class Axis:
256
+ """Options for axis generation."""
257
+
258
+ value_range: ValueRange # can also specify as a tuple of (min, max)
259
+ labels: Optional[dict[float, str]] = None # map axis value to label (plus tick) at that value
260
+ label_fmt: str = "{}" # format for generated labels
261
+ border_line: bool = False # embed ticks in a horizontal X-axis or vertical Y-axis line
262
+ values_are_edges: bool = False # N+1 values, indicating boundaries between pixels, not centers
263
+ fractional_tick_pos: bool = False # Use "▔", "▁", or "╱╲" for non-centered ticks
264
+
265
+ def __init__(
266
+ self,
267
+ value_range: ValueRange | tuple[FloatLike, FloatLike],
268
+ labels: Optional[dict[float, str]] = None,
269
+ label_fmt: str = "{}",
270
+ border_line: bool = False,
271
+ values_are_edges: bool = False,
272
+ fractional_tick_pos: bool = False,
273
+ # pylint: disable=too-many-arguments,too-many-positional-arguments
274
+ ):
275
+ # Sanitize value_range: allow user to provide it as a tuple of FloatLike (without
276
+ # needing to import ValueRange), and convert to ValueRange(Decimal, Decimal)
277
+ self.value_range = ValueRange(
278
+ Decimal(float(value_range[0])), Decimal(float(value_range[1]))
279
+ )
280
+ self.labels = labels
281
+ self.label_fmt = label_fmt
282
+ self.border_line = border_line
283
+ self.values_are_edges = values_are_edges
284
+ self.fractional_tick_pos = fractional_tick_pos
285
+
286
+ def _unjustified_y_axis(self, num_rows: int):
287
+ """Returns the Y axis string for each line of the plot"""
288
+ if self.labels is None:
289
+ labels = gen_full_labels(
290
+ self.value_range,
291
+ num_rows,
292
+ False,
293
+ 0,
294
+ self.label_fmt,
295
+ )
296
+ else:
297
+ labels = self.labels
298
+
299
+ label_values = sorted(labels.keys())
300
+ bins = calc_edges(self.value_range, num_rows, self.values_are_edges)
301
+
302
+ use_combining = self.border_line and self.fractional_tick_pos
303
+ for row_min, row_max in bins:
304
+ if label_values and row_min <= label_values[0] <= row_max:
305
+ label_str = labels[label_values[0]]
306
+
307
+ offset_frac = (label_values[0] - row_min) / (row_max - row_min)
308
+ if offset_frac < 0.25 and self.fractional_tick_pos:
309
+ tick_char = "▔"
310
+ elif offset_frac > 0.75 and self.fractional_tick_pos:
311
+ tick_char = "▁"
312
+ else:
313
+ tick_char = "─"
314
+ label_str += lineart.merge_chars(
315
+ tick_char,
316
+ y_border[self.border_line].middle,
317
+ use_combining_unicode=use_combining,
318
+ )
319
+ yield label_str
320
+ label_values = label_values[1:]
321
+ else:
322
+ yield y_border[self.border_line].middle
323
+
324
+ def render_as_y(self, num_rows: int, pad_top: bool, pad_bot: bool, flip: bool):
325
+ """Create a Y axis as a list of strings for the left margin of a plot
326
+
327
+ Parameters
328
+ ----------
329
+ num_rows: int
330
+ Number of data rows
331
+ pad_top: bool
332
+ Emit a line for an X axis line/row at the top
333
+ pad_bot: bool
334
+ Emit a line for an X axis line/row at the bottom
335
+ flip: bool
336
+ Put the minimum Y on the last line rather than the first
337
+ """
338
+ unpadded_labels = list(self._unjustified_y_axis(num_rows))
339
+ if flip:
340
+ unpadded_labels = [
341
+ s.translate(lineart.flip_vertical) for s in reversed(unpadded_labels)
342
+ ]
343
+
344
+ if pad_top:
345
+ unpadded_labels = [y_border[self.border_line].first] + unpadded_labels
346
+ if pad_bot:
347
+ unpadded_labels = unpadded_labels + [y_border[self.border_line].last]
348
+
349
+ lengths = [lineart.display_len(label_str) for label_str in unpadded_labels]
350
+ max_width = max(lengths)
351
+ pad_lengths = [max_width - length for length in lengths]
352
+ padded_labels = [
353
+ " " * pad_length + label_str
354
+ for (label_str, pad_length) in zip(unpadded_labels, pad_lengths)
355
+ ]
356
+ return padded_labels
357
+
358
+ def render_as_x(self, num_cols: int, left_margin: int):
359
+ """Generate X tick line and X label line.
360
+
361
+ Parameters
362
+ ----------
363
+ num_cols: int
364
+ Number of data columns
365
+ left_margin: int
366
+ chars to the left of leftmost data col. May have Labels/border-line.
367
+ """
368
+ if self.labels is None:
369
+ tick_space = 1 if self.fractional_tick_pos else 0
370
+ labels = gen_full_labels(self.value_range, num_cols, True, tick_space, self.label_fmt)
371
+ else:
372
+ labels = self.labels
373
+
374
+ label_values = sorted(labels.keys())
375
+
376
+ bins = calc_edges(self.value_range, num_cols, self.values_are_edges)
377
+
378
+ tick_line = list(
379
+ " " * (left_margin - 1)
380
+ + x_border[self.border_line].first
381
+ + x_border[self.border_line].middle * num_cols
382
+ + x_border[self.border_line].last
383
+ )
384
+
385
+ label_line = [" "] * len(tick_line) # labels under the ticks
386
+
387
+ for col_idx, (col_min, col_max) in enumerate(bins):
388
+ # use Decimal.next_plus to accomodate rounding error/truncation
389
+ if label_values and col_min <= label_values[0] <= col_max.next_plus():
390
+ if self.fractional_tick_pos:
391
+ offset_frac = (label_values[0] - col_min) / (col_max - col_min)
392
+ else:
393
+ offset_frac = 0.5 # not doing fractional tick positioning == center the tick
394
+
395
+ add_x_tick(tick_line, col_idx + offset_frac, left_margin, num_cols)
396
+ add_x_label(
397
+ label_line, labels[label_values[0]], col_idx + left_margin + offset_frac
398
+ )
399
+
400
+ label_values = label_values[1:] # pop that first label since we added it
401
+
402
+ return "".join(tick_line), "".join(label_line)