starplot 0.20.2__tar.gz → 0.20.3__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 (316) hide show
  1. {starplot-0.20.2 → starplot-0.20.3}/.gitignore +3 -0
  2. {starplot-0.20.2 → starplot-0.20.3}/CITATION.cff +2 -2
  3. {starplot-0.20.2 → starplot-0.20.3}/Dockerfile +5 -5
  4. {starplot-0.20.2 → starplot-0.20.3}/PKG-INFO +2 -2
  5. {starplot-0.20.2 → starplot-0.20.3}/README.md +1 -1
  6. {starplot-0.20.2 → starplot-0.20.3}/docs/changelog.md +1 -0
  7. starplot-0.20.3/docs/images/starplot-header.svg +35 -0
  8. {starplot-0.20.2 → starplot-0.20.3}/pyproject.toml +23 -0
  9. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/__init__.py +1 -1
  10. starplot-0.20.3/src/starplot/data/library/constellation_names.parquet +0 -0
  11. starplot-0.20.3/src/starplot/data/library/dso_names.parquet +0 -0
  12. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/data/library/star_designations.parquet +0 -0
  13. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plots/base.py +21 -28
  14. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/helpers.py +9 -1
  15. {starplot-0.20.2 → starplot-0.20.3}/tests/test_map.py +5 -0
  16. starplot-0.20.2/requirements-dev.txt +0 -21
  17. starplot-0.20.2/requirements.txt +0 -18
  18. starplot-0.20.2/src/starplot/data/library/constellation_names.parquet +0 -0
  19. starplot-0.20.2/src/starplot/data/library/dso_names.parquet +0 -0
  20. {starplot-0.20.2 → starplot-0.20.3}/.dockerignore +0 -0
  21. {starplot-0.20.2 → starplot-0.20.3}/.github/FUNDING.yml +0 -0
  22. {starplot-0.20.2 → starplot-0.20.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  23. {starplot-0.20.2 → starplot-0.20.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  24. {starplot-0.20.2 → starplot-0.20.3}/.github/workflows/docs.yml +0 -0
  25. {starplot-0.20.2 → starplot-0.20.3}/.github/workflows/release.yml +0 -0
  26. {starplot-0.20.2 → starplot-0.20.3}/.github/workflows/test.yml +0 -0
  27. {starplot-0.20.2 → starplot-0.20.3}/CODE_OF_CONDUCT.md +0 -0
  28. {starplot-0.20.2 → starplot-0.20.3}/CONTRIBUTING.md +0 -0
  29. {starplot-0.20.2 → starplot-0.20.3}/LICENSE +0 -0
  30. {starplot-0.20.2 → starplot-0.20.3}/Makefile +0 -0
  31. {starplot-0.20.2 → starplot-0.20.3}/data/raw/constellation_borders.json +0 -0
  32. {starplot-0.20.2 → starplot-0.20.3}/data/raw/constellations.json +0 -0
  33. {starplot-0.20.2 → starplot-0.20.3}/data/raw/milkyway.json +0 -0
  34. {starplot-0.20.2 → starplot-0.20.3}/data/raw/star_designations.csv +0 -0
  35. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/constellation_names.csv +0 -0
  36. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/dso_names.csv +0 -0
  37. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/en-us/constellation_names.csv +0 -0
  38. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/en-us/dso_names.csv +0 -0
  39. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/en-us/other_terms.csv +0 -0
  40. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/en-us/star_names.csv +0 -0
  41. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/es/constellation_names.csv +0 -0
  42. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/es/dso_names.csv +0 -0
  43. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/es/other_terms.csv +0 -0
  44. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/es/star_names.csv +0 -0
  45. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/fa/constellation_names.csv +0 -0
  46. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/fa/dso_names.csv +0 -0
  47. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/fa/other_terms.csv +0 -0
  48. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/fa/star_names.csv +0 -0
  49. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/fr/constellation_names.csv +0 -0
  50. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/fr/dso_names.csv +0 -0
  51. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/fr/other_terms.csv +0 -0
  52. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/fr/star_names.csv +0 -0
  53. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/lt/constellation_names.csv +0 -0
  54. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/lt/dso_names.csv +0 -0
  55. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/lt/other_terms.csv +0 -0
  56. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/lt/readme.md +0 -0
  57. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/lt/star_names.csv +0 -0
  58. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/other_terms.csv +0 -0
  59. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/readme.md +0 -0
  60. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/star_names.csv +0 -0
  61. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/zh-cn/constellation_names.csv +0 -0
  62. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/zh-cn/dso_names.csv +0 -0
  63. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/zh-cn/other_terms.csv +0 -0
  64. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/zh-cn/star_names.csv +0 -0
  65. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/zh-tw/constellation_names.csv +0 -0
  66. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/zh-tw/dso_names.csv +0 -0
  67. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/zh-tw/other_terms.csv +0 -0
  68. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/zh-tw/readme.md +0 -0
  69. {starplot-0.20.2 → starplot-0.20.3}/data/raw/translations/zh-tw/star_names.csv +0 -0
  70. {starplot-0.20.2 → starplot-0.20.3}/data/readme.md +0 -0
  71. {starplot-0.20.2 → starplot-0.20.3}/data/scripts/constellation_names.py +0 -0
  72. {starplot-0.20.2 → starplot-0.20.3}/data/scripts/data_settings.py +0 -0
  73. {starplot-0.20.2 → starplot-0.20.3}/data/scripts/db.py +0 -0
  74. {starplot-0.20.2 → starplot-0.20.3}/data/scripts/docdata.py +0 -0
  75. {starplot-0.20.2 → starplot-0.20.3}/data/scripts/dso_names.py +0 -0
  76. {starplot-0.20.2 → starplot-0.20.3}/data/scripts/star_designations.py +0 -0
  77. {starplot-0.20.2 → starplot-0.20.3}/data/scripts/translations.py +0 -0
  78. {starplot-0.20.2 → starplot-0.20.3}/docs/about.md +0 -0
  79. {starplot-0.20.2 → starplot-0.20.3}/docs/coming-soon.md +0 -0
  80. {starplot-0.20.2 → starplot-0.20.3}/docs/css/extra.css +0 -0
  81. {starplot-0.20.2 → starplot-0.20.3}/docs/custom/main.html +0 -0
  82. {starplot-0.20.2 → starplot-0.20.3}/docs/data/building.md +0 -0
  83. {starplot-0.20.2 → starplot-0.20.3}/docs/data/constellations.md +0 -0
  84. {starplot-0.20.2 → starplot-0.20.3}/docs/data/dsos.md +0 -0
  85. {starplot-0.20.2 → starplot-0.20.3}/docs/data/overview.md +0 -0
  86. {starplot-0.20.2 → starplot-0.20.3}/docs/data/stars.md +0 -0
  87. {starplot-0.20.2 → starplot-0.20.3}/docs/data-explorer.md +0 -0
  88. {starplot-0.20.2 → starplot-0.20.3}/docs/data-sources.md +0 -0
  89. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/horizon-double-cluster.md +0 -0
  90. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/horizon-gradient.md +0 -0
  91. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/horizon-sgr.md +0 -0
  92. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-big-dipper.md +0 -0
  93. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-big.md +0 -0
  94. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-canis-major.md +0 -0
  95. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-carina-nebula.md +0 -0
  96. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-cassiopeia.md +0 -0
  97. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-custom-marker.md +0 -0
  98. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-galaxy.md +0 -0
  99. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-milky-way-stars.md +0 -0
  100. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-orion.md +0 -0
  101. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-orthographic.md +0 -0
  102. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-sagittarius.md +0 -0
  103. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/map-virgo-cluster.md +0 -0
  104. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/optic-iss-transit.md +0 -0
  105. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/optic-m45.md +0 -0
  106. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/optic-moon-saturn.md +0 -0
  107. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/optic-orion.md +0 -0
  108. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/optic-solar-eclipse.md +0 -0
  109. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/star-chart-basic.md +0 -0
  110. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/star-chart-detail.md +0 -0
  111. {starplot-0.20.2 → starplot-0.20.3}/docs/examples/star-chart-french.md +0 -0
  112. {starplot-0.20.2 → starplot-0.20.3}/docs/examples.md +0 -0
  113. {starplot-0.20.2 → starplot-0.20.3}/docs/images/celestial-globe.svg +0 -0
  114. {starplot-0.20.2 → starplot-0.20.3}/docs/images/cover-front-sm-360.png +0 -0
  115. {starplot-0.20.2 → starplot-0.20.3}/docs/images/discord.svg +0 -0
  116. {starplot-0.20.2 → starplot-0.20.3}/docs/images/examples/.keep +0 -0
  117. {starplot-0.20.2 → starplot-0.20.3}/docs/images/favicon.png +0 -0
  118. {starplot-0.20.2 → starplot-0.20.3}/docs/images/logo-2400px.png +0 -0
  119. {starplot-0.20.2 → starplot-0.20.3}/docs/images/logo-original/banner.png +0 -0
  120. {starplot-0.20.2 → starplot-0.20.3}/docs/images/logo-original/banner.svg +0 -0
  121. {starplot-0.20.2 → starplot-0.20.3}/docs/images/logo-original/banner.vectornator +0 -0
  122. {starplot-0.20.2 → starplot-0.20.3}/docs/images/logo-original/logo.png +0 -0
  123. {starplot-0.20.2 → starplot-0.20.3}/docs/images/logo-original/logo.svg +0 -0
  124. {starplot-0.20.2 → starplot-0.20.3}/docs/images/logo-original/logo.vectornator +0 -0
  125. {starplot-0.20.2 → starplot-0.20.3}/docs/images/logo-original/logo2.png +0 -0
  126. {starplot-0.20.2 → starplot-0.20.3}/docs/images/logo.svg +0 -0
  127. {starplot-0.20.2 → starplot-0.20.3}/docs/images/logo2.vectornator +0 -0
  128. {starplot-0.20.2 → starplot-0.20.3}/docs/images/logo500.png +0 -0
  129. {starplot-0.20.2 → starplot-0.20.3}/docs/images/mono-2400px.png +0 -0
  130. {starplot-0.20.2 → starplot-0.20.3}/docs/images/mono.png +0 -0
  131. {starplot-0.20.2 → starplot-0.20.3}/docs/images/mono.svg +0 -0
  132. {starplot-0.20.2 → starplot-0.20.3}/docs/images/star.svg +0 -0
  133. {starplot-0.20.2 → starplot-0.20.3}/docs/images/tutorial/.keep +0 -0
  134. {starplot-0.20.2 → starplot-0.20.3}/docs/index.md +0 -0
  135. {starplot-0.20.2 → starplot-0.20.3}/docs/installation.md +0 -0
  136. {starplot-0.20.2 → starplot-0.20.3}/docs/license.md +0 -0
  137. {starplot-0.20.2 → starplot-0.20.3}/docs/migration-guides/0.16.0.md +0 -0
  138. {starplot-0.20.2 → starplot-0.20.3}/docs/object-names/constellations.md +0 -0
  139. {starplot-0.20.2 → starplot-0.20.3}/docs/object-names/dsos.md +0 -0
  140. {starplot-0.20.2 → starplot-0.20.3}/docs/object-names/stars.md +0 -0
  141. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-callables.md +0 -0
  142. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-collisions.md +0 -0
  143. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-galaxyplot.md +0 -0
  144. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-horizonplot.md +0 -0
  145. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-localization.md +0 -0
  146. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-mapplot.md +0 -0
  147. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-models.md +0 -0
  148. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-ongc.md +0 -0
  149. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-opticplot.md +0 -0
  150. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-positions.md +0 -0
  151. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-selecting-objects.md +0 -0
  152. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-settings.md +0 -0
  153. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-styling.md +0 -0
  154. {starplot-0.20.2 → starplot-0.20.3}/docs/reference-zenithplot.md +0 -0
  155. {starplot-0.20.2 → starplot-0.20.3}/docs/robots.txt +0 -0
  156. {starplot-0.20.2 → starplot-0.20.3}/docs/showcase.md +0 -0
  157. {starplot-0.20.2 → starplot-0.20.3}/docs/snippets/_newsletter.html +0 -0
  158. {starplot-0.20.2 → starplot-0.20.3}/docs/tutorial/01.md +0 -0
  159. {starplot-0.20.2 → starplot-0.20.3}/docs/tutorial/02.md +0 -0
  160. {starplot-0.20.2 → starplot-0.20.3}/docs/tutorial/03.md +0 -0
  161. {starplot-0.20.2 → starplot-0.20.3}/docs/tutorial/04.md +0 -0
  162. {starplot-0.20.2 → starplot-0.20.3}/docs/tutorial/05.md +0 -0
  163. {starplot-0.20.2 → starplot-0.20.3}/docs/tutorial/06.md +0 -0
  164. {starplot-0.20.2 → starplot-0.20.3}/docs/tutorial/07.md +0 -0
  165. {starplot-0.20.2 → starplot-0.20.3}/docs/tutorial/08.md +0 -0
  166. {starplot-0.20.2 → starplot-0.20.3}/docs/tutorial/09.md +0 -0
  167. {starplot-0.20.2 → starplot-0.20.3}/docs/tutorial.md +0 -0
  168. {starplot-0.20.2 → starplot-0.20.3}/examples/examples.py +0 -0
  169. {starplot-0.20.2 → starplot-0.20.3}/examples/galaxy_custom_marker.py +0 -0
  170. {starplot-0.20.2 → starplot-0.20.3}/examples/horizon_double_cluster.py +0 -0
  171. {starplot-0.20.2 → starplot-0.20.3}/examples/horizon_gradient.py +0 -0
  172. {starplot-0.20.2 → starplot-0.20.3}/examples/horizon_sgr.py +0 -0
  173. {starplot-0.20.2 → starplot-0.20.3}/examples/map_big.py +0 -0
  174. {starplot-0.20.2 → starplot-0.20.3}/examples/map_big_dipper.py +0 -0
  175. {starplot-0.20.2 → starplot-0.20.3}/examples/map_canis_major.py +0 -0
  176. {starplot-0.20.2 → starplot-0.20.3}/examples/map_carina.py +0 -0
  177. {starplot-0.20.2 → starplot-0.20.3}/examples/map_cas.py +0 -0
  178. {starplot-0.20.2 → starplot-0.20.3}/examples/map_galaxy.py +0 -0
  179. {starplot-0.20.2 → starplot-0.20.3}/examples/map_milky_way_stars.py +0 -0
  180. {starplot-0.20.2 → starplot-0.20.3}/examples/map_orion.py +0 -0
  181. {starplot-0.20.2 → starplot-0.20.3}/examples/map_orthographic.py +0 -0
  182. {starplot-0.20.2 → starplot-0.20.3}/examples/map_sagittarius.py +0 -0
  183. {starplot-0.20.2 → starplot-0.20.3}/examples/map_virgo_cluster.py +0 -0
  184. {starplot-0.20.2 → starplot-0.20.3}/examples/optic_iss_transit.py +0 -0
  185. {starplot-0.20.2 → starplot-0.20.3}/examples/optic_m45.py +0 -0
  186. {starplot-0.20.2 → starplot-0.20.3}/examples/optic_moon_saturn.py +0 -0
  187. {starplot-0.20.2 → starplot-0.20.3}/examples/optic_orion_nebula.py +0 -0
  188. {starplot-0.20.2 → starplot-0.20.3}/examples/optic_solar_eclipse.py +0 -0
  189. {starplot-0.20.2 → starplot-0.20.3}/examples/star_chart_basic.py +0 -0
  190. {starplot-0.20.2 → starplot-0.20.3}/examples/star_chart_detail.py +0 -0
  191. {starplot-0.20.2 → starplot-0.20.3}/examples/star_chart_french.py +0 -0
  192. {starplot-0.20.2 → starplot-0.20.3}/hash_checks/__init__.py +0 -0
  193. {starplot-0.20.2 → starplot-0.20.3}/hash_checks/data/.keep +0 -0
  194. {starplot-0.20.2 → starplot-0.20.3}/hash_checks/hashio.py +0 -0
  195. {starplot-0.20.2 → starplot-0.20.3}/hash_checks/hashlock.yml +0 -0
  196. {starplot-0.20.2 → starplot-0.20.3}/hash_checks/horizon_checks.py +0 -0
  197. {starplot-0.20.2 → starplot-0.20.3}/hash_checks/map_checks.py +0 -0
  198. {starplot-0.20.2 → starplot-0.20.3}/hash_checks/optic_checks.py +0 -0
  199. {starplot-0.20.2 → starplot-0.20.3}/hash_checks/template.html +0 -0
  200. {starplot-0.20.2 → starplot-0.20.3}/hash_checks/zenith_checks.py +0 -0
  201. {starplot-0.20.2 → starplot-0.20.3}/mkdocs.yml +0 -0
  202. {starplot-0.20.2 → starplot-0.20.3}/scripts/ecliptic.py +0 -0
  203. {starplot-0.20.2 → starplot-0.20.3}/scripts/marimo.py +0 -0
  204. {starplot-0.20.2 → starplot-0.20.3}/scripts/voronoi.py +0 -0
  205. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/callables.py +0 -0
  206. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/cli.py +0 -0
  207. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/config.py +0 -0
  208. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/coordinates.py +0 -0
  209. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/data/__init__.py +0 -0
  210. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/data/catalogs.py +0 -0
  211. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/data/constellations.py +0 -0
  212. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/data/db.py +0 -0
  213. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/data/dsos.py +0 -0
  214. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/data/ecliptic.py +0 -0
  215. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/data/library/readme.md +0 -0
  216. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/data/stars.py +0 -0
  217. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/data/translations.py +0 -0
  218. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/data/utils.py +0 -0
  219. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/geometry.py +0 -0
  220. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/mixins.py +0 -0
  221. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/__init__.py +0 -0
  222. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/base.py +0 -0
  223. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/comet.py +0 -0
  224. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/constellation.py +0 -0
  225. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/dso.py +0 -0
  226. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/milky_way.py +0 -0
  227. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/moon.py +0 -0
  228. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/objects.py +0 -0
  229. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/observer.py +0 -0
  230. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/optics.py +0 -0
  231. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/planet.py +0 -0
  232. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/satellite.py +0 -0
  233. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/star.py +0 -0
  234. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/models/sun.py +0 -0
  235. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plots/__init__.py +0 -0
  236. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plots/galaxy.py +0 -0
  237. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plots/horizon.py +0 -0
  238. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plots/map.py +0 -0
  239. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plots/optic.py +0 -0
  240. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plots/zenith.py +0 -0
  241. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plotters/__init__.py +0 -0
  242. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plotters/arrow.py +0 -0
  243. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plotters/constellations.py +0 -0
  244. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plotters/debug.py +0 -0
  245. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plotters/dsos.py +0 -0
  246. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plotters/experimental.py +0 -0
  247. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plotters/gradients.py +0 -0
  248. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plotters/legend.py +0 -0
  249. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plotters/milkyway.py +0 -0
  250. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plotters/stars.py +0 -0
  251. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/plotters/text.py +0 -0
  252. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/profile.py +0 -0
  253. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/projections.py +0 -0
  254. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/__init__.py +0 -0
  255. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/base.py +0 -0
  256. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/antique.yml +0 -0
  257. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/blue_dark.yml +0 -0
  258. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/blue_gold.yml +0 -0
  259. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/blue_light.yml +0 -0
  260. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/blue_medium.yml +0 -0
  261. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/blue_night.yml +0 -0
  262. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/cb_wong.yml +0 -0
  263. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/color_print.yml +0 -0
  264. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/gradient_presets.yml +0 -0
  265. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/grayscale.yml +0 -0
  266. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/grayscale_dark.yml +0 -0
  267. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/map.yml +0 -0
  268. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/nord.yml +0 -0
  269. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/optic.yml +0 -0
  270. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/ext/publication.yml +0 -0
  271. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/extensions.py +0 -0
  272. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/gfs-didot/DESCRIPTION.en_us.html +0 -0
  273. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/gfs-didot/GFSDidot-Regular.ttf +0 -0
  274. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/gfs-didot/METADATA.pb +0 -0
  275. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/gfs-didot/OFL.txt +0 -0
  276. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/Inter-Bold.ttf +0 -0
  277. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/Inter-BoldItalic.ttf +0 -0
  278. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/Inter-ExtraBold.ttf +0 -0
  279. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/Inter-ExtraLight.ttf +0 -0
  280. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/Inter-ExtraLightItalic.ttf +0 -0
  281. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/Inter-Italic.ttf +0 -0
  282. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/Inter-Light.ttf +0 -0
  283. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/Inter-LightItalic.ttf +0 -0
  284. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/Inter-Regular.ttf +0 -0
  285. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/Inter-SemiBold.ttf +0 -0
  286. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/Inter-SemiBoldItalic.ttf +0 -0
  287. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts-library/inter/LICENSE.txt +0 -0
  288. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/fonts.py +0 -0
  289. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/styles/markers.py +0 -0
  290. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/utils.py +0 -0
  291. {starplot-0.20.2 → starplot-0.20.3}/src/starplot/warnings.py +0 -0
  292. {starplot-0.20.2 → starplot-0.20.3}/tests/__init__.py +0 -0
  293. {starplot-0.20.2 → starplot-0.20.3}/tests/data/.keep +0 -0
  294. {starplot-0.20.2 → starplot-0.20.3}/tests/data/comets.txt +0 -0
  295. {starplot-0.20.2 → starplot-0.20.3}/tests/test_catalogs.py +0 -0
  296. {starplot-0.20.2 → starplot-0.20.3}/tests/test_comets.py +0 -0
  297. {starplot-0.20.2 → starplot-0.20.3}/tests/test_data.py +0 -0
  298. {starplot-0.20.2 → starplot-0.20.3}/tests/test_geometry.py +0 -0
  299. {starplot-0.20.2 → starplot-0.20.3}/tests/test_languages.py +0 -0
  300. {starplot-0.20.2 → starplot-0.20.3}/tests/test_models.py +0 -0
  301. {starplot-0.20.2 → starplot-0.20.3}/tests/test_observer.py +0 -0
  302. {starplot-0.20.2 → starplot-0.20.3}/tests/test_optic.py +0 -0
  303. {starplot-0.20.2 → starplot-0.20.3}/tests/test_satellite.py +0 -0
  304. {starplot-0.20.2 → starplot-0.20.3}/tests/test_settings.py +0 -0
  305. {starplot-0.20.2 → starplot-0.20.3}/tests/test_stars.py +0 -0
  306. {starplot-0.20.2 → starplot-0.20.3}/tests/test_styles.py +0 -0
  307. {starplot-0.20.2 → starplot-0.20.3}/tests/test_utils.py +0 -0
  308. {starplot-0.20.2 → starplot-0.20.3}/tests/utils.py +0 -0
  309. {starplot-0.20.2 → starplot-0.20.3}/tutorial/build.py +0 -0
  310. {starplot-0.20.2 → starplot-0.20.3}/tutorial/tutorial_02.py +0 -0
  311. {starplot-0.20.2 → starplot-0.20.3}/tutorial/tutorial_03.py +0 -0
  312. {starplot-0.20.2 → starplot-0.20.3}/tutorial/tutorial_04.py +0 -0
  313. {starplot-0.20.2 → starplot-0.20.3}/tutorial/tutorial_05.py +0 -0
  314. {starplot-0.20.2 → starplot-0.20.3}/tutorial/tutorial_06.py +0 -0
  315. {starplot-0.20.2 → starplot-0.20.3}/tutorial/tutorial_07.py +0 -0
  316. {starplot-0.20.2 → starplot-0.20.3}/tutorial/tutorial_08.py +0 -0
@@ -1,6 +1,8 @@
1
1
  # scratchpad for local development
2
2
  scripts/scratchpad.py
3
3
 
4
+ .claude/
5
+
4
6
  # astronomy data
5
7
  *.bsp
6
8
  CometEls.txt
@@ -20,6 +22,7 @@ gaia*/
20
22
  # Data Folder
21
23
  data/build/*
22
24
  !data/build/.keep
25
+ data/fonts/*
23
26
 
24
27
  # Big Sky Catalog
25
28
  # we ignore this because of its size (50+ MB)
@@ -20,5 +20,5 @@ keywords:
20
20
  - graphs
21
21
  - plotting
22
22
  license: MIT
23
- version: 0.20.2
24
- date-released: '2026-03-31'
23
+ version: 0.20.3
24
+ date-released: '2026-04-30'
@@ -5,6 +5,10 @@ WORKDIR /starplot
5
5
 
6
6
  COPY . .
7
7
 
8
+ ENV UV_PROJECT_ENVIRONMENT=/usr/local
9
+ ENV STARPLOT_DATA_PATH=/starplot/data
10
+ ENV PYTHONPATH=/starplot/src/
11
+
8
12
  # Install Chinese font
9
13
  # Noto Sans SC -> https://fonts.google.com/noto/specimen/Noto+Sans+SC
10
14
  RUN mkdir -p /usr/share/fonts/truetype
@@ -13,11 +17,7 @@ RUN install -m644 /tmp/fonts/*.ttf /usr/share/fonts/truetype/
13
17
  RUN fc-cache -f
14
18
 
15
19
  RUN pip install uv
16
- RUN uv pip install --system -r requirements.txt
17
- RUN uv pip install --system -r requirements-dev.txt
18
-
19
- ENV STARPLOT_DATA_PATH=/starplot/data
20
- ENV PYTHONPATH=/starplot/src/
20
+ RUN uv sync --all-groups --all-extras
21
21
 
22
22
  RUN git config --global --add safe.directory /starplot
23
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: starplot
3
- Version: 0.20.2
3
+ Version: 0.20.3
4
4
  Summary: Star charts and maps of the sky
5
5
  Keywords: astronomy,stars,charts,maps,constellations,sky,plotting
6
6
  Author-email: Steve Berardi <hello@steveberardi.com>
@@ -35,7 +35,7 @@ Project-URL: Documentation, https://starplot.dev
35
35
  Project-URL: Home, https://starplot.dev
36
36
  Project-URL: Source, https://github.com/steveberardi/starplot
37
37
 
38
- # <img src="https://raw.githubusercontent.com/steveberardi/starplot/main/docs/images/logo.svg" width="48" style="vertical-align:middle"> Starplot
38
+ # <img src="https://raw.githubusercontent.com/steveberardi/starplot/main/docs/images/starplot-header.svg" width="360" alt="Starplot">
39
39
  ![Python](https://img.shields.io/pypi/pyversions/starplot?style=for-the-badge&color=6388b0)
40
40
  ![PyPI](https://img.shields.io/pypi/v/starplot?style=for-the-badge&color=57a8a8)
41
41
  ![License](https://img.shields.io/github/license/steveberardi/starplot?style=for-the-badge&color=8b63b0)
@@ -1,4 +1,4 @@
1
- # <img src="https://raw.githubusercontent.com/steveberardi/starplot/main/docs/images/logo.svg" width="48" style="vertical-align:middle"> Starplot
1
+ # <img src="https://raw.githubusercontent.com/steveberardi/starplot/main/docs/images/starplot-header.svg" width="360" alt="Starplot">
2
2
  ![Python](https://img.shields.io/pypi/pyversions/starplot?style=for-the-badge&color=6388b0)
3
3
  ![PyPI](https://img.shields.io/pypi/v/starplot?style=for-the-badge&color=57a8a8)
4
4
  ![License](https://img.shields.io/github/license/steveberardi/starplot?style=for-the-badge&color=8b63b0)
@@ -12,6 +12,7 @@
12
12
  - Optimizes coordinate conversions
13
13
  - Makes constellation lines straight
14
14
  - [**v0.20.2**] Restricts Pandas to version `2.2.3` or lower
15
+ - [**v0.20.3**] Fixes bugs with styling and class variables
15
16
 
16
17
  ## v0.19.x
17
18
  [Documentation](https://archives.starplot.dev/0.19.6/)
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <!-- Created with Vectornator (http://vectornator.io/) -->
4
+ <svg height="1000.0pt" stroke-miterlimit="10" style="fill-rule:nonzero;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;" version="1.1" viewBox="0 0 6000 1000" width="6000.0pt" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
5
+ <defs/>
6
+ <clipPath id="ArtboardFrame">
7
+ <rect height="1000" width="6000" x="0" y="0"/>
8
+ </clipPath>
9
+ <g clip-path="url(#ArtboardFrame)" id="Untitled">
10
+ <g opacity="1">
11
+ <path d="M200-5.68434e-14L800-5.68434e-14C910.457-5.68434e-14 1000 89.5431 1000 200L1000 800C1000 910.457 910.457 1000 800 1000L200 1000C89.5431 1000-5.68434e-14 910.457-5.68434e-14 800L-5.68434e-14 200C-5.68434e-14 89.5431 89.5431-5.68434e-14 200-5.68434e-14Z" fill="#174567" fill-rule="nonzero" opacity="1" stroke="none"/>
12
+ <g opacity="1">
13
+ <clipPath clip-rule="nonzero" id="ClipPath">
14
+ <path d="M-5.68434e-14-5.68434e-14L1000-5.68434e-14L1000-5.68434e-14L1000 1000L1000 1000L-5.68434e-14 1000L-5.68434e-14 1000L-5.68434e-14-5.68434e-14L-5.68434e-14-5.68434e-14Z"/>
15
+ </clipPath>
16
+ <g clip-path="url(#ClipPath)">
17
+ <path d="M929.348 88.62C928.292 88.5806 927.201 88.7049 926.146 89.0187C824.034 118 721.979 147.099 619.677 175.645C588.127 184.449 556.57 193.304 524.907 201.839C515.856 204.278 506.79 206.62 497.741 209.061C491.411 210.77 485.106 212.584 478.817 214.385C475.675 215.285 472.557 216.259 469.383 217.082C466.201 217.907 462.953 218.598 459.746 219.356C449.185 221.853 438.54 224.08 427.923 226.416C411.311 230.068 394.77 233.954 378.223 237.789C366.28 240.556 354.383 243.432 342.469 246.278C304.91 255.25 267.441 264.472 229.967 273.668C223.693 275.535 216.002 278.571 212.195 282.544C205.208 289.834 205.39 299.921 209.644 309.195C216.216 323.523 235.965 330.857 253.754 325.564C290.089 312.774 326.459 300.018 362.674 287.012C374.025 282.935 385.373 278.874 396.681 274.723C412.35 268.971 428.05 263.278 443.616 257.346C453.565 253.555 463.477 249.676 473.517 246.043C476.131 245.098 478.736 244.097 481.379 243.205C484.453 242.169 487.612 241.283 490.725 240.322C496.958 238.397 503.199 236.452 509.387 234.435C518.234 231.552 527.037 228.597 535.883 225.712C567.274 215.472 598.81 205.526 630.333 195.554C730.662 163.817 831.259 132.639 931.794 101.33C936.013 100.075 938.157 96.3094 936.598 92.9114C935.43 90.363 932.519 88.7383 929.348 88.62Z" fill="#ffffff" fill-rule="nonzero" opacity="1" stroke="none"/>
18
+ <path d="M928.935 88.6144C926.89 88.6518 924.863 89.3898 923.334 90.8163C867.312 141.029 811.415 191.329 754.996 241.184C737.595 256.56 720.203 271.986 702.56 287.142C697.516 291.474 692.399 295.737 687.358 300.071C683.833 303.102 680.398 306.207 676.957 309.315C675.24 310.865 668.062 316.864 666.212 318.301C660.109 323.041 653.787 327.552 647.553 332.152C642.371 335.976 626.551 346.266 621.441 350.166C617.203 353.4 605.129 364.571 598.003 370.148C576.378 387.071 554.972 404.214 533.536 421.328C520.647 433.359 521.081 452.485 534.508 464.034C547.935 475.584 569.282 475.194 582.172 463.164C600.606 443.034 619.083 422.931 637.294 402.638C643.004 396.275 658.38 380.379 659.757 378.813C666.199 371.483 671.366 364.146 677.643 356.705C682.513 350.932 687.292 345.107 692.331 339.449C693.639 337.98 699.587 331.806 701.246 330.207C704.571 326.999 707.897 323.808 711.133 320.528C715.761 315.839 720.309 311.088 724.935 306.395C741.347 289.749 758.069 273.315 774.741 256.879C827.804 204.57 881.403 152.694 934.879 100.725C937.935 97.8718 937.835 93.3504 934.651 90.6115C933.058 89.242 930.98 88.5771 928.935 88.6144Z" fill="#ffffff" fill-rule="nonzero" opacity="1" stroke="none"/>
19
+ <path d="M929.103 88.6273C926.178 88.8218 923.518 90.7998 922.49 93.8596C887.884 192.129 853.419 290.448 818.317 388.526C807.491 418.774 796.703 449.056 785.574 479.184C782.392 487.796 779.101 496.37 775.922 504.983C773.698 511.007 771.588 517.077 769.469 523.143C768.412 526.172 767.442 529.242 766.297 532.236C765.15 535.238 763.836 538.192 762.615 541.162C758.593 550.943 754.286 560.589 750.087 570.29C743.519 585.468 737.182 600.771 730.811 616.039C726.214 627.058 721.747 638.11 717.235 649.169C703.016 684.026 689.082 719.017 675.109 753.984C669.331 771.188 678.044 790.025 694.573 796.04C699.861 797.964 705.484 798.941 710.764 798.439C713.773 798.152 716.671 797.385 719.333 796.04C726.602 792.365 732.102 784.347 734.979 775.782C745.105 738.927 755.277 702.078 765.142 665.145C768.233 653.571 771.335 641.994 774.335 630.393C778.494 614.319 782.71 598.26 786.649 582.126C789.165 571.814 791.599 561.495 794.31 551.236C795.015 548.565 795.662 545.855 796.434 543.205C797.331 540.12 798.405 537.082 799.391 534.027C801.366 527.91 803.33 521.797 805.197 515.644C807.868 506.846 810.461 497.999 813.128 489.202C822.592 457.979 832.411 426.891 842.189 395.774C873.311 296.734 905.061 197.903 936.684 99.0362C938.055 94.9563 935.979 90.5014 932.06 89.075C931.08 88.7183 930.078 88.5624 929.103 88.6273Z" fill="#ffffff" fill-rule="nonzero" opacity="1" stroke="none"/>
20
+ <path d="M227.222 297.843L409.585 488.793L636.97 364.809L642.89 361.212L650.275 356.866L646.642 363.342L516.452 595.383L707.877 777.249L448.104 729.958L334.292 968.213L298.994 706.54L37.2303 671.923L275.188 557.492L227.222 297.843Z" fill="#ffffff" fill-rule="nonzero" opacity="1" stroke="#ffffff" stroke-linecap="butt" stroke-linejoin="round" stroke-width="42.9688"/>
21
+ </g>
22
+ </g>
23
+ </g>
24
+ <g fill="#174567" opacity="1" stroke="none">
25
+ <path d="M1493.93 798.703C1413.87 798.703 1351.51 779.807 1306.86 742.014C1262.2 704.221 1239.88 651.311 1239.88 583.283L1364.6 583.283C1365.44 617.717 1377.33 644.522 1400.29 663.698C1423.24 682.875 1454.74 692.463 1494.77 692.463C1530.61 692.463 1559.44 685.184 1581.28 670.627C1603.11 656.07 1614.03 636.613 1614.03 612.258C1614.03 592.102 1605.28 575.725 1587.78 563.127C1570.29 550.529 1541.66 539.891 1501.91 531.213L1435.98 516.936C1313.37 490.34 1252.06 432.391 1252.06 343.088C1252.06 305.015 1261.99 271.771 1281.87 243.356C1301.75 214.942 1329.46 192.756 1365.02 176.799C1400.57 160.842 1442.14 152.863 1489.73 152.863C1561.68 152.863 1618.72 170.78 1660.85 206.613C1702.98 242.447 1725.03 291.857 1726.99 354.846L1606.05 354.846C1603.81 325.171 1592.33 301.796 1571.62 284.719C1550.9 267.642 1523.75 259.104 1490.15 259.104C1458.24 259.104 1432.13 266.382 1411.84 280.939C1391.54 295.497 1381.39 314.113 1381.39 336.789C1381.39 356.105 1389.79 371.643 1406.59 383.4C1423.38 395.158 1450.96 405.236 1489.31 413.635L1549.36 426.652C1615.99 440.93 1664.77 462.276 1695.7 490.69C1726.64 519.105 1742.11 556.828 1742.11 603.859C1742.11 664.048 1719.99 711.569 1675.76 746.423C1631.53 781.276 1570.92 798.703 1493.93 798.703Z"/>
26
+ <path d="M2099.06 345.188L2099.06 442.189L2008.36 442.189L2008.36 651.73C2008.36 666.848 2011.37 677.276 2017.39 683.015C2023.41 688.754 2034.82 691.623 2051.61 691.623L2099.06 691.623L2099.06 788.625L2026.84 788.625C1978.13 788.625 1942.22 779.107 1919.13 760.07C1896.03 741.034 1884.48 711.359 1884.48 671.047L1884.48 442.189L1808.06 442.189L1808.06 345.188L1884.48 345.188L1884.48 224.25L2008.36 224.25L2008.36 345.188L2099.06 345.188Z"/>
27
+ <path d="M2333.83 796.184C2289.59 796.184 2253.13 785.126 2224.44 763.01C2195.74 740.894 2181.39 707.72 2181.39 663.488C2181.39 630.174 2189.37 604.069 2205.33 585.173C2221.29 566.276 2242.42 552.489 2268.74 543.811C2295.05 535.132 2323.61 529.393 2354.4 526.594C2394.99 522.395 2423.41 518.195 2439.65 513.996C2455.88 509.797 2464 500.559 2464 486.281L2464 483.342C2464 467.105 2457.56 453.807 2444.69 443.449C2431.81 433.091 2414.03 427.912 2391.36 427.912C2368.4 427.912 2349.78 433.231 2335.51 443.869C2321.23 454.507 2313.39 468.365 2311.99 485.441L2195.67 485.441C2198.47 439.81 2217.23 403.487 2251.94 376.472C2286.66 349.457 2334.39 335.949 2395.13 335.949C2455.88 335.949 2502.91 349.457 2536.23 376.472C2569.54 403.487 2586.2 440.65 2586.2 487.961L2586.2 788.625L2465.26 788.625L2465.26 726.057L2463.58 726.057C2451.82 747.613 2435.73 764.689 2415.29 777.287C2394.86 789.885 2367.7 796.184 2333.83 796.184ZM2368.26 710.1C2397.93 710.1 2421.45 702.191 2438.81 686.374C2456.16 670.557 2464.84 650.611 2464.84 626.535L2464.84 582.023C2457.84 585.943 2446.23 589.512 2429.99 592.731C2413.75 595.951 2395.69 599.1 2375.82 602.18C2354.54 605.539 2336.56 611.628 2321.86 620.446C2307.16 629.265 2299.81 642.492 2299.81 660.129C2299.81 675.806 2306.04 688.054 2318.5 696.872C2330.96 705.69 2347.54 710.1 2368.26 710.1Z"/>
28
+ <path d="M2702.54 788.625L2702.54 345.188L2821.8 345.188L2821.8 420.773L2823.06 420.773C2831.18 394.178 2843.92 374.442 2861.27 361.564C2878.63 348.687 2902.01 342.248 2931.4 342.248C2938.68 342.248 2945.33 342.388 2951.35 342.668C2957.37 342.948 2962.89 343.088 2967.93 343.088L2967.93 448.488C2963.45 448.208 2956.04 447.788 2945.68 447.229C2935.32 446.669 2924.96 446.389 2914.6 446.389C2889.13 446.389 2868.06 455.067 2851.41 472.424C2834.75 489.781 2826.42 515.116 2826.42 548.43L2826.42 788.625L2702.54 788.625Z"/>
29
+ <path d="M3059.08 964.152L3059.08 345.188L3181.28 345.188L3181.28 405.236L3182.54 405.236C3196.26 382.281 3214.38 364.994 3236.92 353.376C3259.45 341.758 3285.14 335.949 3313.97 335.949C3351.77 335.949 3385.01 345.677 3413.71 365.134C3442.4 384.59 3464.8 411.675 3480.89 446.389C3496.99 481.102 3505.04 521.135 3505.04 566.486C3505.04 612.678 3497.06 653.13 3481.1 687.844C3465.15 722.557 3442.82 749.572 3414.13 768.889C3385.43 788.205 3351.77 797.863 3313.13 797.863C3252.95 797.863 3209.97 772.668 3184.22 722.277L3182.96 722.277L3182.96 964.152L3059.08 964.152ZM3281.22 697.082C3311.18 697.082 3335.18 685.674 3353.24 662.858C3371.29 640.043 3380.32 607.919 3380.32 566.486C3380.32 525.054 3371.29 492.93 3353.24 470.114C3335.18 447.299 3311.18 435.891 3281.22 435.891C3249.87 435.891 3224.67 447.788 3205.63 471.584C3186.6 495.38 3177.08 527.014 3177.08 566.486C3177.08 606.239 3186.6 637.943 3205.63 661.599C3224.67 685.254 3249.87 697.082 3281.22 697.082Z"/>
30
+ <path d="M3725.94 162.941L3725.94 788.625L3602.07 788.625L3602.07 162.941L3725.94 162.941Z"/>
31
+ <path d="M4048.05 798.703C4003.26 798.703 3963.99 789.045 3930.26 769.729C3896.53 750.412 3870.21 723.467 3851.32 688.894C3832.42 654.32 3822.97 613.798 3822.97 567.326C3822.97 520.855 3832.42 480.262 3851.32 445.549C3870.21 410.835 3896.53 383.75 3930.26 364.294C3963.99 344.838 4003.26 335.109 4048.05 335.109C4093.12 335.109 4132.52 344.838 4166.26 364.294C4199.99 383.75 4226.31 410.835 4245.2 445.549C4264.1 480.262 4273.55 520.855 4273.55 567.326C4273.55 613.518 4264.1 653.97 4245.2 688.684C4226.31 723.397 4199.99 750.412 4166.26 769.729C4132.52 789.045 4093.12 798.703 4048.05 798.703ZM4048.05 698.342C4078.28 698.342 4102.64 686.794 4121.12 663.698C4139.59 640.603 4148.83 608.479 4148.83 567.326C4148.83 525.894 4139.59 493.56 4121.12 470.324C4102.64 447.089 4078.28 435.471 4048.05 435.471C4018.09 435.471 3993.88 447.089 3975.4 470.324C3956.93 493.56 3947.69 525.894 3947.69 567.326C3947.69 608.479 3956.93 640.603 3975.4 663.698C3993.88 686.794 4018.09 698.342 4048.05 698.342Z"/>
32
+ <path d="M4625.47 345.188L4625.47 442.189L4534.76 442.189L4534.76 651.73C4534.76 666.848 4537.77 677.276 4543.79 683.015C4549.81 688.754 4561.22 691.623 4578.02 691.623L4625.47 691.623L4625.47 788.625L4553.24 788.625C4504.53 788.625 4468.63 779.107 4445.53 760.07C4422.43 741.034 4410.89 711.359 4410.89 671.047L4410.89 442.189L4334.46 442.189L4334.46 345.188L4410.89 345.188L4410.89 224.25L4534.76 224.25L4534.76 345.188L4625.47 345.188Z"/>
33
+ </g>
34
+ </g>
35
+ </svg>
@@ -61,3 +61,26 @@ ignore = ["E501"]
61
61
 
62
62
  [tool.marimo.display]
63
63
  theme = "dark"
64
+
65
+ [dependency-groups]
66
+ dev = [
67
+ "black==23.3.0",
68
+ "click==8.2.1",
69
+ "flit==3.9.0",
70
+ "griffe==1.15.0",
71
+ "imagehash==4.3.1",
72
+ "ipython==7.12.0",
73
+ "marimo==0.15.2",
74
+ "mkdocs-glightbox==0.4.0",
75
+ "mkdocs-macros-plugin==1.3.7",
76
+ "mkdocs-material==9.7.1",
77
+ "mkdocstrings==1.0.0",
78
+ "mkdocstrings-python==2.0.1",
79
+ "mypy==1.3.0",
80
+ "pygments==2.19.2",
81
+ "pytest==7.3.2",
82
+ "pytest-cov==4.1.0",
83
+ "rich==13.9.4",
84
+ "ruff==0.14.10",
85
+ "snakeviz==2.2.2",
86
+ ]
@@ -2,7 +2,7 @@
2
2
 
3
3
  """Star charts and maps of the sky"""
4
4
 
5
- __version__ = "0.20.2"
5
+ __version__ = "0.20.3"
6
6
 
7
7
  from .plots import (
8
8
  MapPlot,
@@ -51,37 +51,9 @@ DPI = 100
51
51
 
52
52
 
53
53
  class BasePlot(DebugPlotterMixin, TextPlotterMixin, ABC):
54
- _background_clip_path = None
55
- _clip_path_polygon: Polygon = None # clip path in display coordinates
56
54
  _coordinate_system = CoordinateSystem.RA_DEC
57
55
  _gradient_direction: GradientDirection = GradientDirection.LINEAR
58
56
 
59
- ax: Axes
60
- """
61
- The underlying [Matplotlib axes](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes) that everything is plotted on.
62
-
63
- **Important**: Most Starplot plotting functions also specify a transform based on the plot's projection when plotting things on the Matplotlib Axes instance, so use this property at your own risk!
64
- """
65
-
66
- fig: Figure
67
- """
68
- The underlying [Matplotlib figure](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure) that the axes is drawn on.
69
- """
70
-
71
- style: PlotStyle
72
- """
73
- The plot's style.
74
- """
75
-
76
- point_label_handler: CollisionHandler
77
- """Default [collision handler][starplot.CollisionHandler] for point labels."""
78
-
79
- area_label_handler: CollisionHandler
80
- """Default [collision handler][starplot.CollisionHandler] for area labels."""
81
-
82
- path_label_handler: CollisionHandler
83
- """Default [collision handler][starplot.CollisionHandler] for path labels."""
84
-
85
57
  def __init__(
86
58
  self,
87
59
  observer: Observer = None,
@@ -99,6 +71,20 @@ class BasePlot(DebugPlotterMixin, TextPlotterMixin, ABC):
99
71
  ):
100
72
  super().__init__(*args, **kwargs)
101
73
 
74
+ self._clip_path_polygon: Polygon = None # clip path in display coordinates
75
+
76
+ self.ax: Axes = None
77
+ """
78
+ The underlying [Matplotlib axes](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.html#matplotlib.axes.Axes) that everything is plotted on.
79
+
80
+ **Important**: Most Starplot plotting functions also specify a transform based on the plot's projection when plotting things on the Matplotlib Axes instance, so use this property at your own risk!
81
+ """
82
+
83
+ self.fig: Figure = None
84
+ """
85
+ The underlying [Matplotlib figure](https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.html#matplotlib.figure.Figure) that the axes is drawn on.
86
+ """
87
+
102
88
  if StarplotSettings.svg_text_type == SvgTextType.PATH:
103
89
  plt.rcParams["svg.fonttype"] = "path"
104
90
  else:
@@ -111,6 +97,8 @@ class BasePlot(DebugPlotterMixin, TextPlotterMixin, ABC):
111
97
  self.language = StarplotSettings.language
112
98
 
113
99
  self.style = style or PlotStyle()
100
+ """The plot's style."""
101
+
114
102
  self.figure_size = resolution * px
115
103
  self.resolution = resolution
116
104
 
@@ -127,12 +115,17 @@ class BasePlot(DebugPlotterMixin, TextPlotterMixin, ABC):
127
115
  AnchorPointEnum.LEFT_CENTER,
128
116
  ],
129
117
  )
118
+ """Default [collision handler][starplot.CollisionHandler] for point labels."""
119
+
130
120
  self.area_label_handler = area_label_handler or CollisionHandler(
131
121
  allow_constellation_line_collisions=True
132
122
  )
123
+ """Default [collision handler][starplot.CollisionHandler] for area labels."""
124
+
133
125
  self.path_label_handler = path_label_handler or CollisionHandler(
134
126
  allow_constellation_line_collisions=True
135
127
  )
128
+ """Default [collision handler][starplot.CollisionHandler] for path labels."""
136
129
 
137
130
  self.scale = scale
138
131
  self.autoscale = autoscale
@@ -1,3 +1,4 @@
1
+ import inspect
1
2
  import json
2
3
 
3
4
  from functools import wraps
@@ -22,9 +23,13 @@ def merge_dict(dict_1: dict, dict_2: dict) -> None:
22
23
 
23
24
  def use_style(style_class, style_attr: str = None):
24
25
  def decorator(func):
26
+ params = list(inspect.signature(func).parameters.keys())
27
+ style_pos = params.index("style") if "style" in params else -1
28
+
25
29
  @wraps(func)
26
30
  def wrapper(*args, **kwargs):
27
- style = kwargs.get("style")
31
+ style_in_positional = 0 <= style_pos < len(args)
32
+ style = args[style_pos] if style_in_positional else kwargs.get("style")
28
33
  style_kwargs = {
29
34
  kw: value for kw, value in kwargs.items() if kw.startswith("style__")
30
35
  }
@@ -78,6 +83,9 @@ def use_style(style_class, style_attr: str = None):
78
83
  # if no style overrides and there's a base style, then just pass the base style
79
84
  kwargs["style"] = getattr(args[0].style, style_attr, None)
80
85
 
86
+ elif style is None and not style_in_positional:
87
+ kwargs["style"] = style_class()
88
+
81
89
  return func(*args, **kwargs)
82
90
 
83
91
  return wrapper
@@ -72,6 +72,11 @@ def test_marker_no_label():
72
72
  p.marker(ra=150, dec=0, style__marker__color="blue")
73
73
 
74
74
 
75
+ def test_text_no_style_kwarg():
76
+ p = MapPlot(projection=Mercator())
77
+ p.text(ra=100, dec=0, text="hello")
78
+
79
+
75
80
  def test_plots_at_astrometric():
76
81
  """Asserts that map plots plot astrometric positions, NOT apparent"""
77
82
 
@@ -1,21 +0,0 @@
1
- pytest==7.3.2
2
- pytest-cov==4.1.0
3
- black==23.3.0
4
- flit==3.9.0
5
- mypy==1.3.0
6
- imagehash==4.3.1
7
- mkdocstrings==1.0.0
8
- mkdocs-material==9.7.1
9
- mkdocstrings-python==2.0.1
10
- mkdocs-macros-plugin==1.3.7
11
- mkdocs-glightbox==0.4.0
12
- griffe==1.15.0
13
- ruff==0.14.10
14
- ipython==7.12.0
15
- pygments==2.19.2
16
- rich==13.9.4
17
- snakeviz==2.2.2
18
- marimo==0.15.2
19
-
20
- # to fix hot reloading mkdocs
21
- click==8.2.1
@@ -1,18 +0,0 @@
1
- matplotlib==3.10.8
2
- numpy==2.2.6
3
- pandas==2.2.3
4
- pydantic==2.11.7
5
- shapely==2.1.2
6
- skyfield==1.54
7
- cartopy==0.25.0
8
- geopandas==1.0.1
9
- pillow==11.0.0
10
- PyYAML==6.0.1
11
- pyarrow==21.0.0
12
- pyogrio==0.10.0
13
- rtree==1.4.1
14
- requests==2.31.0
15
- duckdb==1.4.4
16
- ibis-framework[duckdb,geospatial]==11.0.0
17
- astropy-healpix==1.1.2
18
- sqlglot==28.9.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes