def encode(doc): """Encodes a document. :param doc: Document being encoded. :type doc: object :returns: An encoded document representation. :rtype: unicode """ # Encode as a dictionary. as_dict = dict_encoder.encode(doc) # Format dictionary keys. as_dict = convert.dict_keys(as_dict, convert.str_to_camel_case) # Encode to an etree xml element. tag = _get_xml_tag(doc) xml = _encode_complex(ET.Element(tag), as_dict) return ET.tostring(xml, _UNICODE)
def encode(doc): """Encodes a document. :param doc: Document being encoded. :type doc: object :returns: An encoded document representation. :rtype: unicode """ # Encode as a dictionary. as_dict = dict_encoder.encode(doc) # Format dictionary keys. as_dict = convert.dict_keys(as_dict, convert.str_to_camel_case) # Encode to an etree xml element. tag = _get_xml_tag(doc) xml = _encode_complex(ET.Element(tag), as_dict) return ET.tostring(xml, _UNICODE)
def decode(as_json): """Decodes a document from a UTF-8 encoded json text blob. :param as_json: Document json representation. :type as_json: unicode | str :returns: A pyesdoc document instance. :rtype: object """ # Convert to unicode. as_json = convert.str_to_unicode(as_json) # Convert to dictionary. as_dict = convert.json_to_dict(as_json) # Format dictionary keys. as_dict = convert.dict_keys(as_dict, convert.str_to_underscore_case) # Decode from dictionary. return dict_decoder.decode(as_dict)
def decode(as_dict): """Decodes a document from a dictionary. :param dict as_dict: A document in dictionary format. :returns: A pyesdoc document instance. :rtype: object """ # Format keys. as_dict = convert.dict_keys(as_dict, convert.str_to_underscore_case) # Get document type key. try: doc_type_key = as_dict['ontology_type_key'] except KeyError: raise KeyError('ontology_type_key is unspecified and therefore the document cannot be decoded.') # Get document type. doc_type = ontologies.get_type_from_key(doc_type_key) if doc_type is None: raise ValueError('ontology_type_key cannot be mapped to a supported ontology type.') return _decode(as_dict, doc_type, False)
def decode(as_dict): """Decodes a document from a dictionary. :param dict as_dict: A document in dictionary format. :returns: A pyesdoc document instance. :rtype: object """ # Format keys. as_dict = convert.dict_keys(as_dict, convert.str_to_underscore_case) # Get document type key. try: doc_type_key = as_dict['meta']['type'] except KeyError: raise KeyError('Document pyesdoc type key is invalid.') # Get document type. doc_type = ontologies.get_type_from_key(doc_type_key) if doc_type is None: raise ValueError('Document pyesdoc type key is invalid.') return _decode(as_dict, doc_type, False)
def decode(as_dict): """Decodes a document from a dictionary. :param dict as_dict: A document in dictionary format. :returns: A pyesdoc document instance. :rtype: object """ # Format keys. as_dict = convert.dict_keys(as_dict, convert.str_to_underscore_case) # Get document type key. try: doc_type_key = as_dict['meta']['type'] except KeyError: raise KeyError('Document pyesdoc type key is invalid.') # Get document type. doc_type = ontologies.get_type_from_key(doc_type_key) if doc_type is None: raise ValueError('Document pyesdoc type key is invalid.') return _decode(as_dict, doc_type, False)