(機械翻訳) pyramid.path

CALLER_PACKAGE

:class: pyramid.path.DottedNameResolver`と:class: pyramid.path.AssetResolver`のコンストラクタによって使用される定数です。

class DottedNameResolver(package=pyramid.path.CALLER_PACKAGE)[ソース]

a:term: `dotted Python name`をパッケージまたはモジュールオブジェクトに解決するために使用されるクラス。

バージョン 1.3 で追加.

コンストラクタは、 `` package``という名前の単一の引数を受け取ります。

  • モジュールまたはパッケージへの完全修飾された(相対ではない)ドット付きの名前
  • Pythonモジュールまたはパッケージオブジェクト
  • 値 `` None``
  • 定数値:attr: `pyramid.path.CALLER_PACKAGE`です。

デフォルト値は:attr: `pyramid.path.CALLER_PACKAGE`です。

`` package``は相対的な点線の名前が:meth: 〜pyramid.path.DottedNameResolver.resolve`メソッドに与えられたときに使われます。最初の文字として ` .``(ドット)または ````(コロン)を持つ点線の名前は、相対として扱われます。

`` package``が `` None``の場合、リゾルバは完全修飾名(相対名ではない)のみを解決することができます。相対名を解決しようとすると、:exc: `ValueError`例外が発生します。

`` package``が:attr: pyramid.path.CALLER_PACKAGE`である場合、リゾルバは:meth:〜pyramid.path.DottedNameResolver.resolve`メソッドの呼び出し側に対する相対的なドット付きの名前を扱います。

`` package``が* module または module name *(パッケージ名またはパッケージ名ではない)の場合、そのパッケージを含むパッケージが計算され、このパッケージがパッケージ名を派生させるために使用されます(すべての名前は、決してモジュールに)。たとえば、この型への `` package``引数に文字列 `` xml.dom.expatbuilder``が渡され、 `` .mindom``が:meth: 〜pyramid.path.DottedNameResolverに与えられます。 ` xml.dom.expatbuilder``はパッケージオブジェクトではなくモジュールオブジェクトであるため、結果のインポートは `` xml.minidom``のために行われます。

`` package``が* package または package name *(モジュールまたはモジュール名ではありません)の場合、このパッケージはドット付きの名前の相対的な計算に使用されます。たとえば、このタイプの `` package``引数に文字列 `` xml.dom``が渡され、 `` .minidom``が:meth: 〜pyramid.path.DottedNameResolver.resolve`メソッドの場合、結果は ` xml.minidom``になります。

maybe_resolve(dotted)[ソース]

このメソッドは、:meth: 〜pyramid.path.DottedNameResolver.resolve`のように動作しますが、渡された `dotted``値が文字列でない場合を除き、単に返されます。例えば:

import xml
r = DottedNameResolver()
v = r.maybe_resolve(xml)
# v is the xml module; no exception raised
resolve(dotted)[ソース]

このメソッドは、グローバルなPythonオブジェクト(インポート可能なオブジェクト)へのドット付きの名前参照をオブジェクト自体に解決します。

2つの点線の名前スタイルがサポートされています:

  • パッケージの非モジュール属性が ``: `` `` package.module:attr``を使ってパスの残りの部分から分離されている `` pkg_resources``スタイルのドット付きの名前です。
  • `` zope.dottedname``スタイルの点線の名前パッケージの非モジュール属性が `` package.module.attr``などの `` .``を使ってパスの残りの部分と区切られています。

これらのスタイルは互換的に使用できます。指定された名前に ````(コロン)が含まれている場合、 `` pkg_resources``の解決メカニズムが選択されます。そうでなければ `` zope.dottedname``の解決メカニズムが選択されます。

このメソッドに渡された `` dotted``引数が文字列でない場合は、:exc: `ValueError`が送出されます。

ドット付きの名前を解決できない場合、a:exc: `ValueError`エラーが発生します。

例:

r = DottedNameResolver()
v = r.resolve('xml') # v is the xml module
class AssetResolver(package=pyramid.path.CALLER_PACKAGE)[ソース]

:term: `資産指定 'を:term:`資産記述子'に解決するために使用されるクラス。

バージョン 1.3 で追加.

コンストラクタは、 `` package``という名前の単一の引数を受け取ります。

  • モジュールまたはパッケージへの完全修飾された(相対ではない)ドット付きの名前
  • Pythonモジュールまたはパッケージオブジェクト
  • 値 `` None``
  • 定数値:attr: `pyramid.path.CALLER_PACKAGE`です。

デフォルト値は:attr: `pyramid.path.CALLER_PACKAGE`です。

`` package``は相対的な資産指定が:meth: `〜pyramid.path.AssetResolver.resolve`メソッドに与えられたときに使われます。コロンの付いていない資産指定は、相対として扱われます。

`` package``が `` None``の場合、リゾルバは完全な(相対的ではない)アセットを解決することしかできません。相対的な資産指定を解決しようとすると、:exc: `ValueError`例外が発生します。

`` package``が:attr: pyramid.path.CALLER_PACKAGE`の場合、リゾルバは:meth:〜pyramid.path.AssetResolver.resolve`メソッドの呼び出し側に対する相対的な資産指定を扱います。

`` package``が* module または module name *(パッケージ名またはパッケージ名ではない)であれば、そのパッケージを含むパッケージが計算され、このパッケージはパッケージ名を派生させるために使われます(すべての名前はパッケージ、決してモジュールに)。たとえば、このタイプの `` package``引数に文字列 `` xml.dom.expatbuilder``が渡され、 `` template.pt``が:meth: 〜pyramid.path.AssetResolver `xml.dom.expatbuilder``はパッケージオブジェクトではなくモジュールオブジェクトであるため、結果の絶対アセット仕様は `xml.minidom:template.pt``になります。

`` package``が* package または package name *(モジュールまたはモジュール名ではない)である場合、このパッケージは相対的な資産の仕様を計算するために使用されます。たとえば、この型の `` package``引数に文字列 `` xml.dom``が渡され、 `` template.pt``が:meth: 〜pyramid.path.AssetResolver.resolve `メソッドでは、結果の絶対アセット仕様は `xml.minidom:template.pt``になります。

resolve(spec)[ソース]

`` spec``という名前のアセット仕様を、class: `pyramid.interfaces.IAssetDescriptor`に記述されている属性とメソッドを持つオブジェクトに解決します。

`` spec``が絶対ファイル名( `` / path / to / myproject / templates / foo.pt``)や絶対アセット仕様( `` myproject:templates.foo.pt``など)の場合、このクラスのコンストラクタに渡された `` package``を考慮せずに返されます。

`` spec``が* relative *アセット仕様(例えば `` templates / foo.pt``のような ````のないアセット仕様)である場合、コンストラクタの `` package``引数は資産仕様のパッケージ部分として使用されます。例えば:

a = AssetResolver('myproject')
resolver = a.resolve('templates/foo.pt')
print(resolver.abspath())
# -> /path/to/myproject/templates/foo.pt

AssetResolverが `` None``の `` package``引数なしで構築され、相対資産指定が `` resolve``に渡された場合、:exc: `ValueError`例外が発生します。