summaryrefslogtreecommitdiff
path: root/warlock/core.py
diff options
context:
space:
mode:
Diffstat (limited to 'warlock/core.py')
-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