GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

schematics

schematics – Humans™のPythonデータ構造

投稿日:

Humans™のPythonデータ構造 http://schematics.readthedocs.org/

回路図

Humans™のPythonデータ構造

プロジェクトのドキュメント: https : //schematics.readthedocs.io/en/latest/

Schematicsは、タイプを構造に結合し、それらを検証し、単純な記述に基づいてデータの形を変換するPythonライブラリです。

内部構造はORMタイプのシステムに似ていますが、回路図にデータベースレイヤはありません。 代わりに、Schematicsがすべてを処理してクエリを書くとき、データベースレイヤの構築は非常に簡単になると考えています。

さらに、データベースを使用することが意味をなさない可能性のある一連のタスクに使用できます。

いくつかの一般的な使用例:

これは簡単なモデルです。

>>> from schematics.models import Model
>>> from schematics.types import StringType, URLType
>>> class Person(Model):
...     name = StringType(required=True)
...     website = URLType()
...
>>> person = Person({'name': u'Joe Strummer',
...                  'website': 'http://soundcloud.com/joestrummer'})
>>> person.name
u'Joe Strummer'

データをJSONにシリアル化します。

>>> import json
>>> json.dumps(person.to_primitive())
{"name": "Joe Strummer", "website": "http://soundcloud.com/joestrummer"}

必要なので、名前の値なしで検証してみましょう。

>>> person = Person()
>>> person.website = 'http://www.amontobin.com/'
>>> person.validate()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "schematics/models.py", line 231, in validate
    raise DataError(e.messages)
schematics.exceptions.DataError: {'name': ['This field is required.']}

フィールドと検証パスを追加します。

>>> person = Person()
>>> person.name = 'Amon Tobin'
>>> person.website = 'http://www.amontobin.com/'
>>> person.validate()
>>>

テスト&カバレッジのサポート

カバレッジを実行し、不足している文をチェックします

$ coverage run --source schematics -m py.test && coverage report







-schematics
-, , , , , , ,

執筆者: