{"action":"created","comment":{"url":"https://api.github.com/repos/mit-crpg/openmc/pulls/comments/61022226","id":61022226,"diff_hunk":"@@ -1,131 +1,100 @@\n from __future__ import print_function\n import subprocess\n from numbers import Integral\n-import os\n import sys\n \n-from openmc.checkvalue import check_type\n-\n if sys.version_info[0] >= 3:\n     basestring = str\n \n \n-class Executor(object):\n-    \"\"\"Control execution of OpenMC\n+def _run(command, output, cwd):\n+    # Launch a subprocess\n+    p = subprocess.Popen(command, shell=True, cwd=cwd, stdout=subprocess.PIPE,\n+                         universal_newlines=True)\n+\n+    # Capture and re-print OpenMC output in real-time\n+    while True:\n+        # If OpenMC is finished, break loop\n+        line = p.stdout.readline()\n+        if not line and p.poll() != None:\n+            break\n+\n+        # If user requested output, print to screen\n+        if output:\n+            print(line, end='')\n+\n+    # Return the returncode (integer, zero if no problems encountered)\n+    return p.returncode\n+\n+\n+def plot_geometry(output=True, openmc_exec='openmc', cwd='.'):\n+    \"\"\"Run OpenMC in plotting mode\n \n-    Attributes\n+    Parameters\n     ----------\n-    working_directory : str\n-        Path to working directory to run in\n+    output : bool\n+        Capture OpenMC output from standard out\n+    openmc_exec : str\n+        Path to OpenMC executable\n+    cwd : str, optional\n+        Path to working directory to run in. Defaults to the current working directory.\n \n     \"\"\"\n \n-    def __init__(self):\n-        self._working_directory = '.'\n-\n-    def _run_openmc(self, command, output):\n-        # Launch a subprocess to run OpenMC\n-        p = subprocess.Popen(command, shell=True,\n-                             cwd=self._working_directory,\n-                             stdout=subprocess.PIPE,\n-                             universal_newlines=True)\n-\n-        # Capture and re-print OpenMC output in real-time\n-        while True:\n-            # If OpenMC is finished, break loop\n-            line = p.stdout.readline()\n-            if not line and p.poll() != None:\n-                break\n-\n-            # If user requested output, print to screen\n-            if output:\n-                print(line, end='')\n-\n-        # Return the returncode (integer, zero if no problems encountered)\n-        return p.returncode\n-\n-    @property\n-    def working_directory(self):\n-        return self._working_directory\n-\n-    @working_directory.setter\n-    def working_directory(self, working_directory):\n-        check_type(\"Executor's working directory\", working_directory,\n-                   basestring)\n-        if not os.path.isdir(working_directory):\n-            msg = 'Unable to set Executor\\'s working directory to \"{0}\" ' \\\n-                  'which does not exist'.format(working_directory)\n-            raise ValueError(msg)\n-\n-        self._working_directory = working_directory\n-\n-    def plot_geometry(self, output=True, openmc_exec='openmc'):\n-        \"\"\"Run OpenMC in plotting mode\"\"\"\n-\n-        return self._run_openmc(openmc_exec + ' -p', output)\n-\n-    def run_simulation(self, particles=None, threads=None,\n-                       geometry_debug=False, restart_file=None,\n-                       tracks=False, mpi_procs=1, output=True,\n-                       openmc_exec='openmc', mpi_exec=None):\n-        \"\"\"Run an OpenMC simulation.\n-\n-        Parameters\n-        ----------\n-        particles : int\n-            Number of particles to simulate per generation\n-        threads : int\n-            Number of OpenMP threads\n-        geometry_debug : bool\n-            Turn on geometry debugging during simulation\n-        restart_file : str\n-            Path to restart file to use\n-        tracks : bool\n-            Write tracks for all particles\n-        mpi_procs : int\n-            Number of MPI processes\n-        output : bool\n-            Capture OpenMC output from standard out\n-        openmc_exec : str\n-            Path to OpenMC executable\n-\n-        \"\"\"\n-\n-        post_args = ' '\n-        pre_args = ''\n-\n-        if isinstance(particles, Integral) and particles > 0:\n-            post_args += '-n {0} '.format(particles)\n-\n-        if isinstance(threads, Integral) and threads > 0:\n-            post_args += '-s {0} '.format(threads)\n-\n-        if geometry_debug:\n-            post_args += '-g '\n-\n-        if isinstance(restart_file, basestring):\n-            post_args += '-r {0} '.format(restart_file)\n-\n-        if tracks:\n-            post_args += '-t'\n-\n-        if isinstance(mpi_procs, Integral) and mpi_procs > 1:\n-            np_present = True\n-        else:\n-            np_present = False\n-\n-        if mpi_exec is not None and isinstance(mpi_exec, basestring):\n-            mpi_exec_present = True\n-        else:\n-            mpi_exec_present = False\n-\n-        if np_present or mpi_exec_present:\n-            if mpi_exec_present:\n-                pre_args += mpi_exec + ' '\n-            else:\n-                pre_args += 'mpirun '\n-            pre_args += '-n {0} '.format(mpi_procs)\n-\n-        command = pre_args + openmc_exec + ' ' + post_args\n-\n-        return self._run_openmc(command, output)\n+    return _run(openmc_exec + ' -p', output, cwd)\n+\n+\n+def run(particles=None, threads=None, geometry_debug=False,\n+        restart_file=None, tracks=False, mpi_procs=1, output=True,\n+        openmc_exec='openmc', mpi_exec='mpiexec', cwd='.'):\n+    \"\"\"Run an OpenMC simulation.\n+\n+    Parameters\n+    ----------\n+    particles : int, optional\n+        Number of particles to simulate per generation.\n+    threads : int, optional\n+        Number of OpenMP threads.","path":"openmc/executor.py","position":174,"original_position":174,"commit_id":"34bd4052452d034e3bcd096054ae9aafc0eae8df","original_commit_id":"34bd4052452d034e3bcd096054ae9aafc0eae8df","user":{"login":"paulromano","id":743095,"avatar_url":"https://avatars.githubusercontent.com/u/743095?v=3","gravatar_id":"","url":"https://api.github.com/users/paulromano","html_url":"https://github.com/paulromano","followers_url":"https://api.github.com/users/paulromano/followers","following_url":"https://api.github.com/users/paulromano/following{/other_user}","gists_url":"https://api.github.com/users/paulromano/gists{/gist_id}","starred_url":"https://api.github.com/users/paulromano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulromano/subscriptions","organizations_url":"https://api.github.com/users/paulromano/orgs","repos_url":"https://api.github.com/users/paulromano/repos","events_url":"https://api.github.com/users/paulromano/events{/privacy}","received_events_url":"https://api.github.com/users/paulromano/received_events","type":"User","site_admin":false},"body":"Actually if it's compiled with OpenMP support usually the default is not one thread (unless your machine really only has a single hardware thread), but your point is taken -- I'll elaborate on the description","created_at":"2016-04-26T02:52:45Z","updated_at":"2016-04-26T02:52:45Z","html_url":"https://github.com/mit-crpg/openmc/pull/632#discussion_r61022226","pull_request_url":"https://api.github.com/repos/mit-crpg/openmc/pulls/632","_links":{"self":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/comments/61022226"},"html":{"href":"https://github.com/mit-crpg/openmc/pull/632#discussion_r61022226"},"pull_request":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/632"}}},"pull_request":{"url":"https://api.github.com/repos/mit-crpg/openmc/pulls/632","id":67781009,"html_url":"https://github.com/mit-crpg/openmc/pull/632","diff_url":"https://github.com/mit-crpg/openmc/pull/632.diff","patch_url":"https://github.com/mit-crpg/openmc/pull/632.patch","issue_url":"https://api.github.com/repos/mit-crpg/openmc/issues/632","number":632,"state":"open","locked":false,"title":"Various improvements and bug fixes, mostly relating to Python API","user":{"login":"paulromano","id":743095,"avatar_url":"https://avatars.githubusercontent.com/u/743095?v=3","gravatar_id":"","url":"https://api.github.com/users/paulromano","html_url":"https://github.com/paulromano","followers_url":"https://api.github.com/users/paulromano/followers","following_url":"https://api.github.com/users/paulromano/following{/other_user}","gists_url":"https://api.github.com/users/paulromano/gists{/gist_id}","starred_url":"https://api.github.com/users/paulromano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulromano/subscriptions","organizations_url":"https://api.github.com/users/paulromano/orgs","repos_url":"https://api.github.com/users/paulromano/repos","events_url":"https://api.github.com/users/paulromano/events{/privacy}","received_events_url":"https://api.github.com/users/paulromano/received_events","type":"User","site_admin":false},"body":"I've been preparing my section of our upcoming PHYSOR workshop, which has inspired me to make a bunch of changes/improvements in this PR, mostly relating to the Python API:\r\n\r\n- Improvements to docstrings\r\n- `GeometryFile` has been removed and `Geometry` now has the `export_to_xml()` method. This helps reduce our boilerplate code.\r\n- Other `*File` classes have been renamed to get rid of the \"File\", e.g. `SettingsFile` is now `Settings`\r\n- PR #626 broke the assignment of universe IDs to lattices. That is now fixed.\r\n- Python 3.5-related bugfix in mgxs.py\r\n- `Executor` is gone and has been replaced by the functions `openmc.run()` and `openmc.plot_geometry()`.\r\n- Writing `Element`s to XML didn't take into account the xs attribute. That is fixed.\r\n- Typo in `Plot.mask_components` property fixed\r\n- Don't write the default boundary=\"transmission\" to XML. This is what caused a bunch of inputs_true.dat files to change.\r\n- Show defaults for surface coefficients in the `__init__` signatures rather than hidden in method itself.\r\n- One-line fix in simulation.F90 that was causing use of MPI F08 bindings to break.\r\n\r\n@wbinventor I'd appreciate if you could review this one. Definitely would like to get this in this week ahead of the workshop...\r\n","created_at":"2016-04-25T20:16:48Z","updated_at":"2016-04-26T02:52:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"644f89d22f64ead8045c5e78383504b30257e8a8","assignee":{"login":"wbinventor","id":209492,"avatar_url":"https://avatars.githubusercontent.com/u/209492?v=3","gravatar_id":"","url":"https://api.github.com/users/wbinventor","html_url":"https://github.com/wbinventor","followers_url":"https://api.github.com/users/wbinventor/followers","following_url":"https://api.github.com/users/wbinventor/following{/other_user}","gists_url":"https://api.github.com/users/wbinventor/gists{/gist_id}","starred_url":"https://api.github.com/users/wbinventor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wbinventor/subscriptions","organizations_url":"https://api.github.com/users/wbinventor/orgs","repos_url":"https://api.github.com/users/wbinventor/repos","events_url":"https://api.github.com/users/wbinventor/events{/privacy}","received_events_url":"https://api.github.com/users/wbinventor/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/mit-crpg/openmc/milestones/14","html_url":"https://github.com/mit-crpg/openmc/milestones/v0.8","labels_url":"https://api.github.com/repos/mit-crpg/openmc/milestones/14/labels","id":1241750,"number":14,"title":"v0.8","description":"","creator":{"login":"paulromano","id":743095,"avatar_url":"https://avatars.githubusercontent.com/u/743095?v=3","gravatar_id":"","url":"https://api.github.com/users/paulromano","html_url":"https://github.com/paulromano","followers_url":"https://api.github.com/users/paulromano/followers","following_url":"https://api.github.com/users/paulromano/following{/other_user}","gists_url":"https://api.github.com/users/paulromano/gists{/gist_id}","starred_url":"https://api.github.com/users/paulromano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulromano/subscriptions","organizations_url":"https://api.github.com/users/paulromano/orgs","repos_url":"https://api.github.com/users/paulromano/repos","events_url":"https://api.github.com/users/paulromano/events{/privacy}","received_events_url":"https://api.github.com/users/paulromano/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":36,"state":"open","created_at":"2015-08-05T10:39:23Z","updated_at":"2016-04-25T23:13:11Z","due_on":"2016-04-30T05:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/mit-crpg/openmc/pulls/632/commits","review_comments_url":"https://api.github.com/repos/mit-crpg/openmc/pulls/632/comments","review_comment_url":"https://api.github.com/repos/mit-crpg/openmc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mit-crpg/openmc/issues/632/comments","statuses_url":"https://api.github.com/repos/mit-crpg/openmc/statuses/34bd4052452d034e3bcd096054ae9aafc0eae8df","head":{"label":"paulromano:pyapi-various-improvements","ref":"pyapi-various-improvements","sha":"34bd4052452d034e3bcd096054ae9aafc0eae8df","user":{"login":"paulromano","id":743095,"avatar_url":"https://avatars.githubusercontent.com/u/743095?v=3","gravatar_id":"","url":"https://api.github.com/users/paulromano","html_url":"https://github.com/paulromano","followers_url":"https://api.github.com/users/paulromano/followers","following_url":"https://api.github.com/users/paulromano/following{/other_user}","gists_url":"https://api.github.com/users/paulromano/gists{/gist_id}","starred_url":"https://api.github.com/users/paulromano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulromano/subscriptions","organizations_url":"https://api.github.com/users/paulromano/orgs","repos_url":"https://api.github.com/users/paulromano/repos","events_url":"https://api.github.com/users/paulromano/events{/privacy}","received_events_url":"https://api.github.com/users/paulromano/received_events","type":"User","site_admin":false},"repo":{"id":6039026,"name":"openmc","full_name":"paulromano/openmc","owner":{"login":"paulromano","id":743095,"avatar_url":"https://avatars.githubusercontent.com/u/743095?v=3","gravatar_id":"","url":"https://api.github.com/users/paulromano","html_url":"https://github.com/paulromano","followers_url":"https://api.github.com/users/paulromano/followers","following_url":"https://api.github.com/users/paulromano/following{/other_user}","gists_url":"https://api.github.com/users/paulromano/gists{/gist_id}","starred_url":"https://api.github.com/users/paulromano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulromano/subscriptions","organizations_url":"https://api.github.com/users/paulromano/orgs","repos_url":"https://api.github.com/users/paulromano/repos","events_url":"https://api.github.com/users/paulromano/events{/privacy}","received_events_url":"https://api.github.com/users/paulromano/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/paulromano/openmc","description":"OpenMC Monte Carlo Code","fork":true,"url":"https://api.github.com/repos/paulromano/openmc","forks_url":"https://api.github.com/repos/paulromano/openmc/forks","keys_url":"https://api.github.com/repos/paulromano/openmc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/paulromano/openmc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/paulromano/openmc/teams","hooks_url":"https://api.github.com/repos/paulromano/openmc/hooks","issue_events_url":"https://api.github.com/repos/paulromano/openmc/issues/events{/number}","events_url":"https://api.github.com/repos/paulromano/openmc/events","assignees_url":"https://api.github.com/repos/paulromano/openmc/assignees{/user}","branches_url":"https://api.github.com/repos/paulromano/openmc/branches{/branch}","tags_url":"https://api.github.com/repos/paulromano/openmc/tags","blobs_url":"https://api.github.com/repos/paulromano/openmc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/paulromano/openmc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/paulromano/openmc/git/refs{/sha}","trees_url":"https://api.github.com/repos/paulromano/openmc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/paulromano/openmc/statuses/{sha}","languages_url":"https://api.github.com/repos/paulromano/openmc/languages","stargazers_url":"https://api.github.com/repos/paulromano/openmc/stargazers","contributors_url":"https://api.github.com/repos/paulromano/openmc/contributors","subscribers_url":"https://api.github.com/repos/paulromano/openmc/subscribers","subscription_url":"https://api.github.com/repos/paulromano/openmc/subscription","commits_url":"https://api.github.com/repos/paulromano/openmc/commits{/sha}","git_commits_url":"https://api.github.com/repos/paulromano/openmc/git/commits{/sha}","comments_url":"https://api.github.com/repos/paulromano/openmc/comments{/number}","issue_comment_url":"https://api.github.com/repos/paulromano/openmc/issues/comments{/number}","contents_url":"https://api.github.com/repos/paulromano/openmc/contents/{+path}","compare_url":"https://api.github.com/repos/paulromano/openmc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/paulromano/openmc/merges","archive_url":"https://api.github.com/repos/paulromano/openmc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/paulromano/openmc/downloads","issues_url":"https://api.github.com/repos/paulromano/openmc/issues{/number}","pulls_url":"https://api.github.com/repos/paulromano/openmc/pulls{/number}","milestones_url":"https://api.github.com/repos/paulromano/openmc/milestones{/number}","notifications_url":"https://api.github.com/repos/paulromano/openmc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/paulromano/openmc/labels{/name}","releases_url":"https://api.github.com/repos/paulromano/openmc/releases{/id}","deployments_url":"https://api.github.com/repos/paulromano/openmc/deployments","created_at":"2012-10-02T01:55:56Z","updated_at":"2016-01-18T18:36:18Z","pushed_at":"2016-04-25T18:15:45Z","git_url":"git://github.com/paulromano/openmc.git","ssh_url":"git@github.com:paulromano/openmc.git","clone_url":"https://github.com/paulromano/openmc.git","svn_url":"https://github.com/paulromano/openmc","homepage":"","size":24354,"stargazers_count":2,"watchers_count":2,"language":"FORTRAN","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":2,"default_branch":"develop"}},"base":{"label":"mit-crpg:develop","ref":"develop","sha":"2f4e0f62ccee77b61c54611064276bc96258a4a4","user":{"login":"mit-crpg","id":1247634,"avatar_url":"https://avatars.githubusercontent.com/u/1247634?v=3","gravatar_id":"","url":"https://api.github.com/users/mit-crpg","html_url":"https://github.com/mit-crpg","followers_url":"https://api.github.com/users/mit-crpg/followers","following_url":"https://api.github.com/users/mit-crpg/following{/other_user}","gists_url":"https://api.github.com/users/mit-crpg/gists{/gist_id}","starred_url":"https://api.github.com/users/mit-crpg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mit-crpg/subscriptions","organizations_url":"https://api.github.com/users/mit-crpg/orgs","repos_url":"https://api.github.com/users/mit-crpg/repos","events_url":"https://api.github.com/users/mit-crpg/events{/privacy}","received_events_url":"https://api.github.com/users/mit-crpg/received_events","type":"Organization","site_admin":false},"repo":{"id":2081118,"name":"openmc","full_name":"mit-crpg/openmc","owner":{"login":"mit-crpg","id":1247634,"avatar_url":"https://avatars.githubusercontent.com/u/1247634?v=3","gravatar_id":"","url":"https://api.github.com/users/mit-crpg","html_url":"https://github.com/mit-crpg","followers_url":"https://api.github.com/users/mit-crpg/followers","following_url":"https://api.github.com/users/mit-crpg/following{/other_user}","gists_url":"https://api.github.com/users/mit-crpg/gists{/gist_id}","starred_url":"https://api.github.com/users/mit-crpg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mit-crpg/subscriptions","organizations_url":"https://api.github.com/users/mit-crpg/orgs","repos_url":"https://api.github.com/users/mit-crpg/repos","events_url":"https://api.github.com/users/mit-crpg/events{/privacy}","received_events_url":"https://api.github.com/users/mit-crpg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mit-crpg/openmc","description":"OpenMC Monte Carlo Code","fork":false,"url":"https://api.github.com/repos/mit-crpg/openmc","forks_url":"https://api.github.com/repos/mit-crpg/openmc/forks","keys_url":"https://api.github.com/repos/mit-crpg/openmc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mit-crpg/openmc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mit-crpg/openmc/teams","hooks_url":"https://api.github.com/repos/mit-crpg/openmc/hooks","issue_events_url":"https://api.github.com/repos/mit-crpg/openmc/issues/events{/number}","events_url":"https://api.github.com/repos/mit-crpg/openmc/events","assignees_url":"https://api.github.com/repos/mit-crpg/openmc/assignees{/user}","branches_url":"https://api.github.com/repos/mit-crpg/openmc/branches{/branch}","tags_url":"https://api.github.com/repos/mit-crpg/openmc/tags","blobs_url":"https://api.github.com/repos/mit-crpg/openmc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mit-crpg/openmc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mit-crpg/openmc/git/refs{/sha}","trees_url":"https://api.github.com/repos/mit-crpg/openmc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mit-crpg/openmc/statuses/{sha}","languages_url":"https://api.github.com/repos/mit-crpg/openmc/languages","stargazers_url":"https://api.github.com/repos/mit-crpg/openmc/stargazers","contributors_url":"https://api.github.com/repos/mit-crpg/openmc/contributors","subscribers_url":"https://api.github.com/repos/mit-crpg/openmc/subscribers","subscription_url":"https://api.github.com/repos/mit-crpg/openmc/subscription","commits_url":"https://api.github.com/repos/mit-crpg/openmc/commits{/sha}","git_commits_url":"https://api.github.com/repos/mit-crpg/openmc/git/commits{/sha}","comments_url":"https://api.github.com/repos/mit-crpg/openmc/comments{/number}","issue_comment_url":"https://api.github.com/repos/mit-crpg/openmc/issues/comments{/number}","contents_url":"https://api.github.com/repos/mit-crpg/openmc/contents/{+path}","compare_url":"https://api.github.com/repos/mit-crpg/openmc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mit-crpg/openmc/merges","archive_url":"https://api.github.com/repos/mit-crpg/openmc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mit-crpg/openmc/downloads","issues_url":"https://api.github.com/repos/mit-crpg/openmc/issues{/number}","pulls_url":"https://api.github.com/repos/mit-crpg/openmc/pulls{/number}","milestones_url":"https://api.github.com/repos/mit-crpg/openmc/milestones{/number}","notifications_url":"https://api.github.com/repos/mit-crpg/openmc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mit-crpg/openmc/labels{/name}","releases_url":"https://api.github.com/repos/mit-crpg/openmc/releases{/id}","deployments_url":"https://api.github.com/repos/mit-crpg/openmc/deployments","created_at":"2011-07-21T00:33:27Z","updated_at":"2016-04-20T12:23:15Z","pushed_at":"2016-04-25T23:13:12Z","git_url":"git://github.com/mit-crpg/openmc.git","ssh_url":"git@github.com:mit-crpg/openmc.git","clone_url":"https://github.com/mit-crpg/openmc.git","svn_url":"https://github.com/mit-crpg/openmc","homepage":"http://mit-crpg.github.io/openmc/","size":43043,"stargazers_count":76,"watchers_count":76,"language":"FORTRAN","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":93,"mirror_url":null,"open_issues_count":57,"forks":93,"open_issues":57,"watchers":76,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/632"},"html":{"href":"https://github.com/mit-crpg/openmc/pull/632"},"issue":{"href":"https://api.github.com/repos/mit-crpg/openmc/issues/632"},"comments":{"href":"https://api.github.com/repos/mit-crpg/openmc/issues/632/comments"},"review_comments":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/632/comments"},"review_comment":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/632/commits"},"statuses":{"href":"https://api.github.com/repos/mit-crpg/openmc/statuses/34bd4052452d034e3bcd096054ae9aafc0eae8df"}}}}