class CnfListSerializationMixin(BaseCnfList):
"""Add serialization support to BaseCnfList."""
+ def to_cnf_string(self, renumber=True):
+ """
+ Generate a string representation of this list in the cnfvar format.
+
+ :param bool renumber: whether to fix the lineno of the cnfvars
+ :returns: the CNF string
+ :rtype: str
+ """
+ if renumber:
+ self.renumber()
+ return str(self)
+
def to_cnf_file(self, path, renumber=True, encoding=ENCODING):
"""
Dump a string representation of this list in the cnfvar format to a file.
return CnfList._from_cnf_structure(cnf_obj)
@classmethod
- def from_json_string(cls, data):
- """
- Create a list from a json string.
-
- :param str data: string to generate the list from
- :returns: a list of cnfvars
- :rtype: :py:class:`CnfList`
- """
- cnf_obj = json.loads(data)
- return CnfList._from_cnf_structure(cnf_obj)
-
- @classmethod
def from_cnf_file(cls, path, encoding=ENCODING):
"""
Create a list from a cnfvar file.
return CnfList.from_cnf_string(fp.read())
@classmethod
+ def from_json_string(cls, data):
+ """
+ Create a list from a json string.
+
+ :param str data: string to generate the list from
+ :returns: a list of cnfvars
+ :rtype: :py:class:`CnfList`
+ """
+ cnf_obj = json.loads(data)
+ return CnfList._from_cnf_structure(cnf_obj)
+
+ @classmethod
def from_json_file(cls, path):
"""
Create a list from a json file.
class CnfSerializationMixin(BaseCnf):
"""Add serialization support to BaseCnf."""
- def to_json_string(self, renumber=True):
+ def to_cnf_string(self, renumber=True):
"""
- Convert this instance to a JSON string.
+ Generate a string representation of this list in the cnfvar format.
- :param bool renumber: whether to fix the lineno of the cnfvars
- :returns: the JSON string
+ :param bool renumber: whether to fix the lineno of this cnfvar and its children
+ :returns: the CNF string
:rtype: str
"""
- return CnfList([self]).to_json_string(renumber=renumber)
+ return CnfList([self]).to_cnf_string(renumber=renumber)
def to_cnf_file(self, path, renumber=True, encoding=ENCODING):
"""
"""
CnfList([self]).to_cnf_file(path, renumber=renumber, encoding=encoding)
+ def to_json_string(self, renumber=True):
+ """
+ Convert this instance to a JSON string.
+
+ :param bool renumber: whether to fix the lineno of the cnfvars
+ :returns: the JSON string
+ :rtype: str
+ """
+ return CnfList([self]).to_json_string(renumber=renumber)
+
def to_json_file(self, path, renumber=True):
"""
Dump a JSON representation of this instance to a file.
return CnfListSerializationMixin.from_cnf_string(data).single()
@classmethod
- def from_json_string(cls, data):
+ def from_cnf_file(cls, path, encoding=ENCODING):
"""
- Create an instance of this class from a JSON string.
+ Create an instance of this class from a cnfvar file.
- :param str data: JSON string to convert
+ :param str path: path to the file to read
+ :param str encoding: encoding to use to read the file
:returns: the cnf instance created
:rtype: :py:class:`Cnf`
"""
- return CnfListSerializationMixin.from_json_string(data).single()
+ return CnfListSerializationMixin.from_cnf_file(path, encoding=encoding).single()
@classmethod
- def from_cnf_file(cls, path, encoding=ENCODING):
+ def from_json_string(cls, data):
"""
- Create an instance of this class from a cnfvar file.
+ Create an instance of this class from a JSON string.
- :param str path: path to the file to read
- :param str encoding: encoding to use to read the file
+ :param str data: JSON string to convert
:returns: the cnf instance created
:rtype: :py:class:`Cnf`
"""
- return CnfListSerializationMixin.from_cnf_file(path, encoding=encoding).single()
+ cnf_obj = json.loads(data)
+ return CnfList._from_cnf_structure(cnf_obj)
@classmethod
def from_json_file(cls, path):