(機械翻訳)Pyramid 1.8の新機能¶
この記事では、app: Pyramid`バージョン1.8の新機能について説明しています:app: Pyramid` 1.7。また、2つのバージョン間の非互換性と、app: Pyramid 1.8に追加されたdeprecationsと、ソフトウェアの依存関係の変更と、著しいドキュメントの追加についても説明しています。
主な機能の追加¶
追加:meth: pyramid.config.Configurator.add_exception_view`と:func: pyramid.view.exception_view_config`デコレータ。これらのメソッドを使うか、新しい `` exception_only = True``オプションを使って、:meth: `pyramid.config.Configurator.add_view`を使って、例外を扱うときにのみ一致するビューを追加することが可能になりました。以前は、例外クラスから継承されたトラバーサルコンテキストに対して例外ビューが登録されていたため、例外のみの最適化ができませんでした。 https://github.com/Pylons/pyramid/pull/2660を参照してください。
`` pserve --reload``は `` hupper <http://docs.pylonsproject.org/projects/hupper/en/latest/> `_ライブラリを使ってファイルの変更を監視します。これには多くの改善が伴います:
- `watchdog <http://pythonhosted.org/watchdog/> `_パッケージがインストールされていれば、cpuとディスク集約的なポーリングの代わりにinotifyを使って監視が行われます。
- モニタは、コードの前にクラッシュしたり起動したりすることのない別のプロセスになりました。
- ファイルが保存されるまで、クラッシュ後にモニターはプロセスを再始動しません。
- モニターはウィンドウ上で動作します。
- `` hupper.get_reloader()。trigger_reload() ``を使ってピラミッドビューやその他のコードから手動でリロードをトリガできるようになりました。ちょっとしたもの。
- 監視プロセスに対して `` SIGHUP``を発行することによって、再ロードをトリガーすることができます。
https://github.com/Pylons/pyramid/pull/2805を参照してください。
マイナー機能追加¶
- Python 3.6との互換性。 https://github.com/Pylons/pyramid/issues/2835
- class: pyramid.authentication.BasicAuthAuthenticationPolicy`の _get_credentials``プライベートメソッドは、スタンドアロン関数:func: pyramid.authentication.extract_http_basic_credentials`に抽出されました。この関数は、 `` request``オブジェクトからHTTP基本認証情報を抽出しますそれらを名前付きタプルとして返します。 https://github.com/Pylons/pyramid/pull/2662を参照してください。
- Pyramid 1.4は、復元されたコンフィギュレータの機能を静かに削除しました。行動弁別者が異なる行動秩序にぶつかり合うことも可能です。 https://github.com/Pylons/pyramid/pull/2757を参照してください。
- :func: pyramid.paster.bootstrap`とその兄弟:func: pyramid.scripting.prepare`をコンテクストマネージャーとして使うことができるようになりました。メモリリークを防ぐためにスタックの `close`とpoplocallocalsを自動的に呼び出す。 https://github.com/Pylons/pyramid/pull/2760を参照してください。
- view deriverが例外を処理するだけのビューをラッピングしているかどうかを判断するために使用できる:class: pyramid.interfaces.IViewDeriverInfo`に exception_only``ブール値を追加しました。これは、ビューが例外を処理しているかどうかを判断するために ` request.exception``のために要求時間チェックを実行する必要がなくなり、パイプラインを設定時に最適化できることを意味します。 https://github.com/Pylons/pyramid/pull/2660を参照してください。
- `` pcreate``は `` --package-name``について学びました。プロジェクト名とは異なるパッケージ名で既存のフォルダに新しいプロジェクトを作成することができます。 https://github.com/Pylons/pyramid/pull/2783を参照してください。
- `` pserve``は、サーバやアプリケーションがピラミッドの残りの部分をインポートする前にできるだけ早くそれを行うと仮定して、プロセスをmonkeypatchする必要がある `` gevent``や他のワーカーで動作するはずです。 https://github.com/Pylons/pyramid/pull/2797を参照してください。
- Pyramidは `` pyramid.config.Configurator(settings =) ``に渡された設定オブジェクトをコピーしません。元の `` dict``が保持されます。 https://github.com/Pylons/pyramid/pull/2823を参照してください。
- csrf trusted origininsの設定は、空白で区切られたドメインのリストになりました。以前は、Pythonのリストだけが許可されていました。また、他の設定と同様の `` PYRAMID_CSRF_TRUSTED_ORIGINS``環境変数を使って設定することもできます。 https://github.com/Pylons/pyramid/pull/2823を参照してください。
- 新しい `` [pserve] ``セクションは、カスタムファイルパスを監視する `` pserve --reload``を設定できる `` watch_files``キーで設定ファイルでサポートされています。 https://github.com/Pylons/pyramid/pull/2827を参照してください。
- ストリーミング応答を:class: `pyramid.httpexceptions.HTTPException`のサブクラスから行うことができます。以前は、ボディのテスト中に応答が展開され、応答をストリーミングできなくなりました。 https://github.com/Pylons/pyramid/pull/2863を参照してください。
- ウェイトレスの新しい "listen"ディレクティブを使用して、IPv6をサポートするためのスターター、錬金術、zodbの足場を更新します。 https://github.com/Pylons/pyramid/pull/2853を参照してください。
- すべてのp *スクリプトは、optparseではなくargparseを使用するようになりました。これは `` --help``の出力を改善するだけでなく、それらのオプションのより良いドキュメントを可能にします。 https://github.com/Pylons/pyramid/pull/2864を参照してください。
- :meth: pyramid.config.Configurator.add_translation_dirs`に `override``オプションを追加しました。 https://github.com/Pylons/pyramid/pull/2902を参照してください。
- :meth: pyramid.config.Configurator.set_default_csrf_options``に新しい `callback``オプションを追加しました。これは、リクエストごとにCSRFチェックを有効にしてミックス認証方法を許可するかどうかを判断するために使用できます。 Cookieベースの方法だけでは、一般的にCSRFチェックが必要です。 https://github.com/Pylons/pyramid/pull/2778を参照してください。
後方の非互換性¶
ピラミッドの非推奨期間(1.6 - > 1.8)の後、pserveのデーモンサポートは削除されました。これには、デーモンコマンド(start、stop、restart、status)と `` --daemon``、 `` --pid-file``、 `` -log-file``、 `` --monitor-restart``、 `` --status``、 `` --user``、 `` --group``、 `` --stop-daemon``
サーバをデーモンとして実行するには、pserveではなくプロセスマネージャを使用する必要があります。
https://github.com/Pylons/pyramid/pull/2615を参照してください。
静的ビューを変更して、 `` Content-Encoding``レスポンスヘッダをPythonの `` mimetypes``モジュールを使って推測されるエンコーディングに設定しないようにします。これは、クライアントがgzipファイルをダウンロードするときにその内容をデコードする原因となっていました。クライアントは、既にデコードされたディスク上の `` foo.txt.gz``ファイルで終わるので、実際は `` foo.txt``でなければなりません。また、 `` Content-Encoding``は、クライアント自身が `` Accept-Encoding``リクエストヘッダを使ってエンコーディングをサポートしている場合にのみ使われるべきです。 https://github.com/Pylons/pyramid/pull/2810を参照してください。
`` pcreate``はデフォルトで対話型になりました。異なる内容のファイルがすでに存在するかどうかを確認するメッセージが表示されます。これまでは、 `` --interactive``や `` --overwrite``を指定しない限り、類似したファイルがあった場合、それらを静かにスキップしていました。 https://github.com/Pylons/pyramid/pull/2775を参照してください。
Pyramid 1.3で廃止された `` IContextURL``インターフェースのサポートが削除されました。 https://github.com/Pylons/pyramid/pull/2822を参照してください。
設定は、設定オブジェクトの属性としてアクセスできなくなりました( `` request.registry.settings.foo``など)。これはPyramid 1.2では推奨されていませんでした。 https://github.com/Pylons/pyramid/pull/2823を参照してください。
`` pyramid.static.static_view``から文書化されていない引数 `` cachebust_match``を削除しました。この議論は、Pyramid 1.6で誤って出荷されました。 https://github.com/Pylons/pyramid/pull/2681を参照してください。
廃止¶
`` pcreate``スクリプトとコア足場(
starter
、 `` alchemy``、 `` zodb``)は廃止されました。彼らは人気の `cookiecutterを採用する決定に取り替えられました<https://cookiecutter.readthedocs.io/en/latest/> `_最も優れたプロジェクトテンプレートソリューションとしてのプロジェクト。
もともとは、サポートされているPython 3の代替案がほとんど存在しないときに `` pcreate``が導入されました。幸いにも、状況が改善され、主要なIDEによってcookiecuttersについてのツールサポートが可能になり、jinja2構文がシンプルになりました。プロジェクトは前進しています!
ピラミッドの公式の足場とチュートリアルは、すべてcookiecuttersに移植されています:
- `pyramid-cookiecutter-starter <https://github.com/Pylons/pyramid-cookiecutter-starter> `_
- `ピラミッド - クッキーカッター - 錬金術<https://github.com/Pylons/pyramid-cookiecutter-alchemy> `_
- `pyramid-cookiecutter-zodb <https://github.com/Pylons/pyramid-cookiecutter-zodb> `_
https://github.com/Pylons/pyramid/pull/2780を参照してください。
ドキュメントの機能拡張¶
印刷慣習を更新する。 https://github.com/Pylons/pyramid/pull/2838
`pyramid_nacl_sessionを追加する<http://docs.pylonsproject.org/projects/pyramid-nacl-session/en/latest/> `_セッションファクトリに。 https://github.com/Pylons/pyramid/issues/2791を参照してください。
マスターにマージされていない古いブランチからHACKING.txtを更新してください。 https://github.com/Pylons/pyramid/pull/2782を参照してください。
更新されたWindowsのインストール手順と関連するビット。 https://github.com/Pylons/pyramid/issues/2661を参照してください。
ビュー述語とルート述語の間のドキュメントの不整合を修正し、APIの違いを強調表示します。 https://github.com/Pylons/pyramid/pull/2764を参照してください。
class: pyramid.httpexceptions.HTTPException`のサブクラスに ヘッダー kwargを誤って使用する可能性があることを明確にしてください。クラス: `pyramid.response.Response``を親クラスから適切なkwargsで代用するべきです。 https://github.com/Pylons/pyramid/pull/2750を参照してください。
SQLAlchemy + URL Dispatch + Jinja2( `` wiki2``)とZODB + Traversal + Chameleon( `` wiki``)チュートリアルは、新しいcookiecuttersと `` pcreate``スカフォールドのサポートを利用するように更新されました。
https://github.com/Pylons/pyramid/pull/2881およびhttps://github.com/Pylons/pyramid/pull/2883を参照してください。
クイックツアー、クイックチュートリアル、およびほとんどのファイルは、pcreateや足場の代わりにcookiecuttersを使用するように更新されました。 https://github.com/Pylons/pyramid/pull/2888およびhttps://github.com/Pylons/pyramid/pull/2889を参照してください。
cookiecuttersとApache 2.4+を使うための `` mod_wsgi``チュートリアルを更新しました。 https://github.com/Pylons/pyramid/pull/2901を参照してください。