Pyramid 1.3 の新機能¶
この記事は、 Pyramid バージョン 1.3 とその前身である Pyramid 1.2 を比較して、新しい特徴について説明します。 さらに、2つのバージョンの間の後方非互換性と Pyramid 1.3 に 加えられた廃止 (deprecation) 、ソフトウェア依存性の変更、 特に重要なドキュメンテーションの追加について文書化します。
メジャー機能追加¶
Pyramid 1.3 の主な機能追加は以下の通りです。
Python 3 互換性¶

Pyramid は引き続き Python 2 上で動きますが、 Pyramid はさらに Python 3 互換になりました。 Python 3 の下で Pyramid を使用するためには Python 3.2 以上が要求されます。
多くの Pyramid アドオンが既に Python 3 互換になっています。例えば、
pyramid_debugtoolbar
, pyramid_jinja2
, pyramid_exclog
,
pyramid_tm
, pyramid_mailer
, pyramid_handlers
はすべて
Python 3 に対応しています。しかし、他のアドオンは Python 2 でのみ動く
ことが知られています。さらに、 scaffold が依存するいくつかのパッケージ
(特にZODB)は、まだ Python 3 の下で動きません。
Python 3 に対する全面的なエコシステムのサポートを獲得するまでの間 しばらく待ってください。進行中の移植作業に関しては https://github.com/Pylons/pyramid/wiki/Python-3-Porting でより多くの詳細を見ることができます。
Python 3 互換性のために、いくつかのパッケージ依存性の削除と、古い Python バージョンおよびプラットフォームのサポートを打ち切ることが必要で した。詳細は下記の “Backwards Incompatibilities” セクションを参照して ください。
paster
コマンドが置き換えられました¶
私たちは paster
コマンドを Pyramid 固有の類似品に置き換えました。
なぜか? paster
コマンドを提供する Paste
と PasteScript
という名前のライブラリが Python 3 の下では動かず、それらのライブラリを
私たち自身で移植してメンテナンスすることに気が進まなかったからです。
その結果、いくつかの変更を加える必要がありました。
以前 (Pyramid 1.0, 1.1 および 1.2) は、 paster create
を使って
Pyramid アプリケーションを作成していました:
$ myvenv/bin/paster create -t pyramid_starter foo
1.3 では、その代りに pcreate
を使用してアプリケーションを作成する
必要があります:
$ myvenv/bin/pcreate -s starter foo
内蔵の Pyramid scaffold のためには pcreate
を使う必要があります;
Pyramid の外部で配布された scaffold は、 pcreate
と paster
create
の両方またはどちらかに対応しています。
Pyramid の前のバージョンでは、 Pyramid アプリケーションを起動するのに 以下のようにしていました:
$ myvenv/bin/paster serve development.ini
この代わりに 1.3 では pserve
コマンドを使用しなければなりません:
$ myvenv/bin/pserve development.ini
Pyramid がサポートする ini
設定ファイルのフォーマットは変わっていま
せん。そのため、 Python 2 のみを使っているユーザは、もしそうしたければ
PasteScript を手動でインストールして paster serve
を代わりに使用す
ることができます。しかしながら、 pserve
を使用すれば Python 2 と
Python 3 の両方の下で動くでしょう。
paster pshell
, paster pviews
, paster request
, paster
ptweens
にはそれぞれ、 pshell
, pviews
, prequest
,
ptweens
という対応するコンソールスクリプトが存在します。
scaffold 中で paste.httpserver
は waitress
で置き換えられました¶
以前 scaffold の中で使用していた paste.httpserver
サーバーが
Python 3 互換ではないので、私たちは Pyramid scaffold によって使用される
デフォルト WSGI サーバーを waitress サーバーに変更しました。
waitress サーバーは Python 2 と Python 3 の両方と互換性があります。
scaffold からプロジェクトを作成すれば development.ini
と
production.ini
は次の行を持つでしょう:
use = egg:waitress#main
これの代わりに (古いバージョンではこれがデフォルトでした):
use = egg:Paste#http
Note
paste.httpserver
はヘッダーの値が Unicode だった場合 string 文字列
に自動変換する機能がありました (それは WSGI 仕様に反した特徴でした)。
それに対して waitress
サーバーは WSGI 仕様をより完全に実装しています。
これは特に、レスポンスのヘッダーを修正している場合に影響があるかもしれ
ません。次のエラーがこの問題の指標になります: AssertionError: Header
values must be strings, please check the type of the header being
returned. よくあるケースは string ヘッダーの代わりに Unicode ヘッダーを
返している場合です。
互換性ヘルパーライブラリ¶
新しく pyramid.compat
モジュールが加えられました。
このモジュールは Pyramid アドオンおよび開発環境に対して
Python 2/3 にまたがるサポートを提供します。
Introspection¶
設定情報の introspection システムが加えられました; 開発者として introspection システムを使用することについての詳細は、 Pyramid Configuration Introspection と Configuration introspection の追加 を参照してください。
最新の Pyramid デバッグツールバー (0.9.7+) は、 Pyramid アプリケーション 開発者に introspection 情報を露出する “Introspection” パネルを提供します。
introspection をサポートするために新しい API が追加されました:
pyramid.registry.Introspectable
,
pyramid.config.Configurator.introspector
,
pyramid.config.Configurator.introspectable
,
pyramid.registry.Registry.introspector
@view_defaults
デコレータ¶
クラスをビューとして使用する場合、そのクラスに対して新しい
pyramid.view.view_defaults
クラスデコレータを使用することがで
きます。このクラスデコレータを使うと、そのクラスのメソッドをデコレート
するすべての @view_config
デコレータによって使用されるビュー設定情報
にデフォルトを提供することができます。
例えば、 “REST アクション” を表わすメソッドを持つクラスがある場合、すな わち、すべてのメソッドが同じルートにマップされリクエストメソッドだけが 異なる場合、このようにする代わりに:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | from pyramid.view import view_config
from pyramid.response import Response
class RESTView(object):
def __init__(self, request):
self.request = request
@view_config(route_name='rest', request_method='GET')
def get(self):
return Response('get')
@view_config(route_name='rest', request_method='POST')
def post(self):
return Response('post')
@view_config(route_name='rest', request_method='DELETE')
def delete(self):
return Response('delete')
|
こうすることができます:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | from pyramid.view import view_defaults
from pyramid.view import view_config
from pyramid.response import Response
@view_defaults(route_name='rest')
class RESTView(object):
def __init__(self, request):
self.request = request
@view_config(request_method='GET')
def get(self):
return Response('get')
@view_config(request_method='POST')
def post(self):
return Response('post')
@view_config(request_method='DELETE')
def delete(self):
return Response('delete')
|
これは、クラスに作用する命令的なビュー設定でも同様に機能します。
詳細は @view_defaults Class Decorator を参照してください。
サブクラス化をしない Request 拡張¶
プロパティディスクリプタを持つ pyramid.request.Request
オブジェクトを、カスタムリクエストファクトリを作ることなく拡張すること
ができるようになりました。新しいメソッド
pyramid.config.Configurator.set_request_property()
は、アドオンに
対し各リクエストに加えられるプロパティを登録するためのエントリポイント
を提供します。新しいプロパティは、インスタンスのライフタイムにおいて
返り値を事実上キャッシュして、具象化されるかもしれません。このための
通常のユースケースは、リクエストのためにデータベース接続を得たり、
カレントユーザーを識別したりすることです。新メソッド
pyramid.request.Request.set_property()
も追加されましたが、
configurator メソッドの方が、プロパティのライフタイムにおける
矛盾検知および一貫性を提供するので推奨されます。
Not Found と Forbidden ビューヘルパー¶
Not Found ヘルパー:
- 新 API:
pyramid.config.Configurator.add_notfound_view()
。 これはpyramid.Config.configurator.add_view()
のラッパーで、 “append_slash” 機能のサポートを提供すると同時にパーミッションに関して 正しいことを行います (not found ビューは常に public であるべきです)。 以前に推奨されていたcontext=HTTPNotFound
でadd_view
を直接 呼び出すよりも、こちらの方がより好まれます。
- 新 API:
pyramid.view.notfound_view_config
。 これはpyramid.view.view_config
のようなデコレータコンストラクタで、 スキャンされた時にpyramid.config.Configurator.add_notfound_view()
を呼び出します。以前に推奨されていたcontext=HTTPNotFound
でpyramid.view.view_config
を使用するよりも、こちらの方がより好まれます。
Forbidden ヘルパー:
- 新 API:
pyramid.config.Configurator.add_forbidden_view()
。 これはpyramid.Config.configurator.add_view()
のラッパーで、 パーミッションに関して正しいことを行います。 以前に推奨されていたcontext=HTTPForbidden
でadd_view
を直接 呼び出すよりも、こちらの方がより好まれます。
- 新 API:
pyramid.view.forbidden_view_config
。 これはpyramid.view.view_config
のようなデコレータコンストラクタで、 スキャンされた時にpyramid.config.Configurator.add_forbidden_view()
を呼び出します。以前に推奨されていたcontext=HTTPForbidden
でpyramid.view.view_config
を使用するよりも、こちらの方がより好まれます。
マイナー機能追加¶
- 新 API:
pyramid.path.AssetResolver
とpyramid.path.DottedNameResolver
。前者は asset specification から asset のデータを読むために使用することのできる API へと解決するために使用されます。後者は dotted Python name からモジュールまたはパッケージへと解決するために使用されます。
- Mako テンプレートを使用するために
mako.directories
設定は必須で なくなりました。根拠: Mako テンプレートレンダラーは絶対 asset spec を 使用して指定することができます。アプリケーション全体を、順序付きのルッ クアップパスを要求せずに、そのような asset spec で書くことができます。
pshell
におけるbpython
インタープリター互換性。詳細は IPython or bpython を参照してください。
pyramid.paster.get_appsettings()
API 関数が追加されました。 この関数は、 PasteDeployini
ファイルの[app:...]
セクション内に 定義された設定を返します。
pyramid.paster.setup_logging()
API 関数が追加されました。 この関数は、 PasteDeployini
ファイル中の logging 設定に従い Python logging をセットアップします。
- 設定衝突レポートは、より理解しやすい方法で報告されます。 (“Line 11 in file...” vs. 同じ情報のタプルの repr)
pyramid.config.Configurator.action()
メソッドに余分なキーワード 引数を渡すことができるようになりました。
- Pyramid の
pyramid.views.static_view
によって生成された レスポンスは、ウェブサーバがwsgi.file_wrapper
(http://www.python.org/dev/peps/pep-0333/#optional-platform-specific-file-handling を参照) を提供する場合にはそれを使用するようになりました。
pyramid.config.Configurator.scan()
メソッドはignore
引数 を渡すことができます。それは、文字列、 callable 、または文字列と callable からなるリストです。この機能は、スキャンからサブモジュール、 サブパッケージおよびグローバルなオブジェクトを許可します。 スキャンにignore
引数を使用する方法についての詳細は、 http://readthedocs.org/docs/venusian/en/latest/#ignore-scan-argument を参照してください。
pyramid.config.Configurator.add_travers()
API メソッドが追加され ました。詳細は トラバーサーの変更 を参照してください。 これは新機能ではありません。単に ZCA API を使用する必要なしにトラバーサー を追加するための API を提供します。
pyramid.config.Configurator.add_resource_url_adapter()
API メソッドが追加されました。詳細は pyramid.request.Request.resource_url() の URL 生成方法の変更 を参照 してください。これは新機能ではありません。単に ZCA APIを使用する必要 なしにリソース URL アダプターを追加するための API を提供します。
- ビュー callable がレスポンスに変換できない値を返したとき (例えば、ビュー callable がレンダラー定義なしで辞書を返した場合、ある いは値を全く返さない場合) のより良いエラーメッセージ。エラーメッセージ には、ビュー callable 自身に関する情報と、それを呼んだ結果が含まれる ようになりました。
- .pyc のみのモジュールが
config.include
された場合のより良いエラー メッセージ。これはエラー報告の必要条件により許可されず、それが試みら れた場合より良いエラーメッセージが示されます。以前は、以下のような エラーが出て失敗していました: “AttributeError: ‘NoneType’ object has no attribute ‘rfind’”
- システム値
req
がrequest
の別名としてレンダラーに提供される ようになりました。これは、例えばテンプレートの中で、request.route_url(...)
の代わりにreq.route_url(...)
のように できるということです。これは純粋にテンプレートに内部でリクエストメソッド と属性を使用するのに必要なタイピング量を減らすための変更です。 値request
もまだ利用可能です。これは単に別の選択肢です。
- 新しいインターフェースが追加されました:
pyramid.interfaces.IResourceURL
。このインターフェースを 実装するアダプターは、pyramid.request.Request.resource_url()
が呼ばれる際にリソース URL 生成を無視するために使用することができます。 このインターフェースは今では廃止されたpyramid.interfaces.IContextURL
インターフェースを置き換えます。
- リソースの
__resource_url__
メソッドに渡された辞書 (リソース URL 生成のオーバーライド を参照) は、pyramid.request.Request.resource_url()
で生成されたアプリケーション URL を表わすapp_url
キーを含むようになりました。それは、潜在的 にカスタマイズされた URL プレフィックスを表わします。ユーザによってrequest.resource_url
に渡された潜在的なカスタムスキーム、ホスト およびポート情報が含まれます。必要なところでは、request.application_url
の代わりに使用されるべきです。
pyramid.request.Request.resource_url()
API はこれらの引数を 受け取るようになりました:app_url
,scheme
,host
,port
。app_url
引数は URL 生成の際に大規模に URL プリフィックスを置き換える ために使用することができます。scheme
,host
,port
引数はrequest.application_url
のそれぞれのデフォルト値を部分的に置き換える ために使用できます。
pyramid.request.Request.resource_path()
という名前の新しい API が存在するようになりました。これはpyramid.request.Request.resource_url()
のように作動しますが、 絶対的ではなく相対的な URL を生成します。
pyramid.request.Request.route_url()
API は、これらの引数を 受け取るようになりました:_app_url
,_scheme
,_host
,_port
。_app_url
引数は URL 生成の際に大規模に URL プリフィックスを置き換える ために使用することができます。_scheme
,_host
,_port
引数はrequest.application_url
のそれぞれのデフォルト値を部分的に置き換える ために使用できます。
- 新しいAPI:
pyramid.response.FileResponse
およびpyramid.response.FileIter
。これらはファイルを「手動で」 返す必要のあるビューで使用するためのものです。
後方非互換性¶
Pyramid はもう Python 2.5 上で動きません。これは Jython の最新の リリースおよび Google App Engine の Python 2.5 バージョンを含みます。
理由? Python 2 と 3 の複数のバージョンに「またがって (straggle)」かつ Python 2.6 以前の古い Python 2 バージョンをサポートすることは容易では ありません。Pyramid のこのバージョンを実行するには Python 2.6 以上が 必要です。もし Python 2.5 を使用する必要があれば、 Pyramid 1.2.X の 最新のリリースを使用してください。
- 利用できる scaffold の名前が変わりました。また、
pcreate
がサポート するフラグはpaster create
のサポートするフラグとは異なります。 例えばpyramid_alchemy
は単にalchemy
になりました。
paster
コマンドは、プロジェクトを作成したり、サーバーを始めたり、 デバッグコマンドを実行したりするための文書化された方法ではなくなりま した。 scaffold からプロジェクトを作成するのに、paster create
はpcreate
コンソールスクリプトに置き換えられます。プロジェクトを 実行するのに、paster serve
はpserve
コンソールスクリプト に置き換えられます。pshell
,pviews
,proutes
,ptweens
という名前の新しいコンソールスクリプトは、それらのpaster <コマンド名>
等価物が行っていたことを行います。 関連する narrative documentation がすべて更新されました。根拠: Paste と PasteScript パッケージは Python 3 の下で動きません。
- 新しく生成された scaffold で
pserve
を実行した場合、デフォルトの WSGI サーバーはpaste.httpserver
サーバーの代わりにwaitress
WSGI サーバーになりました。根拠: Paste と PasteScript パッケージは Python 3 の下で動きません。
pshell
コマンド (“paster pshell” を参照) はコマンドライン引数--disable-ipython
を受け付けなくなりました。代わりに-p
引数または--python-shell
引数を受け付けます。その値はpython
,ipython
orbpython
のいずれかです。
pyramid.renderers.renderer_from_name
関数が削除されました。それは Pyramid 1.0 以降廃止されており、 API ではありませんでした。
- Pyramid >= 1.3 バージョンと共に ZCML を使用するために、
pyramid_zcml
バージョン >= 0.8 とzope.configuration
バージョン >= 3.8.0 が必要です。pyramid_zcml
パッケージのバージョン 0.8 は Pyramid 1.0 までずっと後方互換性を持ちます。したがって、より古いバー ジョンをインストールしていて Pyramid 自体を “in-place” でアップグレード した場合、警告されません; その代わりに単に壊れるでしょう。 (特に ZCML のincludeOverrides
ディレクティブを使用している場合)
Pyramid.request.Request.route_url()
またはPyramid.request.Request.route_path()
に渡された “remainder” マッチを置き換えることを意図した文字列の値は、埋め込まれたスラッシュ を除いて URL クォートされるようになりました。例えば:config.add_route('remain', '/foo*remainder') request.route_path('remain', remainder='abc / def') # -> '/foo/abc%20/%20def'
以前は、 remainder 置換として渡された文字列の値は URLクォートされる ことなくそのまま扱われていました。しかし、渡された値が Unicode である 場合、これは実際のところ理論的に動きません(生の Unicode は URL または パスに含めることができません)。また、値が文字列である場合、それは他の URL 生成機構と一致しません(呼び出し元でしなければ、 URL クォートされ ません)
- 非 ASCII 文字を含むバイト文字列をパターンとして
pyramid.config.Configurator.add_route()
に渡した場合、 スタートアップ時に失敗します。 Unicode を代わりに使用してください。
path_info
ルートとビュー述語は、request.path_info
(Python 3 と Python 2 で不定の値) ではなくrequest.upath_info
(Unicode) に対してマッチするようになりました。 Python 2 と Python 3 でマッチを 標準化するために、これを行わなければなりませんでした。
match_param
ビュー述語は dict を受け付けなくなりました。 これによるネガティブな影響はないでしょう。 なぜなら dict ベースの引数に対する実装は壊れていたからです。
pyramid.interfaces.IContextURL
インターフェースが廃止されました。 Pyramid 1.0 以降、カスタムトラバーサーによって見つかったリソースに対するpyramid.request.Request.resource_url()
URL 生成に影響を及ぼすために リソース URL アダプターを登録するのにこれを使用するように “Hooks” 章の中で 指示されていました。このインターフェースはまだ存在します。また、古いバージョンで文書化 されていたようにそれを使用してアダプターを登録することはまだ動きます。 しかし、このインターフェースは Pyramid のいくつかのメジャーリリース後 にソフトウェアから除去されるでしょう。新しい
pyramid.config.Configurator.add_resource_url_adapter()
APIを使用 して登録された等価なpyramid.interfaces.IResourceURL()
アダプター に置き換えてください。pyramid.request.Request.resource_url()
が呼ばれたときにpyramid.interfaces.IContextURL
アダプターが見つかった場合、 deprecation 警告が発生します。
pyramid.config.Configurator.with_context
クラスメソッドが削除され ました。これは API ではなく、単にpyramid_zcml
によって使用されて いました。また、その機能はpyramid_zcml
パッケージの最新版に移動 されました。このことは、 Pyramid のこのリリースと共にpyramid_zcml
のリリース 0.9.2 以降を使用する必要があるということを意味します。
- 古い廃止された
set_notfound_view
Configurator メソッドは新しいadd_notfound_view
Configurator メソッドの別名になりました。同様に、 古い廃止されたset_forbidden_view
は新しいadd_forbidden_view
Configurator メソッドの別名になりました。これには次の影響があります:set_notfound_view
またはset_forbidden_view
によって登録された(context, request)
呼び出し署名を持つビューに送られるcontext
は、見つかった実際のリソースコンテキストではなく例外 オブジェクトになるでしょう。実際のリソースコンテキストを得るためにはrequest.context
を使用してください。さらに、エイリアスされていた としても、set_notfound_view
を使わずにadd_notfound_view
を 使うこと、set_forbidden_view
を使わずにadd_forbidden_view
を 使うことが推奨されます。
廃止¶
pyramid.view.append_slash_notfound_view
およびpyramid.view.AppendSlashNotFoundViewFactory
の API ドキュメンテー ションが削除されました。これらの名前はまだ存在し、インポート可能ですが、 それらはもはや API ではありません。同じ振る舞いを得るためにpyramid.config.Configurator.add_notfound_view(append_slash=True)
あるいはpyramid.view.notfound_view_config(append_slash=True)
を 使用してください。
- Configurator の
set_forbidden_view
とset_notfound_view
メソッド がドキュメンテーションから削除されました。それらは Pyramid 1.1 以降 廃止されていました。
tmpl_context
リクエスト変数に対するすべての言及はドキュメントから 削除されました。 Pyramid におけるその存在は、 Pylons ユーザでなかった 人々を混乱させます。それは Pyramid 1.0 で Pylons ユーザの移行の利便性の ために追加されましたが、 Pyramid のレンダリングシステムは Pylons のものとは非常に異なっているため人気を得ませんでした。また、Pylons で実現しようとしていたことを行うための代替の方法が存在します。 この機能は「永久に」存在し続けるでしょうが、ドキュメントの中では推奨、 または言及されません。
- Pyramid が提供するすべての .ini ファイルの中で、何もしない
pyramid.debug_templates
設定への言及が削除されました。この設定は、 以前は Chameleon がよりよい例外をレンダリングするように指定するものでした; 現在 Chameleon はこの設定値にかかわらず常によい例外をレンダリングします。
既知の問題¶
- この記述 (Pyramid 1.3b2 のリリース) の時点で、 Python 3.2 上で
setup.py develop
によってalchemy
scaffold を使用した Pyramid プロジェクトをインストールしようとした場合、Pygments
を インストールする間にインストールエラーで中止します。これが起こる 場合、単にsetup.py develop
を再実行してください。そうすれば完全 に成功するでしょう。これは Pythoon 3 の下の SQLAlchemy 0.7.5 の中の マイナーなバグによるもので、新しい SQLAlchemy リリースで修正されるで しょう。 http://www.sqlalchemy.org/trac/ticket/2421 を注視していてく ださい。
ドキュメントの改善¶
- SQLAlchemy + URLディスパッチ Wiki チュートリアル が更新されました。それは
@view_config
デコレータと明示的なデータベースデータ投入スクリプト を使用するようになりました。
- ZODB + Traversal Wiki Tutorial のマイナーアップデート。
- narrative ドキュメントに Pyramid Configurator の拡張 という章が追加されました;
それは、カスタム設定ディレクティブを加える方法とカスタムディレクティブ
内で
pyramid.config.Configurator.action()
メソッドを使う方法に ついて記述します。さらに、 introspectable なオブジェクトを加える 方法について記述します。
- narrative ドキュメントに Pyramid Configuration Introspection という章が追加 されました。それは、 introspection システムに対して問い合わせる方法を 記述します。
- API ドキュメントに
pyramid.scaffolds
のための章が追加されました。
- narrative ドキュメントに Creating Pyramid Scaffolds という章が追加されました。
- Invoking a Request に
prequest
コマンドラインスクリプト の記述が追加されました。
- “Command-Line Pyramid” 章に Making Your Script into a Console Script という節が 追加されました。
- “Running Pyramid on Google App Engine” チュートリアルが主要ドキュメント から除かれました。それはクックブックの中に残されています (http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/gae.html) 。 根拠: このドキュメントは GAE の Python 2.5 バージョンでのみ正しい情報を 提供します。そして Pyramid のこのバージョンは Python 2.5 をサポートしません。
- Forbidden View の変更 節が更新されました。
add_view
またはview_config
を使用してビューを登録する説明がadd_forbidden_view
またはforbidden_view_config
を使用する説明に 置き換えられました。
- Not Found ビューの変更 節が更新されました。
add_view
またはview_config
を使用してビューを登録する説明がadd_notfound_view
またはnotfound_view_config
を使用する説明に 置き換えられました。
- Redirecting to Slash-Appended Routes 節が更新されました。
add_view
あるいはview_config
を使用してビューを登録する説明がadd_notfound_view
またはnotfound_view_config
を使用する説明に 置き換えられました。
- すべてのチュートリアルが
pyramid.view.view_config
と HTTPForbidden コンテキストを使うのではなくpyramid.view.forbidden_view_config
を使うように更新されました。
依存性の変更¶
- Pyramid は、テストのための依存性を除いて
zope.component
パッケージに依存しなくなりました。
- Pyramid は次のパッケージバージョンに依存するようになりました: Python 3 互換性の目的のために zope.interface>=3.8.0, WebOb>=1.2dev, repoze.lru>=0.4, zope.deprecation 3.5.0, translationstring 0.4 。 さらに、テスト依存性として、同じ理由で WebTest 1.3.1 に依存します。
- Pyramid は
Paste
またはPasteScript
パッケージに依存しなく なりました。これらのパッケージは Python 3 互換ではありません。
- スキャン
ignore
サポートを提供するためvenusian
>= 1.0a3 に依存し ています。
scaffold の変更¶
- 生成された scaffold は、より再配置可能 (パッケージ中のファイル内でパッ ケージ名に言及する箇所が少数) になるように変更されました。
routesalchemy
scaffold はalchemy
と改名され、より古い (トラ バーサルに基づいた)alchemy
scaffold を置き代えました (古いalchemy
scaffold は引退しました)。
alchemy
とstarter
scaffold は Python 3 互換です。
starter
scaffold は、デフォルトで URL ディスパッチを使用するよう になりました。