snakemake.linting package

Submodules

snakemake.linting.rules module

class snakemake.linting.rules.RuleLinter(workflow, items)[source]

Bases: Linter

get_lineno(rule)[source]
Return type:

int | None

item_desc_json(rule)[source]
item_desc_plain(rule)[source]
lint_iofile_by_index(rule, regex=re.compile('(input|output)\\[[0-9]+\\]'))[source]
lint_log_directive(rule)[source]
lint_long_run(rule)[source]
lint_missing_software_definition(rule)[source]
lint_not_used_params(rule, valid_names={'input', 'log', 'output', 'params', 'resources', 'threads', 'wildcards'}, regex=re.compile('{(?P<name>[a-zA-Z_][a-zA-Z_0-9]*(?!\\+)).*?}'))[source]
lint_params_prefix(rule)[source]

snakemake.linting.snakefiles module

class snakemake.linting.snakefiles.SnakefileLinter(workflow, items)[source]

Bases: Linter

item_desc_json(snakefile)[source]
item_desc_plain(snakefile)[source]
lint_absolute_paths(snakefile, regex=re.compile('(?P<quote>[\'"])(?P<path>(?:/[^/\\n]+?)+?)(?P=quote)'))[source]
lint_envvars(snakefile, regex=re.compile('os.environ\\[(?P<quote>[\'\\"])(?P<name>.+)?(?P=quote)\\]'))[source]
lint_mixed_func_and_rules(snakefile, rule_regex=re.compile('rule .+?:'), func_regex=re.compile('def .+?:'))[source]
lint_path_add(snakefile, regex1=re.compile('[a-zA-Z_][a-zA-Z_0-9]*(?!\\+) *\\+ *(?P<quote>[\'"])(?P<path>/?(?:[^/]+?/)+?(?:[^/]+?)?)(?P=quote)'), regex2=re.compile('(?P<quote>[\'"])(?P<path>/?(?:[^/]+?/)+?(?:[^/]+?)?)(?P=quote) *\\+ *[a-zA-Z_][a-zA-Z_0-9]*(?!\\+)'))[source]
lint_singularity(snakefile, regex=re.compile('singularity:'))[source]
lint_tab_usage(snakefile, regex=re.compile('^ *\\t'))[source]
read_item(snakefile)[source]
snakemake.linting.snakefiles.get_line(match, snakefile)[source]

Module contents

class snakemake.linting.Lint(title, body, links=None)[source]

Bases: object

class snakemake.linting.Linter(workflow, items)[source]

Bases: ABC

abstract item_desc_json(item)[source]
abstract item_desc_plain(item)[source]
lint(json=False)[source]
lints()[source]
read_item(item)[source]