Fix behavior for sub table declaration with intermediate tables
GitOrigin-RevId: 776c96085a2afb36f64d3717cce1d1843be3a171
Change-Id: Ibb1f3094ad0664279f7eb5b762e72423e34768fd
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d57ce77..f40da72 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@
- Fixed copy of TOML documents.
- Fixed behavior on PyPy3.
- Fixed date, datetime and time handling on Python 3.8.
+- Fixed behavior for sub table declaration with intermediate tables.
## [0.5.2] - 2018-11-09
diff --git a/tomlkit/container.py b/tomlkit/container.py
index bccba1b..2a9974e 100644
--- a/tomlkit/container.py
+++ b/tomlkit/container.py
@@ -492,6 +492,15 @@
for k, v in other.items():
self[k] = v
+ def get(self, key, default=None): # type: (Any, Optional[Any]) -> Any
+ if not isinstance(key, Key):
+ key = Key(key)
+
+ if key not in self:
+ return default
+
+ return self[key]
+
def __contains__(self, key): # type: (Union[Key, str]) -> bool
if not isinstance(key, Key):
key = Key(key)
diff --git a/tomlkit/items.py b/tomlkit/items.py
index 2b77057..53a20f2 100644
--- a/tomlkit/items.py
+++ b/tomlkit/items.py
@@ -968,6 +968,9 @@
for k, v in other.items():
self[k] = v
+ def get(self, key, default=None): # type: (Any, Optional[Any]) -> Any
+ return self._value.get(key, default)
+
def __contains__(self, key): # type: (Union[Key, str]) -> bool
return key in self._value
@@ -1120,6 +1123,9 @@
for k, v in other.items():
self[k] = v
+ def get(self, key, default=None): # type: (Any, Optional[Any]) -> Any
+ return self._value.get(key, default)
+
def __contains__(self, key): # type: (Union[Key, str]) -> bool
return key in self._value