{"action":"created","comment":{"url":"https://api.github.com/repos/libdynd/dynd-python/pulls/comments/64664471","id":64664471,"diff_hunk":"@@ -1,155 +1,29 @@\n-import os\n-if os.name == 'nt':\n-    # Manually load dlls before loading the extension modules.\n-    # This is handled via rpaths on Unix based systems.\n-    import ctypes\n-    import os.path\n-    def load_dynd_dll(rootpath):\n-        try:\n-            ctypes.cdll.LoadLibrary(os.path.join(rootpath, 'libdyndt.dll'))\n-            ctypes.cdll.LoadLibrary(os.path.join(rootpath, 'libdynd.dll'))\n-            return True;\n-        except OSError:\n-            return False;\n-    # If libdynd.dll has been placed in the dynd-python installation, use that\n-    loaded = load_dynd_dll(os.path.dirname(__file__))\n-    # Next, try the default DLL search path\n-    loaded = loaded or load_dynd_dll('')\n-    if not loaded:\n-        # Try to load it from the Program Files directories where libdynd\n-        # installs by default. This matches the search path for libdynd used\n-        # in the CMake build for dynd-python.\n-        import sys\n-        is_64_bit = sys.maxsize > 2**32\n-        processor_arch = os.environ.get('PROCESSOR_ARCHITECTURE')\n-        err_str = ('Fallback search for libdynd.dll failed because the \"{}\" '\n-                   'environment variable was not set. Please make sure that '\n-                   'either libdynd is on the DLL search path or that it is '\n-                   'in the default install directory and the runtime '\n-                   'environment has the necessary system-specified '\n-                   'environment variables properly set. On 64 bit Windows '\n-                   'with 64 bit Python the needed variables are '\n-                   '\"PROCESSOR_ARCHITECTURE\" and \"ProgramFiles\". On 64 bit '\n-                   'Windows with 32 bit Python the needed variables are '\n-                   '\"PROCESSOR_ARCHITECTURE\" and \"ProgramFiles(x86)\". On 32 '\n-                   'bit Windows the needed variables are '\n-                   '\"PROCESSOR_ARCHITECTURE\" and \"ProgramFiles\".')\n-        if processor_arch is None:\n-            raise RuntimeError(err_str.format('PROCESSOR_ARCHITECTURE'))\n-        is_32_on_64_bit = (is_64_bit and not processor_arch.endswith('64'))\n-        if not is_32_on_64_bit:\n-            prog_files = os.environ.get('ProgramFiles')\n-            if prog_files is None:\n-                raise RuntimeError(err_str.format('ProgramFiles'))\n-        else:\n-            prog_files = os.environ.get('ProgramFiles(x86)')\n-            if prog_files is None:\n-                raise RuntimeError(err_str.format('ProgramFiles(x86)'))\n-        dynd_lib_dir = os.path.join(prog_files, 'libdynd', 'lib')\n-        if os.path.isdir(dynd_lib_dir):\n-            loaded = load_dynd_dll(dynd_lib_dir)\n-            if not loaded:\n-                raise ctypes.WinError(126, 'Could not load libdynd.dll '\n-                                           'or libdyndt.dll')\n+# DyND is a namespace package with the components dynd.ndt and dynd.nd.\n+try:\n+    import pkg_resources\n+    pkg_resources.declare_namespace(__name__)\n+except ImportError:\n+    import pkgutil\n+    __path__ = pkgutil.extend_path(__path__, __name__)\n \n-from .config import _dynd_version_string as __libdynd_version__, \\\n-                _dynd_python_version_string as __version__, \\\n-                _dynd_git_sha1 as __libdynd_git_sha1__, \\\n-                _dynd_python_git_sha1 as __git_sha1__\n+try: # Only the import from dynd.ndt is expected to succeed.\n+    from .common import *\n+except ImportError:\n+    pass\n \n-def annotate(*args, **kwds):\n-    def wrap(func):\n-        func.__annotations__ = {}\n+__all__ = [\n+    '__libdynd_version__', '__version__', '__libdynd_git_sha1__', ' __git_sha1__',\n+    'annotate', 'test', 'load'\n+]\n \n-        try:\n-            func.__annotations__['return'] = args[0]\n-        except IndexError:\n-            pass\n \n-        if len(args[1:]) > func.__code__.co_argcount:\n-            raise TypeError('{0} takes {1} positional arguments but {2} positional annotations were given'.format(func,\n-                func.__code__.co_argcount, len(args) - 1))\n+try: del common\n+except: pass\n \n-        for key, value in zip(func.__code__.co_varnames, args[1:]):\n-            func.__annotations__[key] = value\n+try: del pkgutil\n+except: pass\n \n-        for key, value in kwds.items():\n-            if key not in func.__code__.co_varnames:\n-                raise TypeError(\"{0} got an unexpected keyword annotation '{1}'\".format(func, key))\n-            if key in func.__annotations__:\n-                raise TypeError(\"{0} got multiple values for annotation '{1}'\".format(func, key))\n+try: del pkg_resources\n+except: pass\n \n-            func.__annotations__[key] = value\n \n-        return func\n-\n-    return wrap\n-\n-def test(verbosity=1, xunitfile=None, exit=False):\n-    \"\"\"\n-    Runs the full DyND test suite, outputing\n-    the results of the tests to  sys.stdout.\n-    Parameters\n-    ----------\n-    verbosity : int, optional\n-        Value 0 prints very little, 1 prints a little bit,\n-        and 2 prints the test names while testing.\n-    xunitfile : string, optional\n-        If provided, writes the test results to an xunit\n-        style xml file. This is useful for running the tests\n-        in a CI server such as Jenkins.\n-    exit : bool, optional\n-        If True, the function will call sys.exit with an\n-        error code after the tests are finished.\n-    \"\"\"\n-    import os, sys, subprocess\n-    import numpy\n-    from .ndt.test import get_tst_module as ndt_test\n-    from .nd.test import get_tst_module as nd_test\n-    import unittest\n-\n-    print('Running unit tests for the DyND Python bindings')\n-    print('Python version: %s' % sys.version)\n-    print('Python prefix: %s' % sys.prefix)\n-    print('DyND-Python module: %s' % os.path.dirname(__file__))\n-    print('DyND-Python version: %s' % __version__)\n-    print('DyND-Python git sha1: %s' % __git_sha1__)\n-    print('LibDyND version: %s' % __libdynd_version__)\n-    print('LibDyND git sha1: %s' % __libdynd_git_sha1__)\n-    print('NumPy version: %s' % numpy.__version__)\n-    sys.stdout.flush()\n-    if xunitfile is None:\n-        # Run all the tests\n-        all_suites = []\n-        for fn in os.listdir(os.path.join(os.path.dirname(__file__), 'ndt/test')):\n-            if fn.startswith('test_') and fn.endswith('.py'):\n-                tst = ndt_test(fn[:-3])\n-                all_suites.append(unittest.defaultTestLoader.loadTestsFromModule(tst))\n-        for fn in os.listdir(os.path.join(os.path.dirname(__file__), 'nd/test')):\n-            if fn.startswith('test_') and fn.endswith('.py'):\n-                tst = nd_test(fn[:-3])\n-                all_suites.append(unittest.defaultTestLoader.loadTestsFromModule(tst))\n-        runner = unittest.TextTestRunner(stream=sys.stdout, verbosity=verbosity)\n-        result = runner.run(unittest.TestSuite(all_suites))\n-        if exit:\n-            sys.exit(not result.wasSuccessful())\n-        else:\n-            return result\n-    else:\n-        import nose\n-        import os\n-        argv = ['nosetests', '--verbosity=%d' % verbosity]\n-        # Output an xunit file if requested\n-        if xunitfile:\n-            argv.extend(['--with-xunit', '--xunit-file=%s' % xunitfile])\n-        # Add all 'tests' subdirectories to the options\n-        rootdir = os.path.dirname(__file__)\n-        for root, dirs, files in os.walk(rootdir):\n-            if 'test' in dirs:\n-                testsdir = os.path.join(root, 'test')\n-                argv.append(testsdir)\n-                print('Test dir: %s' % testsdir[len(rootdir)+1:])\n-        # Ask nose to do its thing\n-        return nose.main(argv=argv, exit=exit)\n-\n-from .config import load","path":"dynd/__init__.py","position":176,"original_position":176,"commit_id":"ce256df0c8e40b8aef4e82621d7cd8ea6f6b4b0c","original_commit_id":"ce256df0c8e40b8aef4e82621d7cd8ea6f6b4b0c","user":{"login":"insertinterestingnamehere","id":1847484,"avatar_url":"https://avatars.githubusercontent.com/u/1847484?v=3","gravatar_id":"","url":"https://api.github.com/users/insertinterestingnamehere","html_url":"https://github.com/insertinterestingnamehere","followers_url":"https://api.github.com/users/insertinterestingnamehere/followers","following_url":"https://api.github.com/users/insertinterestingnamehere/following{/other_user}","gists_url":"https://api.github.com/users/insertinterestingnamehere/gists{/gist_id}","starred_url":"https://api.github.com/users/insertinterestingnamehere/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/insertinterestingnamehere/subscriptions","organizations_url":"https://api.github.com/users/insertinterestingnamehere/orgs","repos_url":"https://api.github.com/users/insertinterestingnamehere/repos","events_url":"https://api.github.com/users/insertinterestingnamehere/events{/privacy}","received_events_url":"https://api.github.com/users/insertinterestingnamehere/received_events","type":"User","site_admin":false},"body":"Also, the stuff in dynd.config requires that libdyndt.dll be loaded. Should the config module should be moved to `dynd.ndt`? It should be somewhere where the dll preloading logic is guaranteed to have already run.","created_at":"2016-05-25T22:26:53Z","updated_at":"2016-05-25T22:26:53Z","html_url":"https://github.com/libdynd/dynd-python/pull/701#discussion_r64664471","pull_request_url":"https://api.github.com/repos/libdynd/dynd-python/pulls/701","_links":{"self":{"href":"https://api.github.com/repos/libdynd/dynd-python/pulls/comments/64664471"},"html":{"href":"https://github.com/libdynd/dynd-python/pull/701#discussion_r64664471"},"pull_request":{"href":"https://api.github.com/repos/libdynd/dynd-python/pulls/701"}}},"pull_request":{"url":"https://api.github.com/repos/libdynd/dynd-python/pulls/701","id":71421997,"html_url":"https://github.com/libdynd/dynd-python/pull/701","diff_url":"https://github.com/libdynd/dynd-python/pull/701.diff","patch_url":"https://github.com/libdynd/dynd-python/pull/701.patch","issue_url":"https://api.github.com/repos/libdynd/dynd-python/issues/701","number":701,"state":"open","locked":false,"title":"Namespace package","user":{"login":"skrah","id":16530421,"avatar_url":"https://avatars.githubusercontent.com/u/16530421?v=3","gravatar_id":"","url":"https://api.github.com/users/skrah","html_url":"https://github.com/skrah","followers_url":"https://api.github.com/users/skrah/followers","following_url":"https://api.github.com/users/skrah/following{/other_user}","gists_url":"https://api.github.com/users/skrah/gists{/gist_id}","starred_url":"https://api.github.com/users/skrah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skrah/subscriptions","organizations_url":"https://api.github.com/users/skrah/orgs","repos_url":"https://api.github.com/users/skrah/repos","events_url":"https://api.github.com/users/skrah/events{/privacy}","received_events_url":"https://api.github.com/users/skrah/received_events","type":"User","site_admin":false},"body":"This (explicit) namespace package works here on Linux/Windows with both Python 2 and Python 3.\r\n\r\nThe magic switch is in setup.py:\r\n\r\n     1) DIST_TARGET = 'all' -> The existing install.\r\n\r\n     2) DIST_TARGET = 'ndt' -> Install only libdyndt and the ndt module.\r\n\r\n     3) DIST_TARGET = 'nd' -> Install only libdynd and the nd module.\r\n\r\n\r\nOptions 1) and 2) are self-contained, 3) depends on 2).\r\n\r\n\r\n","created_at":"2016-05-25T16:25:52Z","updated_at":"2016-05-25T22:26:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"69919758be409966f9bfcf535f41b02a0132f969","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/libdynd/dynd-python/pulls/701/commits","review_comments_url":"https://api.github.com/repos/libdynd/dynd-python/pulls/701/comments","review_comment_url":"https://api.github.com/repos/libdynd/dynd-python/pulls/comments{/number}","comments_url":"https://api.github.com/repos/libdynd/dynd-python/issues/701/comments","statuses_url":"https://api.github.com/repos/libdynd/dynd-python/statuses/ce256df0c8e40b8aef4e82621d7cd8ea6f6b4b0c","head":{"label":"skrah:namespace_package","ref":"namespace_package","sha":"ce256df0c8e40b8aef4e82621d7cd8ea6f6b4b0c","user":{"login":"skrah","id":16530421,"avatar_url":"https://avatars.githubusercontent.com/u/16530421?v=3","gravatar_id":"","url":"https://api.github.com/users/skrah","html_url":"https://github.com/skrah","followers_url":"https://api.github.com/users/skrah/followers","following_url":"https://api.github.com/users/skrah/following{/other_user}","gists_url":"https://api.github.com/users/skrah/gists{/gist_id}","starred_url":"https://api.github.com/users/skrah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skrah/subscriptions","organizations_url":"https://api.github.com/users/skrah/orgs","repos_url":"https://api.github.com/users/skrah/repos","events_url":"https://api.github.com/users/skrah/events{/privacy}","received_events_url":"https://api.github.com/users/skrah/received_events","type":"User","site_admin":false},"repo":{"id":59500923,"name":"dynd-python","full_name":"skrah/dynd-python","owner":{"login":"skrah","id":16530421,"avatar_url":"https://avatars.githubusercontent.com/u/16530421?v=3","gravatar_id":"","url":"https://api.github.com/users/skrah","html_url":"https://github.com/skrah","followers_url":"https://api.github.com/users/skrah/followers","following_url":"https://api.github.com/users/skrah/following{/other_user}","gists_url":"https://api.github.com/users/skrah/gists{/gist_id}","starred_url":"https://api.github.com/users/skrah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skrah/subscriptions","organizations_url":"https://api.github.com/users/skrah/orgs","repos_url":"https://api.github.com/users/skrah/repos","events_url":"https://api.github.com/users/skrah/events{/privacy}","received_events_url":"https://api.github.com/users/skrah/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/skrah/dynd-python","description":"Python exposure of dynd","fork":true,"url":"https://api.github.com/repos/skrah/dynd-python","forks_url":"https://api.github.com/repos/skrah/dynd-python/forks","keys_url":"https://api.github.com/repos/skrah/dynd-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/skrah/dynd-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/skrah/dynd-python/teams","hooks_url":"https://api.github.com/repos/skrah/dynd-python/hooks","issue_events_url":"https://api.github.com/repos/skrah/dynd-python/issues/events{/number}","events_url":"https://api.github.com/repos/skrah/dynd-python/events","assignees_url":"https://api.github.com/repos/skrah/dynd-python/assignees{/user}","branches_url":"https://api.github.com/repos/skrah/dynd-python/branches{/branch}","tags_url":"https://api.github.com/repos/skrah/dynd-python/tags","blobs_url":"https://api.github.com/repos/skrah/dynd-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/skrah/dynd-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/skrah/dynd-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/skrah/dynd-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/skrah/dynd-python/statuses/{sha}","languages_url":"https://api.github.com/repos/skrah/dynd-python/languages","stargazers_url":"https://api.github.com/repos/skrah/dynd-python/stargazers","contributors_url":"https://api.github.com/repos/skrah/dynd-python/contributors","subscribers_url":"https://api.github.com/repos/skrah/dynd-python/subscribers","subscription_url":"https://api.github.com/repos/skrah/dynd-python/subscription","commits_url":"https://api.github.com/repos/skrah/dynd-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/skrah/dynd-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/skrah/dynd-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/skrah/dynd-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/skrah/dynd-python/contents/{+path}","compare_url":"https://api.github.com/repos/skrah/dynd-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/skrah/dynd-python/merges","archive_url":"https://api.github.com/repos/skrah/dynd-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/skrah/dynd-python/downloads","issues_url":"https://api.github.com/repos/skrah/dynd-python/issues{/number}","pulls_url":"https://api.github.com/repos/skrah/dynd-python/pulls{/number}","milestones_url":"https://api.github.com/repos/skrah/dynd-python/milestones{/number}","notifications_url":"https://api.github.com/repos/skrah/dynd-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/skrah/dynd-python/labels{/name}","releases_url":"https://api.github.com/repos/skrah/dynd-python/releases{/id}","deployments_url":"https://api.github.com/repos/skrah/dynd-python/deployments","created_at":"2016-05-23T16:48:35Z","updated_at":"2016-05-23T16:48:37Z","pushed_at":"2016-05-25T16:20:29Z","git_url":"git://github.com/skrah/dynd-python.git","ssh_url":"git@github.com:skrah/dynd-python.git","clone_url":"https://github.com/skrah/dynd-python.git","svn_url":"https://github.com/skrah/dynd-python","homepage":"http://libdynd.org","size":5526,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"libdynd:master","ref":"master","sha":"f017a86161c6293fddd61e53bfba206c348df12b","user":{"login":"libdynd","id":10065955,"avatar_url":"https://avatars.githubusercontent.com/u/10065955?v=3","gravatar_id":"","url":"https://api.github.com/users/libdynd","html_url":"https://github.com/libdynd","followers_url":"https://api.github.com/users/libdynd/followers","following_url":"https://api.github.com/users/libdynd/following{/other_user}","gists_url":"https://api.github.com/users/libdynd/gists{/gist_id}","starred_url":"https://api.github.com/users/libdynd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/libdynd/subscriptions","organizations_url":"https://api.github.com/users/libdynd/orgs","repos_url":"https://api.github.com/users/libdynd/repos","events_url":"https://api.github.com/users/libdynd/events{/privacy}","received_events_url":"https://api.github.com/users/libdynd/received_events","type":"Organization","site_admin":false},"repo":{"id":5263844,"name":"dynd-python","full_name":"libdynd/dynd-python","owner":{"login":"libdynd","id":10065955,"avatar_url":"https://avatars.githubusercontent.com/u/10065955?v=3","gravatar_id":"","url":"https://api.github.com/users/libdynd","html_url":"https://github.com/libdynd","followers_url":"https://api.github.com/users/libdynd/followers","following_url":"https://api.github.com/users/libdynd/following{/other_user}","gists_url":"https://api.github.com/users/libdynd/gists{/gist_id}","starred_url":"https://api.github.com/users/libdynd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/libdynd/subscriptions","organizations_url":"https://api.github.com/users/libdynd/orgs","repos_url":"https://api.github.com/users/libdynd/repos","events_url":"https://api.github.com/users/libdynd/events{/privacy}","received_events_url":"https://api.github.com/users/libdynd/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/libdynd/dynd-python","description":"Python exposure of dynd","fork":false,"url":"https://api.github.com/repos/libdynd/dynd-python","forks_url":"https://api.github.com/repos/libdynd/dynd-python/forks","keys_url":"https://api.github.com/repos/libdynd/dynd-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/libdynd/dynd-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/libdynd/dynd-python/teams","hooks_url":"https://api.github.com/repos/libdynd/dynd-python/hooks","issue_events_url":"https://api.github.com/repos/libdynd/dynd-python/issues/events{/number}","events_url":"https://api.github.com/repos/libdynd/dynd-python/events","assignees_url":"https://api.github.com/repos/libdynd/dynd-python/assignees{/user}","branches_url":"https://api.github.com/repos/libdynd/dynd-python/branches{/branch}","tags_url":"https://api.github.com/repos/libdynd/dynd-python/tags","blobs_url":"https://api.github.com/repos/libdynd/dynd-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/libdynd/dynd-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/libdynd/dynd-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/libdynd/dynd-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/libdynd/dynd-python/statuses/{sha}","languages_url":"https://api.github.com/repos/libdynd/dynd-python/languages","stargazers_url":"https://api.github.com/repos/libdynd/dynd-python/stargazers","contributors_url":"https://api.github.com/repos/libdynd/dynd-python/contributors","subscribers_url":"https://api.github.com/repos/libdynd/dynd-python/subscribers","subscription_url":"https://api.github.com/repos/libdynd/dynd-python/subscription","commits_url":"https://api.github.com/repos/libdynd/dynd-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/libdynd/dynd-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/libdynd/dynd-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/libdynd/dynd-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/libdynd/dynd-python/contents/{+path}","compare_url":"https://api.github.com/repos/libdynd/dynd-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/libdynd/dynd-python/merges","archive_url":"https://api.github.com/repos/libdynd/dynd-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/libdynd/dynd-python/downloads","issues_url":"https://api.github.com/repos/libdynd/dynd-python/issues{/number}","pulls_url":"https://api.github.com/repos/libdynd/dynd-python/pulls{/number}","milestones_url":"https://api.github.com/repos/libdynd/dynd-python/milestones{/number}","notifications_url":"https://api.github.com/repos/libdynd/dynd-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/libdynd/dynd-python/labels{/name}","releases_url":"https://api.github.com/repos/libdynd/dynd-python/releases{/id}","deployments_url":"https://api.github.com/repos/libdynd/dynd-python/deployments","created_at":"2012-08-01T19:45:18Z","updated_at":"2016-05-09T18:18:29Z","pushed_at":"2016-05-25T20:31:46Z","git_url":"git://github.com/libdynd/dynd-python.git","ssh_url":"git@github.com:libdynd/dynd-python.git","clone_url":"https://github.com/libdynd/dynd-python.git","svn_url":"https://github.com/libdynd/dynd-python","homepage":"http://libdynd.org","size":5626,"stargazers_count":73,"watchers_count":73,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":20,"mirror_url":null,"open_issues_count":83,"forks":20,"open_issues":83,"watchers":73,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/libdynd/dynd-python/pulls/701"},"html":{"href":"https://github.com/libdynd/dynd-python/pull/701"},"issue":{"href":"https://api.github.com/repos/libdynd/dynd-python/issues/701"},"comments":{"href":"https://api.github.com/repos/libdynd/dynd-python/issues/701/comments"},"review_comments":{"href":"https://api.github.com/repos/libdynd/dynd-python/pulls/701/comments"},"review_comment":{"href":"https://api.github.com/repos/libdynd/dynd-python/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/libdynd/dynd-python/pulls/701/commits"},"statuses":{"href":"https://api.github.com/repos/libdynd/dynd-python/statuses/ce256df0c8e40b8aef4e82621d7cd8ea6f6b4b0c"}}}}
{"actor":{"display_login":"insertinterestingnamehere"}}