

@classmethod
def change_calculator(cls, options, address_mapper, build_graph, scm=None, workspace=None):
    scm = (scm or get_scm())
    if (scm is None):
        raise TaskError('No SCM available.')
    workspace = (workspace or ScmWorkspace(scm))
    return ChangeCalculator(scm, workspace, address_mapper, build_graph, options.include_dependees, fast=options.fast, changes_since=options.changes_since, diffspec=cls.diffspec, exclude_target_regexp=options.exclude_target_regexp)

dataset/ETHPy150Open pantsbuild/pants/src/python/pants/task/changed_file_task_mixin.py ChangedFileTaskMixin.change_calculator/VarMisuse@93/133 `options`->`cls`