Releases: openscm/pandas-openscm
v0.9.0
Announcements
- We now have feature parity between the DataFrame and Series accessors (tracked in #25) ⚖️
Changelog
⚠️ Breaking Changes
- Renamed
dftopobjin [pandas_openscm.index_manipulation.update_index_levels_func] and [pandas_openscm.index_manipulation.update_index_levels_from_other_func] (#39)
🆕 Features
-
- [pd.Index][pandas.Index] accessor [pandas_openscm.accessors.index.PandasIndexOpenSCMAccessor]
- ensure multiindex related functionality: [pandas_openscm.accessors.series.PandasSeriesOpenSCMAccessor.ensure_index_is_multiindex] and [pandas_openscm.accessors.index.PandasIndexOpenSCMAccessor.ensure_is_multiindex]
(#36)
-
More methods for [pandas_openscm.accessors.series.PandasSeriesOpenSCMAccessor], moving towards feature completeness (#25), specifically [pandas_openscm.accessors.series.PandasSeriesOpenSCMAccessor.fix_index_name_after_groupby_quantile], [pandas_openscm.accessors.series.PandasSeriesOpenSCMAccessor.groupby_except], [pandas_openscm.accessors.series.PandasSeriesOpenSCMAccessor.mi_loc] and [pandas_openscm.accessors.series.PandasSeriesOpenSCMAccessor.to_category_index] (#37)
-
More methods for [pandas_openscm.accessors.series.PandasSeriesOpenSCMAccessor] and [pandas_openscm.accessors.index.PandasIndexOpenSCMAccessor], leading to feature completeness (#25), specifically [pandas_openscm.accessors.series.PandasSeriesOpenSCMAccessor.update_index_levels], [pandas_openscm.accessors.series.PandasSeriesOpenSCMAccessor.update_index_levels_from_other], [pandas_openscm.accessors.index.PandasIndexOpenSCMAccessor.update_levels] and [pandas_openscm.accessors.index.PandasIndexOpenSCMAccessor.update_levels_from_other] (#39)
🔧 Trivial/Internal Changes
Changes
- 141dcef bump: version 0.8.3.post1 -> 0.9.0
- a669ef2 CHANGELOG
- a435b33 Add index accessor and tests
- 841bf90 index accessors
- 0038345 Pass tests
- b43591c mypy
- efc3c8c mypy
- 6764f5b Pass tests
- 47ffad6 Add failing tests
- 67a97d6 CHANGELOG
- 9040957 mypy
- 7e5b422 Pass failing test
- 585cfcf Add failing test
- 6932f28 Simplify
- a8b78d0 CHANGELOG
- 6b83701 Remove commented code
- 735ea99 Update conda install workflow
- 3298c19 mypy
- dca5a16 mi_loc
- 8661738 mypy
- 6482f62 Pass tests
- 6a9ef28 Add failing tests
- 7b86075 docs
- 22e5368 CHANGELOG
- ad9e619 Add index accessor
- 1118414 Add failing tests for index
- f71e6e8 mypy
- 556aec7 Pass tests
- 2dad231 Add failing test
- 3e6fec9 CHANGELOG
- 02cb885 Update copier template version
- bcc6a9c CHANGELOG
- fc07a7d Update print pins script
- e10f5e9 Update template version
- e8e7e8c CHANGELOG
- e438497 Update copier template version
- edb5370 bump(pre-release): version 0.8.3 > 0.8.3.post1
v0.8.3
v0.8.1
Announcements
- Index levels can now be updated based on values from multiple other index levels, details below or in the examples in the docs 🎉
Changelog
🎉 Improvements
- [pandas_openscm.index_manipulation.update_levels_from_other][] now supports updating levels based on multiple other levels from the index at once (see the docstring for examples).
This update also propagates to [pandas_openscm.index_manipulation.update_index_levels_from_other_func][] and [pandas_openscm.accessors.dataframe.PandasDataFrameOpenSCMAccessor.update_index_levels_from_other][]. (#28)
Changes
v0.8.0
Announcements
- Added some accessors for
pd.Series🎉- These aren't feature complete yet, see #25 for details
- A number of breaking changes to parts of the API
- Renamed
pandas_openscm.register_pandas_accessortopandas_openscm.register_pandas_accessors(with a trailing 's') as accessors are now also registered for [pandas Series][pandas.Series] - Renamed
pandas_openscm.accessors.DataFramePandasOpenSCMAccessortopandas_openscm.accessors.PandasDataFrameOpenSCMAccessor - Renamed
df_unit_leveltounit_levelinpandas_openscm.accessors.PandasDataFrameOpenSCMAccessor.convert_unit_like - Renamed
dftopobjinpandas_openscm.index_manipulation.set_index_levels_func,pandas_openscm.unit_conversion.convert_unit_from_target_series,pandas_openscm.unit_conversion.convert_unitandpandas_openscm.unit_conversion.convert_unit_like
- Renamed
Changelog
⚠️ Breaking Changes
-
- Renamed pandas_openscm.register_pandas_accessor to [pandas_openscm.register_pandas_accessors][] (with a trailing 's') as accessors are now also registered for [pandas Series][pandas.Series]
- Renamed pandas_openscm.accessors.DataFramePandasOpenSCMAccessor to [pandas_openscm.accessors.PandasDataFrameOpenSCMAccessor][]
- Renamed
df_unit_leveltounit_levelin [pandas_openscm.accessors.PandasDataFrameOpenSCMAccessor.convert_unit_like][] - Renamed
dftopobjin [pandas_openscm.index_manipulation.set_index_levels_func][], [pandas_openscm.unit_conversion.convert_unit_from_target_series][], [pandas_openscm.unit_conversion.convert_unit][] and [pandas_openscm.unit_conversion.convert_unit_like][]
(#24)
🆕 Features
- Added some accessors for [pandas Series][pandas.Series] via [pandas_openscm.accessors.PandasSeriesOpenSCMAccessor][]. Note that this is not feature complete yet, tracking in #25 (#24)
🎉 Improvements
- [pandas_openscm.index_manipulation.set_index_levels_func][], [pandas_openscm.unit_conversion.convert_unit_from_target_series][], [pandas_openscm.unit_conversion.convert_unit][] and [pandas_openscm.unit_conversion.convert_unit_like][] now explicitly support [pd.Series][pandas.Series] (#24)
🔧 Trivial/Internal Changes
Changes
- f2fcfcd bump: version 0.7.1a1 -> 0.8.0
- e84d1b0 CHANGELOG
- 392a2a9 Add no cover statements
- f8b82cf mypy
- 723c49f Add accessor for set levels
- 786ad53 Fix docs
- e976cd8 Fix up doctest
- cd2726d Add series accessor for unit conversion
- 3647524 Up to series accessor
- 574942b Update convert_unit
- f1de5fd Add better support for series
- 1bdb589 Shuffle and add test of unit conversion accessors
- d869581 bump(pre-release): version 0.7.0 > 0.7.1a1
v0.7.0
Announcements
- Added unit conversion APIs, see details below and docs here: https://pandas-openscm.readthedocs.io/en/v0.7.0/tutorials/unit-conversion/
Changelog
🆕 Features
-
- Added unit conversion APIs: [pandas_openscm.unit_conversion.convert_unit] and [pandas_openscm.unit_conversion.convert_unit_like] and the corresponding accessors [pandas_openscm.accessors.DataFramePandasOpenSCMAccessor.convert_unit] and [pandas_openscm.accessors.DataFramePandasOpenSCMAccessor.convert_unit_like]
- Added the helper: [pandas_openscm.index_manipulation.ensure_is_multiindex] and the corresponding accessors [pandas_openscm.accessors.DataFramePandasOpenSCMAccessor.ensure_index_is_multiindex] and [pandas_openscm.accessors.DataFramePandasOpenSCMAccessor.eiim]
(#23)
Changes
- bb8d6a8 bump: version 0.6.1a1 -> 0.7.0
- 07b7b73 Update docstring
- a43c74f Fix up tests that rely on extras
- 907f574 CHANGELOG
- 9f214d4 Finish off docs
- e30e1b7 Next step in docs
- 055ace2 Test new helper functions
- 55d8966 Add tests for new API
- e2d1e76 Clean up
- 559d759 Add tests of annoying pandas MultiIndex casting
- 0582d74 WIP: docs
- 3b243f6 Docs placeholders
- ce0a9ca Test error paths
- a8c0bde Finish convert-unit_like tests and no-op tests
- 084039e Start on convert_unit_like
- 7b5a402 Add missing rows support
- 4513cb7 Tweak
- 6e063f8 Add docstring
- bdb6301 Up to implementing convert_unit_like
- 0116a4b WIP: getting there
- 4c079b7 WIP: convert with dict
- 8b351ac WIP: Start on tests and API
- ae6748c bump(pre-release): version 0.6.0 > 0.6.1a1
v0.6.0
Announcements
- Updated minimum numpy version to 1.26.0, the earliest that is not in end-of-life. Fixed the numpy pin for Python 3.13 to >=2.1.0, the first numpy version which supported Python 3.13
Changelog
⚠️ Breaking Changes
- Updated minimum numpy version to 1.26.0, the earliest that is not in end-of-life. Fixed the numpy pin for Python 3.13 to >=2.1.0, the first numpy version which supported Python 3.13. (#21)
🔧 Trivial/Internal Changes
Changes
- 0b1c4cb bump: version 0.5.2a1 -> 0.6.0
- 7ffaf04 CHANGELOG
- 4464500 Loosen tolerance again
- 580d612 Update tests
- 2590f4c Update CHANGELOG
- 2a6d559 Loosen speed tolerance
- 60fac72 Update pdm locking
- d00bbb6 CHANGELOG
- cd447f1 Revert unwanted changes
- 5475297 Update pins
- a6acd87 Remove numpy pin
- 3d36816 Fix up check and try again
- 2bc72b0 Remove numpy pin
- 2d2d663 Turn off bash for a second
- 26cd97d Turn off bash for a second
- 57defa0 See if we can reproduce error
- 8bbe6b3 Add extra OS to test strategy
- 1d3a0ae bump(pre-release): version 0.5.1 > 0.5.2a1
v0.5.1
Announcements
- Added functionality to set levels. See the examples section in the docs
Changelog
🆕 Features
- Added [pandas_openscm.index_manipulation.set_levels][] and the corresponding accessor [pandas_openscm.accessors.DataFramePandasOpenSCMAccessor.set_index_levels][] (#18)
Changes
- f45c902 bump: version 0.5.1a1 -> 0.5.1
- 9abd43b Fix up codes type confusion
- e4f2c48 mypy
- 7d8dd82 Apply suggestions from code review
- 17ca314 test push for ci
- f3d1a96 doctest
- 063304d doctest
- b91ea57 tests and mypy
- be9fccb doctests
- 2b5e35d changelog
- 649af6c accessor
- 406883f refactor
- 7e13de8 fix bug for single values
- fef81bd works but needs clean up
- e76eeb4 bump(pre-release): version 0.5.0 > 0.5.1a1
- 8ffae3c clean up
- 3a9e5c5 more tests and df function
- 22e5d4c passing tests
- dae8d46 more failing tests
- 8f67e34 set single value
v0.5.0
Announcements
- The database is now portable and has explicit support for archival (see OpenSCMDB.to_gzipped_tar_archive) and unpacking (see OpenSCMDB.from_gzipped_tar_archive), however this also led to a number of breaking changes in the API, see below for details
Changelog
⚠️ Breaking Changes
-
- Required
db_dirto be passed when initialising [pandas_openscm.db.reader.OpenSCMDBReader][]. This is required to support portable databases - Renamed
out_column_typetoout_columns_typein [pandas_openscm.io.load_timeseries_csv][] for consistency with the rest of the API - Bumped the minimum supported version of filelock to 3.12.3, as only this version handles automatic creation of directories for the lock
(#19)
- Required
🆕 Features
-
- Made the database portable by only storing relative paths in the file map. This allows the database to be converted to an archive with [pandas_openscm.db.OpenSCMDB.to_gzipped_tar_archive][] and then unpacked elsewhere with [pandas_openscm.db.OpenSCMDB.from_gzipped_tar_archive][]
- Added [pandas_openscm.db.path_handling][] to clarify how we handle paths internally to support portability
- Added support for specifying the name of the output columns via [pandas_openscm.db.OpenSCMDB.load][], [pandas_openscm.db.reader.OpenSCMDBReader.load][] and [pandas_openscm.io.load_timeseries_csv][]
(#19)
🎉 Improvements
-
- Added the explicit [pandas_openscm.db.backends][] module to handle the backends we support more clearly
- Added [pandas_openscm.db.backends.DataBackendOptions.guess_backend][] and [pandas_openscm.db.backends.IndexBackendOptions.guess_backend][] to allow for move convenient inference of the backend to use with different files
(#19)
🔧 Trivial/Internal Changes
Changes
- 294df6d bump: version 0.4.3a1 -> 0.5.0
- 7bd7aaa Fix CHANGELOG cross-refs
- 759d814 CHANGELOG
- 52aeb7c Add explicit docs
- b650b13 Update minimum required version of filelock to handle directory creation
- 6998358 Add more tests
- 915c7a4 Add path handling test
- ee7da35 Add test of updated load_timeseries_csv
- 740069a Fix docs issue
- 305116e Add out columns name to other part of the API
- 0e5b545 Add control of column name in output
- d35afbd Expand tests
- 26b1203 Fix up tests
- 8c5d4e7 Propagate implications
- d1ceaf9 Pass unit test
- 95f53d1 WIP: Implement
- aea1e89 Add failing tests
- bf65fb5 bump(pre-release): version 0.4.2 > 0.4.3a1
v0.4.1
Announcements
- Fixed a bug in the index level updating, see below. Set
remove_unused_levels=Falseto turn off this behaviour.
Changelog
🐛 Bug Fixes
- Fixed up [pandas_openscm.index_manipulation.update_levels][].
It now drops unused levels by default first, to avoid applying the updates to values that aren't being used.
The same fixes are propagated to [pandas_openscm.accessors.DataFramePandasOpenSCMAccessor.update_index_levels][] and [pandas_openscm.index_manipulation.update_index_levels_func][]. (#14)
Changes
v0.4.0
Announcements
- Added
pandas_openscm.index_manipulation.update_levelsandpandas_openscm.accessors.DataFramePandasOpenSCMAccessor.update_index_levels
Changelog
🆕 Features
- Added [pandas_openscm.index_manipulation.update_levels][] and the corresponding accessor [pandas_openscm.accessors.DataFramePandasOpenSCMAccessor.update_index_levels][] (#13)