JetBrains-Research / snakecharm

Plugin for PyCharm / IntelliJ IDEA Platform IDEs which adds support for Snakemake language.
MIT License
61 stars 7 forks source link

Features/#262 checkpoints resolve/completion after rules keyword #459

Closed dakochik closed 2 years ago

dakochik commented 2 years ago

Now resolve/completion allow using checkpoints after 'rules' keyword.

262

iromeo commented 2 years ago

@dakochik PR is ok, have you checked the requested behaviour on runtime in snakemake? I'm not 100% sure that it is till true in up-to-date snakemake

As far as I remember we implement rules. without CP in order not to confuse the user, because normally he need to access it via syntax like checkpoints.foo.get(**wildcards).output.key1 in order to get checkpoint dependent rules to work correctly. So not sure that 1) the issue was correct 2) if it works so, not clear how to help users to differ CP usage syntax like in boo from all. Maybe is better not to implement the above feature at all.

dakochik commented 2 years ago

When I'm running an example from the issue, I'm getting an RE: expected string or bytes-like object in the first expand argument.
But when I'm running more simple example:

checkpoint foo:
    output: "{sample}_in"

rule boo:
    input: expand(rules.foo.output, sample=["boo"]) 
    output: "boo_out"
    run:
        shell("touch {output}")
        print(rules.foo.output)
        for rule in workflow.rules: 
            print("RULE",rule.name)
            print(rule.input)

I'm getting the following messages:

{sample}_in
RULE foo

RULE boo
boo_in

And no RE

IDK if it is really necessary feature (I think you are more experienced with snakemake to consider that), but looks like it is still a valid case.