schrodinger.models.diffy module

Need a diff in a jiffy? Use diffy!

schrodinger.models.diffy.get_diff(new_state, old_state)

Given two states of an object, calculate what changed between them.

schrodinger.models.diffy.get_removed(new_state, old_state)
schrodinger.models.diffy.get_added(new_state, old_state)
schrodinger.models.diffy.get_updated(new_state, old_state)
schrodinger.models.diffy.get_moved(new_state, old_state)
class schrodinger.models.diffy.ListDiff(added, removed, moved)

Bases: tuple

__add__

Return self+value.

__class__

alias of builtins.type

__contains__

Return key in self.

__delattr__

Implement delattr(self, name).

__dir__() → list

default dir() implementation

__eq__

Return self==value.

__format__()

default object formatter

__ge__

Return self>=value.

__getattribute__

Return getattr(self, name).

__getitem__

Return self[key].

__getnewargs__()

Return self as a plain tuple. Used by copy and pickle.

__gt__

Return self>value.

__hash__

Return hash(self).

__init__

Initialize self. See help(type(self)) for accurate signature.

__init_subclass__()

This method is called when a class is subclassed.

The default implementation does nothing. It may be overridden to extend subclasses.

__iter__

Implement iter(self).

__le__

Return self<=value.

__len__

Return len(self).

__lt__

Return self<value.

__module__ = 'schrodinger.models.diffy'
__mul__

Return self*value.n

__ne__

Return self!=value.

static __new__(_cls, added, removed, moved)

Create new instance of ListDiff(added, removed, moved)

__reduce__()

helper for pickle

__reduce_ex__()

helper for pickle

__repr__()

Return a nicely formatted representation string

__rmul__

Return self*value.

__setattr__

Implement setattr(self, name, value).

__sizeof__() → int

size of object in memory, in bytes

__slots__ = ()
__str__

Return str(self).

__subclasshook__()

Abstract classes can override this to customize issubclass().

This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

added

Alias for field number 0

count(value) → integer -- return number of occurrences of value
index(value[, start[, stop]]) → integer -- return first index of value.

Raises ValueError if the value is not present.

moved

Alias for field number 2

removed

Alias for field number 1

schrodinger.models.diffy.get_diff_list(new_state, old_state)

Calculate what was added, removed, and moved between two states of a list.

Note that items are compared by identity not equality (ie is rather than ==).

Returns:A namedtuple describing what was added, removed, and moved between two lists. See get_added, get_removed, and get_moved more details.
Return type:ListDiff(set, set, set)
class schrodinger.models.diffy.SetDiff(added, removed)

Bases: tuple

__add__

Return self+value.

__class__

alias of builtins.type

__contains__

Return key in self.

__delattr__

Implement delattr(self, name).

__dir__() → list

default dir() implementation

__eq__

Return self==value.

__format__()

default object formatter

__ge__

Return self>=value.

__getattribute__

Return getattr(self, name).

__getitem__

Return self[key].

__getnewargs__()

Return self as a plain tuple. Used by copy and pickle.

__gt__

Return self>value.

__hash__

Return hash(self).

__init__

Initialize self. See help(type(self)) for accurate signature.

__init_subclass__()

This method is called when a class is subclassed.

The default implementation does nothing. It may be overridden to extend subclasses.

__iter__

Implement iter(self).

__le__

Return self<=value.

__len__

Return len(self).

__lt__

Return self<value.

__module__ = 'schrodinger.models.diffy'
__mul__

Return self*value.n

__ne__

Return self!=value.

static __new__(_cls, added, removed)

Create new instance of SetDiff(added, removed)

__reduce__()

helper for pickle

__reduce_ex__()

helper for pickle

__repr__()

Return a nicely formatted representation string

__rmul__

Return self*value.

__setattr__

Implement setattr(self, name, value).

__sizeof__() → int

size of object in memory, in bytes

__slots__ = ()
__str__

Return str(self).

__subclasshook__()

Abstract classes can override this to customize issubclass().

This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

added

Alias for field number 0

count(value) → integer -- return number of occurrences of value
index(value[, start[, stop]]) → integer -- return first index of value.

Raises ValueError if the value is not present.

removed

Alias for field number 1

schrodinger.models.diffy.get_diff_set(new_state, old_state)

Calculate what was added and removed between two states of a set.

Returns:A namedtuple describing what was added and removed.
Return type:SetDiff(set, set)
schrodinger.models.diffy.get_removed_set(new_state, old_state)

Calculate what was removed between two states of a set.

Return type:set
schrodinger.models.diffy.get_removed_list(new_state, old_state)
Returns:A set of tuples, each describing an item that was removed and and its index in old_state
Return type:set((object, int))
schrodinger.models.diffy.get_added_list(new_state, old_state)
Returns:A set of tuples, each describing an item that was added and and its index in new_state.
Return type:set((object, int))
schrodinger.models.diffy.get_added_set(new_state, old_state)

Calculate what was removed between two states of a set.

Return type:set
schrodinger.models.diffy.get_added_dict(new_state, old_state)
Returns:A dictionary with items in new_state but not in old_state.
schrodinger.models.diffy.get_moved_list(new_state, old_state)
Returns:A set of tuples, each describing an item that was moved and and its index in new_state
Return type:set((object, int))