-
Notifications
You must be signed in to change notification settings - Fork 532
[ENH] Abandon distutils #1627
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ENH] Abandon distutils #1627
Conversation
One possible improvement to help novice users would be adding a check on the available third party tools (AFNI, FSL, FreeSurfer, etc.) and report it ala matplotlib, warning the user about those missing software pieces. |
Current coverage is 70.95% (diff: 100%)@@ master #1627 diff @@
==========================================
Files 1027 1027
Lines 51574 51577 +3
Methods 0 0
Messages 0 0
Branches 7309 7310 +1
==========================================
+ Hits 36564 36596 +32
+ Misses 13917 13887 -30
- Partials 1093 1094 +1
|
That sounds pretty cool! Something like But I guess that'd be better in another PR, right? |
@oesteban - resolve conflicts here. |
EXTRA_REQUIRES = { | ||
'doc': ['Sphinx>=0.3'], | ||
'tests': TESTS_REQUIRES, | ||
'fmri': ['nitime', 'nilearn'], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shouldn't this also have support for nipy and dipy and matplotlib?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the fmri extra or the tests extras? I guess so, this is the best moment to decide the dependencies and how we organize them
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
perhaps for both, but at present for the various interfaces.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, for the doc extra, what are the dependencies?? There were some graphviz-related dependencies here right?. Also matplotlib.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all of them actually require graphviz installed. but if pydot2 or pydotplus works, i think those are the most recent things. i haven't looked into this in a while.
@@ -70,27 +70,26 @@ def get_nipype_gitversion(): | |||
# Note: this long_description is actually a copy/paste from the top-level | |||
# README.txt, so that it shows up nicely on PyPI. So please remember to edit | |||
# it only in one place and sync it correctly. | |||
long_description = \ | |||
""" | |||
long_description = """\ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a triple-quoted string should not require a \
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is to avoid that newline, but I can remove it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can make the string start right after the quotes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, np. It just looked nicer to me this way. Probably not for others, will change XD
@oesteban - should we merge this before or after the command line changes? |
@satra I'd do this before. When the command line can be added as an |
Ok, this is ready. However, please double check that writing the COMMIT_INFO still works. Other than that, I think this is pretty done |
@oesteban - still has byte/str issues: on python 3, any stream from popen returns bytes and should be stripped and decoded.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this works fine in py2 but not in py3 because bytes are str are equivalent in py2 but different in py3.
shell=True) | ||
repo_commit, _ = proc.communicate() | ||
# Fix for python 3 | ||
repo_commit = '{}'.format(repo_commit) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should use repo_commit.decode()
on py3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
@satra - I've been also looking at getting rid of that long list of packages, using
Do we really want to install all those |
This PR removes the dependency on
distutils
and uses onlysetuptools
.Following the recommendations I have reorganized the way nipype installs. Reading through this discussion it seems that
requirements.txt
should be written for development environments, and production (pypi, mostly) dependencies should be handled withsetuptools
.Therefore, in this PR we start using all the available possibilities (
setup_requires
,install_requires
,test_requires
,extra_requires
, etc.) to install nipype smoothly.I am testing all the possibilities with fresh environments:
Regular user install through pypi, with the duecredit extra dependency:
Regular user install from master:
Developer install:
Testing install:
The available extra dependencies are listed here: https://github.com/oesteban/nipype/blob/enh/MigrateToSetuptools/nipype/info.py#L157
This PR requires #1623 to be merged first. Closes #1605