| import sys |
| |
| __all__ = [ |
| "warn", |
| "warn_explicit", |
| "showwarning", |
| "formatwarning", |
| "filterwarnings", |
| "simplefilter", |
| "resetwarnings", |
| "catch_warnings", |
| "deprecated", |
| ] |
| |
| from _py_warnings import ( |
| WarningMessage, |
| _DEPRECATED_MSG, |
| _OptionError, |
| _add_filter, |
| _deprecated, |
| _filters_mutated, |
| _filters_mutated_lock_held, |
| _filters_version, |
| _formatwarning_orig, |
| _formatwarnmsg, |
| _formatwarnmsg_impl, |
| _get_context, |
| _get_filters, |
| _getaction, |
| _getcategory, |
| _is_filename_to_skip, |
| _is_internal_filename, |
| _is_internal_frame, |
| _lock, |
| _new_context, |
| _next_external_frame, |
| _processoptions, |
| _set_context, |
| _set_module, |
| _setoption, |
| _setup_defaults, |
| _showwarning_orig, |
| _showwarnmsg, |
| _showwarnmsg_impl, |
| _use_context, |
| _warn_unawaited_coroutine, |
| _warnings_context, |
| catch_warnings, |
| defaultaction, |
| deprecated, |
| filters, |
| filterwarnings, |
| formatwarning, |
| onceregistry, |
| resetwarnings, |
| showwarning, |
| simplefilter, |
| warn, |
| warn_explicit, |
| ) |
| |
| try: |
| # Try to use the C extension, this will replace some parts of the |
| # _py_warnings implementation imported above. |
| from _warnings import ( |
| _acquire_lock, |
| _defaultaction as defaultaction, |
| _filters_mutated_lock_held, |
| _onceregistry as onceregistry, |
| _release_lock, |
| _warnings_context, |
| filters, |
| warn, |
| warn_explicit, |
| ) |
| |
| _warnings_defaults = True |
| |
| class _Lock: |
| def __enter__(self): |
| _acquire_lock() |
| return self |
| |
| def __exit__(self, *args): |
| _release_lock() |
| |
| _lock = _Lock() |
| except ImportError: |
| _warnings_defaults = False |
| |
| |
| # Module initialization |
| _set_module(sys.modules[__name__]) |
| _processoptions(sys.warnoptions) |
| if not _warnings_defaults: |
| _setup_defaults() |
| |
| del _warnings_defaults |
| del _setup_defaults |