小编Joh*_*ter的帖子

是否可以让 yapf 忽略文件的某些部分?

我正在使用一个名为 Snakemake 的 python-dsl,如下所示:

from bx.intervals.cluster import ClusterTree

from epipp.config import system_prefix, include_prefix, config, expression_matrix
config["name"] = "correlate_chip_regions_and_rna_seq"

bin_sizes = {"H3K4me3": 1000, "PolII": 200, "H3K27me3": 200}

rule all:
    input:
        expand("data/{bin_size}_{modification}.bed", zip,
               bin_size=bin_sizes.values(), modification=bin_sizes.keys())

rule get_gene_expression:
    input:
        expression_matrix
    output:
        "data/expression/series.csv"
    run:
        expression_matrix = pd.read_table(input[0])
        expression_series = expression_matrix.sum(1).sort_values(ascending=False)
        expression_series.to_csv(output[0], sep=" ")
Run Code Online (Sandbox Code Playgroud)

我想对run:块内的东西运行 yapf 。

是否有可能让 yapf 忽略 python 中不存在的内容,例如rule关键字等,而只在文件的特定部分使用它?

python snakemake yapf

6
推荐指数
1
解决办法
4329
查看次数

emama模式为snakemake?

snakemake是一个类似python的make替代品,它更倾向于工作流而不是编译.它非常好,但也很新,我似乎无法在Emacs中找到它的模式.我只想要一些非常简单的东西:从基本模式的一个非常小的修改,所以我在仔细阅读emacs手册,我在init.el中启动了以下内容:

(define-derived-mode snake-mode fundamental-mode
   ...
)
Run Code Online (Sandbox Code Playgroud)

像make一样,snakemake对缩进很严格(实际的tab"\ t"字符,而不是当一个TAB类型时默认的emacs行为).当我改为输入"Cq TAB"时,它会在缓冲区中放置一个真正的制表符:这是有效的,我在基本模式下使用Snakefile尝试它并且它运行得很好.因此,为了避免在每次我想在此模式下使用TAB键入"Cq TAB"时,我想要对snake模式进行的第一个添加是将TAB键重新绑定为"Cq TAB"(或类似的东西).所以我仔细阅读了emacs手册并尝试了:

(define-derived-mode snake-mode fundamental-mode
  (global-set-key (kbd "\t") (kbd "C-q \t"))
  ...
)
Run Code Online (Sandbox Code Playgroud)

但是这个和其他替代方案都不起作用...也许重新绑定像TAB键这样的标准键不是推荐的做法?

我想要的蛇模式的另一个补充是它根据python强调语法(但没有任何python行为,例如,python缩进行为)

总而言之,如果文件名为"Snakefile",那么在创建"蛇形模式"时只需对基本模式进行这2个简单修改,并且还可以调用蛇形模式,但我已经花了几个小时阅读emacs手册和做一些谷歌搜索,似乎我甚至没有接近.这很简单,我很确定它是可能的; 任何建议?

谢谢

穆雷

python emacs makefile snakemake

5
推荐指数
2
解决办法
694
查看次数

标签 统计

python ×2

snakemake ×2

emacs ×1

makefile ×1

yapf ×1