# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------------
# Copyright (c) Vispy Development Team. All Rights Reserved.
# Distributed under the (new) BSD License. See LICENSE.txt for more info.
# -----------------------------------------------------------------------------

from __future__ import print_function

import numpy as np
import sys
import os
import inspect
import gc

import functools

from distutils.version import LooseVersion

from ..util.check_environment import has_backend

skipif = ...

IS_TRAVIS_CI = ...
IS_GITHUB_ACTIONS = ...
IS_CI = ...

def SkipTest(*args, **kwargs): ...
def _safe_rep(obj, short=False): ...
def _safe_str(obj): ...
def _format_msg(msg, std_msg): ...
def nottest(func): ...
def assert_raises(exp, func, *args, **kwargs): ...
def assert_in(member, container, msg=None): ...
def assert_true(x, msg=None): ...
def assert_equal(x, y, msg=None): ...
def assert_not_equal(x, y, msg=None): ...
def assert_not_in(member, container, msg=None): ...
def assert_is(expr1, expr2, msg=None): ...

class raises(object):
    def __init__(self, exc): ...
    def __enter__(self): ...
    def __exit__(self, exc_typ, exc, tb): ...

###############################################################################
# GL stuff

def has_pyopengl(): ...
def requires_pyopengl(): ...
def requires_ssl(): ...

###############################################################################
# App stuff

def has_application(backend=None, has=..., capable=...): ...
def composed(*decs): ...
def garbage_collect(f): ...
def requires_application(backend=None, has=..., capable=..., force_gc=True): ...
def requires_img_lib(): ...
def has_ipython(version="3.0"): ...
def requires_ipython(version="3.0"): ...
def requires_numpydoc(): ...

###############################################################################
# Visuals stuff

def _has_scipy(min_version): ...
def requires_scipy(min_version="0.13"): ...
def _bad_glfw_decorate(app): ...
@nottest
def TestingCanvas(bgcolor="black", size=..., dpi=None, decorate=None, **kwargs): ...
@nottest
def save_testing_image(image, location): ...
@nottest
def run_tests_if_main(): ...
def run_tests_in_object(ob): ...
