ドキュメントpyramid.path.AssetResolver
に記載されているように、使用できるドット付きアセット仕様から移動するには、次のようになります。
from pyramid.path import AssetResolver
a = AssetResolver()
resolver = a.resolve('myproject:templates/foo.pt')
print(resolver.abspath())
# -> /path/to/myproject/templates/foo.pt
具体的には、パスの解決について次のように述べています。
spec が絶対ファイル名 (例: /path/to/myproject/templates/foo.pt
) または絶対アセット仕様 (例: myproject:templates/foo.pt
) の場合、このクラスのコンストラクターに渡されたパッケージを考慮せずにアセット記述子が返されます。
ただし、ユーザーがパッケージ内のテンプレート ファイルを直接変更できないようにすることを強くお勧めします。代わりに、インストール手順でパッケージからすべてのテンプレートをコピーし、Pyramids アセット オーバーライドメカニズムを使用して既存のアセット仕様を新しい場所にサブアウトする方法を用意することをお勧めします。その時点で、標準の Python ファイルのオープン/クローズ メソッドを使用して、ユーザーにテンプレートを更新させることができます。