-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Support PEP621 #1910
Support PEP621 #1910
Conversation
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.
Thanks @jules-ch! I've not tried this out yet, but here are some initial comments from reading the diff.
Things I plan to check:
- Does it result in the same/equivalent wheel as the current configuration?
- Does
pip show pvlib
have equivalent output? - Does PyPI show information correctly?
- Do editable installs work as expected?
Just to cross-link previous discussion on this topic: #1486
'pytest-remotedata', | ||
'packaging', | ||
] | ||
all = ["pvlib[test,optional,doc]"] |
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.
I was curious about using a recursive dependency to construct combined dependency groups. In case anyone else is interested: from what I can tell, this is a not-yet-documented (see discuss and pypa/pip#11296) feature of pip that other projects are using, e.g. https://github.com/astropy/astropy/blob/main/pyproject.toml#L73
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.
Tell me if you'd prefer to have explicit dependencies.
Hey @kandersolar thanks for the review. Last time I checked it was producing the same wheel content. I'll double check that and post the produced wheel with I'll double check for editable but I'm pretty sure it will work aswell, setuptools support editable with pyproject.toml now . |
Here is the diff with METADATA in the dist-info folder in the wheel: --- a/dist/pvlib-0.10.3.dev21+gd5c916f-py3-none-any/pvlib-0.10.3.dev21+gd5c916f.dist-info/METADATA
+++ b/dist/pvlib-0.10.3.dev20+g304fbb5-py3-none-any/pvlib-0.10.3.dev20+g304fbb5.dist-info/METADATA
@@ -1,10 +1,11 @@
Metadata-Version: 2.1
Name: pvlib
-Version: 0.10.3.dev21+gd5c916f
+Version: 0.10.3.dev20+g304fbb5
Summary: A set of functions and classes for simulating the performance of photovoltaic energy systems.
Home-page: https://github.com/pvlib/pvlib-python
-Author-email: pvlib python Developers <pvlib-admin@googlegroups.com>
-License: BSD-3-Clause
+Author: pvlib python Developers
+Maintainer-email: pvlib-admin@googlegroups.com
+License: BSD 3-Clause
Project-URL: Bug Tracker, https://github.com/pvlib/pvlib-python/issues
Project-URL: Documentation, https://pvlib-python.readthedocs.io/
Project-URL: Source Code, https://github.com/pvlib/pvlib-python
@@ -27,7 +28,28 @@ Requires-Dist: scipy >=1.5.0
Requires-Dist: h5py
Requires-Dist: importlib-metadata ; python_version < "3.8"
Provides-Extra: all
-Requires-Dist: pvlib[doc,optional,test] ; extra == 'all'
+Requires-Dist: cython ; extra == 'all'
+Requires-Dist: docutils ==0.15.2 ; extra == 'all'
+Requires-Dist: ephem ; extra == 'all'
+Requires-Dist: ipython ; extra == 'all'
+Requires-Dist: matplotlib ; extra == 'all'
+Requires-Dist: nrel-pysam ; extra == 'all'
+Requires-Dist: numba ; extra == 'all'
+Requires-Dist: packaging ; extra == 'all'
+Requires-Dist: pillow ; extra == 'all'
+Requires-Dist: pydata-sphinx-theme ==0.8.1 ; extra == 'all'
+Requires-Dist: pytest ; extra == 'all'
+Requires-Dist: pytest-cov ; extra == 'all'
+Requires-Dist: pytest-mock ; extra == 'all'
+Requires-Dist: pytest-remotedata ; extra == 'all'
+Requires-Dist: pytest-rerunfailures ; extra == 'all'
+Requires-Dist: pytest-timeout ; extra == 'all'
+Requires-Dist: requests-mock ; extra == 'all'
+Requires-Dist: solarfactors ; extra == 'all'
+Requires-Dist: sphinx ==4.5.0 ; extra == 'all'
+Requires-Dist: sphinx-gallery ; extra == 'all'
+Requires-Dist: sphinx-toggleprompt >=0.0.5 ; extra == 'all'
+Requires-Dist: statsmodels ; extra == 'all'
Provides-Extra: doc
Requires-Dist: ipython ; extra == 'doc'
Requires-Dist: matplotlib ; extra == 'doc'
@@ -55,6 +77,7 @@ Requires-Dist: pytest-rerunfailures ; extra == 'test'
Requires-Dist: pytest-remotedata ; extra == 'test'
Requires-Dist: packaging ; extra == 'test'
+
pvlib python is a community developed toolbox that provides a set of
functions and classes for simulating the performance of photovoltaic
energy systems and accomplishing related tasks. The core mission of pvlib |
looking in the RECORD, only the METADATA sha256 has been changed. @@ -164,9 +164,9 @@ pvlib/tests/ivtools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
pvlib/tests/ivtools/test_sde.py,sha256=dBJkk9tWskwc6Iyoziar9MoZESrOSkepOk51g5QOy1I,13844
pvlib/tests/ivtools/test_sdm.py,sha256=5ioqsEJJE-JCSCGRLXj1zCuJzGIPNY622GyflJMU_MM,16406
pvlib/tests/ivtools/test_utils.py,sha256=-BPEUgB5aCkJOv-apRkjeg0IraZ1Ebf5SmObk4Zusz4,6905
-pvlib-0.10.3.dev21+gd5c916f.dist-info/AUTHORS.md,sha256=Fxk4p_lXlMeQ6g2A1-7oPrgpULDxuJuC9Ebc-3yyj_o,1474
-pvlib-0.10.3.dev21+gd5c916f.dist-info/LICENSE,sha256=oC4S3araPPDV292K_91XfC7sZAdYqVhCowT3UTuMC-Q,1622
-pvlib-0.10.3.dev21+gd5c916f.dist-info/METADATA,sha256=EFM5OLgcOtuWb9-Dc4OmhwP4r-LF62mLAZ0UIui7Fis,2851
-pvlib-0.10.3.dev21+gd5c916f.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
-pvlib-0.10.3.dev21+gd5c916f.dist-info/top_level.txt,sha256=eq9CH6YXUc3Fh3dyQ5hQXoGYfSm1SYEAlMygyR22MgE,6
-pvlib-0.10.3.dev21+gd5c916f.dist-info/RECORD,,
+pvlib-0.10.3.dev20+g304fbb5.dist-info/AUTHORS.md,sha256=Fxk4p_lXlMeQ6g2A1-7oPrgpULDxuJuC9Ebc-3yyj_o,1474
+pvlib-0.10.3.dev20+g304fbb5.dist-info/LICENSE,sha256=oC4S3araPPDV292K_91XfC7sZAdYqVh
CowT3UTuMC-Q,1622
+pvlib-0.10.3.dev20+g304fbb5.dist-info/METADATA,sha256=jA-4LhDa0kdphiPfJI_pqJJwZl4WDA
kxdZHmCJAdIsE,3802
+pvlib-0.10.3.dev20+g304fbb5.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGe
r_elqB3coM,92
+pvlib-0.10.3.dev20+g304fbb5.dist-info/top_level.txt,sha256=eq9CH6YXUc3Fh3dyQ5hQXoGYf
Sm1SYEAlMygyR22MgE,6
+pvlib-0.10.3.dev20+g304fbb5.dist-info/RECORD,, |
pip show
Only change is the Author Author mail thingy don't know if its a bug though. |
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.
I finally found time to take a close look at this. LGTM! Thanks @jules-ch! I'll leave this open for a few days in case anyone else wants to review as well.
Following most scientific packages, add support PEP621 https://peps.python.org/pep-0621.
https://packaging.python.org/en/latest/specifications/declaring-project-metadata/#declaring-project-metadata
Migrate metadata to pyproject.toml.
SPA C Extension definition has been kept in setup.py following https://setuptools.pypa.io/en/latest/userguide/ext_modules.html