サブプロセスコマンドとしてのPythonプロシージャ(xonsh.proc)

Pythonを実行するためのインタフェースは、サブプロセスモードのコマンドとして機能します。

ProcProxyクラスのいくつかのヘルパーメソッドのコードは、Python 3.4.2標準ライブラリのsubprocess.pyから修正されずに再現されています。subprocess.pyの内容(および再現された方法)はPeter Astrand < astrand @ lysatorの著作権(c)2003-2005 です。劉。SE >と貢献者契約の下でのPythonソフトウェア財団にライセンス供与されました。

class xonsh.proc.BufferedFDParallelReader(fd、buffer = None、chunksize = 1024 )[ソース]

バッファ付き並列バックグラウンドスレッドリーダー。

パラメーター:
fd : int

読み込み元のファイル記述子。

バッファ : バイナリファイルのようなものか、またはオプションのもの、オプション

バイトを書き込むバッファ。Noneの場合、新しいBytesIOオブジェクトが作成されます。

chunksize : int、オプション

並列読み取りの最大サイズ。デフォルトは1 KBです。

class xonsh.proc.CommandPipeline(specs )[ソース]

サブプロセスモードのコマンドパイプラインを表します。

パラメーター:
specs : SubprocSpecのリスト

プロセス仕様

属性:
仕様 : SubprocSpec

スペックの最後の仕様

proc : Popenのような

procsのプロセス

終了 : ブール

コマンドが実行を停止した場合のブール値。

入力 : str

標準入力の文字列。

output : str

出力へのノンブロッキング、遅延アクセス

エラー : str

標準エラーの文字列。

行 : strのリスト

出力ライン

starttime : 浮動小数点数またはNone

パイプラインの開始タイムスタンプ。

end(tee_output = True )[ソース]

パイプラインを終了し、必要に応じて制御端末を返します。

主なことはself._end()で行われました。

itercheck()[ソース]

戻りコードがゼロでない場合、コマンドラインを繰り返し、エラーをスローします。

iterraw()[ソース]

最後のstdoutを繰り返し、見つかった行を正確に返します。

resume(仕事、tee_output =真)[ソース]
stream_stderr(行)[ソース]

行をsys.stderrおよびerrors属性にストリームします。

tee_stdout()[ソース]

プロセスstdoutを出力変数に行単位で書き込み、各行を生成します。これは、繰り返し処理する行(バイト単位)をオプションで受け入れることができます。この場合、iterraw()は呼び出されません。

alias

使用されるプロセスのエイリアス。

args

プロセスへの引数。

attrnames= 'stdin'、 'stdout'、 'stderr'、 'pid'、 'returncode'、 'args'、 'alias'、 'stdin_redirect'、 'stdout_redirect'、 'stderr_redirect'、 'timestamps'、 'executed_cmd' '入力'、 '出力'、 'エラー')
err

文字列としてのエラーメッセージ。

executed_cmd

解決され実行されたコマンド。

inp

argsから正規化された入力文字列を作成します。

nonblocking=(<class '_io.BytesIO'>、<class 'xonsh.proc.NonBlockingFDReader'>、<class 'xonsh.proc.ConsoleParallelReader'>)
out

strとしての出力値。

output

出力へのノンブロッキング、遅延アクセス

pid

プロセス識別子。

returncode

戻りコードを処理し、コマンドが完了するまで待ちます。

rtn

コードを返すエイリアス。

stderr

プロセス標準エラー。

stderr_postfix

Postfixはstderrの後にバイトとして出力します。

stderr_prefix

stderrの前にバイトとして印刷する接頭辞。

stderr_redirect

stderrにリダイレクトが使用されました。

stdin

プロセススタンダード。

stdin_redirect

stdinに使用されるリダイレクト。

stdout

stdoutを処理します。

stdout_redirect

リダイレクションはstdoutに使用されます。

timestamps

開始時刻と終了時刻のスタンプ。

class xonsh.proc.ConsoleParallelReader(fd、buffer = None、chunksize = 1024、timeout = None )[ソース]

バックグラウンドスレッドで実行されるコンソール用の並列リーダー。これは、Windows上でのみ必要で、利用可能で、便利です。

パラメーター:
fd : int

標準バッファファイル記述子、stdinは0、stdoutは1(デフォルト)、stderrは2です。

バッファ : ctypes.c_wchar_p、オプション

(再)使用するための既存のバッファ。

chunksize : int、オプション

