Source code for coalib.bears.requirements.NpmRequirement

from coalib.bears.requirements.PackageRequirement import PackageRequirement
from coalib.misc.Shell import call_without_output
import platform


[docs]class NpmRequirement(PackageRequirement): """ This class is a subclass of ``PackageRequirement``. It specifies the proper type for ``npm`` packages automatically and provide a function to check for the requirement. """ def __init__(self, package, version=''): """ Constructs a new ``NpmRequirement``, using the ``PackageRequirement`` constructor. >>> pr = NpmRequirement('ramllint', '6.2') >>> pr.type 'npm' >>> pr.package 'ramllint' >>> pr.version '6.2' :param package: A string with the name of the package to be installed. :param version: A version string. Leave empty to specify latest version. """ PackageRequirement.__init__(self, 'npm', package, version)
[docs] def is_installed(self): """ Checks if the dependency is installed. :param return: True if dependency is installed, false otherwise. """ for cmd in (['npm', 'list', self.package], ['npm', 'list', '-g', self.package]): if platform.system() == 'Windows': # pragma: no cover cmd = ['cmd', '/c'] + cmd if not call_without_output(cmd): return True return False