diff options
| author | arcadia-devtools <[email protected]> | 2022-06-01 16:22:57 +0300 |
|---|---|---|
| committer | arcadia-devtools <[email protected]> | 2022-06-01 16:22:57 +0300 |
| commit | 63a84accbe6624a8f7258f16c3568b903845ce9a (patch) | |
| tree | 660e04171958103edb06b36ab2c1f0a1bc5436e3 /contrib/python/traitlets/py3 | |
| parent | 3078efc0435f57bcd781b58118a6b82578d11037 (diff) | |
intermediate changes
ref:33582b2639153838c696b8bf2b6926f34f6d34e9
Diffstat (limited to 'contrib/python/traitlets/py3')
6 files changed, 41 insertions, 18 deletions
diff --git a/contrib/python/traitlets/py3/.dist-info/METADATA b/contrib/python/traitlets/py3/.dist-info/METADATA index 26ae3d62b4a..6429e017cc5 100644 --- a/contrib/python/traitlets/py3/.dist-info/METADATA +++ b/contrib/python/traitlets/py3/.dist-info/METADATA @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: traitlets -Version: 5.2.1.post0 +Version: 5.2.2.post1 Project-URL: Homepage, https://github.com/ipython/traitlets Author-email: IPython Development Team <[email protected]> License: # Licensing terms diff --git a/contrib/python/traitlets/py3/traitlets/_version.py b/contrib/python/traitlets/py3/traitlets/_version.py index c671fe81ad6..f75993c7a65 100644 --- a/contrib/python/traitlets/py3/traitlets/_version.py +++ b/contrib/python/traitlets/py3/traitlets/_version.py @@ -1,5 +1,5 @@ -version_info = (5, 2, 1, "post0") -__version__ = "5.2.1.post0" +version_info = (5, 2, 2) +__version__ = "5.2.2" # unlike `.dev`, alpha, beta and rc _must not_ have dots, # or the wheel and tgz won't look to pip like the same version. diff --git a/contrib/python/traitlets/py3/traitlets/config/application.py b/contrib/python/traitlets/py3/traitlets/config/application.py index e5a86867423..efff262b718 100644 --- a/contrib/python/traitlets/py3/traitlets/config/application.py +++ b/contrib/python/traitlets/py3/traitlets/config/application.py @@ -92,6 +92,9 @@ else: ) +IS_PYTHONW = sys.executable and sys.executable.endswith("pythonw.exe") + + def catch_config_error(method): """Method decorator for catching invalid config (Trait/ArgumentErrors) during init. @@ -252,11 +255,12 @@ class Application(SingletonConfigurable): "disable_existing_loggers": False, } - if sys.executable and sys.executable.endswith("pythonw.exe"): + if IS_PYTHONW: # disable logging # (this should really go to a file, but file-logging is only # hooked up in parallel applications) - del config["handlers"]["loggers"] + del config["handlers"] + del config["loggers"] return config diff --git a/contrib/python/traitlets/py3/traitlets/config/tests/test_application.py b/contrib/python/traitlets/py3/traitlets/config/tests/test_application.py index db743f9f2e7..0f1cbd578f3 100644 --- a/contrib/python/traitlets/py3/traitlets/config/tests/test_application.py +++ b/contrib/python/traitlets/py3/traitlets/config/tests/test_application.py @@ -805,6 +805,19 @@ def test_logging_config(tmp_path, capsys): assert capsys.readouterr().err == "[Application] WARNING | warn\n" +def test_get_default_logging_config_pythonw(monkeypatch): + """Ensure logging is correctly disabled for pythonw usage.""" + monkeypatch.setattr("traitlets.config.application.IS_PYTHONW", True) + config = Application().get_default_logging_config() + assert "handlers" not in config + assert "loggers" not in config + + monkeypatch.setattr("traitlets.config.application.IS_PYTHONW", False) + config = Application().get_default_logging_config() + assert "handlers" in config + assert "loggers" in config + + @pytest.fixture def caplogconfig(monkeypatch): """Capture logging config events for DictConfigurator objects. @@ -827,6 +840,7 @@ def caplogconfig(monkeypatch): return calls [email protected](sys.implementation.name == "pypy", reason="Test does not work on pypy") def test_logging_teardown_on_error(capsys, caplogconfig): """Ensure we don't try to open logs in order to close them (See #722). diff --git a/contrib/python/traitlets/py3/traitlets/tests/test_traitlets.py b/contrib/python/traitlets/py3/traitlets/tests/test_traitlets.py index 4b145afd029..db9250d3d2b 100644 --- a/contrib/python/traitlets/py3/traitlets/tests/test_traitlets.py +++ b/contrib/python/traitlets/py3/traitlets/tests/test_traitlets.py @@ -56,6 +56,7 @@ from traitlets import ( link, observe, observe_compat, + traitlets, validate, ) from traitlets.utils import cast_unicode @@ -3133,3 +3134,17 @@ def test_object_from_string(s, expected): ) def test_tcp_from_string(s, expected): _from_string_test(TCPAddress, s, expected) + + +def test_all_attribute(): + """Verify all trait types are added to `traitlets.__all__`""" + names = dir(traitlets) + for name in names: + value = getattr(traitlets, name) + if not name.startswith("_") and isinstance(value, type) and issubclass(value, TraitType): + if name not in traitlets.__all__: + raise ValueError(f"{name} not in __all__") + + for name in traitlets.__all__: + if name not in names: + raise ValueError(f"{name} should be removed from __all__") diff --git a/contrib/python/traitlets/py3/traitlets/traitlets.py b/contrib/python/traitlets/py3/traitlets/traitlets.py index 0927222163b..0eae5d19595 100644 --- a/contrib/python/traitlets/py3/traitlets/traitlets.py +++ b/contrib/python/traitlets/py3/traitlets/traitlets.py @@ -74,6 +74,7 @@ __all__ = [ "CComplex", "CFloat", "CInt", + "CLong", "CRegExp", "CUnicode", "Callable", @@ -95,7 +96,9 @@ __all__ = [ "HasTraits", "Instance", "Int", + "Integer", "List", + "Long", "MetaHasDescriptors", "MetaHasTraits", "ObjectName", @@ -3455,16 +3458,3 @@ class Callable(TraitType): return value else: self.error(obj, value) - - -def _add_all(): - """add all trait types to `__all__` - - do in a function to avoid iterating through globals while defining local variables - """ - for _name, _value in globals().items(): - if not _name.startswith("_") and isinstance(_value, type) and issubclass(_value, TraitType): - __all__.append(_name) - - -_add_all() |
