Source code for coalib.bears.requirements.PackageRequirement
from coala_utils.decorators import generate_eq, generate_repr
@generate_eq('type', 'package', 'version')
@generate_repr()
[docs]class PackageRequirement:
"""
This class helps keeping track of bear requirements. It should simply
be appended to the REQUIREMENTS tuple inside the Bear class.
Two ``PackageRequirements`` should always be equal if they have the same
type, package and version:
>>> pr1 = PackageRequirement('pip', 'coala_decorators', '0.1.0')
>>> pr2 = PackageRequirement('pip', 'coala_decorators', '0.1.0')
>>> pr1 == pr2
True
"""
def __init__(self, type: str, package: str, version=''):
"""
Constructs a new ``PackageRequirement``.
>>> pr = PackageRequirement('pip', 'colorama', '0.1.0')
>>> pr.type
'pip'
>>> pr.package
'colorama'
>>> pr.version
'0.1.0'
:param type: A string with the name of the manager (pip, npm, etc).
:param package: A string with the name of the package to be installed.
:param version: A version string. Leave empty to specify latest version.
"""
self.type = type
self.package = package
self.version = version
[docs] def is_installed(self):
"""
Check if the requirement is satisfied.
>>> PackageRequirement('pip', \
'coala_decorators', \
'0.2.1').is_installed()
Traceback (most recent call last):
...
NotImplementedError
:return: Returns True if satisfied, False if not.
"""
raise NotImplementedError