Update code that imports from the following modules:
Code that imports from the old locations will continue to work, but will raise
Support for Python 3.7 is dropped (PR #492).
""cannot be added with the Oracle driver (#425).
Certain items (variables) could not be initialized when providing
idx_sets=..., even if those match the sets fixed by the underlying Java code. With this fix, a matching list is silently accepted; a different list raises
GAMSModelis solved with an LP status of 5 (optimal, but with infeasibilities after unscaling),
JDBCBackendwould attempt to read the output GDX file and fail, leading to an uninformative error message (#98). Now
ModelErroris raised describing the situation.
ixmpis tested and compatible with pandas 2.0.0 (PR #471). Note that pandas 1.4.0 dropped support for Python 3.7: thus while
ixmpstill supports Python 3.7 this is achieved with pandas 1.3.x, which may not receive further updates (the last patch release was in December 2021). Support for Python 3.7 will be dropped in a future version of
ixmp, and users are encouraged to upgrade to a newer version of Python.
Adjust to pandas 1.5.0 (PR #458).
Configsquashed configuration values read from
config.json, if the respective keys were registered in downstream packages, e.g.
message_ix. Allow the values loaded from file to persist (PR #451).
Add new logo and diagram to the documentation (PR #446).
Minimum requirements are increased for dependencies (PR #435):
Python 3.7 or greater. Python 3.6 reached end-of-life on 2021-12-31.
Pandas 1.2 (2020-12-26) or greater, the oldest version with a minimum Python version of 3.7.
Improvements to configuration (PR #435):
The ixmp Python package is not network-facing per se (unless exposed as such by user code; we are not aware of any such applications), so remote code execution attacks are not a significant concern. However, users should still avoid running unknown or untrusted code provided by third parties with versions of ixmp prior to 3.5.0, as such code could be deliberately crafted to exploit the vulnerability.
ixmp.util.isscalar() is deprecated.
Code should use
Add the pytest --user-config command-line option, to use user’s local configuration when testing (PR #422).
rixmp is deprecated, though not yet removed, as newer versions of the R reticulate package allow direct import and use of the Python modules with full functionality.
See the updated page for Usage in R via reticulate.
ixmp config showCLI command (PR #416).
Clean up test suite, improve performance, increase coverage (PR #416).
Adjust documentation for deprecation of
Fix two minor bugs in reporting (PR #396).
Increase JPype minimum version to 1.2.1 (PR #394).
Adjust test suite for pandas v1.2.0 (PR #391).
Silence noisy output from ignored exceptions on JDBCBackend/JVM shutdown (PR #378).
ixmp v3.1.0 coincides with message_ix v3.1.0.
Expand documentation and revise installation instructions (PR #363).
Add functionality for storing ‘meta’ (annotations of model names, scenario names, versions, and some combinations thereof) (PR #353).
ixmp show-versionsincludes the path to the default JVM used by JDBCBackend/JPype (PR #339).
Use GitHub Actions for continuous testing and integration (PR #330).
ixmp v3.0.0 coincides with message_ix v3.0.0.
- Excel input/output (I/O)
ixmp writes and reads items with more elements than the ~10⁶ row maximum of the Excel data format, by splitting these across multiple sheets.
The I/O code now explicitly checks for situations where the index sets and names for an item are ambiguous; see this example for how to initialize and read these items.
- Updated dependencies
The minimum versions of the following dependencies are increased:
dask 2.14 (for reporting)
- Deprecations and deprecation policy
The following items, marked as deprecated in ixmp 2.0, are removed (PR #254):
$HOME/.local/ixmp/as a configuration location. Configuration files are now placed in the standard
clone(). Use shift_first_model_year, keep_solution, and scenario, respectively.
rixmp.legacy, an earlier version of the R interface that did not use reticulate.
Newly deprecated is:
Starting with ixmp v3.0, arguments and other features marked as deprecated will follow a standard deprecation policy: they will be removed no sooner than the second major release following the release in which they are marked deprecated. For instance, a feature marked deprecated in ixmp version “10.5” would be retained in ixmp versions “11.x”, and removed only in version “12.0” or later.
Bump JPype dependency to 0.7.5 (PR #327).
Add CLI command ixmp show-versions to print ixmp and dependency versions for debugging (PR #320).
Bulk saving for metadata and exposing documentation AP (PR #314)I
Add CLI command
ixmp solveto run model solver (PR #304).
Include all tests in the ixmp package (PR #270).
Apply units to reported quantities (PR #267).
Implement methods to get and create new subannual timeslices (PR #264).
ixmp v2.0.0 coincides with message_ix v2.0.0.
Support for Python 2.7 is dropped as it has reached end-of-life, meaning no further releases will be made even to fix bugs.
See PEP-0373 and https://python3statement.org.
ixmp users must upgrade to Python 3.
Configuration for ixmp and its storage backends has been streamlined.
See the ref:Configuration section of the documentation for complete details on how to use
ixmp platform add register local and remote databases.
To migrate from pre-2.0 settings:
…pointed to a directory containing database properties (.properties) files.
All Platform configuration is stored in one ixmp configuration file, config.json, and manipulated using the
ixmp platformcommand and subcommands.
Platformconstructor accepts the name of a stored platform configuration.
Different storage backends may accept relative or absolute paths to backend-specific configuration files.
…gave a default backend via a file path.
On the command line, use
ixmp platform add default NAMEto set
NAMEas the default platform.
This platform is loaded when
ixmp.Platform()is called without any arguments.
…pointed to a default local database.
ixmp.configalways contains a platform named ‘local’ that is located below the configuration path, in the directory ‘localdb/default’.
To change the location for this platform, use e.g.:
ixmp platform add local jdbc hsqldb PATH.
ixmp listcommand-line tool (PR #240).
Ensure filters are always converted to string (PR #225).
Identify and load Scenarios using URLs (PR #189).
Make AppVeyor CI more robust; support pandas 0.25.0 (PR #173).
Add support for handling geodata (PR #165).
Fix exposing whole config file to log output (PR #232).
ixmp 0.2.0 provides full support for
clone() across platforms (database instances), e.g. from a remote database to a local HSQL database.
IAMC-style timeseries data is better supported, and can be used to store processed results, together with model variables and equations.
Other improvements include a new, dedicated
ixmp.testing module, and user-supplied callbacks in
retixmp package using reticulate to access the ixmp API is renamed to
rixmp and now has its own unit tests (the former
rixmp package can be accessed as
Release 0.2.0 coincides with MESSAGEix release 1.2.0.
retixmp) using the R
testthatpackage (PR #135).
Cloning across platforms, better support of IAMC_style timeseries data, preparations for MESSAGEix release 1.2 in Java core (PR #142).
Support iterating with user-supplied callbacks (PR #115).
IXMP_DATAenvironment variable for configuration and local databases (PR #130).
Add functions to view and add regions for IAMC-style timeseries data (PR #125).
Return absolute path from
Switch to RTD Sphinx theme (PR #118).
Bugfix and extend functionality for working with IAMC-style timeseries data (PR #116).
Add functions to check if a Scenario has an item (set, par, var, equ) (PR #111).
Generalize the internal functions to format index dimensions for mapping sets and parameters (PR #110).
Improve documentation (PR #108).
Specify dependencies in setup.py (PR #103).
Connecting to multiple databases, updating MESSAGE-scheme scenario specifications to version 1.1 (PR #88).
Can now set logging level which is harmonized between Java and Python (PR #80).
Adding a deprecated-warning for ixmp.Scenario with scheme==’MESSAGE’ (PR #79).
Changing the API from
ixmp.Scenario(mp, ...)(PR #76).
Bring retixmp available to other users (PR #69).
Support writing multiple sheets to Excel in utils.pd_write (PR #64).
Now able to connect to multiple databases (Platforms) (PR #61).
Add MacOSX support in CI (PR #58).
Add ability to load all scenario data into memory for fast subsequent computation (PR #52).