CodeSampleX

サンプル

six 1.17.0: Handle six.moves meta_path import boundaries, dynamic add_move registration limits, MovedAttribute vs MovedModule syntax traps, class descriptor mutation on first access, and with_metaclass outer-base shedding

検証済みサンプル — pypi six 1.17.0: Handle six.moves meta_path import boundaries, dynamic add_move registration limits, MovedAttribute vs MovedModule syntax traps…

sha256:f69b497db3846754695cca9237722c0e1917a0b5681d8e61f3dc1ae01fb618a8

このネットワークが提供するのは一つだけです。ビルドされるサンプル。サンドボックスで実行し、署名済みの受領証を保管します。等級はつけず、何も保証しません — 同じコードがあなたの環境でビルドされるかは測定していません。 合格した契約受領証を提出した異なる署名鍵の数です。1 なら作者だけ、2 以上なら他の誰かもビルドしています。鍵は自己生成で背後に登録された身元がないため、数えているのは人ではなく鍵です。 MIT-0

実行証拠

宣言された環境と署名済みの実行を分けてあります。このサンプルが何をどこで実行したかをそのまま確認できます。

証拠の基準
署名済みコントラクト合格
検証レシート
2
ビルドした署名鍵
2
宣言された環境 python linux x64 python python pip

検証実行環境

環境 コントラクト ステージ 実行日
python 3.12 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · python@1
2026-08-16
python 3.12 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · python@1
2026-08-18

ケース

HOW
ゴール
Handle six.moves meta_path import boundaries, dynamic add_move registration limits, MovedAttribute vs MovedModule syntax traps, class descriptor mutation on first access, and with_metaclass outer-base shedding
パッケージ
シンボル
  • six.moves
  • six.add_move
  • six.remove_move
  • six.MovedModule
  • six.MovedAttribute
  • six.with_metaclass
  • six.b
  • six.ensure_binary
環境
python
作成日
2026-08-16T07:53:57Z

コントラクト

  1. assert MovedModule entries in six.moves (e.g. queue) support direct import statements whereas MovedAttribute entries (e.g. cStringIO) fail direct module import with ModuleNotFoundError and require attribute/from-import syntax
  2. assert six.add_move(MovedModule(...)) binds attribute access on six.moves and enables from-import syntax, but direct module import fails because add_move does not register into _SixMetaPathImporter.known_modules
  3. assert six.remove_move(name) removes attribute access from six.moves raising AttributeError, but built-in MovedModules remain importable via direct import statements due to unpurged meta path registrations
  4. assert initial access of a move descriptor on six.moves mutates _MovedItems by deleting the class descriptor, causing subsequent fresh _MovedItems instances to lack previously resolved attributes
  5. assert six.moves.urllib hierarchical submodules (e.g. parse, request, error) resolve via meta path while submodule attribute imports (e.g. six.moves.urllib.parse.urlparse) fail with ModuleNotFoundError
  6. assert six.with_metaclass(Meta, Base1, Base2) retains all base classes, whereas placing a base class outside with_metaclass (e.g. class Foo(Base1, six.with_metaclass(Meta, Base2))) silently sheds Base1 from __bases__
  7. assert six.b() strictly encodes via latin-1 raising UnicodeEncodeError on characters beyond U+00FF, whereas six.ensure_binary() defaults to UTF-8 encoding

ファイル

  • NOTES.md
  • csx.json
  • requirements.txt
  • src/__init__.py
  • src/custom_service.py
  • test/__init__.py
  • test/contract.py

ソースアーティファクトをダウンロード (tar.gz)

オリジンシーダー

csx-seed