Metadata-Version: 2.1
Name: iamax
Version: 0.0.0.post3
Summary: IAM-AX in Python
Author: Laurent Faucheux
Author-email: lf@lo10.eu
License: Closed
Project-URL: Documentation, https://lo10.eu/static/rtd.iamax/index.html
Keywords: Climate,Climate Policy,Development Pathways,Economics,Energy,Energy Efficiency,Engineering,Environment,General Equilibrium,Hybrid Modelling,Long-run Scenarios,Sustainability,Sustainable Development,Technical change
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: License :: CeCILL-B Free Software License Agreement (CECILL-B)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE.html
Requires-Dist: anytree (==2.12.1)
Requires-Dist: attrs (==23.2.0)
Requires-Dist: art (==6.3)
Requires-Dist: cloudpickle (==3.0.0)
Requires-Dist: dill (==0.3.7)
Requires-Dist: funcy (==2.0)
Requires-Dist: importlib-resources (==6.5.2)
Requires-Dist: jax (==0.7.1)
Requires-Dist: jaxlib (==0.7.1)
Requires-Dist: jaxtyping (==0.3.0)
Requires-Dist: joblib (==1.3.2)
Requires-Dist: networkx (==3.4.2)
Requires-Dist: numexpr (==2.14.1)
Requires-Dist: numpy (==1.26.4)
Requires-Dist: openpyxl (==3.1.5)
Requires-Dist: pandas (==2.1.4)
Requires-Dist: protobuf (==5.26.1)
Requires-Dist: python-calamine (==0.6.2)
Requires-Dist: pyyed (==1.5.0)
Requires-Dist: scipy (==1.15.3)
Requires-Dist: sparsejac (==0.2.0)
Requires-Dist: sympy (==1.14.0)
Requires-Dist: tabulate (==0.9.0)
Requires-Dist: unidecode (==1.3.8)
Requires-Dist: xlrd (==2.0.1)
Requires-Dist: xmltodict (==0.13.0)
Requires-Dist: pywin32 (==311) ; platform_system == "Windows"

.. image:: https://lo10.fr/static/rtd.iamax/_images/_license.svg
   :alt: License
.. image:: https://lo10.fr/static/rtd.iamax/_images/_coverage.svg
   :alt: Coverage
.. image:: https://lo10.fr/static/rtd.iamax/_images/_pylint.svg
   :alt: Lint Score

IAM-AX is a `metamodel <https://bit.ly/3Zb4iGs>`_ for designing, generating, inspecting and running computable general-equilibrium models. It generates the code of integrated or non-integrated CGE models from *i)* structured socio-economic, technical or physical data and *ii)* standalone analytical equations written in Python, in a form close to what one would expect from a rigorous analytical model description.

Sewn on `ImaCLIM <https://bit.ly/3xgBH7r>`_ — **IM**\ pact **A**\ ssessment of **CLIM**\ ate policies — whether in static or recursive settings, IAM-AX is not merely another implementation environment for applied general-equilibrium modelling. Its ambition is to define a common architecture for building, executing, testing, reading, comparing and maintaining models.

IAM-AX is also a response to the social role of models, whose vocation is to inform public reasoning and remain appropriable by anyone concerned by their use. Models with such a vocation often require a significant degree of complexity, and the problem is that the algorithmic expression of this complexity tends to degrade over time. As models are enriched, extended and adapted to new questions, technical debt, implicit conventions, fragmented workflows and ad hoc corrections tend to make their code harder to understand and control. Errors then become harder to detect, and results may be severely distorted. Given the role such models are expected to play, this kind of opacity can become hard to accept depending on what is at stake.

This is why IAM-AX seeks to push modelling transparency as far as possible. Its purpose is to prevent the elements of a modelling exercise — data, unknowns, behavioural assumptions, functional interactions, generated equations, numerical resolution and results — from being scattered across opaque code, tacit practices or undocumented conventions. By bringing these elements back to a level of explicitness and simplicity that makes opacity difficult to sustain, IAM-AX addresses the black-box syndrome often associated with complex applied models.

This ambition matters all the more in a context of widespread distrust toward technical and scientific discourse. IAM-AX treats readability, traceability and communicability not as optional documentation tasks, but as core design constraints. In doing so, it attempts to make modelling work more open to review, transmission and contestation.

In that sense, IAM-AX is both a model reader and a model generator. Like a reader able to interpret many discs encoded in the same format, IAM-AX can interpret many models as long as they follow its common grammar. It then generates explicit, readable Python code corresponding to the model it has interpreted. A model is no longer only a bespoke codebase. It becomes an object that can be read, inspected, compared and maintained according to shared rules.


The documentation is available `online <https://lo10.eu/static/rtd.iamax/index.html>`_.
