This repository has been archived by the owner on Feb 2, 2018. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
SecretModel
thing in #102 gave me an idea. I quite like how this turned out; tickles my object-oriented sensibilities.ListModel
is a subclass for model types represented as a JSON list.Splitting the class hierarchy this way has some nice properties:
Model
are represented as a JSON object/dictionary._list_attr
and_list_class
class attributes move toListModel
, leavingModel
less cluttered.Model.__str__()
method can assume a dictionary structure.ListModel.__str__()
method overrides this and assumes a list.Model._struct_for_json()
method can assume a dictionary structure, eliminating the need for_dict_for_json()
.ListModel._struct_for_json()
method overrides this and assumes a list, eliminating the need for_list_for_json()
._json_type
class attribute is no longer needed.Instead of this:
if model._json_type == 'list':
do this:
if isinstance(model, ListModel):