SepalClient.create() and context entry no longer create the module results
directory. Nothing was removed or renamed and results_path holds the value it
always did, so this raises no import or type error — but code that wrote into
results_path relying on create() having made the directory now fails at write
time. Call the new ensure_results_dir() once at startup, or mkdir(parents=True)
yourself. A module_name that would escape module_results/ (absolute, or
containing ..) is now rejected at construction.
removes ApiKeyAuth.from_env and detect_auth's env_var=; nothing in the library
reads SEPAL_API_KEY any more. SEPAL unsets that variable before user code runs,
so /var/run/sepal-api-key is the only credential a sandbox has.
detect_auth(mode="env") and auth_mode="env" now raise; "auto" and
"sandbox_file" resolve identically. Outside a sandbox pass auth=ApiKeyAuth(key)
or detect_auth(sandbox_path=...).
files endpoint uses pathlib verbs (read_bytes/read_text/
read_json/write) instead of get/set; write() now raises Conflict instead of
silently no-op'ing; async create() is awaitable AND an async context manager;
errors SepalApiError/SepalTransportError renamed to ApiError/TransportError;
dropped sepal_host and create_base_dir kwargs (session_id/module_name are now
keyword-only); recipes attribute replaces processing_recipes; verify attribute
replaces verify_ssl; wait(poll=) renamed to wait(poll_interval=); global
PYSEPAL_INSECURE_TLS replaced by host-scoped PYSEPAL_INSECURE_TLS_HOSTS.
removes pysepal_api.compat (pysepal-v3 shim); construct via SepalClient.create().