これは以前に尋ねられたかどうかはわかりませんが、私はUNIX SHELLパイプラインを模倣するためにPythonの "set oriented"のような構文をどのように実装できますか? 特に、レコードのストリームを生成、変更、または使用できる「プレーン・パイソン関数」の使用方法は、「。」を使用して一緒に貼り付けることができます。オペレーター。Python JQUERYがUnixシェルパイプラインを模倣するような構文
UNIXプログラムのようなPythonの関数を仮定して単純な例:UNIXで
我々は行うことができます。
ls | egrep '^a' | wc -l
を 'A' で始まるカレントディレクトリ内のファイルをカウントします。私はそれが可能でLSを接続するようになります明白なグルーコードを省略している
@pipeline
def ls():
for file in glob.glob("*"):
yield file
:
from unixtools import *
ls().egrep('^a').wc(countLines=True)
とLSの実装は、発電機のように考えられます。いかが パイプラインの他の "コマンド"。
@パイプラインはデコレータを使用してプレーンなPython関数をパイプラインプロトコルのメンバーに変換しようとする試みです。
私は、これが逆に書くためにあなたを強制的に読みにくくているのpythonの伝統的な構文と、より多くのエラーが発生しやすいを使用して行うことができます実現:
wc(countLines=True,input=egrep("^a",input=ls()))
私たちはのpythonの実装を検討することができると思いそれを把握するためには、フキダメ。
あなたが探している用語は[**流暢なインターフェイス**](https://en.wikipedia.org/wiki/Fluent_interface)です。 –
メソッドチェーニングが可能で、デコレータも可能です。オーバーライドされたDSL |オペレータ[可能](https://github.com/JulienPalard/Pipe)、何が問題なのですか? – myaut
情報ありがとうございます。 Google検索結果:「パイプ:Pythonのインフィックス構文」: http://pypi.python.org/pypi/pipe/1.3 (https://mdk.fr/blog/pipe-infix-syntax-for- python.html)close –