@@ -75,6 +75,118 @@ requires = [
7575 " setuptools_scm>=7" ,
7676]
7777
78+ [dependency-groups ]
79+ build = [
80+ " pybind11>=2.13.2,!=2.13.3" ,
81+ " meson-python" ,
82+ " setuptools-scm" ,
83+ ]
84+ dev = [
85+ {include-group = " build" },
86+ {include-group = " doc" },
87+ {include-group = " test" },
88+ {include-group = " test-extra" },
89+ {include-group = " lint" },
90+ ]
91+ # Requirements for building docs
92+ #
93+ # You will first need a matching Matplotlib installation
94+ # e.g (from the Matplotlib root directory)
95+ # pip install --no-build-isolation --editable .[dev]
96+ #
97+ # Install the documentation requirements with:
98+ # pip install -r requirements/doc/doc-requirements.txt
99+ #
100+ doc = [
101+ " sphinx>=5.1.0,!=6.1.2" ,
102+ " colorspacious" ,
103+ " ipython" ,
104+ " ipywidgets" ,
105+ " ipykernel" ,
106+ " numpydoc>=1.0" ,
107+ " packaging>=20" ,
108+ " pydata-sphinx-theme~=0.15.0" ,
109+ " mpl-sphinx-theme~=3.9.0" ,
110+ " pyyaml" ,
111+ " PyStemmer" ,
112+ " sphinxcontrib-svg2pdfconverter>=1.1.0" ,
113+ " sphinxcontrib-video>=0.2.1" ,
114+ " sphinx-copybutton" ,
115+ " sphinx-design" ,
116+ " sphinx-gallery[parallel]>=0.12.0" ,
117+ " sphinx-tags>=0.4.0" ,
118+ ]
119+
120+ # pip requirements for all the CI builds
121+ test = [
122+ " black<24" ,
123+ " certifi" ,
124+ " coverage!=6.3" ,
125+ " psutil" ,
126+ " pytest!=4.6.0,!=5.4.0,!=8.1.0" ,
127+ " pytest-cov" ,
128+ " pytest-rerunfailures" ,
129+ " pytest-timeout" ,
130+ " pytest-xdist" ,
131+ " pytest-xvfb" ,
132+ " tornado" ,
133+ ]
134+
135+ # Extra pip requirements for the Python 3.10+ builds
136+ test-extra = [
137+ " --prefer-binary" ,
138+ " ipykernel" ,
139+ # jupyter/nbconvert#1970 for the 7.3 series exclusions
140+ " nbconvert[execute]!=6.0.0,!=6.0.1,!=7.3.0,!=7.3.1" ,
141+ " nbformat!=5.0.0,!=5.0.1" ,
142+ " pandas!=0.25.0" ,
143+ " pikepdf" ,
144+ " pytz" ,
145+ " pywin32; sys.platform == 'win32'" ,
146+ " xarray" ,
147+ ]
148+
149+ # Extra pip requirements for the minimum-version CI run
150+ test-minver = [
151+ " contourpy==1.0.1" ,
152+ " cycler==0.10" ,
153+ " fonttools==4.22.0" ,
154+ " importlib-resources==3.2.0" ,
155+ " kiwisolver==1.3.2" ,
156+ " meson-python==0.13.1" ,
157+ " meson==1.1.0" ,
158+ " numpy==1.23.0" ,
159+ " packaging==20.0" ,
160+ " pillow==8.3.2" ,
161+ " pyparsing==2.3.1" ,
162+ " pytest==7.0.0" ,
163+ " python-dateutil==2.7" ,
164+ ]
165+
166+ # Extra pip requirements for the GitHub Actions flake8 build
167+ lint = [
168+ " flake8>=3.8" ,
169+ # versions less than 5.1.0 raise on some interp'd docstrings
170+ " pydocstyle>=5.1.0" ,
171+ # 1.4.0 adds docstring-convention=all
172+ " flake8-docstrings>=1.4.0" ,
173+ # fix bug where flake8 aborts checking on syntax error
174+ " flake8-force" ,
175+ ]
176+
177+ # Extra pip requirements for the GitHub Actions mypy build
178+ typing = [
179+ " mypy>=1.9" ,
180+ " typing-extensions>=4.6" ,
181+ # Extra stubs distributed separately from the main pypi package
182+ " pandas-stubs" ,
183+ " types-pillow" ,
184+ " types-python-dateutil" ,
185+ " types-psutil" ,
186+ " sphinx" ,
187+ {include-group = " build" },
188+ ]
189+
78190[tool .meson-python .args ]
79191install = [' --tags=data,python-runtime,runtime' ]
80192
0 commit comments