-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
build: improve opt deps #16340
build: improve opt deps #16340
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -47,35 +47,30 @@ dependencies = [ | |
] | ||
|
||
[project.optional-dependencies] | ||
test = [ | ||
"pytest>=7.0", | ||
"pytest-doctestplus>=0.12", | ||
"pytest-astropy-header>=0.2.1", | ||
"pytest-astropy>=0.10", | ||
"pytest-xdist", | ||
"threadpoolctl", | ||
] | ||
test_all = [ | ||
"astropy[test]", # installs the [test] dependencies | ||
"objgraph", | ||
"ipykernel", | ||
"ipython>=7.32", | ||
"ipywidgets", | ||
"coverage[toml]", | ||
"skyfield>=1.20", | ||
"sgp4>=2.3", | ||
"array-api-strict", | ||
] | ||
# Recommended run-time dependencies to enable a lot of functionality within Astropy. | ||
recommended = [ | ||
"scipy>=1.8", | ||
"matplotlib>=3.3,!=3.4.0,!=3.5.2", | ||
] | ||
typing = [ | ||
"typing_extensions>=4.0.0" | ||
# Optional IPython-related behavior is in many places in Astropy. IPython is a complex | ||
# dependency that occasionally requires pinning one of it's upstream dependencies. If | ||
# you are using Astropy from an IPython-dependent IDE, like Jupyter, this should enforce | ||
# the minimum supported version of IPython. | ||
ipython = [ | ||
"ipython>=7.32", | ||
] | ||
jupyter = [ # these are optional dependencies for `utils.console` | ||
"astropy[ipython]", | ||
"ipywidgets", | ||
"ipykernel", | ||
] | ||
Comment on lines
+62
to
66
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Does this install There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think it does. But I'm also not sure it should: There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Something seems to be pulling in jupyter stack but it is already that way in main. Hmm!
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is just moving around the dependencies, not adding any. I titled it jupyter since it's for use when in a Jupyter environment. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is in contrast to the ipython dep, which enables functionality in There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do you expect anyone to ever use the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes. Even if not publicly advertised, these things have a way of finding their users, in my experience. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For another PR, but I do think we should have a page detailing these install options. Like... If you're using an IPYthon environment, use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It might indeed be the case that documentation could explain what these dependency sets would be good for, but the more dependency sets we have, the more documentation we need to explain them. At some point the more granular dependency sets will not be worth the effort of documenting them. |
||
# This is ALL the run-time optional dependencies. | ||
all = [ | ||
"astropy[recommended]", # installs the [recommended] dependencies | ||
"astropy[typing]", | ||
# Install grouped optional dependencies | ||
"astropy[recommended]", | ||
"astropy[ipython]", | ||
"astropy[jupyter]", | ||
# Install all remaining optional dependencies | ||
"certifi", | ||
"dask[array]", | ||
"h5py", | ||
|
@@ -90,13 +85,32 @@ all = [ | |
"mpmath", | ||
"asdf-astropy>=0.3", | ||
"bottleneck", | ||
"ipykernel", | ||
"ipython>=7.32", | ||
"ipywidgets", | ||
"pytest>=7.0", | ||
"fsspec[http]>=2023.4.0", | ||
"s3fs>=2023.4.0", | ||
] | ||
# The base set of test-time dependencies. | ||
test = [ | ||
"coverage[toml]", | ||
"pre-commit", | ||
"pytest>=7.0", | ||
"pytest-doctestplus>=0.12", | ||
"pytest-astropy-header>=0.2.1", | ||
"pytest-astropy>=0.10", | ||
"pytest-xdist", | ||
"threadpoolctl", | ||
] | ||
test_all = [ | ||
# Install grouped optional dependencies | ||
"astropy[all]", # installs all optional run-time dependencies | ||
"astropy[test]", | ||
# Install all remaining dependencies | ||
"objgraph", | ||
"skyfield>=1.20", | ||
"sgp4>=2.3", | ||
"array-api-strict", | ||
] | ||
typing = [ | ||
"typing_extensions>=4.0.0", | ||
] | ||
docs = [ | ||
"astropy[recommended]", # installs the [recommended] dependencies | ||
|
@@ -110,6 +124,17 @@ docs = [ | |
"sphinxcontrib-globalsubs >= 0.1.1", | ||
"matplotlib!=3.9.0", # https://github.com/matplotlib/matplotlib/issues/28234 | ||
] | ||
# These group together all the dependencies needed for developing in Astropy. | ||
dev = [ | ||
"astropy[recommended]", # installs the most common optional dependencies | ||
"astropy[test]", | ||
"astropy[docs]", | ||
"astropy[typing]", | ||
] | ||
dev_all = [ | ||
"astropy[dev]", | ||
"astropy[test_all]", | ||
] | ||
|
||
[project.urls] | ||
homepage = "https://www.astropy.org/" | ||
|
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.
It would be much better if these descriptions could link to relevant subsections in the description of dependencies, but that would require those subsections to exist. It looks like all the installation instructions (including the installation instructions for building documentation) could benefit from being rewritten, but that's going beyond the scope of this pull request and is best done in a separate pull request instead.