Skip to content

Handle empty arrays in pure Python API - #166

Open
karlhillx wants to merge 2 commits into
brandon-rhodes:masterfrom
karlhillx:fix-empty-sgp4-array
Open

Handle empty arrays in pure Python API#166
karlhillx wants to merge 2 commits into
brandon-rhodes:masterfrom
karlhillx:fix-empty-sgp4-array

Conversation

@karlhillx

Copy link
Copy Markdown

Fixes #164.

The pure-Python sgp4_array() path now preallocates output arrays before looping, so zero-length inputs return the same shapes and dtypes as the accelerated implementation.

Also adds regression coverage for Satrec.sgp4_array() and SatrecArray.sgp4().

Tested with:

  • python3 -m unittest sgp4.tests

Copilot AI review requested due to automatic review settings July 7, 2026 05:58

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses issue #164 by making the pure-Python sgp4_array() / SatrecArray.sgp4() implementations return correctly shaped/dtyped NumPy outputs for zero-length time inputs, matching the accelerated (C++) behavior. It also adds regression tests to lock in the expected behavior for empty arrays.

Changes:

  • Preallocate e, r, and v arrays in the pure-Python Satrec.sgp4_array() and fill them in-place to support zero-length inputs.
  • Preallocate e, r, and v arrays in the pure-Python SatrecArray.sgp4() for consistent output shapes with empty inputs.
  • Add unit tests asserting shapes and dtypes for empty-array inputs for both APIs.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
sgp4/model.py Updates pure-Python array APIs to preallocate outputs so empty inputs return correct shapes/dtypes.
sgp4/tests.py Adds regression tests validating shapes/dtypes for empty-array inputs in both Satrec and SatrecArray array APIs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread sgp4/model.py
Comment thread sgp4/model.py
Comment thread sgp4/model.py Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fallback pure-Python API does not correctly handle zero-length Numpy arrays

2 participants