rms-polymath 2.2.0__tar.gz → 2.3.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 (255) hide show
  1. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.github/workflows/publish_to_pypi.yml +2 -2
  2. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.github/workflows/publish_to_test_pypi.yml +2 -2
  3. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.github/workflows/run-tests.yml +6 -6
  4. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/PKG-INFO +3 -2
  5. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/README.md +0 -1
  6. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/dev_guide/dev_guide_environment.rst +2 -2
  7. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/pyproject.toml +2 -0
  8. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/_version.py +3 -3
  9. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/rms_polymath.egg-info/PKG-INFO +3 -2
  10. rms_polymath-2.3.0/src/rms_polymath.egg-info/scm_version.json +8 -0
  11. rms_polymath-2.2.0/src/rms_polymath.egg-info/scm_version.json +0 -8
  12. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/rules/dependency_management.md +0 -0
  13. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/rules/doc_python.md +0 -0
  14. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/rules/environment.md +0 -0
  15. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/rules/filecache.md +0 -0
  16. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/rules/logging.md +0 -0
  17. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/rules/python.md +0 -0
  18. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/rules/python_testing.md +0 -0
  19. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/rules/security.md +0 -0
  20. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/bug-report/SKILL.md +0 -0
  21. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/critique-documentation/SKILL.md +0 -0
  22. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/critique-test-suite/SKILL.md +0 -0
  23. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/doc-dev-guide/SKILL.md +0 -0
  24. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/doc-how-to/SKILL.md +0 -0
  25. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/doc-readme/SKILL.md +0 -0
  26. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/doc-user-guide/SKILL.md +0 -0
  27. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/git-workflow/SKILL.md +0 -0
  28. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/pull-request/SKILL.md +0 -0
  29. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/python-codebase-analysis/SKILL.md +0 -0
  30. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/python-codebase-analysis/reference.md +0 -0
  31. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.claude/skills/run-all-checks/SKILL.md +0 -0
  32. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.codespell-dictionary.txt +0 -0
  33. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.cursor/settings.json +0 -0
  34. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.flake8 +0 -0
  35. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  36. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  37. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  38. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.github/ISSUE_TEMPLATE/other.md +0 -0
  39. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.github/dependabot.yml +0 -0
  40. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.github/pull_request_template.md +0 -0
  41. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.gitignore +0 -0
  42. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.readthedocs.yaml +0 -0
  43. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.stubtest-allowlist +0 -0
  44. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/.vscode/settings.json +0 -0
  45. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/CLAUDE.md +0 -0
  46. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/CODE_OF_CONDUCT.md +0 -0
  47. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/CONTRIBUTING.md +0 -0
  48. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/LICENSE +0 -0
  49. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/codecov.yml +0 -0
  50. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/critiques/2026-08-09-code-critique.md +0 -0
  51. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/critiques/2026-08-10-performance-critique.md +0 -0
  52. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/Makefile +0 -0
  53. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/code_of_conduct.md +0 -0
  54. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/conf.py +0 -0
  55. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/contributing.rst +0 -0
  56. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/dev_guide/dev_guide.rst +0 -0
  57. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/dev_guide/dev_guide_architecture.rst +0 -0
  58. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/dev_guide/dev_guide_conventions.rst +0 -0
  59. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/dev_guide/dev_guide_extending.rst +0 -0
  60. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/dev_guide/dev_guide_extensions.rst +0 -0
  61. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/dev_guide/dev_guide_internal_api.rst +0 -0
  62. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/dev_guide/dev_guide_introduction.rst +0 -0
  63. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/dev_guide/dev_guide_layout.rst +0 -0
  64. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/dev_guide/dev_guide_subclasses.rst +0 -0
  65. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/dev_guide/dev_guide_typing.rst +0 -0
  66. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/index.rst +0 -0
  67. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/make.bat +0 -0
  68. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/module.rst +0 -0
  69. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/user_guide/user_guide.rst +0 -0
  70. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/user_guide/user_guide_derivatives.rst +0 -0
  71. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/user_guide/user_guide_indexing.rst +0 -0
  72. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/user_guide/user_guide_introduction.rst +0 -0
  73. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/user_guide/user_guide_masks.rst +0 -0
  74. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/user_guide/user_guide_math.rst +0 -0
  75. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/user_guide/user_guide_objects.rst +0 -0
  76. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/user_guide/user_guide_pickling.rst +0 -0
  77. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/user_guide/user_guide_typing.rst +0 -0
  78. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/docs/user_guide/user_guide_units.rst +0 -0
  79. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/icons/link.png +0 -0
  80. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/requirements.txt +0 -0
  81. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/scripts/read-docs.sh +0 -0
  82. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/scripts/run-all-checks.sh +0 -0
  83. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/scripts/setup-venv.sh +0 -0
  84. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/setup.cfg +0 -0
  85. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/__init__.py +0 -0
  86. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/__init__.pyi +0 -0
  87. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/boolean.py +0 -0
  88. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/__init__.py +0 -0
  89. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/attr_ops.py +0 -0
  90. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/broadcaster.py +0 -0
  91. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/casting.py +0 -0
  92. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/deriv_ops.py +0 -0
  93. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/dtypes.py +0 -0
  94. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/errors.py +0 -0
  95. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/indexer.py +0 -0
  96. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/item_ops.py +0 -0
  97. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/iterator.py +0 -0
  98. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/mask_ops.py +0 -0
  99. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/masking.py +0 -0
  100. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/math_ops.py +0 -0
  101. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/pickler.py +0 -0
  102. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/readonly_ops.py +0 -0
  103. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/shaper.py +0 -0
  104. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/shrinker.py +0 -0
  105. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/tvl.py +0 -0
  106. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/unit_ops.py +0 -0
  107. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/extensions/vector_ops.py +0 -0
  108. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/matrix.py +0 -0
  109. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/matrix3.py +0 -0
  110. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/pair.py +0 -0
  111. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/polynomial.py +0 -0
  112. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/py.typed +0 -0
  113. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/quaternion.py +0 -0
  114. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/qube.py +0 -0
  115. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/scalar.py +0 -0
  116. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/typedefs.py +0 -0
  117. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/typedefs.pyi +0 -0
  118. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/unit.py +0 -0
  119. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/vector.py +0 -0
  120. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/polymath/vector3.py +0 -0
  121. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/rms_polymath.egg-info/SOURCES.txt +0 -0
  122. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/rms_polymath.egg-info/dependency_links.txt +0 -0
  123. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/rms_polymath.egg-info/requires.txt +0 -0
  124. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/rms_polymath.egg-info/scm_file_list.json +0 -0
  125. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/src/rms_polymath.egg-info/top_level.txt +0 -0
  126. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/__init__.py +0 -0
  127. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_boolean.py +0 -0
  128. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_indices.py +0 -0
  129. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_math_ops_coverage.py +0 -0
  130. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix3.py +0 -0
  131. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix3_as_matrix3_validation.py +0 -0
  132. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix3_deriv_class.py +0 -0
  133. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix3_euler.py +0 -0
  134. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix3_mask_non_unitary.py +0 -0
  135. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix3_pickle.py +0 -0
  136. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix3_precision.py +0 -0
  137. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix3_quaternion.py +0 -0
  138. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix3_to_unitary.py +0 -0
  139. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix3_twovec.py +0 -0
  140. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix_column_vectors.py +0 -0
  141. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix_comprehensive.py +0 -0
  142. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix_inverse.py +0 -0
  143. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix_is_diagonal.py +0 -0
  144. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix_misc.py +0 -0
  145. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix_ops.py +0 -0
  146. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix_row_vectors.py +0 -0
  147. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_matrix_solve.py +0 -0
  148. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_pair.py +0 -0
  149. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_pair_as_pair.py +0 -0
  150. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_pair_clip2d.py +0 -0
  151. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_pair_misc.py +0 -0
  152. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_pair_swapxy.py +0 -0
  153. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_polynomial_arithmetic.py +0 -0
  154. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_polynomial_basic.py +0 -0
  155. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_polynomial_operations.py +0 -0
  156. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_quaternion.py +0 -0
  157. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_quaternion_euler.py +0 -0
  158. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_quaternion_matrix3.py +0 -0
  159. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_quaternion_ops.py +0 -0
  160. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_quaternion_parts.py +0 -0
  161. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_add_attr.py +0 -0
  162. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_all.py +0 -0
  163. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_any.py +0 -0
  164. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_as_this_type.py +0 -0
  165. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_cast.py +0 -0
  166. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_clone.py +0 -0
  167. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_coverage.py +0 -0
  168. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_derivs.py +0 -0
  169. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_errstate_independence.py +0 -0
  170. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_ext_item_ops.py +0 -0
  171. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_ext_mask_ops.py +0 -0
  172. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_ext_math_ops.py +0 -0
  173. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_ext_pickler.py +0 -0
  174. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_ext_shrinker.py +0 -0
  175. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_ext_tvl.py +0 -0
  176. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_ext_vector_ops.py +0 -0
  177. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_getitem.py +0 -0
  178. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_getstate.py +0 -0
  179. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_identity.py +0 -0
  180. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_items.py +0 -0
  181. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_iterate.py +0 -0
  182. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_mask_nans_infs.py +0 -0
  183. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_masking.py +0 -0
  184. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_new_from_parts.py +0 -0
  185. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_power.py +0 -0
  186. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_readonly.py +0 -0
  187. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_reshaping.py +0 -0
  188. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_setitem.py +0 -0
  189. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_shrink.py +0 -0
  190. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_stack.py +0 -0
  191. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_types.py +0 -0
  192. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_unit.py +0 -0
  193. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_qube_zero.py +0 -0
  194. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_arccos.py +0 -0
  195. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_arcsin.py +0 -0
  196. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_arctan.py +0 -0
  197. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_arctan2.py +0 -0
  198. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_as_index.py +0 -0
  199. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_as_scalar.py +0 -0
  200. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_comprehensive.py +0 -0
  201. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_cos.py +0 -0
  202. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_coverage.py +0 -0
  203. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_empty_reductions.py +0 -0
  204. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_exp.py +0 -0
  205. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_frac.py +0 -0
  206. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_int.py +0 -0
  207. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_log.py +0 -0
  208. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_max.py +0 -0
  209. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_maximum.py +0 -0
  210. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_mean.py +0 -0
  211. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_median.py +0 -0
  212. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_min.py +0 -0
  213. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_minimum.py +0 -0
  214. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_misc.py +0 -0
  215. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_ops.py +0 -0
  216. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_quadratic.py +0 -0
  217. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_sign.py +0 -0
  218. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_sin.py +0 -0
  219. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_sqrt.py +0 -0
  220. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_sum.py +0 -0
  221. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_scalar_tan.py +0 -0
  222. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_typedefs.py +0 -0
  223. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_units.py +0 -0
  224. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector3_advanced.py +0 -0
  225. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector3_basic.py +0 -0
  226. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector3_misc.py +0 -0
  227. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector3_operations.py +0 -0
  228. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector3_spin.py +0 -0
  229. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_as_column.py +0 -0
  230. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_as_diagonal.py +0 -0
  231. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_as_index.py +0 -0
  232. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_as_row.py +0 -0
  233. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_as_vector.py +0 -0
  234. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_comprehensive.py +0 -0
  235. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_cross_2x2.py +0 -0
  236. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_cross_3x3.py +0 -0
  237. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_dot.py +0 -0
  238. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_element_div.py +0 -0
  239. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_element_mul.py +0 -0
  240. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_int.py +0 -0
  241. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_masking.py +0 -0
  242. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_mean_sum.py +0 -0
  243. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_norm.py +0 -0
  244. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_norm_sq.py +0 -0
  245. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_ops.py +0 -0
  246. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_outer.py +0 -0
  247. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_perp.py +0 -0
  248. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_proj.py +0 -0
  249. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_reciprocal.py +0 -0
  250. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_scalars.py +0 -0
  251. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_sep.py +0 -0
  252. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_to_pair.py +0 -0
  253. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_ucross.py +0 -0
  254. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_unit.py +0 -0
  255. {rms_polymath-2.2.0 → rms_polymath-2.3.0}/tests/test_vector_with_norm.py +0 -0
