diff options
author | Matthias Bussonnier <bussonniermatthias@gmail.com> | 2020-12-16 01:43:39 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-16 11:43:39 +0200 |
commit | b32d8b4f9bcd2e7d11240b6b9de0262cf8f5e09d (patch) | |
tree | 93929faaa993c0a8de14e46bf1991b1e7805c49a /Lib/logging/__init__.py | |
parent | 3f9fe23c05280dc5736c07bb0e968cdaf8c503d0 (diff) | |
download | cpython-b32d8b4f9bcd2e7d11240b6b9de0262cf8f5e09d.tar.gz cpython-b32d8b4f9bcd2e7d11240b6b9de0262cf8f5e09d.zip |
bpo-42644: Validate values in logging.disable() (#23786)
* bpo-42644: Validate values in logging.disable()
Technically make the value of manager a property that checks and convert
values assigned to it properly. This has the side effect of making
`logging.disable` also accept strings representing the various level of
warnings.
We want to validate the type of the disable attribute at assignment
time, as it is later compared to other levels when emitting warnings and
would generate a `TypeError: '>=' not supported between ....` in a
different part of the code base, which can make it difficult to track
down.
When assigned an incorrect value; it will raise a TypeError when the
wrong type, or ValueError if an invalid str.
Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
Diffstat (limited to 'Lib/logging/__init__.py')
-rw-r--r-- | Lib/logging/__init__.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index badfd654b16..50b7378cd63 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -1289,6 +1289,14 @@ class Manager(object): self.loggerClass = None self.logRecordFactory = None + @property + def disable(self): + return self._disable + + @disable.setter + def disable(self, value): + self._disable = _checkLevel(value) + def getLogger(self, name): """ Get a logger with the specified name (channel name), creating it |