I think supporting free-threading here is necessary to enable further testing in astropy. I don't think the task is particularly difficult, from afar, but there are a couple broad questions I'd like to ask @avalentino and @mhvk first:
- is there any form of mutable global state somewhere, like a counter, a registry, or a cache of some sort ?
- I am aware at least some erfa functions support an
out argument, which immediately make them impure functions, but that's very common in numpy itself so it should suffice to adopt whatever relevant pattern or policy from upstream. My question is: are there any other ways in which erfa functions might be impure ?
if the answers to both questions is no, then I expect the work to be quite trivial.
I think supporting free-threading here is necessary to enable further testing in astropy. I don't think the task is particularly difficult, from afar, but there are a couple broad questions I'd like to ask @avalentino and @mhvk first:
outargument, which immediately make them impure functions, but that's very common in numpy itself so it should suffice to adopt whatever relevant pattern or policy from upstream. My question is: are there any other ways in which erfa functions might be impure ?if the answers to both questions is no, then I expect the work to be quite trivial.