We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Test on Python 3.8
### Summary

Python 3.8 has been out for a month or so, and upstream libraries are mostly providing wheels. We should start 3.8 tests when it's feasible.

Necessary steps:

* [ ] Update `.travis.yml` to use Python 3.8
* [ ] Note any failures, identify whether they exist on our end or in a dependency
* [ ] Find blocking upstream issues and link to them so we can track
* [ ] When tests pass and urgent `FutureWarning`/`DeprecationWarning`s are dealt with, update the classifiers in `nipype/info.py` to indicate we support Python 3.8.

I marked this [![good-first-issue](https://img.shields.io/github/labels/nipy/nipype/good-first-issue)](https://github.com/nipy/nipype/labels/good-first-issue) but it's less for a new developer than someone looking to get more involved in project maintenance.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `nipype/info.py`
Content:
```
1 """ This file contains defines parameters for nipy that we use to fill
2 settings in setup.py, the nipy top-level docstring, and for building the
3 docs.  In setup.py in particular, we exec this file, so it cannot import nipy
4 """
5 
6 # nipype version information
7 # Remove -dev for release
8 __version__ = "1.5.0-rc1.post-dev"
9 
10 
11 def get_nipype_gitversion():
12     """Nipype version as reported by the last commit in git
13 
14     Returns
15     -------
16     None or str
17       Version of Nipype according to git.
18     """
19     import os
20     import subprocess
21 
22     try:
23         import nipype
24 
25         gitpath = os.path.realpath(
26             os.path.join(os.path.dirname(nipype.__file__), os.path.pardir)
27         )
28     except:
29         gitpath = os.getcwd()
30     gitpathgit = os.path.join(gitpath, ".git")
31     if not os.path.exists(gitpathgit):
32         return None
33     ver = None
34     try:
35         o, _ = subprocess.Popen(
36             "git describe", shell=True, cwd=gitpath, stdout=subprocess.PIPE
37         ).communicate()
38     except Exception:
39         pass
40     else:
41         ver = o.decode().strip().split("-")[-1]
42     return ver
43 
44 
45 if __version__.endswith("-dev"):
46     gitversion = get_nipype_gitversion()
47     if gitversion:
48         __version__ = "{}+{}".format(__version__, gitversion)
49 
50 CLASSIFIERS = [
51     "Development Status :: 5 - Production/Stable",
52     "Environment :: Console",
53     "Intended Audience :: Science/Research",
54     "License :: OSI Approved :: Apache Software License",
55     "Operating System :: MacOS :: MacOS X",
56     "Operating System :: POSIX :: Linux",
57     "Programming Language :: Python :: 3.6",
58     "Programming Language :: Python :: 3.7",
59     "Topic :: Scientific/Engineering",
60 ]
61 PYTHON_REQUIRES = ">= 3.6"
62 
63 description = "Neuroimaging in Python: Pipelines and Interfaces"
64 
65 # Note: this long_description is actually a copy/paste from the top-level
66 # README.txt, so that it shows up nicely on PyPI.  So please remember to edit
67 # it only in one place and sync it correctly.
68 long_description = """========================================================
69 NIPYPE: Neuroimaging in Python: Pipelines and Interfaces
70 ========================================================
71 
72 Current neuroimaging software offer users an incredible opportunity to
73 analyze data using a variety of different algorithms. However, this has
74 resulted in a heterogeneous collection of specialized applications
75 without transparent interoperability or a uniform operating interface.
76 
77 *Nipype*, an open-source, community-developed initiative under the
78 umbrella of `NiPy <http://nipy.org>`_, is a Python project that provides a
79 uniform interface to existing neuroimaging software and facilitates interaction
80 between these packages within a single workflow. Nipype provides an environment
81 that encourages interactive exploration of algorithms from different
82 packages (e.g., AFNI, ANTS, BRAINS, BrainSuite, Camino, FreeSurfer, FSL, MNE,
83 MRtrix, MNE, Nipy, Slicer, SPM), eases the design of workflows within and
84 between packages, and reduces the learning curve necessary to use different \
85 packages. Nipype is creating a collaborative platform for neuroimaging \
86 software development in a high-level language and addressing limitations of \
87 existing pipeline systems.
88 
89 *Nipype* allows you to:
90 
91 * easily interact with tools from different software packages
92 * combine processing steps from different software packages
93 * develop new workflows faster by reusing common steps from old ones
94 * process data faster by running it in parallel on many cores/machines
95 * make your research easily reproducible
96 * share your processing workflows with the community
97 """
98 
99 # versions
100 NIBABEL_MIN_VERSION = "2.1.0"
101 NETWORKX_MIN_VERSION = "1.9"
102 NUMPY_MIN_VERSION = "1.13"
103 # Numpy bug in python 3.7:
104 # https://www.opensourceanswers.com/blog/you-shouldnt-use-python-37-for-data-science-right-now.html
105 NUMPY_MIN_VERSION_37 = "1.15.3"
106 SCIPY_MIN_VERSION = "0.14"
107 TRAITS_MIN_VERSION = "4.6"
108 DATEUTIL_MIN_VERSION = "2.2"
109 FUTURE_MIN_VERSION = "0.16.0"
110 SIMPLEJSON_MIN_VERSION = "3.8.0"
111 PROV_VERSION = "1.5.2"
112 CLICK_MIN_VERSION = "6.6.0"
113 PYDOT_MIN_VERSION = "1.2.3"
114 
115 NAME = "nipype"
116 MAINTAINER = "nipype developers"
117 MAINTAINER_EMAIL = "neuroimaging@python.org"
118 DESCRIPTION = description
119 LONG_DESCRIPTION = long_description
120 URL = "http://nipy.org/nipype"
121 DOWNLOAD_URL = "http://github.com/nipy/nipype/archives/master"
122 LICENSE = "Apache License, 2.0"
123 AUTHOR = "nipype developers"
124 AUTHOR_EMAIL = "neuroimaging@python.org"
125 PLATFORMS = "OS Independent"
126 MAJOR = __version__.split(".")[0]
127 MINOR = __version__.split(".")[1]
128 MICRO = __version__.replace("-", ".").split(".")[2]
129 ISRELEASE = (
130     len(__version__.replace("-", ".").split(".")) == 3
131     or "post" in __version__.replace("-", ".").split(".")[-1]
132 )
133 VERSION = __version__
134 PROVIDES = ["nipype"]
135 REQUIRES = [
136     "click>=%s" % CLICK_MIN_VERSION,
137     "networkx>=%s" % NETWORKX_MIN_VERSION,
138     "nibabel>=%s" % NIBABEL_MIN_VERSION,
139     'numpy>=%s ; python_version < "3.7"' % NUMPY_MIN_VERSION,
140     'numpy>=%s ; python_version >= "3.7"' % NUMPY_MIN_VERSION_37,
141     "packaging",
142     "prov>=%s" % PROV_VERSION,
143     "pydot>=%s" % PYDOT_MIN_VERSION,
144     "pydotplus",
145     "python-dateutil>=%s" % DATEUTIL_MIN_VERSION,
146     "scipy>=%s" % SCIPY_MIN_VERSION,
147     "simplejson>=%s" % SIMPLEJSON_MIN_VERSION,
148     "traits>=%s,!=5.0" % TRAITS_MIN_VERSION,
149     "filelock>=3.0.0",
150     "etelemetry>=0.2.0",
151 ]
152 
153 # neurdflib has to come after prov
154 # https://github.com/nipy/nipype/pull/2961#issuecomment-512035484
155 REQUIRES += ["neurdflib"]
156 
157 TESTS_REQUIRES = [
158     "codecov",
159     "coverage<5",
160     "pytest",
161     "pytest-cov",
162     "pytest-env",
163     "pytest-timeout",
164 ]
165 
166 EXTRA_REQUIRES = {
167     "data": ["datalad"],
168     "doc": [
169         "dipy",
170         "ipython",
171         "matplotlib",
172         "nbsphinx",
173         "sphinx-argparse",
174         "sphinx>=2.1.2",
175         "sphinxcontrib-apidoc",
176         "sphinxcontrib-napoleon",
177     ],
178     "duecredit": ["duecredit"],
179     "nipy": ["nitime", "nilearn<0.5.0", "dipy", "nipy", "matplotlib"],
180     "profiler": ["psutil>=5.0"],
181     "pybids": ["pybids>=0.7.0"],
182     "specs": ["black"],
183     "ssh": ["paramiko"],
184     "tests": TESTS_REQUIRES,
185     "xvfbwrapper": ["xvfbwrapper"],
186     # 'mesh': ['mayavi']  # Enable when it works
187 }
188 
189 
190 def _list_union(iterable):
191     return list(set(sum(iterable, [])))
192 
193 
194 # Enable a handle to install all extra dependencies at once
195 EXTRA_REQUIRES["all"] = _list_union(EXTRA_REQUIRES.values())
196 # dev = doc + tests + specs
197 EXTRA_REQUIRES["dev"] = _list_union(
198     val for key, val in EXTRA_REQUIRES.items() if key in ("doc", "tests", "specs")
199 )
200 
201 STATUS = "stable"
202
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/nipype/info.py b/nipype/info.py
--- a/nipype/info.py
+++ b/nipype/info.py
@@ -56,6 +56,7 @@
     "Operating System :: POSIX :: Linux",
     "Programming Language :: Python :: 3.6",
     "Programming Language :: Python :: 3.7",
+    "Programming Language :: Python :: 3.8",
     "Topic :: Scientific/Engineering",
 ]
 PYTHON_REQUIRES = ">= 3.6"
@@ -109,6 +110,7 @@
 FUTURE_MIN_VERSION = "0.16.0"
 SIMPLEJSON_MIN_VERSION = "3.8.0"
 PROV_VERSION = "1.5.2"
+RDFLIB_MIN_VERSION = "5.0.0"
 CLICK_MIN_VERSION = "6.6.0"
 PYDOT_MIN_VERSION = "1.2.3"
 
@@ -143,6 +145,7 @@
     "pydot>=%s" % PYDOT_MIN_VERSION,
     "pydotplus",
     "python-dateutil>=%s" % DATEUTIL_MIN_VERSION,
+    "rdflib>=%s" % RDFLIB_MIN_VERSION,
     "scipy>=%s" % SCIPY_MIN_VERSION,
     "simplejson>=%s" % SIMPLEJSON_MIN_VERSION,
     "traits>=%s,!=5.0" % TRAITS_MIN_VERSION,
@@ -150,10 +153,6 @@
     "etelemetry>=0.2.0",
 ]
 
-# neurdflib has to come after prov
-# https://github.com/nipy/nipype/pull/2961#issuecomment-512035484
-REQUIRES += ["neurdflib"]
-
 TESTS_REQUIRES = [
     "codecov",
     "coverage<5",

{"golden_diff": "diff --git a/nipype/info.py b/nipype/info.py\n--- a/nipype/info.py\n+++ b/nipype/info.py\n@@ -56,6 +56,7 @@\n     \"Operating System :: POSIX :: Linux\",\n     \"Programming Language :: Python :: 3.6\",\n     \"Programming Language :: Python :: 3.7\",\n+    \"Programming Language :: Python :: 3.8\",\n     \"Topic :: Scientific/Engineering\",\n ]\n PYTHON_REQUIRES = \">= 3.6\"\n@@ -109,6 +110,7 @@\n FUTURE_MIN_VERSION = \"0.16.0\"\n SIMPLEJSON_MIN_VERSION = \"3.8.0\"\n PROV_VERSION = \"1.5.2\"\n+RDFLIB_MIN_VERSION = \"5.0.0\"\n CLICK_MIN_VERSION = \"6.6.0\"\n PYDOT_MIN_VERSION = \"1.2.3\"\n \n@@ -143,6 +145,7 @@\n     \"pydot>=%s\" % PYDOT_MIN_VERSION,\n     \"pydotplus\",\n     \"python-dateutil>=%s\" % DATEUTIL_MIN_VERSION,\n+    \"rdflib>=%s\" % RDFLIB_MIN_VERSION,\n     \"scipy>=%s\" % SCIPY_MIN_VERSION,\n     \"simplejson>=%s\" % SIMPLEJSON_MIN_VERSION,\n     \"traits>=%s,!=5.0\" % TRAITS_MIN_VERSION,\n@@ -150,10 +153,6 @@\n     \"etelemetry>=0.2.0\",\n ]\n \n-# neurdflib has to come after prov\n-# https://github.com/nipy/nipype/pull/2961#issuecomment-512035484\n-REQUIRES += [\"neurdflib\"]\n-\n TESTS_REQUIRES = [\n     \"codecov\",\n     \"coverage<5\",\n", "issue": "Test on Python 3.8\n### Summary\r\n\r\nPython 3.8 has been out for a month or so, and upstream libraries are mostly providing wheels. We should start 3.8 tests when it's feasible.\r\n\r\nNecessary steps:\r\n\r\n* [ ] Update `.travis.yml` to use Python 3.8\r\n* [ ] Note any failures, identify whether they exist on our end or in a dependency\r\n* [ ] Find blocking upstream issues and link to them so we can track\r\n* [ ] When tests pass and urgent `FutureWarning`/`DeprecationWarning`s are dealt with, update the classifiers in `nipype/info.py` to indicate we support Python 3.8.\r\n\r\nI marked this [![good-first-issue](https://img.shields.io/github/labels/nipy/nipype/good-first-issue)](https://github.com/nipy/nipype/labels/good-first-issue) but it's less for a new developer than someone looking to get more involved in project maintenance.\n", "before_files": [{"content": "\"\"\" This file contains defines parameters for nipy that we use to fill\nsettings in setup.py, the nipy top-level docstring, and for building the\ndocs.  In setup.py in particular, we exec this file, so it cannot import nipy\n\"\"\"\n\n# nipype version information\n# Remove -dev for release\n__version__ = \"1.5.0-rc1.post-dev\"\n\n\ndef get_nipype_gitversion():\n    \"\"\"Nipype version as reported by the last commit in git\n\n    Returns\n    -------\n    None or str\n      Version of Nipype according to git.\n    \"\"\"\n    import os\n    import subprocess\n\n    try:\n        import nipype\n\n        gitpath = os.path.realpath(\n            os.path.join(os.path.dirname(nipype.__file__), os.path.pardir)\n        )\n    except:\n        gitpath = os.getcwd()\n    gitpathgit = os.path.join(gitpath, \".git\")\n    if not os.path.exists(gitpathgit):\n        return None\n    ver = None\n    try:\n        o, _ = subprocess.Popen(\n            \"git describe\", shell=True, cwd=gitpath, stdout=subprocess.PIPE\n        ).communicate()\n    except Exception:\n        pass\n    else:\n        ver = o.decode().strip().split(\"-\")[-1]\n    return ver\n\n\nif __version__.endswith(\"-dev\"):\n    gitversion = get_nipype_gitversion()\n    if gitversion:\n        __version__ = \"{}+{}\".format(__version__, gitversion)\n\nCLASSIFIERS = [\n    \"Development Status :: 5 - Production/Stable\",\n    \"Environment :: Console\",\n    \"Intended Audience :: Science/Research\",\n    \"License :: OSI Approved :: Apache Software License\",\n    \"Operating System :: MacOS :: MacOS X\",\n    \"Operating System :: POSIX :: Linux\",\n    \"Programming Language :: Python :: 3.6\",\n    \"Programming Language :: Python :: 3.7\",\n    \"Topic :: Scientific/Engineering\",\n]\nPYTHON_REQUIRES = \">= 3.6\"\n\ndescription = \"Neuroimaging in Python: Pipelines and Interfaces\"\n\n# Note: this long_description is actually a copy/paste from the top-level\n# README.txt, so that it shows up nicely on PyPI.  So please remember to edit\n# it only in one place and sync it correctly.\nlong_description = \"\"\"========================================================\nNIPYPE: Neuroimaging in Python: Pipelines and Interfaces\n========================================================\n\nCurrent neuroimaging software offer users an incredible opportunity to\nanalyze data using a variety of different algorithms. However, this has\nresulted in a heterogeneous collection of specialized applications\nwithout transparent interoperability or a uniform operating interface.\n\n*Nipype*, an open-source, community-developed initiative under the\numbrella of `NiPy <http://nipy.org>`_, is a Python project that provides a\nuniform interface to existing neuroimaging software and facilitates interaction\nbetween these packages within a single workflow. Nipype provides an environment\nthat encourages interactive exploration of algorithms from different\npackages (e.g., AFNI, ANTS, BRAINS, BrainSuite, Camino, FreeSurfer, FSL, MNE,\nMRtrix, MNE, Nipy, Slicer, SPM), eases the design of workflows within and\nbetween packages, and reduces the learning curve necessary to use different \\\npackages. Nipype is creating a collaborative platform for neuroimaging \\\nsoftware development in a high-level language and addressing limitations of \\\nexisting pipeline systems.\n\n*Nipype* allows you to:\n\n* easily interact with tools from different software packages\n* combine processing steps from different software packages\n* develop new workflows faster by reusing common steps from old ones\n* process data faster by running it in parallel on many cores/machines\n* make your research easily reproducible\n* share your processing workflows with the community\n\"\"\"\n\n# versions\nNIBABEL_MIN_VERSION = \"2.1.0\"\nNETWORKX_MIN_VERSION = \"1.9\"\nNUMPY_MIN_VERSION = \"1.13\"\n# Numpy bug in python 3.7:\n# https://www.opensourceanswers.com/blog/you-shouldnt-use-python-37-for-data-science-right-now.html\nNUMPY_MIN_VERSION_37 = \"1.15.3\"\nSCIPY_MIN_VERSION = \"0.14\"\nTRAITS_MIN_VERSION = \"4.6\"\nDATEUTIL_MIN_VERSION = \"2.2\"\nFUTURE_MIN_VERSION = \"0.16.0\"\nSIMPLEJSON_MIN_VERSION = \"3.8.0\"\nPROV_VERSION = \"1.5.2\"\nCLICK_MIN_VERSION = \"6.6.0\"\nPYDOT_MIN_VERSION = \"1.2.3\"\n\nNAME = \"nipype\"\nMAINTAINER = \"nipype developers\"\nMAINTAINER_EMAIL = \"neuroimaging@python.org\"\nDESCRIPTION = description\nLONG_DESCRIPTION = long_description\nURL = \"http://nipy.org/nipype\"\nDOWNLOAD_URL = \"http://github.com/nipy/nipype/archives/master\"\nLICENSE = \"Apache License, 2.0\"\nAUTHOR = \"nipype developers\"\nAUTHOR_EMAIL = \"neuroimaging@python.org\"\nPLATFORMS = \"OS Independent\"\nMAJOR = __version__.split(\".\")[0]\nMINOR = __version__.split(\".\")[1]\nMICRO = __version__.replace(\"-\", \".\").split(\".\")[2]\nISRELEASE = (\n    len(__version__.replace(\"-\", \".\").split(\".\")) == 3\n    or \"post\" in __version__.replace(\"-\", \".\").split(\".\")[-1]\n)\nVERSION = __version__\nPROVIDES = [\"nipype\"]\nREQUIRES = [\n    \"click>=%s\" % CLICK_MIN_VERSION,\n    \"networkx>=%s\" % NETWORKX_MIN_VERSION,\n    \"nibabel>=%s\" % NIBABEL_MIN_VERSION,\n    'numpy>=%s ; python_version < \"3.7\"' % NUMPY_MIN_VERSION,\n    'numpy>=%s ; python_version >= \"3.7\"' % NUMPY_MIN_VERSION_37,\n    \"packaging\",\n    \"prov>=%s\" % PROV_VERSION,\n    \"pydot>=%s\" % PYDOT_MIN_VERSION,\n    \"pydotplus\",\n    \"python-dateutil>=%s\" % DATEUTIL_MIN_VERSION,\n    \"scipy>=%s\" % SCIPY_MIN_VERSION,\n    \"simplejson>=%s\" % SIMPLEJSON_MIN_VERSION,\n    \"traits>=%s,!=5.0\" % TRAITS_MIN_VERSION,\n    \"filelock>=3.0.0\",\n    \"etelemetry>=0.2.0\",\n]\n\n# neurdflib has to come after prov\n# https://github.com/nipy/nipype/pull/2961#issuecomment-512035484\nREQUIRES += [\"neurdflib\"]\n\nTESTS_REQUIRES = [\n    \"codecov\",\n    \"coverage<5\",\n    \"pytest\",\n    \"pytest-cov\",\n    \"pytest-env\",\n    \"pytest-timeout\",\n]\n\nEXTRA_REQUIRES = {\n    \"data\": [\"datalad\"],\n    \"doc\": [\n        \"dipy\",\n        \"ipython\",\n        \"matplotlib\",\n        \"nbsphinx\",\n        \"sphinx-argparse\",\n        \"sphinx>=2.1.2\",\n        \"sphinxcontrib-apidoc\",\n        \"sphinxcontrib-napoleon\",\n    ],\n    \"duecredit\": [\"duecredit\"],\n    \"nipy\": [\"nitime\", \"nilearn<0.5.0\", \"dipy\", \"nipy\", \"matplotlib\"],\n    \"profiler\": [\"psutil>=5.0\"],\n    \"pybids\": [\"pybids>=0.7.0\"],\n    \"specs\": [\"black\"],\n    \"ssh\": [\"paramiko\"],\n    \"tests\": TESTS_REQUIRES,\n    \"xvfbwrapper\": [\"xvfbwrapper\"],\n    # 'mesh': ['mayavi']  # Enable when it works\n}\n\n\ndef _list_union(iterable):\n    return list(set(sum(iterable, [])))\n\n\n# Enable a handle to install all extra dependencies at once\nEXTRA_REQUIRES[\"all\"] = _list_union(EXTRA_REQUIRES.values())\n# dev = doc + tests + specs\nEXTRA_REQUIRES[\"dev\"] = _list_union(\n    val for key, val in EXTRA_REQUIRES.items() if key in (\"doc\", \"tests\", \"specs\")\n)\n\nSTATUS = \"stable\"\n", "path": "nipype/info.py"}], "after_files": [{"content": "\"\"\" This file contains defines parameters for nipy that we use to fill\nsettings in setup.py, the nipy top-level docstring, and for building the\ndocs.  In setup.py in particular, we exec this file, so it cannot import nipy\n\"\"\"\n\n# nipype version information\n# Remove -dev for release\n__version__ = \"1.5.0-rc1.post-dev\"\n\n\ndef get_nipype_gitversion():\n    \"\"\"Nipype version as reported by the last commit in git\n\n    Returns\n    -------\n    None or str\n      Version of Nipype according to git.\n    \"\"\"\n    import os\n    import subprocess\n\n    try:\n        import nipype\n\n        gitpath = os.path.realpath(\n            os.path.join(os.path.dirname(nipype.__file__), os.path.pardir)\n        )\n    except:\n        gitpath = os.getcwd()\n    gitpathgit = os.path.join(gitpath, \".git\")\n    if not os.path.exists(gitpathgit):\n        return None\n    ver = None\n    try:\n        o, _ = subprocess.Popen(\n            \"git describe\", shell=True, cwd=gitpath, stdout=subprocess.PIPE\n        ).communicate()\n    except Exception:\n        pass\n    else:\n        ver = o.decode().strip().split(\"-\")[-1]\n    return ver\n\n\nif __version__.endswith(\"-dev\"):\n    gitversion = get_nipype_gitversion()\n    if gitversion:\n        __version__ = \"{}+{}\".format(__version__, gitversion)\n\nCLASSIFIERS = [\n    \"Development Status :: 5 - Production/Stable\",\n    \"Environment :: Console\",\n    \"Intended Audience :: Science/Research\",\n    \"License :: OSI Approved :: Apache Software License\",\n    \"Operating System :: MacOS :: MacOS X\",\n    \"Operating System :: POSIX :: Linux\",\n    \"Programming Language :: Python :: 3.6\",\n    \"Programming Language :: Python :: 3.7\",\n    \"Programming Language :: Python :: 3.8\",\n    \"Topic :: Scientific/Engineering\",\n]\nPYTHON_REQUIRES = \">= 3.6\"\n\ndescription = \"Neuroimaging in Python: Pipelines and Interfaces\"\n\n# Note: this long_description is actually a copy/paste from the top-level\n# README.txt, so that it shows up nicely on PyPI.  So please remember to edit\n# it only in one place and sync it correctly.\nlong_description = \"\"\"========================================================\nNIPYPE: Neuroimaging in Python: Pipelines and Interfaces\n========================================================\n\nCurrent neuroimaging software offer users an incredible opportunity to\nanalyze data using a variety of different algorithms. However, this has\nresulted in a heterogeneous collection of specialized applications\nwithout transparent interoperability or a uniform operating interface.\n\n*Nipype*, an open-source, community-developed initiative under the\numbrella of `NiPy <http://nipy.org>`_, is a Python project that provides a\nuniform interface to existing neuroimaging software and facilitates interaction\nbetween these packages within a single workflow. Nipype provides an environment\nthat encourages interactive exploration of algorithms from different\npackages (e.g., AFNI, ANTS, BRAINS, BrainSuite, Camino, FreeSurfer, FSL, MNE,\nMRtrix, MNE, Nipy, Slicer, SPM), eases the design of workflows within and\nbetween packages, and reduces the learning curve necessary to use different \\\npackages. Nipype is creating a collaborative platform for neuroimaging \\\nsoftware development in a high-level language and addressing limitations of \\\nexisting pipeline systems.\n\n*Nipype* allows you to:\n\n* easily interact with tools from different software packages\n* combine processing steps from different software packages\n* develop new workflows faster by reusing common steps from old ones\n* process data faster by running it in parallel on many cores/machines\n* make your research easily reproducible\n* share your processing workflows with the community\n\"\"\"\n\n# versions\nNIBABEL_MIN_VERSION = \"2.1.0\"\nNETWORKX_MIN_VERSION = \"1.9\"\nNUMPY_MIN_VERSION = \"1.13\"\n# Numpy bug in python 3.7:\n# https://www.opensourceanswers.com/blog/you-shouldnt-use-python-37-for-data-science-right-now.html\nNUMPY_MIN_VERSION_37 = \"1.15.3\"\nSCIPY_MIN_VERSION = \"0.14\"\nTRAITS_MIN_VERSION = \"4.6\"\nDATEUTIL_MIN_VERSION = \"2.2\"\nFUTURE_MIN_VERSION = \"0.16.0\"\nSIMPLEJSON_MIN_VERSION = \"3.8.0\"\nPROV_VERSION = \"1.5.2\"\nRDFLIB_MIN_VERSION = \"5.0.0\"\nCLICK_MIN_VERSION = \"6.6.0\"\nPYDOT_MIN_VERSION = \"1.2.3\"\n\nNAME = \"nipype\"\nMAINTAINER = \"nipype developers\"\nMAINTAINER_EMAIL = \"neuroimaging@python.org\"\nDESCRIPTION = description\nLONG_DESCRIPTION = long_description\nURL = \"http://nipy.org/nipype\"\nDOWNLOAD_URL = \"http://github.com/nipy/nipype/archives/master\"\nLICENSE = \"Apache License, 2.0\"\nAUTHOR = \"nipype developers\"\nAUTHOR_EMAIL = \"neuroimaging@python.org\"\nPLATFORMS = \"OS Independent\"\nMAJOR = __version__.split(\".\")[0]\nMINOR = __version__.split(\".\")[1]\nMICRO = __version__.replace(\"-\", \".\").split(\".\")[2]\nISRELEASE = (\n    len(__version__.replace(\"-\", \".\").split(\".\")) == 3\n    or \"post\" in __version__.replace(\"-\", \".\").split(\".\")[-1]\n)\nVERSION = __version__\nPROVIDES = [\"nipype\"]\nREQUIRES = [\n    \"click>=%s\" % CLICK_MIN_VERSION,\n    \"networkx>=%s\" % NETWORKX_MIN_VERSION,\n    \"nibabel>=%s\" % NIBABEL_MIN_VERSION,\n    'numpy>=%s ; python_version < \"3.7\"' % NUMPY_MIN_VERSION,\n    'numpy>=%s ; python_version >= \"3.7\"' % NUMPY_MIN_VERSION_37,\n    \"packaging\",\n    \"prov>=%s\" % PROV_VERSION,\n    \"pydot>=%s\" % PYDOT_MIN_VERSION,\n    \"pydotplus\",\n    \"python-dateutil>=%s\" % DATEUTIL_MIN_VERSION,\n    \"rdflib>=%s\" % RDFLIB_MIN_VERSION,\n    \"scipy>=%s\" % SCIPY_MIN_VERSION,\n    \"simplejson>=%s\" % SIMPLEJSON_MIN_VERSION,\n    \"traits>=%s,!=5.0\" % TRAITS_MIN_VERSION,\n    \"filelock>=3.0.0\",\n    \"etelemetry>=0.2.0\",\n]\n\nTESTS_REQUIRES = [\n    \"codecov\",\n    \"coverage<5\",\n    \"pytest\",\n    \"pytest-cov\",\n    \"pytest-env\",\n    \"pytest-timeout\",\n]\n\nEXTRA_REQUIRES = {\n    \"data\": [\"datalad\"],\n    \"doc\": [\n        \"dipy\",\n        \"ipython\",\n        \"matplotlib\",\n        \"nbsphinx\",\n        \"sphinx-argparse\",\n        \"sphinx>=2.1.2\",\n        \"sphinxcontrib-apidoc\",\n        \"sphinxcontrib-napoleon\",\n    ],\n    \"duecredit\": [\"duecredit\"],\n    \"nipy\": [\"nitime\", \"nilearn<0.5.0\", \"dipy\", \"nipy\", \"matplotlib\"],\n    \"profiler\": [\"psutil>=5.0\"],\n    \"pybids\": [\"pybids>=0.7.0\"],\n    \"specs\": [\"black\"],\n    \"ssh\": [\"paramiko\"],\n    \"tests\": TESTS_REQUIRES,\n    \"xvfbwrapper\": [\"xvfbwrapper\"],\n    # 'mesh': ['mayavi']  # Enable when it works\n}\n\n\ndef _list_union(iterable):\n    return list(set(sum(iterable, [])))\n\n\n# Enable a handle to install all extra dependencies at once\nEXTRA_REQUIRES[\"all\"] = _list_union(EXTRA_REQUIRES.values())\n# dev = doc + tests + specs\nEXTRA_REQUIRES[\"dev\"] = _list_union(\n    val for key, val in EXTRA_REQUIRES.items() if key in (\"doc\", \"tests\", \"specs\")\n)\n\nSTATUS = \"stable\"\n", "path": "nipype/info.py"}]}