a b^y @ s d dl Z d dlZd dlZd dlmZ d dlZddlmZmZ ddlm Z ddl mZ ddlm Z e Zi Zedd Zd d ZG dd d eZdS ) N)contextmanager ) RepositoryRepositoryError)PyGIWarning)get_introspection_module)load_overridesc c s^ t | }dV |rdS | dv r$dS t| dur6dS t | }tjd| |d t|d dS )aO A context manager which tries to give helpful warnings about missing gi.require_version() which could potentially break code if only an older version than expected is installed or a new version gets introduced. :: with _check_require_version("Gtk", stacklevel): load_namespace_and_overrides() N)ZGLibZGObjectZGioz%(namespace)s was imported without specifying a version first. Use gi.require_version('%(namespace)s', '%(version)s') before import to ensure that the right version gets loaded.) namespaceversion stacklevel) repository is_registeredgiZget_required_versionZget_versionwarningswarnr )r r Z was_loadedr r 1/usr/lib64/python3.9/site-packages/gi/importer.py_check_require_version* s r c C sZ t jdd }|dkr"| rdS dS |dkr6| r2dS dS |dkrJ| rFdS dS | rRdS dS dS ) a2 Returns the stacklevel value for warnings.warn() for when the warning gets emitted by an imported module, but the warning should point at the code doing the import. Pass import_hook=True if the warning gets generated by an import hook (warn() gets called in load_module(), see PEP302) N ) r )r r )r r )sysversion_info)import_hookZ py_versionr r r get_import_stacklevelQ s r c @ s&