Exemplo n.º 1
0
def _set_doc_offset(offset, document, value):
    """
    :type offset: list[str]
    :type document: dict

    >>> doc = {'a': 4}
    >>> _set_doc_offset(['a'], doc, 5)
    >>> doc
    {'a': 5}
    >>> doc = {'a': {'b': 4}}
    >>> _set_doc_offset(['a', 'b'], doc, 'c')
    >>> doc
    {'a': {'b': 'c'}}
    """
    read_offset = offset[:-1]
    sub_doc = get_doc_offset(read_offset, document)
    sub_doc[offset[-1]] = value
Exemplo n.º 2
0
 def safe_get_doc_offset(offset, document):
     try:
         return get_doc_offset(offset, document)
     except KeyError:
         return None
Exemplo n.º 3
0
    def extract(self, document):
        v = get_doc_offset(self.offset, document)
        if v is None:
            return None

        return self.from_string(v)
Exemplo n.º 4
0
 def safe_get_doc_offset(offset, document):
     try:
         return get_doc_offset(offset, document)
     except KeyError:
         return None
Exemplo n.º 5
0
 def extract(self, document):
     return get_doc_offset(self.offset, document)
Exemplo n.º 6
0
    def extract(self, document):
        v = get_doc_offset(self.offset, document)
        if v is None:
            return None

        return self.from_string(v)
Exemplo n.º 7
0
 def _unsafe_get_field(self, field):
     if isinstance(field, list):
         return get_doc_offset(field, self._doc)
     else:
         return field.extract(self._doc)