3 <_ @ s d dl mZ d dlZd dlZd dlZd dlmZ d dlZddlm Z m Z ddlmZ ddlm Z ddlmZ e j Zi Zed d Zdd ZG d d deZdS ) )absolute_importN)contextmanager ) RepositoryRepositoryError)PyGIWarning)get_introspection_module)load_overridesc c s^ t j| }dV |rdS | dkr$dS tj| dk r6dS t j| }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() NGLibGObjectGioz%(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)r r r ) repository is_registeredgiZget_required_versionZget_versionwarningswarnr )r r Z was_loadedr r /usr/lib64/python3.6/importer.py_check_require_version+ s r c C sZ t jdd }|dkr"| rdS dS |dkr6| r2dS dS |d krJ| 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 r )sysversion_info)import_hook py_versionr r r get_import_stacklevelR s r! c @ s&