並列読み取りの最大サイズ。デフォルトは1 KBです。

タイムアウト : オプション、float

キューの読み取りタイムアウト

class xonsh.proc.FileThreadDispatcher(デフォルト= None )[ソース]

現在のスレッドに応じて異なるファイルハンドルにディスパッチします。ファイル操作を別のスレッドの別の場所に移動する場合に便利です。

パラメーター:
デフォルト : file-likeまたはNone、オプション

スレッドがレジストリ内に見つからない場合に書き込むファイルハンドル。Noneの場合、新しいインメモリインスタンス。

属性:
レジストリ : dict

スレッドIDをファイルハンドルにマッピングします。

close()[ソース]

現在のスレッドのハンドルを閉じます。

deregister()[ソース]

現在のスレッドをレジストリから削除します。

detach()[ソース]

現在のスレッドのバッファを切り離します。

fileno()[ソース]

現在のスレッドのファイル記述子を返します。

flush()[ソース]

現在のスレッドのファイル記述子をフラッシュします。

isatty()[ソース]

現在のスレッドのファイル記述子がttyかどうかを返します。

read(サイズ=なし)[ソース]

現在のスレッドのハンドルから読み取ります。

readable()[ソース]

現在のスレッドのファイル記述子が読み込み可能かどうかを返します。

readline(サイズ= -1 )[ソース]

現在のスレッドのハンドルから行を読み込みます。

readlines(ヒント= -1 )[ソース]

現在のスレッドのハンドルから行を読み込みます。

register(ハンドル)[ソース]

現在のスレッドのファイルハンドルを登録します。このメソッドをwith文で使用できるようにselfを返します。

seek(オフセット、whence = 0 )[ソース]

現在のファイルをシークします。

seekable()[ソース]

現在のスレッドのファイル記述子がシーク可能かどうかを返します。

tell()[ソース]

現在のスレッドのハンドル内の現在の位置を報告します。

truncate(サイズ=なし)[ソース]

現在のスレッドのためにファイルを切り捨てます。

writable(サイズ=なし)[ソース]

現在のスレッドのファイル記述子が書き込み可能かどうかを返します。

write(s )[ソース]

このスレッドのハンドルに書き込みます。これはまた、文字列が書き込まれたことを余すところなくフラッシュします。

writelines()[ソース]

現在のスレッドのファイル記述子の行を書き込みます。

available

スレッドがレジストリで使用可能な場合はtrue。

buffer

このスレッドのハンドルのバッファを取得します。

closed

スレッドのハンドルが閉じていますか?

encoding

このスレッドのハンドルのエンコーディングを取得します。

errors

このスレッドのハンドルのエラーを取得します。

handle

スレッドの現在のハンドルを取得します。

line_buffering

このスレッドのハンドルの行バッファリングが有効かどうかを取得します。

newlines

このスレッドのハンドルの改行を取得します。

class xonsh.proc.Handle[source]
Close(CloseHandle = None )[ソース]
Detach()[ソース]
closed= Falseの
class xonsh.proc.HiddenCommandPipeline(specs )[ソース]
パラメーター:
specs : SubprocSpecのリスト

プロセス仕様

属性:
仕様 : SubprocSpec

スペックの最後の仕様

proc : Popenのような

procsのプロセス

終了 : ブール

コマンドが実行を停止した場合のブール値。

入力 : str

標準入力の文字列。

output : str

出力へのノンブロッキング、遅延アクセス

エラー : str

標準エラーの文字列。

行 : strのリスト

出力ライン

starttime : 浮動小数点数またはNone

パイプラインの開始タイムスタンプ。

class xonsh.proc.NonBlockingFDReader(fd、timeout = None )[ソース]

バックグラウンドスレッド上のファイル記述子から文字を読み込むためのクラス。これには、呼び出しスレッドがファイルを閉じることができ、読み取りが呼び出しスレッドをブロックしないという利点があります。

パラメーター:
fd : int

ファイル記述子

タイムアウト : floatまたはNone、オプション

キューの読み取りタイムアウト

class xonsh.proc.PopenThread(* args、stdin = None、stdout = None、stderr =なし、** kwargs )[ソース]

サブプロセスの実行と管理のためのスレッド。これにより、stdin、stdout、およびstderrストリームを非ブロック的な方法で読み取ることができます。

これは通常のPopenと同じ引数とキーワード引数をとります。これには、capture_stdoutおよびcaptured_stderr属性をインスタンス化の後に設定する必要があります。

