All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Add flat argument to AMPL.get_iis.
- Allow assigning values to indexed sets from a dictionary with the lists of members for every index.
- Add AMPL.get_iis() to return dictionaries with variables and constraints in IIS.
- Add AMPL.get_solution() to return a dictionary with the solution.
- Fix issues with AMPL.solve(verbose=False) when the solver argument was not set.
- OutputHandler: Flush standard output after every message.
- Upgrade libampl to 2.3.7-20231229.
- Upgrade ampltools to 0.7.3 adding amplpy.bundle command.
- Fix issue with environment variables on Windows in a generic way.
- Add return_output and solvername_options arguments to AMPL.solve
- You can now do
ampl.solve(solver="gurobi", gurobi_options="outlev=1")
.
- You can now do
- [Breaking] amplpy.modules now have priority in the PATH.
- Fix ampl_libpath issue on Windows.
- Upgrade libampl to 2.3.6-20231130.
- Add solver argument to AMPL.solve.
- Fix Parameter.set_values with np.ndarray objects.
- Upgrade libampl to 2.2.0-20230825.
- Use x-ampl by default if available.
- Add properties AMPL.solve_result/AMPL.solve_result_num.
- Add arguments to AMPL.solve to specify problem name and verbosity.
- Allow passing pandas.Series to AMPL.set_data and Parameter.set_values.
- Add AMPL.snapshot, and implement AMPL.export_model/AMPL.export_data using it.
- [Breaking] Drop Python 3.5 compatibility.
- [Breaking] Deprecate direct access methods to amplpy.DataFrame. Deprecated methods are still available with _ prefix.
- [Breaking] Cast floats to integers whenever possible.
- Add aliases Entity.get_values.to_pandas/to_list/to_dict.
- Automatically stack 2D pandas.DataFrames.
- Upgrade libampl to 2.1.2-20230618.
- Add AMPL.write, PresolveException, and InfeasibilityException.
- Improve handling of numpy types.
- Allow assigning values to sets from iterables.
- [Breaking] Drop async functionalities.
- [Breaking] DataFrame.to_pandas: start using multi-index by default.
- [Breaking] Drop Python 2.7 compatibility.
- [Breaking] Iterating over non-indexed sets now iterates over set members.
- Upgrade libampl to 2.1.0-20230522.
- Breaking: Entity names do not contain spaces in the indices anymore.
- Removed CamelCase from docstrings.
- Add message to append to AMPLException messages.
- Simplify ampl_notebook import: "from amplpy import ampl_notebook".
- Preload amplpy.modules if found (reduces need for modules.load()).
- Vendor ampltools.
- Add amplpy.modules.
- Update libampl to 2.0.11-20220823.
- Ensure times and gentimes default to disabled.
- Update libampl to 2.0.10-20220627.
- Disable options times and gentimes during internal operations.
- Improved handling of numpy types.
- [BREAKING] Raise RuntimeError in Entity.get_values if there are any issues with the data.
- Update libampl to 2.0.9.20220527.
- Fixed hanging when license check fails on Windows.
- Allow '-' in option names.
- Drop 32-bit support.
- Add ampltools as dependency.
- [BREAKING] Raise KeyError exceptions instead of TypeError exceptions when accessing entities that do not exist.
- Update libampl to 2.0.8-2.
- Allow users to specify the name of the AMPL executable.
- Allow users to choose between using camelCase and snake_case methods.
- Drop AMPL.exportGurobi model. It is now part of amplpy_gurobi.
- Improve performance of many operations by moving code to the C++ layer.
- Update libampl to 2.0.6-0.
- Add Entity.xref.
- Include complete license error message in license error exceptions.
- Fix bug when assigning sets with mixed types.
- Add support for pathlib.Path paths.
- Basic support for MSYS, CYGWIN, and MINGW.
- Support for linux-ppc64le and linux-aarch64.
- Update libampl to 2.0.4-0.
- Add support for ppc64le.
- Fix "ImportError: DLL load failed" not fixed in the previous version.
- Fix "ImportError: No module named _amplpython" introduced in the previous version.
- Add Python 3.8 support.
- Add optional parameter index_names to DataFrame.fromPandas.
- Add DataFrame.fromDict to load data from dictionaries.
- Allow setting entity values directly from dictionaries.
- Update internal library.
- Add AMPL.exportModel.
- AMPL.exportData now supports indexed sets.
- Improve AMPL.exportGurobiModel and AMPL.importGurobiSolution.
- Add verbose option to AMPL.exportGurobiModel.
- Add register_magics to register
%%ampl
and%%ampl_eval
.
- Fix dll loading issue with python versions that come with conda.
- Fix issue with indexed sets (by updating the internal library).
- Add support for Pandas Series.
- Add optional gurobiDriver parameter to AMPL.exportGurobiModel.
- Improve robustness of AMPL.exportGurobiModel.
- Improve error message when AMPL is not in the search path.
- Upgrade internal API to v2.0.
- Add experimental methods AMPL._startRecording and AMPL._stopRecording.
- Add experimental method AMPL._loadSession.
- Add method AMPL.getCurrentObjective.
- Add support to Python 3.7.
- Fix truncated values in sets (amplapi#337).
- Add method AMPL.importGurobiSolution.
- Add method AMPL.getOutput.
- Breaking: AMPL errors raise exceptions by default.
- Breaking: Drop support for Python 3.3 on Linux.
- Add AMPL.exportData.
- Add AMPL.exportGurobiModel.
- Fix: compatibility issues with multiple python versions.
- Improve interaction with Pandas and Numpy.
- Add DataFrame.fromNumpy.
- Entity.setValues now accepts Pandas DataFrames.
- Parameter.setValues and Set.setValues now accept Numpy arrays and matrices.
- Breaking: DataFrame.toList and DataFrame.doDict do not wrap scalar values into lists anymore.
- Fix: error messages not being shown in Jupyter Notebooks.
- Breaking: AMPL errors no longer raise exceptions by default.
- Fix issues related to the passing of infinity to AMPL.
- Fix issue with DataFrames created with pandas.read_table.
- Fix precision issue in parameters.
- Introduce alternative method to access entities.
- Add DataFrame.fromPandas and DataFrame.toPandas.
- Improve DataFrame initialization.
- Fix issue with stdout in jupyter notebooks.
- Fix issues with strings in Python 3.
- Initial release.