State Savers

Different methods to save the state, this allows for more modularity than just having a big switch statement in the main code. Note that these classes are not subclasses of a more generic class, as this allows these classes to save data in a completely different manner from each other. Furthermore, it avoids (slow) inheritance.

class pypdevs.statesavers.AssignState(time_last, time_next, state, activity, my_input, elapsed)[source]

Class to save the state using a simple assignment, is unsafe for most situations…

__init__(time_last, time_next, state, activity, my_input, elapsed)[source]

Constructor

Parameters
  • time_last – time_last to save

  • time_next – time_next to save

  • state – state to save

  • activity – the activity of the computation

  • my_input – the state input to save for memorisation

  • elapsed – the time elapsed

__weakref__

list of weak references to the object (if defined)

loadState()[source]

Load the state from the class, this will make a copy

Returns

state - copy of the state that was saved

class pypdevs.statesavers.CopyState(time_last, time_next, state, activity, my_input, elapsed)[source]

Class to save the state using the Python ‘copy’ library

__init__(time_last, time_next, state, activity, my_input, elapsed)[source]

Constructor

Parameters
  • time_last – time_last to save

  • time_next – time_next to save

  • state – state to save

  • activity – the activity of the computation

  • my_input – the state input to save for memorisation

  • elapsed – the time elapsed

__weakref__

list of weak references to the object (if defined)

loadState()[source]

Load the state from the class, this will make a copy

Returns

state - copy of the state that was saved

class pypdevs.statesavers.CustomState(time_last, time_next, state, activity, my_input, elapsed)[source]

Class to save the state using a manually defined copy() function of the state. If no such method is provided, an error is raised.

__init__(time_last, time_next, state, activity, my_input, elapsed)[source]

Constructor

Parameters
  • time_last – time_last to save

  • time_next – time_next to save

  • state – state to save

  • activity – the activity of the computation

  • my_input – the state input to save for memorisation

  • elapsed – the time elapsed

__weakref__

list of weak references to the object (if defined)

loadState()[source]

Load the state from the class, this will make a copy

Returns

state - copy of the state that was saved

class pypdevs.statesavers.DeepCopyState(time_last, time_next, state, activity, my_input, elapsed)[source]

Class to save the state using the Python ‘deepcopy’ library

__init__(time_last, time_next, state, activity, my_input, elapsed)[source]

Constructor

Parameters
  • time_last – time_last to save

  • time_next – time_next to save

  • state – state to save

  • activity – the activity of the computation

  • my_input – the state input to save for memorisation

  • elapsed – the time elapsed

__weakref__

list of weak references to the object (if defined)

loadState()[source]

Load the state from the class, this will make a copy

Returns

state - copy of the state that was saved

class pypdevs.statesavers.MarshalState(time_last, time_next, state, activity, my_input, elapsed)[source]

Class to save the state using the Python ‘marshal’ library.

__init__(time_last, time_next, state, activity, my_input, elapsed)[source]

Constructor

Parameters
  • time_last – time_last to save

  • time_next – time_next to save

  • state – state to save

  • activity – the activity of the computation

  • my_input – the state input to save for memorisation

  • elapsed – the time elapsed

__weakref__

list of weak references to the object (if defined)

loadState()[source]

Load the state from the class, this will make a copy

Returns

state - copy of the state that was saved

class pypdevs.statesavers.PickleHighestState(time_last, time_next, state, activity, my_input, elapsed)[source]

Class to save the state using the Python ‘pickle’ library, with the option to use the highest available pickling protocol.

__init__(time_last, time_next, state, activity, my_input, elapsed)[source]

Constructor

Parameters
  • time_last – time_last to save

  • time_next – time_next to save

  • state – state to save

  • activity – the activity of the computation

  • my_input – the state input to save for memorisation

  • elapsed – the time elapsed

__weakref__

list of weak references to the object (if defined)

loadState()[source]

Load the state from the class, this will make a copy

Returns

state - copy of the state that was saved

class pypdevs.statesavers.PickleZeroState(time_last, time_next, state, activity, my_input, elapsed)[source]

Class to save the state using the Python ‘pickle’ library, with the option to use the pickling protocol 0.

__init__(time_last, time_next, state, activity, my_input, elapsed)[source]

Constructor

Parameters
  • time_last – time_last to save

  • time_next – time_next to save

  • state – state to save

  • activity – the activity of the computation

  • my_input – the state input to save for memorisation

  • elapsed – the time elapsed

__weakref__

list of weak references to the object (if defined)

loadState()[source]

Load the state from the class, this will make a copy

Returns

state - copy of the state that was saved