errorDimensionNotSupported message not interpolating the dimension value (#222).validateIsOption() aggregated error messages no longer include internal function name prefixes (#219).validateIsOption() no longer emits a warning when auto-converting whole-number numeric to integer (#218).formatNumerics() for empty collections (#212).logSafe() and foldSafe() are now vectorized, yielding performance improvement (#210).isPathAbsolute() and fixed naming inconsistency in related path utilities (#209).%||% instead of importing from the purrr package.integerOption(), numericOption(), characterOption(), logicalOption() for type-safe, declarative validation. validateIsOption() now supports expectedLength (1 = scalar, NULL = any) and aggregates errors with clear error messages. validateColumns() is deprecated; use validateIsOption(..., expectedLength = NULL) instead (#189).validateEnumValue() and enumGetValue() to provide helpful suggestions when a close match is found. Both functions now use edit distance (Levenshtein distance ≤ 2) to suggest similar valid values or keys, making it easier to identify and fix typos in enum values and keys. (#185){cli} and {logger} packages to record and keep tracks of what the code does in a log file:
setLogFolder(): initialize/end the logging systemlogCatch(): catch and record messages, warnings, and errorslogError(), logWarning(), logInfo(), logDebug(): record errors, warnings, info and debug messages in the logs.Printable is deprecated,ospPrintClass(), ospPrintItems(), and ospPrintHeader() are introduced to replace the Printable class.Printable R6 class. It is required to make
some of child classes cloneable in dependent packages.validateIsOption() to validate a list of options against specified criteria, improving robustness in option handling. This function ensures options match expected types, value ranges, allowed values, and handles NULL and NA values.
validateColumns() for rigorous validation of data frame columns against predefined specifications. Supports validation of type, value range, allowed values, and manages NULL and NA values effectively.
validateVector() introduced as a comprehensive vector validation tool, allowing checks against type, value range, and predefined allowed values with considerations for NULL and NA. Used by other validation functions validateIsOption() and validateColumns().
validateVectorRange() and validateVectorValues() to provide detailed validation for value ranges and allowed values respectively. These functions complement validateVector().
isFileUTF8() and validateIsFileUTF8() to provide validation assessing whether files are UTF-8 encoded.
logSafe() to compute logarithm of values that could be close to 0 or slightly
negative.
foldSafe() to compute x / y when x or y could be negative or zero. All values below a
certain threshold epsilon are substituted by epsilon. NOTE: not suited for
calculating fold differences of negative numbers.
Printable class now converts values using the format
function before printing. E.g., numerical value "0.99999999" will be displayed as "1".
https://github.com/Open-Systems-Pharmacology/OSPSuite.RUtils/issues/120ifEqual() and ifIncluded() for conditional values.
flattenList() to flatten a list to an atomic vector of desired type.
toMissingOfType() to convert special constants (NULL, Inf, NA, etc.)
to NA of desired type.
hasEmptyStrings() and validateHasOnlyNonEmptyStrings() to check for empty
strings.
objectCount to count number of objects.
validateHasOnlyDistinctValues() to validate only unique values are present.
validateIsFileExtension() to validate file extensions.
Cloning method is now disabled for Printable R6 class. This entails that
cloneable property set by Printable's subclasses will be respected.
Previously, this was not the case; the cloning method was available even
if the subclass had explicitly set cloneable = FALSE.
Michael Sevestre is the new maintainer.
The package has been archived on CRAN.
Removes alias hasUniqueValues().
All messages used in ospsuite package are now in ospsuit.utils (exported
list messages).
Adds isEmpty() and validateIsNotEmpty() functions to validate that objects
aren't empty (#58; thanks to @pchelle).
Adds getOSPSuiteUtilsSetting() function to get global settings (see enum
ospsuiteUtilsSettingNames for supported settings).
isIncluded() in previous release that inadvertently
removed support for compound types (#63).isIncluded() now only accepts base types as valid inputs.
formatNumerics() now consistently returns output of type "character".
Improvements to documentation.
validateIsCharacter() is added as an alias for validateIsString()
function.
getEnumKey() is added as an alias for enumGetKey() function.
hasOnlyDistinctValues() is added as an alias for hasUniqueValues()
function.
validateIsInteger() now works with lists (#21).