Bump ixmp4 minimum dependency to latest version and pin numpy to <2.0.
Patch release to correctly handle regexp-characters ([]{}?^
) in filter()
and better handling of the logging-configuration.
Patch release to explicitly include the requests dependency, which was dropped from ixmp4 with release 0.8.1.
- Direct integration with ixmp4 platforms hosted by IIASA
- More flexible and intuitive signature for data validation and categorization
- Support for Python 3.12 and migrate to poetry & ruff
Bumped minimum version of pandas and numpy to fit ixmp4's requirement.
- #838 Support filters when reading from an ixmp4 platform
- #837 Support filters as direct keyword arguments for
categorize()
similar tovalidate()
signature (see #804) - #832 Improve the test-suite for the ixmp4 integration
- #827 Migrate to poetry for project management
- #830 Implement more consistent logging behavior with ixmp4
- #829 Add
pyam.iiasa.platforms()
for a list of available platforms - #826 Add
read_ixmp4()
function and extend integration test - #825 Add support for Python 3.12
- #824 Update ixmp4 requirement to >=0.7.1
- #821 Introduce ruff
- #818 Use context manager for reading Excel file
- #813 Fix a corner case in region-aggregation with missing data
- #797 Add
to_ixmp4()
method to write to an ixmp4 platform
- More flexible and intuitive signature for data validation
- Improved support for region-aggregation with inconsistent data/weight index
- Fix wrong color codes for AR6 Illustrative Pathways
- #804 Support filters as direct keyword arguments for
validate()
- #801 Support initializing with
meta
dataframe in long format - #796 Raise explicit error if no connection to IIASA manager service
- #794 Fix wrong color codes for AR6 Illustrative Pathways
- #792 Support region-aggregation with weights-index >> data-index
- Use ixmp4 as dependency for better integration with the IIASA Scenario Explorer database infrastructure
- Refactor the "exclude"-column for validation as own attribute (instead of a column in
meta
) - Implement a cleaner package structure and reduce exposure of internal methods/modules
Support for Python 3.7-3.9 was removed due to an incompatible dependency.
PR #766 added the ixmp4 package for better integration with the IIASA scenario database infrastructure.
Credentials to access the IIASA scenario database infrastructure should now be managed using the ixmp4 package (see here).
The column exclude of the meta
indicators was moved to a new attribute exclude
.
All validation methods are refactored such that the argument exclude_on_fail
changes
this new attribute (see PR #759).
The term "exclude" is now an illegal column for (timeseries) data and meta indicators.
When importing an xlsx file created with pyam < 2.0, which has an "exclude" column in
the "meta" sheet, the column is moved to the new exclude
attribute with a log message.
PR #764 implemented a more restrictive
approach to exposing pyam-internals at the package level, requiring a more explicit
import of these methods. For example, use pyam.utils.to_list()
instead of pyam.to_list()
.
PR #773 removed the map_regions()
method. This feature is now implemented via the nomenclature.RegionProcessor class.
- #773 Remove
map_regions()
and default mappings csv - #772 Show all missing rows for
require_data()
- #771 Refactor to start a separate validation module
- #766 Use ixmp4 for credentials to access a Scenario Explorer database
- #764 Clean-up exposing internal methods and attributes
- #763 Implement a fix against carrying over unused levels when initializing from an indexed pandas object
- #759 Excise "exclude" column from meta and add a own attribute
- #747 Drop support for Python 3.7
- Ensure compatibility with pandas v2.0
- Add Python 3.11 to supported versions
- Fix an issue when concatenating a list of pd.DataFrame objects
- #745 Add Python 3.11 to supported versions
- #742 Fix an issue when concatenating only pd.DataFrame objects
- #739 Ensure compatibility with pandas v2.0
- Performance improvement at initialization and in internal operations
- Update the IIASA-Connection API in preparation of a new database backend
- Improve the tutorials
In anticipation of a change in the ixmp API, the argument default
in the
IIASA-Connection methods was renamed to default_only
.
- #734 Validation for illegal column names in
data
- #733 Change IIASA-Connection argument to
default_only
- #732 Fix a few typos in tutorials
- #731 Add fast-path to initialization for sufficient multi-index
- #730 Refactor initialization code
- #729 Improve performance at initialization
- #723 Ensure correct order of
time
attribute
- Add a feature to compute (weighted) quantiles for scenario data
- Implement a
require_data()
method for scenario validation - Remove 'xls' as by-default-supported file format to harmonize behavior with pandas
The method compute_bias()
was removed; please use compute.bias()
instead.
Remove xlrd as a dependency; please install it explicitly for reading .xls
files.
Bump minimum version of pandas to v1.2.0 to support automatic engine selection.
- #715 Add a
require_data()
method - #713 Informative error when using lists for filter by level,
level
now a forbidden column. - #709 Hotfix ops to support
fillna=0
- #708 Remove 'xls' as by-default-supported file format
- #686 Add support for (weighted) quantile timeseries as
df.compute.quantiles()
with a tutorial
- Improved performance for writing data to xlsx
- Support for filtering by model-scenario pairs with an
index
argument - Better integration with the IIASA Scenario Explorer database API
PR #701 added xlsxwriter
as a
dependency for better performance.
- #702 Migrate
compute_bias()
tocompute
module - #701 Add xlsxwriter as dependency to improve
to_excel()
performance - #699 Add filter options to IIASA API
index()
,meta()
andproperties()
methods - #697 Add warning if IIASA API returns empty result
- #696 Added ability to load preferentially from a local cache
- #695 Remove unused meta levels during initialization
- #688 Remove ixmp as optional dependency
- #684 Use new IIASA-manager API with token refresh
- #679
set_meta()
now supports pandas.DataFrame as an argument - #674 Support filtering data by model-scenario pairs with the
index
argument tofilter()
andslice()
This release introduces an IamSlice class that allows faster filtering and inspection of an IamDataFrame.
- #668 Allow renaming of empty IamDataFrame objects
- #665 Provide better support for IamDataFrame objects with non-standard index dimensions
- #659 Add an
offset
method - #657 Add an
IamSlice
class
- Add colors used for IPCC AR6 WGIII scenario analysis
- Support scenario data with mixed 'year' and 'datetime' domain (beta)
- Add explicit support for Python 3.10
Following a change of the UNFCCC data inventory API (see
pik-primap/unfccc_di_api#39),
PR #647 updated the dependencies
to require unfccc-di-api>=3.0.1
.
PR #598 added support for
mixed time-domains, i.e., where the time column has both integer
and datetime
items.
As part of the changes, filtering an IamDataFrame with yearly data using arguments
that are only relevant for the datetime-domain (e.g., month, hour, time) returns
an empty IamDataFrame. Previously, this raised an error.
- #651 Pin
pint<=0.18
as a quickfix for a regression in the latest release - #650 Add IPCC AR6 WGIII colors to PYAM_COLORS
- #647 Pin
unfccc-di-api
to latest release - #634 Better error message when initializing with invisible columns
- #598 Support mixed 'year' and 'datetime' domain
This is a patch release to ensure compatibility with pandas v1.4.0.
- Implement a
compute
module for derived timeseries indicators. - Add a
diff()
method similar to the correspondingpandas.DataFrame.diff()
- Improve error reporting on IamDataFrame initialization
- #608 The method
assert_iamframe_equals()
passes if an all-nan-col is present - #604 Add an annualized-growth-rate method
- #602 Add a
compute
module/accessor and a learning-rate method - #600 Add a
diff()
method - #592 Fix for running in jupyter-lab notebooks
- #590 Update expected figures of plotting tests to use matplotlib 3.5
- #586 Improve error reporting for non-numeric data in any value column
- Update the source code of the manuscript in Open Research Europe to reflect changes based on reviewer comments
- Increase the performance of the IamDataFrame initialization
- Add an experimental "profiler" module for performance benchmarking
The dependencies were updated to require xlrd>=2.0
(previously <2.0
) and openpyxl
was added as a dependency.
- #585 Include revisions to the ORE manuscript source code following acceptance/publication
- #583 Add profiler module for performance benchmarking
- #579 Increase performance of IamDataFrame initialization
- #572 Unpinned the requirements for xlrd and added openpyxl as a requirement to ensure ongoing support of both
.xlsx
and.xls
files out of the box
- Update pyam-colors to be consistent with IPCC AR6 palette
- Enable
colors
keyword argument as list inplot.pie()
- Fix compatibility with pandas v1.3
PR #559 marked
the attribute _LONG_IDX
as deprecated. Please use dimensions
instead.
- #566 Updated AR6 default color pallet to final version used by WG1
- #564 Add an example with a secondary axis to the plotting gallery
- #563 Enable
colors
keyword argument as list inplot.pie()
- #562 Add
get_data_column()
, refactor filtering by the time domain - #560 Add a feature to
swap_year_for_time()
- #559 Add attribute
dimensions
, fix compatibility with pandas v1.3 - #557 Swap time for year keeping subannual resolution
- #556 Set explicit minimum numpy version (1.19.0)
This is the first major release of the pyam package. It coincides with the publication of a manuscript in Open Research Europe (doi: 10.12688/openreseurope.13633.1).
As part of the release v1.0, several functions and methods were removed that had been marked as deprecated over several release cycles. Please refer to Release v1.0 on GitHub for the detailed changes and the v0.13 release notes for information on the release history prior to v1.0.