Skip to content

Changelog

Release notes for every version are on GitHub Releases.

0.2.16

  • client.catalogs.autocomplete() takes timeout, for interactive callers with their own fallback: each attempt, retries included, is limited to the time left, so the call returns in about timeout seconds (a bit under twice that at worst, as connect and read are separate phases). Catch httpx.TransportError and MMDCError. None, the default, still waits up to 75 s per request and 150 s in all.

0.2.15

  • client.sed.csv() takes x_axis and y_axis (the website's axis keys, as in get_data()): the server returns the CSV in those units, with the converted columns renamed (for example energy_ev, fnu_jy, fnu_jy_err) and the units at the end of the file name. An unknown value raises ValidationError (HTTP 400). Left out, hz or erg, the CSV is unchanged.

0.2.14

  • New client.catalogs.autocomplete(query): MMDC's source name lookup (POST /api/autocomplete/). Returns a list of CatalogEntry with name, ra, dec and refcatalog, empty when nothing matches.

0.2.13

  • SED jobs now search all catalogues in one stage: SEDJob.progress.stage reads catalogues (with stages["catalogues"]), and events carry phase="catalogues" and subject Catalogues. Jobs run before the change still report phase1 and phase2. Nothing breaks: the stage was always a plain string.
  • The server's SEDs come from a new matching step: each catalogue's rows are kept within a radius set by its own position error, around the requested position. Points change for some sources (more X-ray and radio counterparts, fewer chance matches).
  • Docs: new page Using MMDC from scripts and AI agents; the site now publishes llms.txt and a Markdown copy of each guide.

0.2.12

  • Fix: the norm y unit (flux_norm, dN/dE) is now dN/dE = νFν / E² in eV⁻¹ cm⁻² s⁻¹, as labelled. It used to be νFν [TeV cm⁻² s⁻¹] / E [eV], so its values change: 1e-10 erg cm⁻² s⁻¹ at 1 GeV is now 6.24e-17 (was 6.24e-20). The website's dN/dE axis is fixed the same way.
  • Behaviour change: SED.between() keeps a point when its midpoint (mjd_start + mjd_end) / 2 lies in the window [mjd_start, mjd_end] (ends included), matching the server; previously any overlap counted, so adjacent bins landed in the same window.

0.2.11

  • wait_for_batch() asks the server to hold each request until the fit ends (Prefer: wait, up to 25 s), so it returns about a second after the fit finishes instead of up to 30 s later.
  • Against a server that does not wait, it polls after the server's Retry-After, at most poll_interval; the backoff and the 30 s jump while queued are gone.
  • A done fit without a PDF now returns instead of polling until the deadline.
  • Request retries inside wait_for_batch() stop at its deadline.

0.2.10

  • Undated catalogue values are at MJD 50000 (both ends) instead of None/NaN, matching the server.
  • SED.table and SED.to_pandas() gain an undated column; new SED.is_undated.
  • Behaviour change: SED.between(), and client.sed.csv()/client.sed.get() with an MJD window, now leave undated points out unless undated=True (previously they were kept).

0.2.9