Repository navigation
[DEV] address pandas 3.1.0 compatibility issues - #2924
echedey-ls wants to merge 15 commits into
Conversation
|
I think this is ready for 'early' review. I'd like to wait on feedback from the pandas community on the issue I opened and is linked in PR body. However, I understand this PR has priority as the other PRs need clean tests to ease reviewing. I don't have a clear suggestion on what to do. I haven't run tests outside of our current CI/CD setup (e.g., pandas 2). |
Pandas4Warning: DatetimeIndex.dayofyear is deprecated and will be removed in a future version. Use DatetimeIndex.day_of_year instead.
…-> DataFrame constructor instead Pandas4Warning: Passing a list to DataFrame.from_dict is deprecated. Use the DataFrame constructor instead.
Pandas4Warning: assert_index_equal will check the 'freq' attribute by
default in a future version; these freqs <Minute> and None do not match.
Pass check_freq=True or check_freq=False to silence this warning
pd.testing.assert_index_equal(left, right, **kwargs)
…GH#71567 is resolved)
pvlib/iotools/tmy.py:226: in read_tmy3
data_ymd.iloc[-1] = data_ymd.iloc[-1].replace(year=coerce_year+1)
^^^^^^^^^^^^^^^^^
venv/lib/python3.14/site-packages/pandas/core/indexing.py:1010: in __setitem__
iloc._setitem_with_indexer(indexer, value, self.name)
venv/lib/python3.14/site-packages/pandas/core/indexing.py:2653: in _setitem_with_indexer
self._setitem_single_block(indexer, value, name)
venv/lib/python3.14/site-packages/pandas/core/indexing.py:2985: in _setitem_single_block
self.obj._mgr = self.obj._mgr.setitem(indexer=indexer, value=value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
venv/lib/python3.14/site-packages/pandas/core/internals/managers.py:625: in setitem
return self.apply("setitem", indexer=indexer, value=value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
venv/lib/python3.14/site-packages/pandas/core/internals/managers.py:456: in apply
applied = getattr(b, f)(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
… to pd.DatetimeArray Pandas4Warning: DatetimeIndex.values returning an ndarray that drops timezone information is deprecated. In a future version, this will return the underlying DatetimeArray instead. Use 'DatetimeIndex.tz_convert(None).to_numpy()' to get a NumPy array of UTC values, or 'DatetimeIndex.array' to get the ExtensionArray.
a6df807 to
058848c
Compare
kandersolar
left a comment
There was a problem hiding this comment.
Fantastic, thanks @echedey-ls :) These changes all look good to me (one minor suggestion below).
For the map/transform question: I suggest we go ahead with this PR so that our test runs are clean again. If we eventually get feedback from pandas that we should have done something else, we can just make another change.
I haven't run tests outside of our current CI/CD setup (e.g., pandas 2).
I ran (non-remote-data) tests locally for 058848c with pandas 2.3.1 and everything passed.
[ ] Closes #xxxx[ ] I attest that all AI-generated material has been vetted for accuracy and is in compliance with the pvlib license💯 free of shitty autocomplete[ ] Updates entries indocs/sphinx/source/referencefor API changes.docs/sphinx/source/whatsnewfor all changes. Includes link to the GitHub Issue with:issue:`num`or this Pull Request with:pull:`num`. Includes contributor name and/or GitHub username (link with:ghuser:`user`).remote-data) and Milestone are assigned to the Pull Request and linked Issue.Opening draft PR as there is work regarding the deprecation warnings that is already fixed and a current regression in pandas 3.1.0 I reported in pandas-dev/pandas#71567. Still missing some work.
I have yet to analyze the impact of these changes with regards to minimum version requirements.