@@ -12,12 +12,12 @@ jobs:
12
12
  contents: read
13
13
  steps:
14
14
  - name: Checkout
15
- uses: actions/checkout@v6
15
+ uses: actions/checkout@v7
16
16
  with:
17
17
  fetch-depth: 0
18
18
 
19
19
  - name: Set up Python 3.12
20
- uses: actions/setup-python@v6
20
+ uses: actions/setup-python@v7
21
21
  with:
22
22
  python-version: 3.12
23
23
 
@@ -12,12 +12,12 @@ jobs:
12
12
  runs-on: ubuntu-latest
13
13
  steps:
14
14
  - name: Checkout
15
- uses: actions/checkout@v6
15
+ uses: actions/checkout@v7
16
16
  with:
17
17
  fetch-depth: 0
18
18
 
19
19
  - name: Set up Python 3.12
20
- uses: actions/setup-python@v6
20
+ uses: actions/setup-python@v7
21
21
  with:
22
22
  python-version: 3.12
23
23
 
@@ -16,10 +16,10 @@ jobs:
16
16
  runs-on: ubuntu-latest
17
17
  steps:
18
18
  - name: Checkout
19
- uses: actions/checkout@v6
19
+ uses: actions/checkout@v7
20
20
 
21
21
  - name: Set up Python 3.13
