Changelog
Source:NEWS.md
extractox 1.2.1
Breaking Changes
-
extr_ctdandextr_tetramerhave been removed from the package. The CTD website now requires an ALTCHA CAPTCHA challenge that prevents automated API access. All related source, documentation, and tests have been deleted.
New Features
-
Graceful exit on error: All exported HTTP-facing functions (
extr_comptox,extr_ice,extr_iris,extr_pprtv,extr_casrn_from_cid,extr_chem_info,extr_pubchem_fema,extr_pubchem_ghs) now returnNULLwith acli::cli_warn()message on failure instead of throwing an error. This is implemented via the new internal helperwith_graceful_exit(). -
Jittered exponential backoff: All
httr2requests now usereq_retry(max_tries = 5, backoff = httr2_backoff)with a jittered exponential backoff strategy (capped at 30 s, ±20% jitter).condathis/curl code paths use an equivalentcondathis_run_retry()helper.
Bug Fixes
- Fixed
condathis::run()calls inextr_comptox_openssl_()andextr_iris_openssl_(): errors are now caught viatryCatchand re-thrown with a clear message rather than causing an uncontrolled crash. - Fixed
extr_chem_info: now aborts with an informative message when PubChem returns an empty response, rather than failing silently downstream. - Fixed the
httr2_backoff()function signature to match the single-argumentbackoffcallback contract required byhttr2::req_retry(). - Restored the correct CompTox batch export endpoint URL in
extr_comptox_out(). - Fixed a typo (
s.→.) in theDESCRIPTIONfield (#50). - Updated test expectations for
extr_iceandextr_casrn_from_cidto match current upstream API response sizes. - Updated
extr_comptoxtests to reflect a CompTox API change:comptox_main_datanow returns 63 columns instead of 64. - Updated
extr_casrn_from_cidtest to reflect current PubChem data (row count updated from 42 to 29). - Fixed
extr_toxtest: replaced incorrectexpect_no_warning()withsuppressWarnings(); the function intentionally warns viawith_graceful_exit()when an individual sub-service (e.g. ICE) fails transiently. The data.frame check is now resilient toNULLelements from transiently unavailable services. - Fixed
extr_monographtest: correctedexpect()call toexpect_equal()when checking the count of missing values. - Added missing
skip_on_cran()andskip_if_offline()guards toextr_monographtests that make live API calls. - Renamed test file
test_monograph.Rtotest-monograph.Rto follow thetest-*.Rconvention required for automatic discovery by testthat.
extractox 1.2.0
CRAN release: 2025-07-15
Major Changes & Enhancements
- Automated Server Compatibility: Functions connecting to EPA servers (e.g.,
extr_comptox,extr_iris,extr_pprtv) now automatically handle connection issues that can occur on systems with modernlibcurlandOpenSSL. The functions detect problematic configurations and use the condathis package to perform requests with a compatible version ofcurlin an isolated environment. This ensures reliability without requiring manual user intervention.
Minor Enhancements
-
extr_chem_infonow accepts the argumentdomainto specify the PubChem domain (substanceorcompound). -
extr_toxnow accepts adelayparameter to control the delay between requests, helping to avoid rate-limiting errors. - Request Throttling**: Added a
delayparameter to PubChem functions to allow for a pause between requests, helping to avoid rate-limiting errors. - Verbose Option: A
verboseoption has been added to several functions for more detailed output during execution.
Bug Fixes
Testing: Corrected various tests, including a fix for an incorrect row count expectation in the PubChem test.
Fixed
extr_chem_infoduplicated name in outout columns (#47).Function Cleanup: Refined the
extr_comptoxfunction, removing unnecessary requirements and cleaning up the code.
extractox 1.0.0
CRAN release: 2025-01-07
New Features
- Added
extr_ice_assay_namesto retrieve ICE assay names (#16). - Added
extr_monographto check if a substance is listed in WHO IARC monograph and return its details (#19). - Added
extr_pprtvto extract information from the EPA Provisional Peer-Reviewed Toxicity Values database (#20). Introducedsave_to_cacheandload_from_cachefunctions to avoid re-downloading the file each time. Seeforceargument.
Other Breaking Changes
- Removed
cancer_typesargument fromextr_iris. Database returns a dataframe with different columns based onrequestarguments. - Removed
stop_at_warningargument fromextr_casrn_from_cid. Now warns and returns a dataframe with NA if no IDs are found. -
extr_toxnow returns a longer list of dataframes, including the outputs ofextr_monographandextr_pprtv.
Enhancements and Fixes
- Added
verboseargument to allextr_functions (#18). - Unified behavior across all
extr_functions when chemicals are not found (#30-#35):- For all functions except
extr_comptox, aquerycolumn reports the IDs searched. Inextr_comptox, this info is in themain_sheetelement. Forextr_ice,queryvalues contain all IDs found. - Results now contain rows with NA values for all columns (except
query). -
extr_pprtvandextr_monographusesave_and_matchto output results with NA for missing IDs.
- For all functions except
- Improved and extended all unit tests.
-
extr_comptoxnow outputs a list of dataframes with clean names. - Fixed
extr_ctdcolumn names:pub_med_idsorpub_med_i_dsare nowpubmed_ids. - Introduced
extr_pubchem_section_internal function to fetch FEMA and GHS info, avoiding repeated code. - Introduced
check_na_warninternal function to generate warnings for missing IDs. - Created
with_extr_sandboxto handle cache for CRAN examples.