You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{"payload":{"allShortcutsEnabled":false,"fileTree":{"":{"items":[{"name":"benchmarks","path":"benchmarks","contentType":"directory"},{"name":"branding","path":"branding","contentType":"directory"},{"name":"doc","path":"doc","contentType":"directory"},{"name":"numpy","path":"numpy","contentType":"directory"},{"name":"tools","path":"tools","contentType":"directory"},{"name":".gitattributes","path":".gitattributes","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".gitmodules","path":".gitmodules","contentType":"file"},{"name":".mailmap","path":".mailmap","contentType":"file"},{"name":".travis.yml","path":".travis.yml","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"INSTALL.rst.txt","path":"INSTALL.rst.txt","contentType":"file"},{"name":"LICENSE.txt","path":"LICENSE.txt","contentType":"file"},{"name":"MANIFEST.in","path":"MANIFEST.in","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"THANKS.txt","path":"THANKS.txt","contentType":"file"},{"name":"appveyor.yml","path":"appveyor.yml","contentType":"file"},{"name":"pavement.py","path":"pavement.py","contentType":"file"},{"name":"runtests.py","path":"runtests.py","contentType":"file"},{"name":"setup.py","path":"setup.py","contentType":"file"},{"name":"site.cfg.example","path":"site.cfg.example","contentType":"file"},{"name":"tox.ini","path":"tox.ini","contentType":"file"}],"totalCount":22}},"fileTreeProcessingTime":8.975693999999999,"foldersToFetch":[],"incompleteFileTree":false,"repo":{"id":5875299,"defaultBranch":"master","name":"numpy","ownerLogin":"ContinuumIO","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2012-09-19T17:13:57.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1158637?v=4","public":true,"private":false,"isOrgOwned":true},"codeLineWrapEnabled":false,"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"master","listCacheKey":"v0:1723595519.0","canEdit":false,"refType":"branch","currentOid":"a5d71d64a0d2e7a50562df80349219080172f254"},"path":"runtests.py","currentUser":null,"blob":{"rawLines":["#!/usr/bin/env python","\"\"\"","runtests.py [OPTIONS] [-- ARGS]","","Run tests, building the project first.","","Examples::",""," $ python runtests.py"," $ python runtests.py -s {SAMPLE_SUBMODULE}"," $ python runtests.py -t {SAMPLE_TEST}"," $ python runtests.py -t {SAMPLE_TEST} -- {SAMPLE_NOSE_ARGUMENTS}"," $ python runtests.py --ipython"," $ python runtests.py --python somescript.py"," $ python runtests.py --bench","","Run a debugger:",""," $ gdb --args python runtests.py [...other args...]","","Generate C code coverage listing under build/lcov/:","(requires http://ltp.sourceforge.net/coverage/lcov.php)",""," $ python runtests.py --gcov [...other args...]"," $ python runtests.py --lcov-html","","\"\"\"","from __future__ import division, print_function","","#","# This is a generic test runner script for projects using NumPy's test","# framework. Change the following values to adapt to your project:","#","","PROJECT_MODULE = \"numpy\"","PROJECT_ROOT_FILES = ['numpy', 'LICENSE.txt', 'setup.py']","SAMPLE_TEST = \"numpy/linalg/tests/test_linalg.py:test_byteorder_check\"","SAMPLE_SUBMODULE = \"linalg\"","SAMPLE_NOSE_ARGUMENTS = \"--pdb\"","","EXTRA_PATH = ['/usr/lib/ccache', '/usr/lib/f90cache',"," '/usr/local/lib/ccache', '/usr/local/lib/f90cache']","","# ---------------------------------------------------------------------","","","if __doc__ is None:"," __doc__ = \"Run without -OO if you want usage info\"","else:"," __doc__ = __doc__.format(**globals())","","","import sys","import os","","# In case we are run from the source directory, we don't want to import the","# project from there:","sys.path.pop(0)","","import shutil","import subprocess","import time","from argparse import ArgumentParser, REMAINDER","","ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__)))","","def main(argv):"," parser = ArgumentParser(usage=__doc__.lstrip())"," parser.add_argument(\"--verbose\", \"-v\", action=\"count\", default=1,"," help=\"more verbosity\")"," parser.add_argument(\"--no-build\", \"-n\", action=\"store_true\", default=False,"," help=\"do not build the project (use system installed version)\")"," parser.add_argument(\"--build-only\", \"-b\", action=\"store_true\", default=False,"," help=\"just build, do not run any tests\")"," parser.add_argument(\"--doctests\", action=\"store_true\", default=False,"," help=\"Run doctests in module\")"," parser.add_argument(\"--coverage\", action=\"store_true\", default=False,"," help=(\"report coverage of project code. HTML output goes \""," \"under build/coverage\"))"," parser.add_argument(\"--gcov\", action=\"store_true\", default=False,"," help=(\"enable C code coverage via gcov (requires GCC). \""," \"gcov output goes to build/**/*.gc*\"))"," parser.add_argument(\"--lcov-html\", action=\"store_true\", default=False,"," help=(\"produce HTML for C code coverage information \""," \"from a previous run with --gcov. \""," \"HTML output goes to build/lcov/\"))"," parser.add_argument(\"--mode\", \"-m\", default=\"fast\","," help=\"'fast', 'full', or something that could be \""," \"passed to nosetests -A [default: fast]\")"," parser.add_argument(\"--submodule\", \"-s\", default=None,"," help=\"Submodule whose tests to run (cluster, constants, ...)\")"," parser.add_argument(\"--pythonpath\", \"-p\", default=None,"," help=\"Paths to prepend to PYTHONPATH\")"," parser.add_argument(\"--tests\", \"-t\", action='append',"," help=\"Specify tests to run\")"," parser.add_argument(\"--python\", action=\"store_true\","," help=\"Start a Python shell with PYTHONPATH set\")"," parser.add_argument(\"--ipython\", \"-i\", action=\"store_true\","," help=\"Start IPython shell with PYTHONPATH set\")"," parser.add_argument(\"--shell\", action=\"store_true\","," help=\"Start Unix shell with PYTHONPATH set\")"," parser.add_argument(\"--debug\", \"-g\", action=\"store_true\","," help=\"Debug build\")"," parser.add_argument(\"--parallel\", \"-j\", type=int, default=0,"," help=\"Number of parallel jobs during build\")"," parser.add_argument(\"--show-build-log\", action=\"store_true\","," help=\"Show build output rather than using a log file\")"," parser.add_argument(\"--bench\", action=\"store_true\","," help=\"Run benchmark suite instead of test suite\")"," parser.add_argument(\"--bench-compare\", action=\"store\", metavar=\"COMMIT\","," help=(\"Compare benchmark results to COMMIT. \""," \"Note that you need to commit your changes first!\"))"," parser.add_argument(\"--raise-warnings\", default=None, type=str,"," choices=('develop', 'release'),"," help=\"if 'develop', warnings are treated as errors\")"," parser.add_argument(\"args\", metavar=\"ARGS\", default=[], nargs=REMAINDER,"," help=\"Arguments to pass to Nose, Python or shell\")"," args = parser.parse_args(argv)",""," if args.bench_compare:"," args.bench = True"," args.no_build = True # ASV does the building",""," if args.lcov_html:"," # generate C code coverage output"," lcov_generate()"," sys.exit(0)",""," if args.pythonpath:"," for p in reversed(args.pythonpath.split(os.pathsep)):"," sys.path.insert(0, p)",""," if args.gcov:"," gcov_reset_counters()",""," if args.debug and args.bench:"," print(\"*** Benchmarks should not be run against debug \""," \"version; remove -g flag ***\")",""," if not args.no_build:"," # we need the noarch path in case the package is pure python."," site_dir, site_dir_noarch = build_project(args)"," sys.path.insert(0, site_dir)"," sys.path.insert(0, site_dir_noarch)"," os.environ['PYTHONPATH'] = site_dir + ':' + site_dir_noarch",""," extra_argv = args.args[:]"," if extra_argv and extra_argv[0] == '--':"," extra_argv = extra_argv[1:]",""," if args.python:"," # Debugging issues with warnings is much easier if you can see them"," print(\"Enabling display of all warnings\")"," import warnings"," import types",""," warnings.filterwarnings(\"always\")"," if extra_argv:"," # Don't use subprocess, since we don't want to include the"," # current path in PYTHONPATH."," sys.argv = extra_argv"," with open(extra_argv[0], 'r') as f:"," script = f.read()"," sys.modules['__main__'] = types.ModuleType('__main__')"," ns = dict(__name__='__main__',"," __file__=extra_argv[0])"," exec_(script, ns)"," sys.exit(0)"," else:"," import code"," code.interact()"," sys.exit(0)",""," if args.ipython:"," # Debugging issues with warnings is much easier if you can see them"," print(\"Enabling display of all warnings and pre-importing numpy as np\")"," import warnings; warnings.filterwarnings(\"always\")"," import IPython"," import numpy as np"," IPython.embed(user_ns={\"np\": np})"," sys.exit(0)",""," if args.shell:"," shell = os.environ.get('SHELL', 'sh')"," print(\"Spawning a Unix shell...\")"," os.execv(shell, [shell] + extra_argv)"," sys.exit(1)",""," if args.coverage:"," dst_dir = os.path.join(ROOT_DIR, 'build', 'coverage')"," fn = os.path.join(dst_dir, 'coverage_html.js')"," if os.path.isdir(dst_dir) and os.path.isfile(fn):"," shutil.rmtree(dst_dir)"," extra_argv += ['--cover-html',"," '--cover-html-dir='+dst_dir]",""," if args.bench:"," # Run ASV"," items = extra_argv"," if args.tests:"," items += args.tests"," if args.submodule:"," items += [args.submodule]",""," bench_args = []"," for a in items:"," bench_args.extend(['--bench', a])",""," if not args.bench_compare:"," cmd = ['asv', 'run', '-n', '-e', '--python=same'] + bench_args"," os.chdir(os.path.join(ROOT_DIR, 'benchmarks'))"," os.execvp(cmd[0], cmd)"," sys.exit(1)"," else:"," commits = [x.strip() for x in args.bench_compare.split(',')]"," if len(commits) == 1:"," commit_a = commits[0]"," commit_b = 'HEAD'"," elif len(commits) == 2:"," commit_a, commit_b = commits"," else:"," p.error(\"Too many commits to compare benchmarks for\")",""," # Check for uncommitted files"," if commit_b == 'HEAD':"," r1 = subprocess.call(['git', 'diff-index', '--quiet',"," '--cached', 'HEAD'])"," r2 = subprocess.call(['git', 'diff-files', '--quiet'])"," if r1 != 0 or r2 != 0:"," print(\"*\"*80)"," print(\"WARNING: you have uncommitted changes --- \""," \"these will NOT be benchmarked!\")"," print(\"*\"*80)",""," # Fix commit ids (HEAD is local to current repo)"," p = subprocess.Popen(['git', 'rev-parse', commit_b],"," stdout=subprocess.PIPE)"," out, err = p.communicate()"," commit_b = out.strip()",""," p = subprocess.Popen(['git', 'rev-parse', commit_a],"," stdout=subprocess.PIPE)"," out, err = p.communicate()"," commit_a = out.strip()",""," cmd = ['asv', 'continuous', '-e', '-f', '1.05',"," commit_a, commit_b] + bench_args"," os.chdir(os.path.join(ROOT_DIR, 'benchmarks'))"," os.execvp(cmd[0], cmd)"," sys.exit(1)",""," test_dir = os.path.join(ROOT_DIR, 'build', 'test')",""," if args.build_only:"," sys.exit(0)"," elif args.submodule:"," modname = PROJECT_MODULE + '.' + args.submodule"," try:"," __import__(modname)"," test = sys.modules[modname].test"," except (ImportError, KeyError, AttributeError):"," print(\"Cannot run tests for %s\" % modname)"," sys.exit(2)"," elif args.tests:"," def fix_test_path(x):"," # fix up test path"," p = x.split(':')"," p[0] = os.path.relpath(os.path.abspath(p[0]),"," test_dir)"," return ':'.join(p)",""," tests = [fix_test_path(x) for x in args.tests]",""," def test(*a, **kw):"," extra_argv = kw.pop('extra_argv', ())"," extra_argv = extra_argv + tests[1:]"," kw['extra_argv'] = extra_argv"," from numpy.testing import Tester"," return Tester(tests[0]).test(*a, **kw)"," else:"," __import__(PROJECT_MODULE)"," test = sys.modules[PROJECT_MODULE].test",""," # Run the tests under build/test"," try:"," shutil.rmtree(test_dir)"," except OSError:"," pass"," try:"," os.makedirs(test_dir)"," except OSError:"," pass",""," cwd = os.getcwd()"," try:"," os.chdir(test_dir)"," result = test(args.mode,"," verbose=args.verbose,"," extra_argv=extra_argv,"," doctests=args.doctests,"," raise_warnings=args.raise_warnings,"," coverage=args.coverage)"," finally:"," os.chdir(cwd)",""," if result.wasSuccessful():"," sys.exit(0)"," else:"," sys.exit(1)","","","def build_project(args):"," \"\"\""," Build a dev version of the project.",""," Returns"," -------"," site_dir"," site-packages directory where it was installed",""," \"\"\"",""," root_ok = [os.path.exists(os.path.join(ROOT_DIR, fn))"," for fn in PROJECT_ROOT_FILES]"," if not all(root_ok):"," print(\"To build the project, run runtests.py in \""," \"git checkout or unpacked source\")"," sys.exit(1)",""," dst_dir = os.path.join(ROOT_DIR, 'build', 'testenv')",""," env = dict(os.environ)"," cmd = [sys.executable, 'setup.py']",""," # Always use ccache, if installed"," env['PATH'] = os.pathsep.join(EXTRA_PATH + env.get('PATH', '').split(os.pathsep))",""," if args.debug or args.gcov:"," # assume everyone uses gcc/gfortran"," env['OPT'] = '-O0 -ggdb'"," env['FOPT'] = '-O0 -ggdb'"," if args.gcov:"," import distutils.sysconfig"," cvars = distutils.sysconfig.get_config_vars()"," env['OPT'] = '-O0 -ggdb'"," env['FOPT'] = '-O0 -ggdb'"," env['CC'] = cvars['CC'] + ' --coverage'"," env['CXX'] = cvars['CXX'] + ' --coverage'"," env['F77'] = 'gfortran --coverage '"," env['F90'] = 'gfortran --coverage '"," env['LDSHARED'] = cvars['LDSHARED'] + ' --coverage'"," env['LDFLAGS'] = \" \".join(cvars['LDSHARED'].split()[1:]) + ' --coverage'",""," cmd += [\"build\"]"," if args.parallel \u003e 1:"," cmd += [\"-j\", str(args.parallel)]"," # Install; avoid producing eggs so numpy can be imported from dst_dir."," cmd += ['install', '--prefix=' + dst_dir,"," '--single-version-externally-managed',"," '--record=' + dst_dir + 'tmp_install_log.txt']",""," from distutils.sysconfig import get_python_lib"," site_dir = get_python_lib(prefix=dst_dir, plat_specific=True)"," site_dir_noarch = get_python_lib(prefix=dst_dir, plat_specific=False)"," # easy_install won't install to a path that Python by default cannot see"," # and isn't on the PYTHONPATH. Plus, it has to exist."," if not os.path.exists(site_dir):"," os.makedirs(site_dir)"," if not os.path.exists(site_dir_noarch):"," os.makedirs(site_dir_noarch)"," env['PYTHONPATH'] = site_dir + ':' + site_dir_noarch",""," log_filename = os.path.join(ROOT_DIR, 'build.log')",""," if args.show_build_log:"," ret = subprocess.call(cmd, env=env, cwd=ROOT_DIR)"," else:"," log_filename = os.path.join(ROOT_DIR, 'build.log')"," print(\"Building, see build.log...\")"," with open(log_filename, 'w') as log:"," p = subprocess.Popen(cmd, env=env, stdout=log, stderr=log,"," cwd=ROOT_DIR)",""," # Wait for it to finish, and print something to indicate the"," # process is alive, but only if the log file has grown (to"," # allow continuous integration environments kill a hanging"," # process accurately if it produces no output)"," last_blip = time.time()"," last_log_size = os.stat(log_filename).st_size"," while p.poll() is None:"," time.sleep(0.5)"," if time.time() - last_blip \u003e 60:"," log_size = os.stat(log_filename).st_size"," if log_size \u003e last_log_size:"," print(\" ... build in progress\")"," last_blip = time.time()"," last_log_size = log_size",""," ret = p.wait()",""," if ret == 0:"," print(\"Build OK\")"," else:"," if not args.show_build_log:"," with open(log_filename, 'r') as f:"," print(f.read())"," print(\"Build failed!\")"," sys.exit(1)",""," return site_dir, site_dir_noarch","","","#","# GCOV support","#","def gcov_reset_counters():"," print(\"Removing previous GCOV .gcda files...\")"," build_dir = os.path.join(ROOT_DIR, 'build')"," for dirpath, dirnames, filenames in os.walk(build_dir):"," for fn in filenames:"," if fn.endswith('.gcda') or fn.endswith('.da'):"," pth = os.path.join(dirpath, fn)"," os.unlink(pth)","","#","# LCOV support","#","","LCOV_OUTPUT_FILE = os.path.join(ROOT_DIR, 'build', 'lcov.out')","LCOV_HTML_DIR = os.path.join(ROOT_DIR, 'build', 'lcov')","","def lcov_generate():"," try: os.unlink(LCOV_OUTPUT_FILE)"," except OSError: pass"," try: shutil.rmtree(LCOV_HTML_DIR)"," except OSError: pass",""," print(\"Capturing lcov info...\")"," subprocess.call(['lcov', '-q', '-c',"," '-d', os.path.join(ROOT_DIR, 'build'),"," '-b', ROOT_DIR,"," '--output-file', LCOV_OUTPUT_FILE])",""," print(\"Generating lcov HTML output...\")"," ret = subprocess.call(['genhtml', '-q', LCOV_OUTPUT_FILE,"," '--output-directory', LCOV_HTML_DIR,"," '--legend', '--highlight'])"," if ret != 0:"," print(\"genhtml failed!\")"," else:"," print(\"HTML output generated under build/lcov/\")","","","#","# Python 3 support","#","","if sys.version_info[0] \u003e= 3:"," import builtins"," exec_ = getattr(builtins, \"exec\")","else:"," def exec_(code, globs=None, locs=None):"," \"\"\"Execute code in a namespace.\"\"\""," if globs is None:"," frame = sys._getframe(1)"," globs = frame.f_globals"," if locs is None:"," locs = frame.f_locals"," del frame"," elif locs is None:"," locs = globs"," exec(\"\"\"exec code in globs, locs\"\"\")","","if __name__ == \"__main__\":"," main(argv=sys.argv[1:])"],"stylingDirectives":null,"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/ContinuumIO/numpy/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"runtests.py","displayUrl":"https://github.com/ContinuumIO/numpy/blob/master/runtests.py?raw=true","headerInfo":{"blobSize":"16.5 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"9667813","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2FContinuumIO%2Fnumpy%2Fblob%2Fmaster%2Fruntests.py","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"475","truncatedSloc":"401"},"mode":"executable file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"Python","languageID":303,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/ContinuumIO/numpy/blob/master/runtests.py","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/ContinuumIO/numpy/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/ContinuumIO/numpy/raw/refs/heads/master/runtests.py","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"PROJECT_MODULE","kind":"constant","ident_start":878,"ident_end":892,"extent_start":878,"extent_end":902,"fully_qualified_name":"PROJECT_MODULE","ident_utf16":{"start":{"line_number":34,"utf16_col":0},"end":{"line_number":34,"utf16_col":14}},"extent_utf16":{"start":{"line_number":34,"utf16_col":0},"end":{"line_number":34,"utf16_col":24}}},{"name":"PROJECT_ROOT_FILES","kind":"constant","ident_start":903,"ident_end":921,"extent_start":903,"extent_end":960,"fully_qualified_name":"PROJECT_ROOT_FILES","ident_utf16":{"start":{"line_number":35,"utf16_col":0},"end":{"line_number":35,"utf16_col":18}},"extent_utf16":{"start":{"line_number":35,"utf16_col":0},"end":{"line_number":35,"utf16_col":57}}},{"name":"SAMPLE_TEST","kind":"constant","ident_start":961,"ident_end":972,"extent_start":961,"extent_end":1031,"fully_qualified_name":"SAMPLE_TEST","ident_utf16":{"start":{"line_number":36,"utf16_col":0},"end":{"line_number":36,"utf16_col":11}},"extent_utf16":{"start":{"line_number":36,"utf16_col":0},"end":{"line_number":36,"utf16_col":70}}},{"name":"SAMPLE_SUBMODULE","kind":"constant","ident_start":1032,"ident_end":1048,"extent_start":1032,"extent_end":1059,"fully_qualified_name":"SAMPLE_SUBMODULE","ident_utf16":{"start":{"line_number":37,"utf16_col":0},"end":{"line_number":37,"utf16_col":16}},"extent_utf16":{"start":{"line_number":37,"utf16_col":0},"end":{"line_number":37,"utf16_col":27}}},{"name":"SAMPLE_NOSE_ARGUMENTS","kind":"constant","ident_start":1060,"ident_end":1081,"extent_start":1060,"extent_end":1091,"fully_qualified_name":"SAMPLE_NOSE_ARGUMENTS","ident_utf16":{"start":{"line_number":38,"utf16_col":0},"end":{"line_number":38,"utf16_col":21}},"extent_utf16":{"start":{"line_number":38,"utf16_col":0},"end":{"line_number":38,"utf16_col":31}}},{"name":"EXTRA_PATH","kind":"constant","ident_start":1093,"ident_end":1103,"extent_start":1093,"extent_end":1212,"fully_qualified_name":"EXTRA_PATH","ident_utf16":{"start":{"line_number":40,"utf16_col":0},"end":{"line_number":40,"utf16_col":10}},"extent_utf16":{"start":{"line_number":40,"utf16_col":0},"end":{"line_number":41,"utf16_col":65}}},{"name":"ROOT_DIR","kind":"constant","ident_start":1642,"ident_end":1650,"extent_start":1642,"extent_end":1709,"fully_qualified_name":"ROOT_DIR","ident_utf16":{"start":{"line_number":64,"utf16_col":0},"end":{"line_number":64,"utf16_col":8}},"extent_utf16":{"start":{"line_number":64,"utf16_col":0},"end":{"line_number":64,"utf16_col":67}}},{"name":"main","kind":"function","ident_start":1715,"ident_end":1719,"extent_start":1711,"extent_end":11511,"fully_qualified_name":"main","ident_utf16":{"start":{"line_number":66,"utf16_col":4},"end":{"line_number":66,"utf16_col":8}},"extent_utf16":{"start":{"line_number":66,"utf16_col":0},"end":{"line_number":308,"utf16_col":19}}},{"name":"fix_test_path","kind":"function","ident_start":10254,"ident_end":10267,"extent_start":10250,"extent_end":10465,"fully_qualified_name":"fix_test_path","ident_utf16":{"start":{"line_number":264,"utf16_col":12},"end":{"line_number":264,"utf16_col":25}},"extent_utf16":{"start":{"line_number":264,"utf16_col":8},"end":{"line_number":269,"utf16_col":30}}},{"name":"test","kind":"function","ident_start":10535,"ident_end":10539,"extent_start":10531,"extent_end":10786,"fully_qualified_name":"test","ident_utf16":{"start":{"line_number":273,"utf16_col":12},"end":{"line_number":273,"utf16_col":16}},"extent_utf16":{"start":{"line_number":273,"utf16_col":8},"end":{"line_number":278,"utf16_col":50}}},{"name":"build_project","kind":"function","ident_start":11518,"ident_end":11531,"extent_start":11514,"extent_end":15138,"fully_qualified_name":"build_project","ident_utf16":{"start":{"line_number":311,"utf16_col":4},"end":{"line_number":311,"utf16_col":17}},"extent_utf16":{"start":{"line_number":311,"utf16_col":0},"end":{"line_number":409,"utf16_col":36}}},{"name":"gcov_reset_counters","kind":"function","ident_start":15164,"ident_end":15183,"extent_start":15160,"extent_end":15512,"fully_qualified_name":"gcov_reset_counters","ident_utf16":{"start":{"line_number":415,"utf16_col":4},"end":{"line_number":415,"utf16_col":23}},"extent_utf16":{"start":{"line_number":415,"utf16_col":0},"end":{"line_number":422,"utf16_col":30}}},{"name":"LCOV_OUTPUT_FILE","kind":"constant","ident_start":15534,"ident_end":15550,"extent_start":15534,"extent_end":15596,"fully_qualified_name":"LCOV_OUTPUT_FILE","ident_utf16":{"start":{"line_number":428,"utf16_col":0},"end":{"line_number":428,"utf16_col":16}},"extent_utf16":{"start":{"line_number":428,"utf16_col":0},"end":{"line_number":428,"utf16_col":62}}},{"name":"LCOV_HTML_DIR","kind":"constant","ident_start":15597,"ident_end":15610,"extent_start":15597,"extent_end":15652,"fully_qualified_name":"LCOV_HTML_DIR","ident_utf16":{"start":{"line_number":429,"utf16_col":0},"end":{"line_number":429,"utf16_col":13}},"extent_utf16":{"start":{"line_number":429,"utf16_col":0},"end":{"line_number":429,"utf16_col":55}}},{"name":"lcov_generate","kind":"function","ident_start":15658,"ident_end":15671,"extent_start":15654,"extent_end":16374,"fully_qualified_name":"lcov_generate","ident_utf16":{"start":{"line_number":431,"utf16_col":4},"end":{"line_number":431,"utf16_col":17}},"extent_utf16":{"start":{"line_number":431,"utf16_col":0},"end":{"line_number":450,"utf16_col":56}}},{"name":"exec_","kind":"function","ident_start":16502,"ident_end":16507,"extent_start":16498,"extent_end":16865,"fully_qualified_name":"exec_","ident_utf16":{"start":{"line_number":461,"utf16_col":8},"end":{"line_number":461,"utf16_col":13}},"extent_utf16":{"start":{"line_number":461,"utf16_col":4},"end":{"line_number":471,"utf16_col":44}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"modelsAccessAllowed":false,"modelsRepoIntegrationEnabled":false,"csrf_tokens":{"/ContinuumIO/numpy/branches":{"post":"tw5s9vmx3Bfw33vfuP5rQ0vpwihOtkxdk_CX9ESEFqaPy26lirnccfaEORsZzvYyTixIfk-o1JutTLipR4i5cA"},"/repos/preferences":{"post":"oOlHnuvo1TVYeDYQ8tNu2gV7k0JuCgaqC5qSkTBg51hXo3_GidbIAks8YRITuugXy4TXofLM7txXZDNkdcb6Pw"}}},"title":"numpy/runtests.py at master · ContinuumIO/numpy","appPayload":{"helpUrl":"https://docs.github.com","findFileWorkerPath":"/assets-cdn/worker/find-file-worker-7d7eb7c71814.js","findInFileWorkerPath":"/assets-cdn/worker/find-in-file-worker-1ae9fa256942.js","githubDevUrl":null,"enabled_features":{"code_nav_ui_events":false,"react_blob_overlay":false,"accessible_code_button":true,"github_models_repo_integration":false}}}