* feat(minor): Implement __getitem__ in Base Document
This addition allows for syntactic sugars like writing doc["name"] to
access document name. This addition is solely for the sake of code
simplicity. Since dictionaries in Python follow this standard, we can
write code that works for both Vanilla Dicts, Frappe Dicts & all
Document objects
* fix: Use getattr over get in getitem
For the sake of consistency and some level of sanity in the universe.
Co-authored-by: Ankush Menat <ankush@frappe.io>
* fix: Raise KeyError instead of AttributeError
why: shit breaks down. Specifically stuff in Jinja templates, attributes
that are conditional. Either this is acceptable or subscripting objects
cannot and probably should not be possible along with our pre-condiitons
* chore: Use hasattr instead of get default
Couldn't decide between a style commit or a chore
Co-authored-by: Ankush Menat <ankush@frappe.io>
(cherry picked from commit 583a7ef23923d362c85beeabe57703c2d5b12a65)
Co-authored-by: gavin <gavin18d@gmail.com>