kill()[ソース]

Popen.kill()にディスパッチします。

poll()[ソース]

Popen.returncodeにディスパッチします。

run()[ソース]

stdinが許可されていればパラレルリードを実行し、captured_stdoutからstdoutに、bytesをcaptured_stderrからstderrにコピーすることで、サブプロセスを実行します。

send_signal(シグナル)[source]

Popen.send_signal()にディスパッチします。

terminate()[ソース]

Popen.terminate()にディスパッチします。

wait(タイムアウト=なし)[ソース]

Popen.wait()にディスパッチするだけでなく、このスレッドに参加して元のウィンドウサイズシグナルハンドラを置き換えるなどのプロセスクリーンアップも行います。

returncode

戻りコードを処理します。

signal

プロセス信号、またはなし。

クラスxonsh.proc.PrevProcCloser(パイプライン)[ソース]

前回のコマンド自体が読み込み不能なパイプラインのスレッドを処理します。これにより、パイプラインが前方に駆動され、デッドロックしないことが保証されます。

パラメーター:
パイプライン : CommandPipeline

prevを閉じるパイプライン。

run()[ソース]

終了アルゴリズムを実行します。

class xonsh.proc.ProcProxy(f、args、stdin = None、stdout = None、stderr = None、universal_newlines = False、env = None )[ソース]

これは、呼び出し元の同じスレッド(通常はメインスレッド)でエイリアス関数を実行するプロセスプロキシクラスです。これにより、バックグラウンドスレッドでプロセスが実行されなくなりますが、デバッガおよびプロファイラツール(関数)は、デバッグしようとしているのと同じスレッド上で実行できます。

poll()[ソース]

戻りコードまたはなしで関数が完了したかどうかを確認します。

wait(タイムアウト=なし)[ソース]

関数を実行し、結果を返します。タイムアウト引数は、APIとの互換性のためにのみ存在します。

class xonsh.proc.ProcProxyThread(f、args、stdin = None、stdout = None、stderr = None、universal_newlines = False、env = None )[ソース]

サブプロセスモードコマンドとして実行される関数を表すクラス。

パラメーター:
f : 関数

実行される関数。

args : list

コマンドラインで与えられた引数を含む(おそらく空の)リスト

stdin : ファイルのような、オプションの

stdinを表すファイルのようなオブジェクト(ここから入力を読むことができます)。場合は標準入力が提供されていないか、それが明示的に設定されている場合は なし、その後のインスタンスio.StringIO空のファイルを表すが使用されています。

stdout : ファイルのような、オプションの

stdoutを表すファイルのようなオブジェクト(通常の出力はここに書くことができます)。場合stdoutが提供されていないか、それが明示的に設定されている場合はなし、その後、sys.stdoutのが使用されています。

stderr : ファイルのような、オプションの

stderrを表すファイルのようなオブジェクトです(エラー出力はここに書き込むことができます)。場合stderrが提供されていないか、それが明示的に設定されている場合はなし、そしてsys.stderrを持ちが使用されています。

universal_newlines : bool、オプション

ユニバーサル改行を使用するかどうか。

env : マッピング、オプション

環境マッピング。

poll()[ソース]

機能が完了しているか確認してください。

戻り値:
関数がまだ実行中の場合はNone、それ以外の場合はreturncode
run()[ソース]

入出力ストリームを設定し、新しいスレッドで子関数を実行します。これはthreading.Threadインタフェースの一部であり、直接呼び出さないでください。

wait(タイムアウト=なし)[ソース]

プロセスが終了するのを待ち、戻りコードを返します。

class xonsh.proc.QueueReader(fd、timeout = None )[ソース]

キューから読み込むためのファイルのようなインターフェイスを提供します。

パラメーター:
fd : int

ファイル記述子

タイムアウト : floatまたはNone、オプション

キューの読み取りタイムアウト

close()[ソース]

読者を閉じる

fileno()[ソース]

ファイル記述子番号を返します。

is_fully_read()[ソース]

キューが完全に読み込まれ、リーダーが閉じられているかどうかを返します。

iterqueue()[ソース]

残りのすべてのチャンクをブロックする方法で繰り返します。

read(サイズ= -1 )[ソース]

ファイルからバイトを読み込みます。

read_queue()[ソース]

キューから単一のチャンクを読み込みます。タイムアウトがNoneの場合はブロックされ、それ以外の場合はブロックされません。

