Stormは、1つ以上のSQLデータベースとPythonオブジェクト間のオブジェクトリレーショナルマッピングを実現するPythonプログラミングライブラリです。Python開発者はStormを使用することで、複数のデータベーステーブルにまたがる複雑なクエリを作成し、オブジェクト情報の動的な保存と取得をサポートできます。
StormにはMySQL、PostgreSQL、SQLite データベースのサポートが組み込まれており、APIによって他のデータベースのサポートも可能になっています。また、StormはDjangoとZopeの Webフレームワークもネイティブにサポートしています。Twistedのサポートは.20リリースで予定されています。[1]
発達
StormはCanonical Ltd.でPythonを使用して開発され、 LaunchpadおよびLandscapeアプリケーションでの使用を目的として2007年にフリーソフトウェアとしてリリースされました。このプロジェクトはフリーソフトウェアであり、 GNU Lesser General Public Licenseの下でリリースされています。貢献者はCanonicalに著作権を譲渡する必要があります。バージョン管理はBazaarで、問題追跡はLaunchpadで行われています。[2]
| バージョン | 発売日 | 改良点[3] |
|---|
| ストーム 0.21 | 未定 | 2013年現在開発中[アップデート] |
| ストーム 0.20 | 2013年6月28日 | - 新しい CaptureTracer が storm.testing に追加されました。
- setup.py の実行には Setuptools が必要になりました。これにより、テストスイートの実行に必要な依存関係のインストールが容易になります。
- PostgreSQL 切断エラーがより確実に検出されるようになりました。
- 挿入式では、複数行およびサブクエリの INSERT ステートメントがサポートされるようになりました。
- postgres バックエンドで、UPDATE の RETURNING 拡張機能を使用し、返される列をオプションで指定するためのサポート。
- SQL 式の先頭に「DISTINCT」を付加する Distinct 式を追加します。
- Postgres の分離レベルを REPEATABLE READ に切り替えます。
- 2 フェーズ コミットのサポートを追加します (PostgreSQL のみ)。
- ZStormResourceManager には schema_stamp_dir オプションのインスタンス属性が追加され、必要な場合にのみスキーマのアップグレードが実行されるようになりました。
|
| ストーム 0.19 | 2011年10月5日 | - storm.zope.testing.ZStormResourceManager はカスタム URI の使用をサポートしています。
- ResultSet.config の "distinct" 引数は列のタプルを受け入れます。
- Django 統合レイヤーでラップされたカーソル オブジェクトを提供します。
- 新しい JSON プロパティ、新しい ROW コンストラクター、新しい Cast 式、および 2 つの新しいトレーサーを追加します。
- 新しい storm.twisted.transact モジュールが追加されました。
|
| ストーム 0.18 | 2010年10月25日 | - データベース スキーマを管理および移行するためのコードを含めます。
- 登録されたストアのセットを管理するための storm.zope.testing.ZStormResourceManager クラスが追加されました。
- TimeoutError が発生した場合、例外が発生した理由の説明が含まれます。
- 一部の属性が含まれていない理由を文書化するために、IResultSet インターフェイスが改善されました。
|
| ストーム 0.17 | 2010年8月5日 | - ResultSet と ReferenceSet が再設計され、改善されました。
- Store クラスと Connection クラスには、block_access() メソッドと unblock_access() メソッドがあります。
- 間違ったスレッドからスレッドごとのストアを使用しようとすると、ZStormError が発生します。
|
| ストーム 0.16 | 2009年11月29日 | - セット式コンストラクターは、最初の引数が同じ型である場合にそれをフラット化するようになりました。
- Comparable に startswith()、endswith()、contains_string() メソッドを追加します。
- C 拡張機能はデフォルトで有効になっています。
- 「make doc」は Pydoctor を使用して API ドキュメントを生成します。
|
| ストーム 0.15 | 2009年8月8日 | - _cursor に渡される引数をチェックしないことで、Django の最新バージョンのサポートを追加します。
- 新しい GenerationalCache、UUID プロパティ タイプ、Neg 式、Coalese 式が追加されました。
- DisconnectionError レポートが改善されました。
- Results/ResultSets はより多くの情報を公開するようになりました。
|
| ストーム 0.14 | 2009年1月9日 | - 新しい storm.django パッケージが追加されました。
- Storeコンストラクタはオプションのcacheキーワード引数を取ります。
- ResultSet には is_empty() メソッドが追加されました。
|
| ストーム 0.13 | 2008年8月28日 | - ResultSet オブジェクトに group_by/having メソッドを追加します。
- テスト中に接続を維持するには、tests/store を変更します。
- 汎用「トレーサー」のプラグインのサポートを実装しました。
- プロパティは「validator」パラメータを受け入れるようになりました。
- クラスだけでなく式も Store.find() に渡すことができます。
- オブジェクトは、汚れた順にフラッシュされます。
- ClassAlias は明示的に名前が付けられたすべてのエイリアスをキャッシュします。
- 結果セットと参照セットに __contains__() メソッドが追加されました。
|
| ストーム 0.12 | 2008年1月28日 | - 接続の切断が検出されると、接続は自動的に再接続されます。
- Store.flush() はデータベースに挿入された値をロードしません
- RETURNING 拡張機能を使用するための postgres バックエンドでのサポート。
- 最後に取得した N 個のオブジェクトをメモリに保持するキャッシュ メカニズムを導入しました。
- すべてのバックエンドでの TimeDelta プロパティのサポートが改善されました。
|
| ストーム 0.11 | 2007年10月8日 | マイナーなバグ修正リリース。 |
| ストーム 0.10 | 2007年8月8日 | バグ修正、機能強化、ドキュメント化! |
| ストーム0.9 | 2007年7月6日 | |
参照
参考文献
- ^ bzrのStormコードベース。http://bazaar.launchpad.net/~storm/storm/trunk/files/head:/storm/ 2012年5月24日閲覧
- ^ Canonicalの貢献者契約 https://www.canonical.com/contributors 2012年5月24日閲覧
- ^ Storm Developers. 「Launch Pad」. https://launchpad.net/storm 2006-07-17. 2012年5月24日閲覧
外部リンク