payload: {"action":"created","comment":{"url":"https://api.github.com/repos/mne-tools/mne-python/pulls/comments/299077610","pull_request_review_id":256382445,"id":299077610,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI5OTA3NzYxMA==","diff_hunk":"@@ -0,0 +1,315 @@\n+# -*- coding: UTF-8 -*-\n+#\n+# Authors: Dirk Gütlin <dirk.guetlin@stud.sbg.ac.at>\n+#\n+#\n+# License: BSD (3-clause)\n+\n+import os.path as op\n+import re\n+import numpy as np\n+\n+from ..base import BaseRaw\n+from ..meas_info import create_info\n+from ..utils import _read_segments_file, _mult_cal_one, warn\n+from ..constants import FIFF\n+from ...utils import check_fname, check_version, logger\n+from ...annotations import Annotations\n+\n+INFO_FILE_EXTENSION = {7: '.dap', 8: '.cdt.dpa'}\n+LABEL_FILE_EXTENSION = {7: '.rs3', 8: '.cdt.dpa'}\n+DATA_FILE_EXTENSION = {7: '.dat', 8: '.cdt'}\n+EVENT_FILE_EXTENSION = {7: '.cef', 8: '.cdt.cef'}\n+CHANTYPES = {\"meg\": \"_MAG1\", \"eeg\": \"\", \"misc\": \"_OTHERS\"}\n+FIFFV_CHANTYPES = {\"meg\": FIFF.FIFFV_MEG_CH, \"eeg\": FIFF.FIFFV_EEG_CH,\n+                   \"misc\": FIFF.FIFFV_MISC_CH}\n+SI_UNITS = dict(V=FIFF.FIFF_UNIT_V, T=FIFF.FIFF_UNIT_T)\n+SI_UNIT_SCALE = dict(c=1e-2, m=1e-3, u=1e-6, μ=1e-6, n=1e-9, p=1e-12, f=1e-15)\n+\n+\n+def _get_curry_version(file_extension):\n+    \"\"\"Check out the curry file version.\"\"\"\n+    return 8 if 'cdt' in file_extension else 7\n+\n+\n+def _check_missing_files(fname_base, curry_vers):\n+    \"\"\"Check if all necessary files exist.\"\"\"\n+    _msg = \"The following required files cannot be found: {0}.\\nPlease make \" \\\n+           \"sure all required files are located in the same directory.\"\n+\n+    missing = [fname_base + ext\n+               for ext in [DATA_FILE_EXTENSION[curry_vers],\n+                           INFO_FILE_EXTENSION[curry_vers],\n+                           LABEL_FILE_EXTENSION[curry_vers]]\n+               if not op.isfile(fname_base + ext)]\n+\n+    if missing:\n+        raise FileNotFoundError(_msg.format(np.unique(missing)))\n+\n+\n+def _read_curry_lines(fname, regex_list):\n+    \"\"\"Read through the lines of a curry parameter files and save data.\n+\n+    Parameters\n+    ----------\n+    fname : str\n+        Path to a curry file.\n+    regex_list : list of str\n+        A list of strings or regular expressions to search within the file.\n+        Each element `regex` in `regex_list` must be formulated so that\n+        `regex + \" START_LIST\"` initiates the start and `regex + \" END_LIST\"`\n+        initiates the end of the elements that should be saved.\n+\n+    Returns\n+    -------\n+    data_dict : dict\n+        A dictionary containing the extracted data. For each element `regex`\n+        in `regex_list` a dictionary key `data_dict[regex]` is created, which\n+        contains a list of the according data.\n+\n+    \"\"\"\n+    save_lines = {}\n+    data_dict = {}\n+\n+    for regex in regex_list:\n+        save_lines[regex] = False\n+        data_dict[regex] = []\n+\n+    with open(fname) as fid:\n+        for line in fid:\n+            for regex in regex_list:\n+                if re.match(regex + \" END_LIST\", line):\n+                    save_lines[regex] = False\n+\n+                if save_lines[regex] and line != \"\\n\":\n+                    result = line.replace(\"\\n\", \"\")\n+                    if \"\\t\" in result:\n+                        result = result.split(\"\\t\")\n+                    data_dict[regex].append(result)\n+\n+                if re.match(regex + \" START_LIST\", line):\n+                    save_lines[regex] = True\n+\n+    return data_dict\n+\n+\n+def _read_curry_info(fname_base, curry_vers):\n+    \"\"\"Extract info from curry parameter files.\"\"\"\n+    var_names = ['NumSamples', 'SampleFreqHz',\n+                 'DataFormat', 'SampleTimeUsec',\n+                 'NUM_SAMPLES', 'SAMPLE_FREQ_HZ',\n+                 'DATA_FORMAT', 'SAMPLE_TIME_USEC']\n+\n+    param_dict = dict()\n+    unit_dict = dict()\n+    with open(fname_base + INFO_FILE_EXTENSION[curry_vers]) as fid:\n+        for line in iter(fid):\n+            if any(var_name in line for var_name in var_names):\n+                key, val = line.replace(\" \", \"\").replace(\"\\n\", \"\").split(\"=\")\n+                param_dict[key.lower().replace(\"_\", \"\")] = val\n+            for type in CHANTYPES:\n+                if \"DEVICE_PARAMETERS\" + CHANTYPES[type] + \" START\" in line:\n+                    data_unit = next(fid)\n+                    unit_dict[type] = data_unit.replace(\" \", \"\") \\\n+                        .replace(\"\\n\", \"\").split(\"=\")[-1]\n+\n+    n_samples = int(param_dict[\"numsamples\"])\n+    sfreq = float(param_dict[\"samplefreqhz\"])\n+    time_step = float(param_dict[\"sampletimeusec\"]) * 1e-6\n+    is_ascii = param_dict[\"dataformat\"] == \"ASCII\"\n+\n+    if (sfreq == 0) and (time_step != 0):\n+        sfreq = 1. / time_step\n+\n+    # read labels from label files\n+    labels = _read_curry_lines(fname_base + LABEL_FILE_EXTENSION[curry_vers],\n+                               [\"LABELS\" + CHANTYPES[key] for key in\n+                                [\"meg\", \"eeg\", \"misc\"]])\n+\n+    sensors = _read_curry_lines(fname_base + LABEL_FILE_EXTENSION[curry_vers],\n+                                [\"SENSORS\" + CHANTYPES[key] for key in\n+                                 [\"meg\", \"eeg\", \"misc\"]])\n+\n+    all_chans = list()\n+    for key in [\"meg\", \"eeg\", \"misc\"]:\n+        for ind, chan in enumerate(labels[\"LABELS\" + CHANTYPES[key]]):\n+            ch = {\"ch_name\": chan,\n+                  \"unit\": unit_dict[key],\n+                  \"kind\": FIFFV_CHANTYPES[key]}\n+            if key in (\"meg\", \"eeg\"):\n+                loc = sensors[\"SENSORS\" + CHANTYPES[key]][ind]\n+                ch[\"loc\"] = np.array(loc, dtype=float)\n+\n+            all_chans.append(ch)\n+\n+    ch_names = [chan[\"ch_name\"] for chan in all_chans]\n+    info = create_info(ch_names, sfreq)\n+\n+    for ind, ch_dict in enumerate(info[\"chs\"]):\n+        ch_dict[\"kind\"] = all_chans[ind][\"kind\"]\n+        ch_dict['unit'] = SI_UNITS[all_chans[ind]['unit'][1]]\n+        ch_dict['cal'] = SI_UNIT_SCALE[all_chans[ind]['unit'][0]]\n+        if ch_dict[\"kind\"] in (FIFF.FIFFV_MEG_CH,\n+                               FIFF.FIFFV_EEG_CH):\n+            ch_dict[\"loc\"] = all_chans[ind][\"loc\"]\n+\n+    return info, n_samples, is_ascii\n+\n+\n+def _read_events_curry(fname):\n+    \"\"\"Read events from Curry event files.\n+\n+    Parameters\n+    ----------\n+    fname : str\n+        Path to a curry event file with extensions .cef, .ceo,\n+        .cdt.cef, or .cdt.ceo\n+\n+    Returns\n+    -------\n+    events : ndarray, shape (n_events, 3)\n+        The array of events.\n+    \"\"\"\n+    check_fname(fname, 'curry event', ('.cef', '.cdt.cef'),\n+                endings_err=('.cef', '.cdt.cef'))\n+\n+    events_dict = _read_curry_lines(fname, [\"NUMBER_LIST\"])\n+    # The first 3 column seem to contain the event information\n+    curry_events = np.array(events_dict[\"NUMBER_LIST\"], dtype=int)[:, 0:3]\n+\n+    return curry_events\n+\n+\n+def _read_annotations_curry(fname, sfreq='auto'):\n+    r\"\"\"Read events from Curry event files.\n+\n+    Parameters\n+    ----------\n+    fname : str\n+        The filename.\n+    sfreq : float | 'auto'\n+        The sampling frequency in the file. If set to 'auto' then the\n+        ``sfreq`` is taken from the respective info file of the same name with\n+        according file extension (\\*.dap for Curry 7; \\*.cdt.dpa for Curry8).\n+         So data.cef looks in data.dap and data.cdt.cef looks in data.cdt.dpa.\n+\n+    Returns\n+    -------\n+    annot : instance of Annotations | None\n+        The annotations.\n+    \"\"\"\n+    events = _read_events_curry(fname)\n+\n+    if sfreq == 'auto':\n+        fname_base, ext = fname.split(\".\", maxsplit=1)\n+        curry_vers = _get_curry_version(ext)\n+        with open(fname_base + INFO_FILE_EXTENSION[curry_vers]) as fid:\n+            for line in fid:\n+                if ('SampleFreqHz' or 'SAMPLE_FREQ_HZ') in line:\n+                    sfreq = float(line.split(\"=\")[1])\n+\n+    onset = events[:, 0] / sfreq\n+    duration = np.zeros(events.shape[0])\n+    description = events[:, 2]\n+\n+    return Annotations(onset, duration, description)\n+\n+\n+def read_raw_curry(input_fname, preload=False, verbose=None):\n+    \"\"\"Read raw data from Curry files.\n+\n+    Parameters\n+    ----------\n+    input_fname : str\n+        Path to a curry file with extensions .dat, .dap, .rs3, .cdt, cdt.dpa,\n+        .cdt.cef or .cef.\n+    preload : bool or str (default False)","path":"mne/io/curry/curry.py","position":227,"original_position":226,"commit_id":"cd244cefd3a5465442361d24debdd74bee523f10","original_commit_id":"0a3913d34265532665ec76cad6a065ea753c616c","user":{"login":"massich","id":7044835,"node_id":"MDQ6VXNlcjcwNDQ4MzU=","avatar_url":"https://avatars3.githubusercontent.com/u/7044835?v=4","gravatar_id":"","url":"https://api.github.com/users/massich","html_url":"https://github.com/massich","followers_url":"https://api.github.com/users/massich/followers","following_url":"https://api.github.com/users/massich/following{/other_user}","gists_url":"https://api.github.com/users/massich/gists{/gist_id}","starred_url":"https://api.github.com/users/massich/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/massich/subscriptions","organizations_url":"https://api.github.com/users/massich/orgs","repos_url":"https://api.github.com/users/massich/repos","events_url":"https://api.github.com/users/massich/events{/privacy}","received_events_url":"https://api.github.com/users/massich/received_events","type":"User","site_admin":false},"body":"this is needed before merging","created_at":"2019-07-01T14:43:33Z","updated_at":"2019-07-01T14:43:33Z","html_url":"https://github.com/mne-tools/mne-python/pull/6272#discussion_r299077610","pull_request_url":"https://api.github.com/repos/mne-tools/mne-python/pulls/6272","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/comments/299077610"},"html":{"href":"https://github.com/mne-tools/mne-python/pull/6272#discussion_r299077610"},"pull_request":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/6272"}},"in_reply_to_id":298555170},"pull_request":{"url":"https://api.github.com/repos/mne-tools/mne-python/pulls/6272","id":276010621,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjc2MDEwNjIx","html_url":"https://github.com/mne-tools/mne-python/pull/6272","diff_url":"https://github.com/mne-tools/mne-python/pull/6272.diff","patch_url":"https://github.com/mne-tools/mne-python/pull/6272.patch","issue_url":"https://api.github.com/repos/mne-tools/mne-python/issues/6272","number":6272,"state":"open","locked":false,"title":"read curry","user":{"login":"DiGyt","id":34550289,"node_id":"MDQ6VXNlcjM0NTUwMjg5","avatar_url":"https://avatars0.githubusercontent.com/u/34550289?v=4","gravatar_id":"","url":"https://api.github.com/users/DiGyt","html_url":"https://github.com/DiGyt","followers_url":"https://api.github.com/users/DiGyt/followers","following_url":"https://api.github.com/users/DiGyt/following{/other_user}","gists_url":"https://api.github.com/users/DiGyt/gists{/gist_id}","starred_url":"https://api.github.com/users/DiGyt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DiGyt/subscriptions","organizations_url":"https://api.github.com/users/DiGyt/orgs","repos_url":"https://api.github.com/users/DiGyt/repos","events_url":"https://api.github.com/users/DiGyt/events{/privacy}","received_events_url":"https://api.github.com/users/DiGyt/received_events","type":"User","site_admin":false},"body":"Introduces a basic structure to read curry files into mne and solve #5488 .\r\nPlease feel more than free to change & contribute!\r\n","created_at":"2019-05-05T16:57:27Z","updated_at":"2019-07-01T14:43:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c2018d1b2591e6466f589ece2e99ed4921cd2445","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/mne-tools/mne-python/pulls/6272/commits","review_comments_url":"https://api.github.com/repos/mne-tools/mne-python/pulls/6272/comments","review_comment_url":"https://api.github.com/repos/mne-tools/mne-python/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mne-tools/mne-python/issues/6272/comments","statuses_url":"https://api.github.com/repos/mne-tools/mne-python/statuses/cd244cefd3a5465442361d24debdd74bee523f10","head":{"label":"DiGyt:read_curry","ref":"read_curry","sha":"cd244cefd3a5465442361d24debdd74bee523f10","user":{"login":"DiGyt","id":34550289,"node_id":"MDQ6VXNlcjM0NTUwMjg5","avatar_url":"https://avatars0.githubusercontent.com/u/34550289?v=4","gravatar_id":"","url":"https://api.github.com/users/DiGyt","html_url":"https://github.com/DiGyt","followers_url":"https://api.github.com/users/DiGyt/followers","following_url":"https://api.github.com/users/DiGyt/following{/other_user}","gists_url":"https://api.github.com/users/DiGyt/gists{/gist_id}","starred_url":"https://api.github.com/users/DiGyt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DiGyt/subscriptions","organizations_url":"https://api.github.com/users/DiGyt/orgs","repos_url":"https://api.github.com/users/DiGyt/repos","events_url":"https://api.github.com/users/DiGyt/events{/privacy}","received_events_url":"https://api.github.com/users/DiGyt/received_events","type":"User","site_admin":false},"repo":{"id":185010657,"node_id":"MDEwOlJlcG9zaXRvcnkxODUwMTA2NTc=","name":"mne-python","full_name":"DiGyt/mne-python","private":false,"owner":{"login":"DiGyt","id":34550289,"node_id":"MDQ6VXNlcjM0NTUwMjg5","avatar_url":"https://avatars0.githubusercontent.com/u/34550289?v=4","gravatar_id":"","url":"https://api.github.com/users/DiGyt","html_url":"https://github.com/DiGyt","followers_url":"https://api.github.com/users/DiGyt/followers","following_url":"https://api.github.com/users/DiGyt/following{/other_user}","gists_url":"https://api.github.com/users/DiGyt/gists{/gist_id}","starred_url":"https://api.github.com/users/DiGyt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DiGyt/subscriptions","organizations_url":"https://api.github.com/users/DiGyt/orgs","repos_url":"https://api.github.com/users/DiGyt/repos","events_url":"https://api.github.com/users/DiGyt/events{/privacy}","received_events_url":"https://api.github.com/users/DiGyt/received_events","type":"User","site_admin":false},"html_url":"https://github.com/DiGyt/mne-python","description":"MNE : Magnetoencephalography (MEG) and Electroencephalography (EEG) in Python","fork":true,"url":"https://api.github.com/repos/DiGyt/mne-python","forks_url":"https://api.github.com/repos/DiGyt/mne-python/forks","keys_url":"https://api.github.com/repos/DiGyt/mne-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DiGyt/mne-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DiGyt/mne-python/teams","hooks_url":"https://api.github.com/repos/DiGyt/mne-python/hooks","issue_events_url":"https://api.github.com/repos/DiGyt/mne-python/issues/events{/number}","events_url":"https://api.github.com/repos/DiGyt/mne-python/events","assignees_url":"https://api.github.com/repos/DiGyt/mne-python/assignees{/user}","branches_url":"https://api.github.com/repos/DiGyt/mne-python/branches{/branch}","tags_url":"https://api.github.com/repos/DiGyt/mne-python/tags","blobs_url":"https://api.github.com/repos/DiGyt/mne-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DiGyt/mne-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DiGyt/mne-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/DiGyt/mne-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DiGyt/mne-python/statuses/{sha}","languages_url":"https://api.github.com/repos/DiGyt/mne-python/languages","stargazers_url":"https://api.github.com/repos/DiGyt/mne-python/stargazers","contributors_url":"https://api.github.com/repos/DiGyt/mne-python/contributors","subscribers_url":"https://api.github.com/repos/DiGyt/mne-python/subscribers","subscription_url":"https://api.github.com/repos/DiGyt/mne-python/subscription","commits_url":"https://api.github.com/repos/DiGyt/mne-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/DiGyt/mne-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/DiGyt/mne-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/DiGyt/mne-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/DiGyt/mne-python/contents/{+path}","compare_url":"https://api.github.com/repos/DiGyt/mne-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DiGyt/mne-python/merges","archive_url":"https://api.github.com/repos/DiGyt/mne-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DiGyt/mne-python/downloads","issues_url":"https://api.github.com/repos/DiGyt/mne-python/issues{/number}","pulls_url":"https://api.github.com/repos/DiGyt/mne-python/pulls{/number}","milestones_url":"https://api.github.com/repos/DiGyt/mne-python/milestones{/number}","notifications_url":"https://api.github.com/repos/DiGyt/mne-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DiGyt/mne-python/labels{/name}","releases_url":"https://api.github.com/repos/DiGyt/mne-python/releases{/id}","deployments_url":"https://api.github.com/repos/DiGyt/mne-python/deployments","created_at":"2019-05-05T09:35:44Z","updated_at":"2019-06-27T10:55:24Z","pushed_at":"2019-06-28T15:22:11Z","git_url":"git://github.com/DiGyt/mne-python.git","ssh_url":"git@github.com:DiGyt/mne-python.git","clone_url":"https://github.com/DiGyt/mne-python.git","svn_url":"https://github.com/DiGyt/mne-python","homepage":"http://martinos.org/mne/","size":119454,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause","node_id":"MDc6TGljZW5zZTU="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mne-tools:master","ref":"master","sha":"fc1d25497fe2c47bd9aa129bf13ffb38aaaaf335","user":{"login":"mne-tools","id":583875,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU4Mzg3NQ==","avatar_url":"https://avatars3.githubusercontent.com/u/583875?v=4","gravatar_id":"","url":"https://api.github.com/users/mne-tools","html_url":"https://github.com/mne-tools","followers_url":"https://api.github.com/users/mne-tools/followers","following_url":"https://api.github.com/users/mne-tools/following{/other_user}","gists_url":"https://api.github.com/users/mne-tools/gists{/gist_id}","starred_url":"https://api.github.com/users/mne-tools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mne-tools/subscriptions","organizations_url":"https://api.github.com/users/mne-tools/orgs","repos_url":"https://api.github.com/users/mne-tools/repos","events_url":"https://api.github.com/users/mne-tools/events{/privacy}","received_events_url":"https://api.github.com/users/mne-tools/received_events","type":"Organization","site_admin":false},"repo":{"id":1301584,"node_id":"MDEwOlJlcG9zaXRvcnkxMzAxNTg0","name":"mne-python","full_name":"mne-tools/mne-python","private":false,"owner":{"login":"mne-tools","id":583875,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU4Mzg3NQ==","avatar_url":"https://avatars3.githubusercontent.com/u/583875?v=4","gravatar_id":"","url":"https://api.github.com/users/mne-tools","html_url":"https://github.com/mne-tools","followers_url":"https://api.github.com/users/mne-tools/followers","following_url":"https://api.github.com/users/mne-tools/following{/other_user}","gists_url":"https://api.github.com/users/mne-tools/gists{/gist_id}","starred_url":"https://api.github.com/users/mne-tools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mne-tools/subscriptions","organizations_url":"https://api.github.com/users/mne-tools/orgs","repos_url":"https://api.github.com/users/mne-tools/repos","events_url":"https://api.github.com/users/mne-tools/events{/privacy}","received_events_url":"https://api.github.com/users/mne-tools/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/mne-tools/mne-python","description":"MNE : Magnetoencephalography (MEG) and Electroencephalography (EEG) in Python","fork":false,"url":"https://api.github.com/repos/mne-tools/mne-python","forks_url":"https://api.github.com/repos/mne-tools/mne-python/forks","keys_url":"https://api.github.com/repos/mne-tools/mne-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mne-tools/mne-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mne-tools/mne-python/teams","hooks_url":"https://api.github.com/repos/mne-tools/mne-python/hooks","issue_events_url":"https://api.github.com/repos/mne-tools/mne-python/issues/events{/number}","events_url":"https://api.github.com/repos/mne-tools/mne-python/events","assignees_url":"https://api.github.com/repos/mne-tools/mne-python/assignees{/user}","branches_url":"https://api.github.com/repos/mne-tools/mne-python/branches{/branch}","tags_url":"https://api.github.com/repos/mne-tools/mne-python/tags","blobs_url":"https://api.github.com/repos/mne-tools/mne-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mne-tools/mne-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mne-tools/mne-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/mne-tools/mne-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mne-tools/mne-python/statuses/{sha}","languages_url":"https://api.github.com/repos/mne-tools/mne-python/languages","stargazers_url":"https://api.github.com/repos/mne-tools/mne-python/stargazers","contributors_url":"https://api.github.com/repos/mne-tools/mne-python/contributors","subscribers_url":"https://api.github.com/repos/mne-tools/mne-python/subscribers","subscription_url":"https://api.github.com/repos/mne-tools/mne-python/subscription","commits_url":"https://api.github.com/repos/mne-tools/mne-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/mne-tools/mne-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/mne-tools/mne-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/mne-tools/mne-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/mne-tools/mne-python/contents/{+path}","compare_url":"https://api.github.com/repos/mne-tools/mne-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mne-tools/mne-python/merges","archive_url":"https://api.github.com/repos/mne-tools/mne-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mne-tools/mne-python/downloads","issues_url":"https://api.github.com/repos/mne-tools/mne-python/issues{/number}","pulls_url":"https://api.github.com/repos/mne-tools/mne-python/pulls{/number}","milestones_url":"https://api.github.com/repos/mne-tools/mne-python/milestones{/number}","notifications_url":"https://api.github.com/repos/mne-tools/mne-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mne-tools/mne-python/labels{/name}","releases_url":"https://api.github.com/repos/mne-tools/mne-python/releases{/id}","deployments_url":"https://api.github.com/repos/mne-tools/mne-python/deployments","created_at":"2011-01-28T03:31:13Z","updated_at":"2019-07-01T13:08:27Z","pushed_at":"2019-07-01T14:41:44Z","git_url":"git://github.com/mne-tools/mne-python.git","ssh_url":"git@github.com:mne-tools/mne-python.git","clone_url":"https://github.com/mne-tools/mne-python.git","svn_url":"https://github.com/mne-tools/mne-python","homepage":"http://martinos.org/mne/","size":111007,"stargazers_count":886,"watchers_count":886,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":584,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":301,"license":{"key":"bsd-3-clause","name":"BSD 3-Clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause","node_id":"MDc6TGljZW5zZTU="},"forks":584,"open_issues":301,"watchers":886,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/6272"},"html":{"href":"https://github.com/mne-tools/mne-python/pull/6272"},"issue":{"href":"https://api.github.com/repos/mne-tools/mne-python/issues/6272"},"comments":{"href":"https://api.github.com/repos/mne-tools/mne-python/issues/6272/comments"},"review_comments":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/6272/comments"},"review_comment":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mne-tools/mne-python/pulls/6272/commits"},"statuses":{"href":"https://api.github.com/repos/mne-tools/mne-python/statuses/cd244cefd3a5465442361d24debdd74bee523f10"}},"author_association":"CONTRIBUTOR"}}
other: {"actor":{"display_login":"massich"}}