You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Predicate caching for keyword validation now works when using :class:`~spacetrack.aio.AsyncSpaceTrackClient` with trio.
17
+
Previously, the on-disk cache was skipped because the file locking implementation only supported asyncio. (`#160 <https://github.com/python-astrodynamics/spacetrack/issues/160>`_)
18
+
- :class:`~spacetrack.aio.AsyncSpaceTrackClient` no longer performs blocking cache file reads and writes on the event loop; they now run in a worker thread. (`#160 <https://github.com/python-astrodynamics/spacetrack/issues/160>`_)
19
+
- Rate limit waits now guarantee that the ``callback`` has finished before the request is retried, in all clients.
20
+
As a result, an exception raised by the callback now propagates instead of being silently discarded: directly in :class:`~spacetrack.base.SpaceTrackClient`, and as an :class:`ExceptionGroup` on asyncio, matching the existing trio behaviour. (`#160 <https://github.com/python-astrodynamics/spacetrack/issues/160>`_)
21
+
- When the Space-Track session expires (after two hours without requests), the client now logs in again and retries the request transparently instead of failing every subsequent request. (`#164 <https://github.com/python-astrodynamics/spacetrack/issues/164>`_)
22
+
- Sets and frozensets are now accepted as predicate values and joined with commas like sequences.
23
+
Bytes-like values now raise :class:`TypeError` instead of being sent as comma-separated integers. (`#169 <https://github.com/python-astrodynamics/spacetrack/issues/169>`_)
24
+
25
+
26
+
Fixed
27
+
~~~~~
28
+
29
+
- :class:`~spacetrack.aio.AsyncSpaceTrackClient` now accepts a plain function as the rate limit ``callback``, as shown in the documentation, in addition to a coroutine function. (`#160 <https://github.com/python-astrodynamics/spacetrack/issues/160>`_)
30
+
- Concurrent first requests on a fresh client now share a single login request instead of each sending their own. (`#161 <https://github.com/python-astrodynamics/spacetrack/issues/161>`_)
31
+
- Model definition requests are now rate limited like all other requests. (`#163 <https://github.com/python-astrodynamics/spacetrack/issues/163>`_)
32
+
- Requests sent after a rate limit wait are now counted against the rate limit.
33
+
Previously they were not, so sustained use could exceed Space-Track's limits and trigger server-side rate limit errors. (`#163 <https://github.com/python-astrodynamics/spacetrack/issues/163>`_)
34
+
- :meth:`SpaceTrackClient.close() <spacetrack.base.SpaceTrackClient.close>` and :meth:`AsyncSpaceTrackClient.close() <spacetrack.aio.AsyncSpaceTrackClient.close>` now close the underlying HTTPX client even if logging out fails. (`#166 <https://github.com/python-astrodynamics/spacetrack/issues/166>`_)
35
+
- Setting ``base_url`` now resets the authentication state and the cached predicates, which are specific to the previous host. (`#166 <https://github.com/python-astrodynamics/spacetrack/issues/166>`_)
36
+
- Fixed a :class:`ReferenceError` when chaining a request off a temporary client, e.g. ``SpaceTrackClient(...).basicspacedata.gp(...)``. (`#167 <https://github.com/python-astrodynamics/spacetrack/issues/167>`_)
37
+
- :meth:`~spacetrack.base.SpaceTrackClient.get_predicates` now returns the known predicates for request classes without a model definition on Space-Track (such as ``fileshare/download`` and ``publicfiles/dirs``) instead of failing.
38
+
The returned :class:`~spacetrack.base.Predicate` objects have a ``type_`` of ``None``, since no model definition exists to provide it. (`#168 <https://github.com/python-astrodynamics/spacetrack/issues/168>`_)
39
+
- ``parse_types=True`` now works together with ``metadata=True`` in :meth:`~spacetrack.base.SpaceTrackClient.generic_request` and the request class methods; previously the metadata-wrapped response made it fail after the request had succeeded. (`#170 <https://github.com/python-astrodynamics/spacetrack/issues/170>`_)
40
+
- Fixed a :class:`TypeError` when passing positional arguments to request class methods such as ``client.gp_history(...)``.
41
+
The request class was bound as a keyword argument internally, so any positional argument clashed with it. (`#171 <https://github.com/python-astrodynamics/spacetrack/issues/171>`_)
42
+
- Error responses whose JSON ``error`` value is not a string no longer raise :class:`TypeError` instead of ``httpx2.HTTPStatusError``. (`#172 <https://github.com/python-astrodynamics/spacetrack/issues/172>`_)
0 commit comments