Skip to content
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

may be pydotplus would be sufficient? #2494

Closed
yarikoptic opened this issue Mar 11, 2018 · 1 comment
Closed

may be pydotplus would be sufficient? #2494

yarikoptic opened this issue Mar 11, 2018 · 1 comment

Comments

@yarikoptic
Copy link
Member

Summary

nipype depends on both pydot and pydotplus packages, with pydot versioned so not available e.g. on debian stable. but internally it seems to use neither of them directly:

$> git grep pydot
doc/users/install.rst:    'doc': ['Sphinx>=1.4', 'matplotlib', 'pydotplus', 'pydot>=1.2.3'],
nipype/info.py:    'pydotplus',
nipype/info.py:    'pydot>=%s' % PYDOT_MIN_VERSION,
nipype/info.py:    'doc': ['Sphinx>=1.4', 'numpydoc', 'matplotlib', 'pydotplus', 'pydot>=1.2.3'],
nipype/pipeline/engine/utils.py:    nx.drawing.nx_pydot.write_dot(pklgraph, simple_dot)
requirements.txt:pydotplus
requirements.txt:pydot>=1.2.3
rtd_requirements.txt:pydotplus
rtd_requirements.txt:pydot>=1.2.3

so is it just for networkx? shouldn't networkx then depend appropriately and nipype not declare any special relationship with pydot?

Thanks in advance for clarification

Actual behavior

Expected behavior

How to replicate the behavior

Script/Workflow details

Please put URL to code or code here (if not too long).

Platform details:

Please paste the output of: python -c "import nipype; print(nipype.get_info()); print(nipype.__version__)"

Execution environment

Choose one

  • Container [Tag: ???]
  • My python environment inside container [Base Tag: ???]
  • My python environment outside container
@effigies
Copy link
Member

effigies commented Mar 19, 2018

Networkx previously (1.11) depended on pydotplus, and now (2.0+) depends on pydot. The main problem is we need to support pre- and post-2.0. They did not previously include pydotplus in their explicit dependencies, although they now include pydot in their extras (albeit with no minimum version).

I'm not sure what the best way to accommodate this situation is. We do limit our dependency to "doc" extras. Possibly we could depend on pydotplus and use networkx[all] to pull in pydot if necessary, although the lack of a minimum version for pydot makes that difficult. Perhaps we should open an issue upstream, but that's not going to help with the networkx releases in the wild.

See #2159, #2196, networkx/networkx#1924, networkx/networkx#2272.

@effigies effigies closed this as completed Apr 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants