summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWendell Smith <wackywendell@gmail.com>2015-06-22 16:56:06 -0400
committerWendell Smith <wackywendell@gmail.com>2015-06-22 16:56:06 -0400
commit5b13d4201d593bcf2b3d5cb100e5a5248cbff2d5 (patch)
treece1d065840ad7c63e2f4895d7ca19236f8bc3e7a
parent9dca65662e675f1183a1c5a5a87674c1d18d39ac (diff)
downloadwarlock-5b13d4201d593bcf2b3d5cb100e5a5248cbff2d5.tar.gz
Optional name
-rw-r--r--warlock/core.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/warlock/core.py b/warlock/core.py
index fa996d2..affdaa9 100644
--- a/warlock/core.py
+++ b/warlock/core.py
@@ -19,10 +19,11 @@ import copy
from . import model
-def model_factory(schema, base_class=model.Model):
+def model_factory(schema, base_class=model.Model, name=None):
"""Generate a model class based on the provided JSON Schema
:param schema: dict representing valid JSON schema
+ :param name: A name to give the class, if `name` is not in `schema`
"""
schema = copy.deepcopy(schema)
@@ -31,5 +32,8 @@ def model_factory(schema, base_class=model.Model):
self.__dict__['schema'] = schema
base_class.__init__(self, *args, **kwargs)
- Model.__name__ = str(schema['name'])
+ if name is not None:
+ Model.__name__ = name
+ elif 'name' in schema:
+ Model.__name__ = str(schema['name'])
return Model