昨年、Pythonコミュニティはついに列挙型の実装に同意しました。 対応する
PEP 435提案が開発され、その実装は既にPython 3.4にあります。
激しい議論を見て、私は自分の自転車を作るための実験として、いくつかの機能を追加しましたが、公式の実装ではその可能性は低いでしょう。
現時点では、実験は終了し、ライブラリは私のプロジェクトでうまく表示されたため、コミュニティと共有することにしました。
ほとんどの場合、フォーム<name、value>の関係を説明するとき、名前に関連付ける情報がたくさんあります。ユーザーインターフェイスの補助テキスト、兄弟へのリンク、他のオブジェクトまたは関数へのリンクです。 追加のデータ構造をフェンスする必要がありますが、これは良くありません-結局は余分なエンティティです。
したがって、リレーショナルデータモデルに触発されて、私はバイナリ関係の形式で列挙の実装を放棄し、完全なテーブルに展開することにしました。
同時に追加:
- 継承;
- いくつかのヘルパーメソッドとチェック。
- テーブルのすべての列にインデックスを作成します。
- 関連する関係におけるバックリンクの形成。
その結果、私たちはそのようなことを得ました(すでに長い「キャンバス」を増やさないように例を分割しないことにしました):
別途、コードで転送を宣言する必要がないことに注意してください。 多くの場合、データモデルの宣言に限定し、スプレッドシートなどのサードパーティのソースからデータ自体を読み込む方が便利です。
GitHubのリポジトリと詳細なドキュメントPSライブラリはPython 2.7を念頭に置いて開発されたもので、3番目のライブラリはテストされていません。