Можно ли включить «условный импорт» в файл DESCRIPTION пакета?
Например, я разрабатываю пакет, который планирует системные задачи. В Windows это достигается с помощью планировщика заданий и пакета taskscheduleR
, в Unix - пакета cronR
. Таким образом, было бы полезно сделать что-то вроде следующего:
DESCRIPTION
Package: pkgname
Version: 0.0.1
[more fields]
Imports:
dplyr,
if (.Platform$OS.type == "windows") "taskscheduleR" else "cronR",
tidyr
Полагаю, можно было бы написать .onAttach()
илиАналогично, который проверяет тип системы и устанавливает соответствующий пакет, если его еще нет, но это не кажется особенно приятным решением - во-первых, он полагается на пользователя, подключающего пакет при подключении к сети доони могут его использовать, а во-вторых, это нарушает формальную цепочку зависимостей.
Мой текущий подход заключается в том, чтобы включить оба пакета в Suggests
, а затем ответственность за установку правильного пакета для их системы лежит на пользователе.