mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-27 02:24:18 +00:00
8360f70024
- Zap various occurrences of Python2 in docs and scripts - Remove six from netlib, and some other places where obvious project-wide search and replace works.
33 lines
724 B
Python
33 lines
724 B
Python
import abc
|
|
|
|
|
|
class Serializable(metaclass=abc.ABCMeta):
|
|
"""
|
|
Abstract Base Class that defines an API to save an object's state and restore it later on.
|
|
"""
|
|
|
|
@classmethod
|
|
@abc.abstractmethod
|
|
def from_state(cls, state):
|
|
"""
|
|
Create a new object from the given state.
|
|
"""
|
|
raise NotImplementedError()
|
|
|
|
@abc.abstractmethod
|
|
def get_state(self):
|
|
"""
|
|
Retrieve object state.
|
|
"""
|
|
raise NotImplementedError()
|
|
|
|
@abc.abstractmethod
|
|
def set_state(self, state):
|
|
"""
|
|
Set object state to the given state.
|
|
"""
|
|
raise NotImplementedError()
|
|
|
|
def copy(self):
|
|
return self.from_state(self.get_state())
|