Source code for coalib.bears.requirements.RscriptRequirement
from coalib.bears.requirements.PackageRequirement import PackageRequirement
from coalib.misc.Shell import run_shell_command
[docs]class RscriptRequirement(PackageRequirement):
"""
This class is a subclass of ``PackageRequirement``. It specifies the proper
type for ``R`` packages automatically and provide a function to check
for the requirement.
"""
def __init__(self, package, version='', flag='', repo=''):
"""
Constructs a new ``RscriptRequirement``, using the
``PackageRequirement`` constructor.
>>> pr = RscriptRequirement(
... 'formatR', version='1.4', flag='-e',
... repo="http://cran.rstudio.com")
>>> pr.type
'R'
>>> pr.package
'formatR'
>>> pr.version
'1.4'
>>> pr.flag
'-e'
>>> pr.repo
'http://cran.rstudio.com'
:param package: A string with the name of the package to be installed.
:param version: A version string. Leave empty to specify latest version.
:param flag: A string that specifies any additional flags, that
are passed to the type.
:param repo: The repository from which the package to be installed is
from.
"""
PackageRequirement.__init__(self, 'R', package, version)
self.flag = flag
self.repo = repo
[docs] def is_installed(self):
"""
Checks if the dependency is installed.
:param return: True if dependency is installed, false otherwise.
"""
return True if run_shell_command(
('R -e \'library(\"{}\", quietly=TRUE)\''
.format(self.package)))[1] is '' else False