ビギナー
これからPythonっていう言語の勉強を始めようと思うんですけど・・・

先生
うん。

ビギナー
ブログとかを読んでたら、PEP?ってものがよく出てくるんです。

先生
ああ、あるね。

ビギナー
あれなんですか?読んでたほうがいいんですか?

先生
PEPはコーディングの規則や新しくこんな機能つけるよーなんていう情報をまとめた文書だね。

先生
だから読んでおいて損はないと思うよ。

ビギナー
う…でも英語なんですよね。どうにかしてください。

先生
….わかりました。(はぁ)

PEP(Python Enhancement Proposal)はPythonを改良する案、リリーススケジュール、コーディングスタイルなど開発を円滑に進める上で重要なことを文書にまとめておく場所。ここには、Pythonをコーディングするすべての人にとって重要な内容がきっと入っているはず。ビギナーが言うようにもちろん、英語。よって、これをできるだけ毎日、翻訳しながら読み解きまとめていくことで備忘録としていきたいと思います。英語は非常に苦手なので誤訳はご指摘ください。

※以下、アイコンが出てくる箇所は私のコメントになります。それ以外は、翻訳または翻訳のまとめです。

基本情報

Web Library Enhancements

PEP: 222
Title: Web Library Enhancements
Webライブラリの拡張
Author: A.M. Kuchling <amk at amk.ca>
Status: Deferred
Type: Standards Track
Created: 18-Aug-2000
Python-Version: 2.1
Post-History: 22-Dec-2000

アブストラクト

このPEPは、Python標準ライブラリのCGI開発機能に対する一連の機能強化を提案しています。機能強化は、新機能、Cookieサポートなどのタスク用の新しいモジュール、または廃止されたコードの削除などです。

当初の目的はPython 2.1を改良することでした。しかし、Pythonコミュニティからはほとんど関心がなく、時間が足りなかったため、このPEPは将来のPythonリリースまで延期されました。

未解決の問題

このセクションでは、提案されている変更をリストしていますが、まだ確定的な決定は行われていません。このPEPの最終版では、すべての変更が承認済みまたはリジェクト済みとして分類されるため、このセクションは空にする必要があります。

cgi.py:ファイルのアップロードを処理できるように、独自のサブクラスを作成するように指示されるべきではありません。これを正しく実行する機会をまだ見つけていないので、cgi.pyの一時ファイルを別のファイルに読み込むことになります。当社のレガシーコードの中には、実際に2番目の一時ファイルに読み込んでから、最終的な保存先に読み込むものがあります。たとえ行ったとしても、その__init__呼び出しとそれに関連したオーバーヘッドでさらに別のオブジェクトを作成することを意味します。

cgi.py:現在のところ、no =を持つクエリデータは無視されます。 keep_blank_valuesが設定されていても、...?value=&...のようなクエリは空白の値で返されますが、...?value&...のようなクエリは完全に失われます。そのようなデータが、値としてNoneを持つエントリとして、または別のリストとして、FieldStorageインタフェースを通して利用可能にすればよいでしょう。

ユーティリティ関数:2タプルのリストから問い合わせ文字列を作る

辞書関連のユーティリティクラス:NoKeyErrors(空の文字列を返し、KeyErrorは返しません)、PartialStringSubstitution(元のキー文字列を返します、KeyErrorは返しません)

新しいモジュール

このセクションでは、Python標準ライブラリに追加されるべき全ての新しいパッケージやモジュールについての詳細をリストします。

  • fcgi.pyFastCGIプロトコルのサポートを追加した新しいモジュール。ただし、Robin DunnのコードはWindowsに移植する必要があります。

既存モジュールの主な変更点

このセクションでは、インプリメンテーションであれインターフェースであれ、既存のモジュールに対する主な変更点の詳細をリストします。したがって、このセクションの変更は、バグの導入または下位互換性のいずれかにおいて、より大きなリスクを伴います。

cgi.pyモジュールは廃止予定です。(新しいモジュールまたはパッケージ名はまだ選択されていません:’web‘? ‘cgilib‘?)

既存モジュールのマイナーチェンジ

このセクションでは、既存のモジュールに対する小さな変更の詳細をリストします。これらの変更は比較的小さな実装を持つべきであり、以前のバージョンとの非互換性をもたらす危険性はほとんどありません。

リジェクトされた変更点

このセクションに記載されている変更はPython2.1用に提案されたものですが、不適切として拒否されました。拒否された変更ごとに、その変更が不適切と見なされた理由を説明する論理的根拠が示されます。

  • HTML生成モジュールはこのPEPの一部ではありませんHTMLgenの純粋なプログラミングインターフェースからASP風のシンプルなテンプレート作成、DTMLの複雑なテンプレート作成まで、そのようなモジュールがいくつか存在します。 どのテンプレートモジュールを標準ライブラリで保護するべきかについての指示はなく、それはおそらくそのように選択されるべきモジュールがないことを意味します。
  • cgi.pyクエリデータとPOSTデータの組み合わせを許可します。標準的なことではないため、疑わしい方法です。

提案されたインターフェース

未解決問題:命名規則(スタッドキャップまたは下線区切り?)。 cgi.parse *()関数を見て、それらも単純化できるかどうかを調べる必要があります。
構文解析関数:cgi.pyのほとんどのparse *関数を継承します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です