22
- uses: actions/setup-python@v6
22
+ uses: actions/setup-python@v7
23
23
  with:
24
24
  python-version: 3.13
25
25
 
@@ -86,16 +86,16 @@ jobs:
86
86
  strategy:
87
87
  matrix:
88
88
  os: [ubuntu-latest, macos-latest, windows-latest]
89
- python-version: ['3.11', '3.12', '3.13']
89
+ python-version: ['3.11', '3.12', '3.13', '3.14', '3.15']
90
90
  fail-fast: false
91
91
  permissions:
92
92
  contents: read
93
93
  steps:
94
94
  - name: Checkout
95
- uses: actions/checkout@v6
95
+ uses: actions/checkout@v7
96
96
 
97
97
  - name: Set up Python ${{ matrix.python-version }}
98
- uses: actions/setup-python@v6
98
+ uses: actions/setup-python@v7
99
99
  with:
100
100
  python-version: ${{ matrix.python-version }}
101
101
 
@@ -112,7 +112,7 @@ jobs:
112
112
  coverage report -m
113
113
 
114
114
  - name: Upload coverage report to codecov
115
- uses: codecov/codecov-action@v6
115
+ uses: codecov/codecov-action@v7
116
116
  if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13' && !github.event.pull_request.head.repo.fork
