問題タブ [zope.interface]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
plone - getMultiAdapter が ComponentLookupError で失敗する
get multi adapter を使用して iterface を検索するコードがあります。マルチアダプターに渡される要素のメンバーの 1 つは、そのインターフェイスを提供していますが、要素自体は提供していません。
マルチアダプターに渡されるものを制御することはできませんが、要素の 1 つを含む要素を制御することはできます。どうすればマークできますか? そこに役立つ可能性のあるものがあることをマルチアダプターに通知するには、provideAdapterFactory(cls, interface) のようなものがありますか?
コード例:
宣言
調べる
ここで、このようなコードを実行すると、ComponentLookupErrorが生成されます。同時に、ルックアップ コードを変更することも、マルチ アダプターの場合も、親が既に別のインターフェイスを実装しているため、親に 'implements(IMarker) を割り当てることもできません。他の多くのものを壊します。
アップデート:
Chapter 6.1 Multi Adapterから理解できる説明を見つけたと思います
更新 2: 単体テスト コードで zca を正しく初期化していないと思います。スニペットを次に示します。
python - Interface(obj)とgetAdapter(obj、Interface)間のZopeコンポーネントの不一致
getAdapter(obj、Interface)が適切に適合されたオブジェクトを返すのに、Interface(obj)がobjを返す原因は何でしょうか?
python - Zopeインターフェースの継承:interface.providedBy()に表示されないのはなぜですか?
インターフェイスIB
をから継承し、 (を実装する)のインスタンスをクエリするためにIA
使用すると、との両方がリストに表示されると思います。しかし、そうではないようです。interface.providedBy()
B
IB
IA
IB
このコードを実行すると、次の出力が生成されます。
B()
出力の最初の行に示されているように、が提供されている場合IA
、出力の2番目の行に表示されないのはなぜIA
ですか?
更新:次の回避策を使用して問題を解決しました。結果にプロバイダークラス、基本クラス(zope.interface.Interface)、またはあらゆる種類の重複を表示することに興味がなかったので、次のことを行いました。
adapter - Z で文字列と組み込み型を適応させることはできますか
私は次のようなインターフェースを持っています:
Git と Mercurial の両方にこのインターフェイスを実装しています。ここで、文字列 (パス) を受け取って IRepository を返す、repository-factory を書きたいと思いgit
ますhg
。
ただし、単純に言うと:
動作せず、インターフェースstr
もunicode
サポートしません。IInterface
今のところ、私は行きます:
しかし、文字列オブジェクトとその他の Python 組み込み型のみに一致するインターフェイスがあるかどうかを知りたいです。
python - XBMC アドオン開発に Python の twisted.internet を使用するには?
twisted.internet
現在作成中の XBMC アドオンにPython モジュールを使用しようとしました。アドオンを実行しようとすると、理解できない例外が発生しました。次の行がすべての問題を引き起こしていることに気付いたとき、私は非常に驚きました。
質問:twisted
XBMC アドオンの開発にどのように使用できますか? どんな助けでも大歓迎です!
残念ながら、私は XBMC と XBMC の両方に不慣れでありtwisted
、提供できる詳細はほとんどありません。メインスレッドでアドオンが実行されていないと思います。現在、テストには XBMC 11 を使用しています。(更新: XBMC、Python、および の最新の Debian テスト パッケージをtwisted
使用しています。モジュールのインポートと使用は、通常のスクリプトと XBMC サービスから機能しますが、XBMC スクリプトからは機能しません。)xbmc.log
ファイルのスタックトレースは次のとおりです。
これは、関連する最初のエラー メッセージです。
ご協力いただきありがとうございます!
python - Pythonのzope.interface.registryのインポートエラー
仮想環境にプロジェクトをインストールしています。エラーが発生しています
このモジュールのバージョン 4.0.5
私は自分のマシン(仮想環境ではない)で同じことを試しましたが、
ここでfrom zope.interface.registry import Components
はエラーは発生しませんでした。これによると
、エラーは発生しません。ここで欠けているもの、またはこのエラーを解決する方法について何か提案はありますか?
python - Zope コンポーネントで動作する Python ソース アナライザー
Zope コンポーネントを広く使用するコード ベース (Py 2.6 のもの) があり、ソースを分析できるツールが必要です。ツールはソースを分析することになっています。いくつかの制限されたクラス/オブジェクト/インターフェースなどの使用法を探すように。基本的には、ステートメントのコンテキスト (どのクラス/メソッド/関数、どのモジュールなど) を認識しながら、ソース内の各ステートメントをスキャンし、それを分析します。特定のパターン。
ソースをテキスト バッファーに読み込んでパターンを照合するというアプローチは、信頼できるアプローチではないようです。
思いついた別のアプローチはinspectを使用することでしたが、inspect は壊れているようで、コードベースを処理できないようです (複数の試行で、すべて検査がクラッシュしました)。inspectで抜け道があるように見えるので、私はそれをあきらめなければならないかもしれません。
さて、私が考えることができる他のオプションは、pylintを使用するか、ASTを使用することです(そして、それに多くの後処理を行います)。pylintがどの程度拡張可能かはわかりません。ソースステートメントの分析に関しては、pylint がコンテキスト (つまり、どのクラスの defn/function/method がこのステートメントを持っているかなど) を認識することができるかどうかなどです。
ここで適切なアプローチとして何を提案しますか? 以前にそのような問題に対処しなければならなかった人はいますか?
提案してください。
python - インターフェイスに属性を動的に追加する方法
インターフェイスのすべての属性に属性を追加する必要があります。そのため、動的に変更して追加しようとしていますが、今のところあまり成功していません。
次のインターフェースがあるとしましょう:
そして、私はそれを次のように変更したいと思います:
その後、クラスを修正してみましたが、すでに初期化されているため、スキーマが設定されており、変更方法がわかりませんでした。ディレクティブ (例: interface.Implements()) を書くことも考えましたが、属性を追加するだけではかなり複雑に思えます。
最終的な目標は、一連の Bool ウィジェットを含む z3c.form フィールドセットを追加することです。
それで、Pythonでそれを行う方法はありますか、それともインターフェイスを変更してすべての属性を手動で追加する必要がありますか?
ありがとう !
zope.interface - Zope コンポーネントを GlobalSiteManager に登録する意味は何ですか?
Zope コンポーネント アーキテクチャに関する素晴らしいチュートリアルを以下から読んでいます。
http://www.muthukadan.net/docs/zca.html#adapters
アダプターの章 を理解できないようです。
私が間違っている場合は修正してください。上記のクラスFrontDeskNG
はアダプターですよね?記事に書かれているように:
FrontDeskNG は、IGuest を適応させる IDesk のアダプターです。
さて、これでアダプターができました。使用する前に に 登録する必要があるのはなぜですか?GlobalSiteManager
私はモバイル ゲームのバックエンドに取り組んでおり、Zope コンポーネント アーキテクチャを調べて、コードをよりモジュール化したいと考えています。ストレージをあらゆるデータベース テクノロジと交換し、コードを引き続き機能させる機能が必要です。これは、ZCA が誇らしげに宣伝しているように思えました。有名な GoF Design Patterns の本を読んだことがないので、ご容赦ください。