ArcheTypes

 プロダクトを作り始めると、やはりArcheTypesのコードが気になってくるもので、ちょっとArchetypeTool.pyを読んでみました。

以下、テキトーにメモです。

  • registerType(klass, package=None):
    • klassをコンテンツ・タイプとして、ArchetypesTool._types[]に登録します。このとき、meta_type,portal_typeなどの情報も合わせて登録されます。
    • packageを指定しない形式は、deprecatedになっています。
  • listTypes(package=None):
    • resisterTypeで登録されたコンテンツ・タイプの情報をリストにして返します。
  • process_types(types, pkg_name)
    • listTypes()で取得したコンテンツ・タイプの情報とパッケージ名から、CMFに登録するための、クラスのリスト、コンストラクタ(addHogehoge)のリスト、FTIのリストを作成します。
    • コンストラクタは、クラスのモジュールに定義されていれば、それが使われます。なければ、勝手にコンストラクタが作られます。
    • FTIも、モジュールに定義がなければ、勝手にデフォルトを作ってくれます。