MCPcopy Index your code
hub / github.com/MongoEngine/mongoengine / _mark_as_changed

Method _mark_as_changed

mongoengine/base/document.py:521–546  ·  view source on GitHub ↗

Mark a key as explicitly changed by the user.

(self, key)

Source from the content-addressed store, hash-verified

519 return value
520
521 def _mark_as_changed(self, key):
522 """Mark a key as explicitly changed by the user."""
523 if not hasattr(self, "_changed_fields"):
524 return
525
526 if "." in key:
527 key, rest = key.split(".", 1)
528 key = self._db_field_map.get(key, key)
529 key = f"{key}.{rest}"
530 else:
531 key = self._db_field_map.get(key, key)
532
533 if key not in self._changed_fields:
534 levels, idx = key.split("."), 1
535 while idx <= len(levels):
536 if ".".join(levels[:idx]) in self._changed_fields:
537 break
538 idx += 1
539 else:
540 self._changed_fields.append(key)
541 # remove lower level changed fields
542 level = ".".join(levels[:idx]) + "."
543 remove = self._changed_fields.remove
544 for field in self._changed_fields[:]:
545 if field.startswith(level):
546 remove(field)
547
548 def _clear_changed_fields(self):
549 """Using _get_changed_fields iterate and remove any fields that

Callers 2

__setattr__Method · 0.95
__set__Method · 0.45

Calls 2

joinMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected