'Evaluate a marker.
Return the boolean from evaluating the given marker against the
environment. environment is an optional argument to override all or
part of the determined environment.
The environment is determined from the current Python process.'

def evaluate(self, environment=None):

    current_environment = default_environment()
    if (environment is not None):
        current_environment.update(environment)
    return _evaluate_markers(self._markers, current_environment)
