Strip emend. and everything after it so the ref column retains the
combination authority, not the emendation author. Update data.R and
mo_property.R docs to describe the correct semantics of the ref field.
https://claude.ai/code/session_01VH4Ju4Xq9aW1AHuoVbjGEo
* Generalise interpretive rules for multi-guideline support (#268)
- Rename data-raw/eucast_rules.tsv → interpretive_rules.tsv; add rule.provider
column (value: "EUCAST") to distinguish future CLSI rows
- Rename EUCAST_RULES_DF → INTERPRETIVE_RULES_DF in _pre_commit_checks.R;
filter by rule.provider == guideline when applying rules in interpretive_rules()
- Rename custom_eucast_rules() → custom_interpretive_rules() with new S3 class
"custom_interpretive_rules"; old function becomes a deprecated wrapper in
zz_deprecated.R; backward-compat S3 dispatch shims added for old class
- Remove stop_if(guideline == "CLSI", ...) so clsi_rules() no longer errors
- Add .onLoad shim in zzz.R to create INTERPRETIVE_RULES_DF from EUCAST_RULES_DF
for transitional compatibility until sysdata.rda is regenerated
https://claude.ai/code/session_01D46BTsfJSPo3HnLWp3PRkP
* Fix namespace load failure: remove assignInNamespace from .onLoad (#268)
assignInNamespace cannot add NEW bindings to a locked package namespace
(R locks namespace bindings before .onLoad runs). Replace the .onLoad
shim with a runtime fallback inside interpretive_rules(): if
INTERPRETIVE_RULES_DF is absent (pre-regeneration sysdata.rda), derive
it from EUCAST_RULES_DF by adding the rule.provider column. This also
fixes the screening_abx line to reuse the already-resolved
interpretive_rules_df_total instead of a bare INTERPRETIVE_RULES_DF
reference.
https://claude.ai/code/session_01D46BTsfJSPo3HnLWp3PRkP
* fixes
* fixes
---------
Co-authored-by: Claude <noreply@anthropic.com>
* fix: convert Python lists to R vectors in wrapper to prevent R list coercion errors
Fixes#267. Python lists passed to R functions via rpy2 are received as
R lists, not R character/numeric vectors. This causes is.mic(), is.sir(),
is.disk() etc. to return length > 1 logicals, which break R's && operator.
Added convert_to_r() helper that maps Python list/tuple to the appropriate
typed R vector (StrVector, IntVector, FloatVector) based on element types.
The r_to_python decorator now applies this to all args and kwargs before
calling the R function.
* docs: instruct Claude to install git and gh before computing version