Ответ 1
До сих пор самое близкое, что я смог найти, это warlock, который рекламирует этот рабочий процесс:
Создайте свою схему
>>> schema = {
'name': 'Country',
'properties': {
'name': {'type': 'string'},
'abbreviation': {'type': 'string'},
},
'additionalProperties': False,
}
Создать модель
>>> import warlock
>>> Country = warlock.model_factory(schema)
Создать объект с помощью вашей модели
>>> sweden = Country(name='Sweden', abbreviation='SE')
Однако, это не совсем так просто. Объекты, которые производят Чернокнижники, не имеют большого количества способностей к понятным позитивам. И если он поддерживает вложенные dicts при инициализации, я не смог понять, как заставить их работать.
Чтобы дать немного информации, проблема, над которой я работал, заключалась в том, как сделать API JSONSchema и создать дерево генераторов запросов и обработчиков ответов. Чернокнижник не кажется слишком далеким от следа, единственным недостатком является то, что мета-классы в Python действительно не могут быть превращены в "код".
Другие полезные модули для поиска:
- jsonschema - (какой чернокнижник построен поверх)
- valideer - похоже на jsonschema, но с худшим именем.
- bunch - интересный конструктор структуры, который находится на полпути между dotdict и construct
Если вы в конечном итоге найдете подходящее решение для этого, пожалуйста, позаботьтесь о своем вопросе - я бы хотел его найти. Я налил через github, pypi, googlecode, sourceforge и т.д. И просто не мог найти ничего действительно сексуального.
Из-за отсутствия готовых решений я, вероятно, соберу что-нибудь с Чернокнижником. Поэтому, если я побью тебя, я обновлю ответ.: Р