117
117
  with:
118
118
  token: ${{ secrets.CODECOV_TOKEN }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rms-polymath
3
- Version: 2.2.0
3
+ Version: 2.3.0
4
4
  Summary: Wrapper for NumPy that adds easy masks and vector computation
5
5
  Author-email: "Robert S. French" <rfrench@seti.org>
6
6
  Maintainer-email: "Robert S. French" <rfrench@seti.org>
@@ -20,6 +20,8 @@ Classifier: Topic :: Utilities
20
20
  Classifier: Programming Language :: Python :: 3.11
21
21
  Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Programming Language :: Python :: 3.15
23
25
  Classifier: Operating System :: MacOS :: MacOS X
24
26
  Classifier: Operating System :: POSIX :: Linux
25
27
  Classifier: Operating System :: Microsoft :: Windows
@@ -51,7 +53,6 @@ Dynamic: license-file
51
53
  # rms-polymath
52
54
 
53
55
  <!-- pyml disable MD025 -->
54
-
55
56
  [![GitHub release; latest by date](https://img.shields.io/github/v/release/SETI/rms-polymath)](https://github.com/SETI/rms-polymath/releases)
56
57
  [![GitHub Release Date](https://img.shields.io/github/release-date/SETI/rms-polymath)](https://github.com/SETI/rms-polymath/releases)
57
58
  [![Test Status](https://img.shields.io/github/actions/workflow/status/SETI/rms-polymath/run-tests.yml?branch=main)](https://github.com/SETI/rms-polymath/actions)
@@ -1,7 +1,6 @@
1
1
  # rms-polymath
2
2
 
3
3
  <!-- pyml disable MD025 -->
4
-
5
4
  [![GitHub release; latest by date](https://img.shields.io/github/v/release/SETI/rms-polymath)](https://github.com/SETI/rms-polymath/releases)
6
5
  [![GitHub Release Date](https://img.shields.io/github/release-date/SETI/rms-polymath)](https://github.com/SETI/rms-polymath/releases)
7
6
  [![Test Status](https://img.shields.io/github/actions/workflow/status/SETI/rms-polymath/run-tests.yml?branch=main)](https://github.com/SETI/rms-polymath/actions)
@@ -193,8 +193,8 @@ Three GitHub Actions workflows live in ``.github/workflows/``.
193
193
  ``main``, weekly, and on demand. Its lint job runs ruff, flake8, mypy, pip-audit,
194
194
  pyroma, stubtest, Sphinx, codespell, and PyMarkdown on Python 3.13, which is the check
195
195
  script's default set minus pytest. Its test job runs pytest with coverage on Ubuntu, macOS, and Windows for each
196
- of Python 3.11, 3.12, and 3.13, and uploads coverage to Codecov from one cell of the
197
- matrix.
196
+ of Python 3.11, 3.12, 3.13, 3.14, and 3.15, and uploads coverage to Codecov from one
197
+ cell of the matrix.
198
198
  * ``publish_to_pypi.yml`` builds and validates the distribution and uploads it to PyPI
199
199
  when a GitHub Release is published.
200
200
  * ``publish_to_test_pypi.yml`` does the same for Test PyPI, on demand.
@@ -32,6 +32,8 @@ classifiers = [
32
32
  "Programming Language :: Python :: 3.11",
33
33
  "Programming Language :: Python :: 3.12",
34
34
  "Programming Language :: Python :: 3.13",
35
+ "Programming Language :: Python :: 3.14",
36
+ "Programming Language :: Python :: 3.15",
35
37
  "Operating System :: MacOS :: MacOS X",
36
38
  "Operating System :: POSIX :: Linux",
37
39
  "Operating System :: Microsoft :: Windows"
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '2.2.0'
22
- __version_tuple__ = version_tuple = (2, 2, 0)
21
+ __version__ = version = '2.3.0'
22
+ __version_tuple__ = version_tuple = (2, 3, 0)
23
23
 
24
- __commit_id__ = commit_id = 'g70113cf67'
24
+ __commit_id__ = commit_id = 'g19a56f3be'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rms-polymath
3
- Version: 2.2.0
3
+ Version: 2.3.0
4
4
  Summary: Wrapper for NumPy that adds easy masks and vector computation
5
5
  Author-email: "Robert S. French" <rfrench@seti.org>
6
6
  Maintainer-email: "Robert S. French" <rfrench@seti.org>
@@ -20,6 +20,8 @@ Classifier: Topic :: Utilities
20
20
  Classifier: Programming Language :: Python :: 3.11
21
21
  Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Programming Language :: Python :: 3.15
23
25
  Classifier: Operating System :: MacOS :: MacOS X
24
26
  Classifier: Operating System :: POSIX :: Linux
25
27
  Classifier: Operating System :: Microsoft :: Windows
@@ -51,7 +53,6 @@ Dynamic: license-file
51
53
  # rms-polymath
52
54
 
53
55
  <!-- pyml disable MD025 -->
54
-
55
56
  [![GitHub release; latest by date](https://img.shields.io/github/v/release/SETI/rms-polymath)](https://github.com/SETI/rms-polymath/releases)
56
57
  [![GitHub Release Date](https://img.shields.io/github/release-date/SETI/rms-polymath)](https://github.com/SETI/rms-polymath/releases)
57
58
  [![Test Status](https://img.shields.io/github/actions/workflow/status/SETI/rms-polymath/run-tests.yml?branch=main)](https://github.com/SETI/rms-polymath/actions)
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "2.3.0",
3
+ "distance": 0,
4
+ "node": "g19a56f3be0c569deeb4f33140f1951e7ace44b3c",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-10-21"
8
+ }
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "2.2.0",
3
- "distance": 0,
4
- "node": "g70113cf6794455370cc2891a1f40ed9ba1b0e66d",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-10-03"
8
- }
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