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.
Fixes: #555
The way
pynetbox
currently handles mixed lists doesn't allow to re-instantiate the proper nested object types when loading values from a serialized() object. This is because the generic_list_parser "gobbles" that information by construction specific Record types from the mixed list.Example:
Patching the record
a_terminations
/b_terminations
with new ID wouldn't work as with other nested Record types as in this case the API expects a dict withobject_type
andobject_id
keys.I propose to solve this by introducing a
GenericListItem
class that more accurately stores the state of the API response, while allowing a nicer serializationThe
__getattr__
on the new class, allows to maintain backward compatibility to some extent.This involves a change in type of objects returned in mixed/generic lists now always being
GenericListItem