""" pandas._config is considered explicitly upstream of everything else in pandas, should have no intra-pandas dependencies. importing `dates` and `display` ensures that keys needed by _libs are initialized. """ __all__ = [ "config", "detect_console_encoding", "get_option", "set_option", "reset_option", "describe_option", "option_context", "options", "using_copy_on_write", "warn_copy_on_write", ] from pandas._config import config from pandas._config import dates # pyright: ignore[reportUnusedImport] # noqa: F401 from pandas._config.config import ( _global_config, describe_option, get_option, option_context, options, reset_option, set_option, ) from pandas._config.display import detect_console_encoding def using_copy_on_write() -> bool: _mode_options = _global_config["mode"] return ( _mode_options["copy_on_write"] is True and _mode_options["data_manager"] == "block" ) def warn_copy_on_write() -> bool: _mode_options = _global_config["mode"] return ( _mode_options["copy_on_write"] == "warn" and _mode_options["data_manager"] == "block" ) def using_nullable_dtypes() -> bool: _mode_options = _global_config["mode"] return _mode_options["nullable_dtypes"] def using_pyarrow_string_dtype() -> bool: _mode_options = _global_config["future"] return _mode_options["infer_string"]