static readable()[ソース]

このオブジェクトは常に読み取り可能であるため、trueを返します。

readline(サイズ= -1 )[ソース]

ファイルディスクリプタから行または部分行を読み込みます。

readlines(ヒント= -1 )[ソース]

ファイル記述子から行を読み込みます。これは、負のヒント(つまり、残りの行をすべて読み込む)をブロックし、それ以外の場合はブロックしません。

xonsh.proc.parse_proxy_return(r、stdout、stderr )[ソース]

プロキシはさまざまな出力を返すことがあります。これはそれらを一般的に扱います。

パラメーター:
r : タプル、str、int、またはNone

プロキシ関数からの戻り値

stdout : ファイルのような

現在の標準ストリーム

stdout : ファイルのような

現在のstderrストリーム

戻り値:
cmd_result : int

プロキシの戻りコード

xonsh.proc.partial_proxy(f )[ソース]

argsの数に基づいて、適切なプロキシ関数をディスパッチします。

xonsh.proc.pause_call_resume(p、f、* args、** kwargs )[ソース]

プロセスpの場合、残りのargsとkwargsで関数fを呼び出します。プロセスがシグナルを受け入れることができない場合、関数が呼び出されます。

パラメーター:
p : Popenオブジェクトなど
f : コール可能
args : 残りの引数
kwargs : キーワードの引数
xonsh.proc.populate_buffer(reader、fd、buffer、chunksize )[ソース]

ファイルディスクリプタからバイトを読み取り、バッファにコピーします。

読み込みは、pread()システムコールを使って並行して行われます。これはPOSIXシステムでのみ利用可能です。何らかの理由で読み込みに失敗した場合は、読み込み側は閉じているとフラグが立てられます。

xonsh.proc.populate_console(読者、fd、バッファ、chunksize、キュー、expandsize =なし)[ソース]

ファイル記述子からバイトを読み取り、行をキューに入れます。読み込みはxonsh.winutils.read_console_output_character()を使用して並行して行われたため、Windowsでのみ使用できます。何らかの理由で読み込みに失敗した場合は、読み込み側は閉じているとフラグが立てられます。

xonsh.proc.populate_fd_queue(reader、fd、queue )[ソース]

1KBのデータをファイル記述子からキューに読み込みます。これが終了するか失敗すると、呼び出し元のリーダーオブジェクトがクローズされたものとしてフラグが立てられます。

xonsh.proc.proxy_five(f、args、stdin、stdout、stderr、spec、stack )[ソース]

args、stdin、stdout、stderr、およびspecの4つのパラメータを取るプロキシ関数を呼び出します。

xonsh.proc.proxy_four(f、args、stdin、stdout、stderr、spec、stack )[ソース]

args、stdin、stdout、およびstderrの4つのパラメータを取るプロキシ関数を呼び出します。

xonsh.proc.proxy_one(f、args、stdin、stdout、stderr、spec、stack )[ソース]

1つのパラメータを取るプロキシ関数を呼び出します:args

xonsh.proc.proxy_three(f、args、stdin、stdout、stderr、spec、stack )[ソース]

args、stdin、stdoutの3つのパラメータをとるプロキシ関数を呼び出します。

xonsh.proc.proxy_two(f、args、stdin、stdout、stderr、spec、stack )[ソース]

argsとstdinの2つのパラメータを取るプロキシ関数を呼び出します。

xonsh.proc.proxy_zero(f、args、stdin、stdout、stderr、spec、stack )[ソース]

パラメータを取らないプロキシ関数を呼び出します。

xonsh.proc.safe_fdclose(ハンドル、キャッシュ=なし)[ソース]

可能な限り安全な方法でファイルハンドルを閉じ、潜在的に結果を格納します。

xonsh.proc.safe_flush(ハンドル)[ソース]

安全にファイルハンドルをフラッシュしようとすると成功boolを返します。

xonsh.proc.safe_readable(ハンドル)[ソース]

エラーをスローせずにハンドルが読み込み可能かどうかを調べようとします。

xonsh.proc.safe_readlines(ハンドル、ヒント= -1 )[ソース]

エラーをスローせずに行を読み込もうとします。

xonsh.proc.still_writable(fd )[ソース]

空の文字列を書き込み、失敗したかどうかを調べることによって、ファイルディスクリプタに書き込み可能かどうかを判断します。

xonsh.proc.update_fg_process_group(pipeline_group、background )[ソース]