Recent Releases of PySD
PySD - 3.14.3
Bug fixes
- Make XMILE operator parsing case-insensitive (#463). (@benslavin)
- Avoid ZeroDivisionError when stretch is 0 in RANDOM NORMAL and RANDOM EXPONENTIAL (#465). (@enekomartinmartinez)
Internal Changes
- Allow passing encoding for TabData files (#455). (@enekomartinmartinez)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez 9 months ago
PySD - 3.14.2
Internal Changes
- Several changes to allow compatibility with latest versions of numpy and xarray:
- Ensure that float objects evaluated with numpy are converted to float.
- Ensure proper shape of inputs when loading external data.
- Avoid DeprecationWarning raised in invert_matrix` test.
- Remove gethtmlthemepath_ from docs conf.
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez about 1 year ago
PySD - 3.14.1
Bug fixes
- Support for numpy 2. (@enekomartinmartinez)
- Allow multiple font styles in var names (#443). (@rogersamso)
- Allow Vensims GET DIRECT/XLS SUBSCRIPT when lastcell is not a cell value (#443). (@enekomartinmartinez)
- Allow Vensims GET DIRECT/XLS SUBSCRIPT defined with cell range names (#261). (@enekomartinmartinez)
- Translate filenames as raw str to made them work properly for Windows paths (#443). (@enekomartinmartinez)
- Improve support for reading pysd.py_backend.external.External from all the spreadsheet files includying those types from open software (‘.odf’, ‘.ods’, ‘.odt’). (@enekomartinmartinez)
- Improve support for reading pysd.py_backend.external.External from CSV, TAB and any other kind of text file. (@enekomartinmartinez)
Internal Changes
- Fix CI tests. (@rogersamso)
- Run CI coverage only on ubuntu and lowest Python. (@enekomartinmartinez)
- Rename ‘sheet’ by ‘tab’ in pysd.py_backend.external.External and related functions and classes to follow Vensim’s nomenclature. (@enekomartinmartinez)
- Add error message when no subscripts are read from pysd.py_backend.external.ExtSubscript during the model building. (@enekomartinmartinez)
- Add error message when a pysd.py_backend.external.External cell/firstcell is interpreted as cellrange name but the input file is not a spreadsheet. (@enekomartinmartinez)
- Improve parsing of quoted arguments in the vensim translator for external lookups and external subscripts. (@enekomartinmartinez)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 1 year ago
PySD - 3.14.0
New Features
- Support Vensim’s RANDOM EXPONENTIAL function (#107). (@enekomartinmartinez)
Bug fixes
- Fix truncation in Vensim’s RANDOM NORMAL function translation. (@enekomartinmartinez)
Documentation
- Add supported random functions to the documentation tables. (@enekomartinmartinez)
Internal Changes
- Add test for random functions, including comparison with Vensim outputs and expected values (#107). (@enekomartinmartinez)
- Allow to add multiple imports by the python function call builder. (@enekomartinmartinez)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 1 year ago
PySD - 3.13.4
Bug fixes
- Fix initialization dependencies for pysd.py_backend.statefuls.Smooth in the builder pysd.builders.python.pythonexpressionsbuilder.SmoothBuilder (issue #440). (@enekomartinmartinez)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez almost 2 years ago
PySD - 3.13.3
Documentation
- Improve documentation for
netCDF4dependency. (@enekomartinmartinez)
Internal Changes
- Support for
Python 3.12. (@enekomartinmartinez) - Support for
numpy >= 1.24. (@enekomartinmartinez) - Correct some warnings management in the tests. (@enekomartinmartinez)
- Set
numpyrequirements to>= 1.23to follow NEP29. (@enekomartinmartinez) - Custom error messages when
netCDF4is missing (#435). (@enekomartinmartinez)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez almost 2 years ago
PySD - 3.13.0
New Features
- Include new method pysd.py_backend.model.Model.copy which allows copying a model (issue #131). (@enekomartinmartinez)
- pysd.pybackend.model.Model.selectsubmodel now takes an optional argument inplace when set to
Falseit will return a modified copy of the model instead of modifying the original model (issue #131). (@enekomartinmartinez) - pysd.py_backend.model.Model.export will now save also time component information if changed (e.g. final time, time step…). (@enekomartinmartinez)
Bug fixes
Set the pointer of pysd.py_backend.statefuls.DelayFixed to 0 during initialization (issue #427). (@enekomartinmartinez)
pysd.py_backend.model.Model.export now works with Macros. (@enekomartinmartinez)
Documentation
Improve documentation of methods in pysd.py_backend.model.Model and pysd.py_backend.model.Macro includying cross-references and rewrite the one from pysd.pybackend.model.Macro.setcomponents. (@enekomartinmartinez)
Include documentation about the new method pysd.py_backend.model.Model.copy and update documentation from pysd.pybackend.model.Model.selectsubmodel. (@enekomartinmartinez)
Performance
- Improved performace of
pysd.py_backend.output.DataFrameHandlerby creating the dataframe at the end of the run (issues #374 and #330). (@easyas314159 and @enekomartinmartinez)
Internal Changes
- Move old
pysd.py_backend.model.Macro.set_componentstopysd.py_backend.model.Macro._set_components, and create new method with the same name without the new argument. (@enekomartinmartinez) - Move old
pysd.py_backend.model.Macro.set_statefultopysd.py_backend.model.Macro._set_stateful. (@enekomartinmartinez) - Make integration tests filter only specific warnings. (@enekomartinmartinez)
- Include warnings in pysd.pybackend.model.Macro.setcomponents when changing the behaviour of the component (issue #58). (@enekomartinmartinez)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez about 2 years ago
PySD - 3.12.0
Breaking changes
- Remove support for Python 3.7 and 3.8. (@enekomartinmartinez)
- Update the cellrange retrievel to be compatible with openpyxl >= 3.1. It breaks the code for lower versions. (@enekomartinmartinez)
Bug fixes
- Update benchmarking tools to avoid FutureWarning for positional keys from pandas. (@enekomartinmartinez)
Documentation
- Update requirements. (@enekomartinmartinez)
Internal Changes
- Update libraries used for building documentation and .readthedocs.yml. (@enekomartinmartinez)
- Force to use xarray >= 2023.09. (@enekomartinmartinez)
- Use pandas[excel] instead of xlrd dependency in the requirements. (@gdrosos)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez about 2 years ago
PySD - 3.11.0
New Features
- Add the possibility to run a model one or several steps at a time, updating model variables in the process. (@rogersamso)
Documentation
- Add the Running models one (or more) step(s) at a time section in Advanced Usage. (@rogersamso)
Internal Changes
- Modify signature of the pysd.py_backend.output.ModelOutput class. It now only accepts the path of the results file (@rogersamso)
- Add the pysd.pybackend.output.ModelOutput.collect() method to the pysd.pybackend.output.ModelOutput class. (@rogersamso)
- Add the pysd.pybackend.model.Model.setstepper() and pysd.py_backend.model.Model.step() methods to the pysd.py_backend.model.Model class. (@rogersamso)
- Add several internal methods to the pysd.py_backend.model.Model class, to avoid code repetition. (@rogersamso)
- Add FutureWarning for Python 3.7 support deprecation. (@enekomartinmartinez)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 2 years ago
PySD - 3.10.0
New Features
- Parse TABBED ARRAYS Vensim function. (@rogersamso)
- Add support for Vensim’s POWER function. (@rogersamso)
- Add possibility to pass data_files in netCDF format. (@rogersamso)
- Add support for XMILE’s non-negative flows and stocks. (@enekomartinmartinez)
- Add support for XMILE’s MIN and MAX functions with one argument. (@enekomartinmartinez)
Bug fixes
- Set the finalsubscripts to an empty dictionary for ELMCOUNT function in pysd.builders.pythonexressionsbuilder.CallBuilder.buildfunction_call(). (@rogersamso)
- Define compsubtype of Unchangeable tabbed arrays as Unchangeable. This is done in pysd.builders.python.pythonexpressions_builder.ArrayBuilder.build(). (@rogersamso)
Documentation
- Add information about slack channel https://slofile.com/slack/sdtoolsandmet-slj3251. (@enekomartinmartinez)
- Update XMILE stocks section. (@enekomartinmartinez)
Internal Changes
- Add a weekly scheduled run to all CI workflows, which run each Monday at 06:00 UTC. (@EwoutH)
- Fix CI pipeline for Python 3.11 and remove Python 3.10 pipeline in favour of 3.11. (@kinow)
- Add nonnegative argument in[pysd.translators.structures.abstractexpressions.IntegStructure. (@enekomartinmartinez)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 2 years ago
PySD - 3.9.1
New Features
- Add numpy.py as translation for the call to the function PI(). (@lionel42)
Bug fixes
- Set numpy <1.24 to avoid errors with least squares equation in pysd.pybackend.allocation.allocateavailable(). (@enekomartinmartinez)
- Keep the attributes of a component when using pysd.pybackend.model.Macro.setcomponents() to avoid losing coords or arguments information. (@enekomartinmartinez)
- Set openpyxl <3.1 to avoid errors due to non-backwards compatible changes. (@enekomartinmartinez)
- Include time dependency in random functions to avoid them using constant cache. (@enekomartinmartinez)
Internal Changes
- Run test for Python 3.11 with ubuntu-latest (hdf5-headers need to be installed using apt manager). (@enekomartinmartinez)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez almost 3 years ago
PySD - 3.9.0
New Features
- Parses and ignores reality check functions during translation of Vensim models. (@rogersamso)
Bug fixes
- Fix issue with the classification of variables in modules and submodules (issue #388). When a model had a view with 3 sublevels (e.g. energy-transformation.losses) but another view was defined with only two of them (e.g. energy-transformation), the variables in the second view were placed in the main model file. Now, if this happens, the variables in the second view will be placed in a main.py file (i.e. energy/transformation/main.py). (@rogersamso)
- Fix bug on the CLI when passing a hyphen as first value to the –subview-sep argument (issue #388). (@rogersamso)
- Fix bug on the CLI when parsing initial conditions ([ssue #395). (@rogersamso)
Documentation
- The Splitting Vensim views in different files section in Command Line Usage has been updated to include an example of the usage of the –subview-sep CLI argument. (@rogersamso)
Internal Changes
- The mergenested_dicts() method from the pysd.translators.vensim.vensim_file.VensimFile class has been made a static method, as it does not need to access any attribute of the instance, and it does facilitate unit testing. (@rogersamso)
- The pysd/translators/vensim/parsinggrammars/elementobject.peg grammar has been modified to be able to parse reality check elements. (@rogersamso)
- pysd.translators.vensim.vensimelement.Constraint and pysd.translators.vensim.vensimelement.TestInputs classes have been added, which inherit from the also newly created pysd.translators.vensim.vensimelement.GenericComponent, which include the parse() and getabstract_component() methods. (@rogersamso and @enekomartinmartinez)
- The pysd.translators.structures.abstract_model.AbstractSection class now has two extra attributes (constraints and inputtests), which hold the pysd.translators.structures.abstract_model.AbstractConstraint and pysd.translators.structures.abstractmodel.AbstractTestInputs objects. (@rogersamso)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez about 3 years ago
PySD - 3.8.0
New Features
- Adds ncfile.py module with helper functions to export a subset or all of the data_vars in netCDF files generated with PySD to pandas.DataFrame, csv or tab files. (@rogersamso)
- Adds possibility to initialize and export a subset or all external objects to netCDF, and then initialize the external objects from the file. (@rogersamso)
Deprecations
- Deprecate pysd.pybackend.model.Model.getdependencies() replacing it with pysd.pybackend.model.Model.get_dependencies(). (@enekomartinmartinez)
Bug fixes
- Include new class pysd.pybackend.utils.Dependencies to return by pysd.pybackend.model.Model.get_dependencies() (issue #379). (@lionel42)
Documentation
- Updates the Getting Started page with instructions on how to use the new helper functions for netCDF files. (@rogersamso)
- Updates the Advanced Usage page with instructions on how to export externals to netCDF and initialize a model from it. (@rogersamso)
- Update citation information to include the new paper published in JOSS. (@enekomartinmartinez)
Performance
- Initializing external objects from netCDF file is much faster than reading from spreadsheet files.(@rogersamso)
Internal Changes
- Adds the pysd.pybackend.model.Macro.serializeexternals() and pysd.pybackend.model.Macro.initializeexternal_data() methods, and a few other private methods.(@rogersamso)
- Adds the pysd.py_backend.utils.UniqueDims class for renaming model dimensions with unique names.(@rogersamso)
- Force pysd.py_backend.external.External objects to always have the full element dimensions, missing dimensions are filled with numpy.nan. (@enekomartinmartinez)
- Add dependabot configuration for GitHub Actions updates. (@EwoutH)
- Include new error messages for initialization of pysd.py_backend.lookups.HardcodedLookups (issue #376). (@enekomartinmartinez)
- Include new warning message when a translated variable has several types or subtypes. (@enekomartinmartinez)
- Set CI test to run in parallel in 2 cores. (@enekomartinmartinez)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez about 3 years ago
PySD - 3.7.0
New Features
- Simulation results can now be stored as netCDF4 files. (@rogersamso)
- The CLI also accepts netCDF4 file paths after the -o argument. (@rogersamso)
Bug fixes
- Fix bug when a WITH LOOKUPS argument has subscripts. (@enekomartinmartinez)
- Fix bug of exportig csv files with multiple subscripts variables. (@rogersamso)
- Fix bug of missing dimensions in variables defined with not all the subscripts of a range (issue #364). (@enekomartinmartinez)
- Fix bug when running a model with variable final time or time step and progressbar (issue #361). (@enekomartinmartinez)
Documentation
- Add Storing simulation results on a file section in the Getting Started page. (@rogersamso)
- Include cookbook information in the Getting Started page. (@enekomartinmartinez)
- Include an introduction of main historical changes in the About the Project page. (@enekomartinmartinez)
Performance
- Exporting outputs as netCDF4 is much faster than exporting a pandas DataFrame, especially for large models. (@rogersamso)
Internal Changes
- Make PySD work with parsimonius 0.10.0. (@enekomartinmartinez)
- Add netCDF4 dependency for tests. (@rogersamso)
- Improve warning message when replacing a stock with a parameter. (@enekomartinmartinez)
- Include more pytest parametrizations in some test and make them translate the models in temporary directories. (@enekomartinmartinez)
- Include lychee-action in the GHA workflow to check the links. (@enekomartinmartinez)
- Update License. (@enekomartinmartinez)
- Include Maintained? Yes and Contributions welcome badges. (@enekomartinmartinez)
- Update links to the new repository location. (@enekomartinmartinez)
- Reduce relative precision from 1e-10 to 1e-5 to compute the saving times and final time. (@enekomartinmartinez)
- Add convergence tests for Euler integration method. (@enekomartinmartinez)
- Include build docs check in the GHA workflow to avoid warnings with sphinx. (@enekomartinmartinez)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 3 years ago
PySD - 3.6.0
New Features
- Include warning messages when a variable is defined in more than one view, when a control variable appears in a view or when a variable doesn’t appear in any view as a workbench variable (issue #357).
- Force variables in a module to be saved alphabetically for being able to compare differences between versions (only for the models that are split by views).
Bug fixes
- Classify control variables in the main file always (issue #357).
Internal Changes
- Include pysd.translators.structures.abstract_model.AbstractControlElement child of pysd.translators.structures.abstract_model.AbstractElement to differentiate the control variables.
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 3 years ago
PySD - 3.5.1
Bug fixes
- Fix bug generated when :EXCEPT: keyword is used with subscript subranges (#352).
- Fix bug of precision error for pysd.pybackend.allocation.allocateby_priority() (#353).
- Fix bug of constant cache assignment.
Performance
- Improve the performance of reading pysd.py_backend.external.External data with cellrange names by loading the data in memory with pandas. As recommended by openpyxl developers, this is a possible way of improving performance to avoid parsing all rows up each time for getting the data (issue 1867 in openpyxl).
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 3 years ago
PySD - 3.5.0
New Features
- Add support for subscripted arguments in pysd.py_backend.functions.ramp() and pysd.py_backend.functions.step() (issue #344).
Bug fixes
- Fix bug related to the order of elements in 1D GET expressions (issue #343).
- Fix bug in request 0 values in allocate by priority (issue #345).
- Fix a numerical error in starting time of step and ramp.
Documentation
- Include new PySD logo.
Internal Changes
- Ignore ‘distutils Version classes are deprecated. Use packaging.version instead’ error in tests as it is an internal error of xarray.
- Add a warning message when a subscript range is duplicated in a variable reference.
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 3 years ago
PySD - 3.4.0
New Features
- Add support for Vensim’s ALLOCATE AVAILABLE (
pysd.py_backend.allocation.allocate_available()) function (issue #339). Integer allocation cases have not been implemented neither the fixed quantity and constant elasticity curve priority functions.
Documentation
- Improve the documentation of the pysd.py_backend.allocation module.
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 3 years ago
PySD - 3.3.0
New Features
- Add support for Vensim’s ALLOCATE BY PRIORITY (
pysd.py_backend.allocation.allocate_by_priority()) function (issue #263).
Bug fixes
- Fix bug of using subranges to define a bigger range (issue #335).
Internal Changes
- Improve error messages for
pysd.py_backend.Externalobjects.
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 3 years ago
PySD - 3.2.0
New Features
Add support for Vensim’s GET TIME VALUE (pysd.pybackend.functions.gettime_value()) function (issue #332). Not all cases have been implemented.
Add support for Vensim’s VECTOR SELECT (pysd.pybackend.functions.vectorselect()) function (issue #266).
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 3 years ago
PySD - 3.1.0
New features
Add support for Vensim’s VECTOR SORT ORDER (pysd.pybackend.functions.vectorsort_order()) function (issue #326).
- Add support for Vensim’s VECTOR RANK (pysd.pybackend.functions.vectorrank()) function (issue #326).
- Add support for Vensim’s VECTOR REORDER (pysd.pybackend.functions.vectorreorder()) function (issue #326).
Documentation
- Add the section Adding new functions with examples for developers.
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 3 years ago
PySD - 3.0.1
Including suggestions made by @blsqr:
Update development status to beta
Test now fail if there is any warning message
The tests that were still working with unittest have been moved to pytest
Test and add support for Python 3.10
Improve the test documentation
Move from SourceFileLoader.load_module() to importlib.util.spec_from_file_location.loader.exec_module() to avoid deprecation in Python 3.12
Correct some other warnings
Bug correction:
TabData objects' coordinates now are simplified in the model file, using the _subscript_dict as other objects.
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 3 years ago
PySD - 3.0.0
New Features
- The new Abstract Model Representation translation and building workflow will allow to add new output languages in the future.
Added new properties to the pysd.py_backend.model.Macro to make more accessible some information: namespace, subscripts, dependencies, modules, doc.
Cleaner Python models:
- _namespace and _dependencies dictionaries have been removed from the file.
- Variables original names, dependencies metadata now are given through pysd.pybackend.components.Component.add() decorator, instead of having them in the docstring. Merging of variable equations is now done using the coordinates to a pre-allocated array, instead of using the magic function pysd.pybackend.utils.xrmerge().
- Arranging and subseting arrays are now done inplace instead of using the magic function pysd.py_backend.utils.rearrange().
Breaking changes
- Set the argument flatten_output from run() to True by default. Previously it was set to False by default.
- Move the docstring of the model to a property, doc. Thus, it is not callable anymore.
- Allow the function pysd.pybackend.functions.pulse() to also perform the operations performed by pysd.pybackend.functions.pulsetrain() and pysd.pybackend.functions.pulse_magnitude().
- Change first argument of pysd.pybackend.functions.activeinitial(), now it is the stage of the model and not the time.
- Simplify the function pysd.py_backend.utils.rearrange() orienting it to perform simple rearrange cases for user interaction.
- Move pysd.pybackend.statefuls.Model and pysd.pybackend.statefuls.Macro to pysd.pybackend.model.Model and pysd.pybackend.model.Macro, respectively.
- Manage all kinds of lookups with the pysd.py_backend.lookups.Lookups class.
- Include a second optional argument to lookups functions to set the final coordinates when a subscripted variable is passed as an argument.
Deprecations
- Remove pysd.pybackend.utils.xrmerge(), pysd.pybackend.functions.pulsetrain(), pysd.pybackend.functions.pulsemagnitude(), pysd.pybackend.functions.lookup(), pysd.pybackend.functions.lookupdiscrete(), pysd.pybackend.functions.lookupextrapolation(), pysd.pybackend.functions.logicaland(), pysd.pybackend.functions.logicalor(), pysd.pybackend.functions.boundednormal(), pysd.py_backend.functions.log().
- Remove old translation and building files (pysd.translation).
Bug fixes
- Generate the documentation of the model when loading it to avoid lossing information when replacing a variable value (issue #310, PR #312).
- Make random functions return arrays of the same shape as the variable, to avoid repeating values over a dimension (issue #309, PR #312).
- Fix bug when Vensim’s :MACRO: definition is not at the top of the model file (issue #306, PR #312).
- Make builder identify the subscripts using a main range and subrange to allow using subscripts as numeric values as Vensim does (issue #296, issue #301, PR #312).
- Fix bug of missmatching of functions and lookups names (issue #116, PR #312).
- Parse Xmile models case insensitively and ignoring the new lines characters (issue #203, issue #253, PR #312).
- Add support for Vensim’s :EXCEPT: keyword (issue #168, issue #253, PR #312).
- Add spport for Xmile’s FORCST and SAFEDIV functions (issue #154, PR #312).
- Add subscripts support for Xmile (issue #289, PR #312).
- Fix numeric error bug when using return_timestamps and time step with non-integer values.
Documentation
- Review the whole documentation, refract it, and describe the new features.
Performance
- The variables defined in several equations are now assigned to a pre-allocated array instead of using pysd.py_backend.utils.xrmerge().
- The arranging and subseting of arrays is now done inplace instead of using the magic function pysd.py_backend.utils.rearrange().
- The grammars for Parsimonious are only compiled once per translation.
Internal Changes
- The translation and the building of models has been totally modified to use the Abstract Model Representation.
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 3 years ago
PySD - 2.2.0
- Enable using encoding information for reading Vensim model files.
- Read modules files with "UTF-8" encoding.
- Correct the paths and use
pathlib.Pathtype object in the model file for external objects, modules and Macros. - Correct several tests to make them run on Windows also.
- Add windows to GitHub Actions CI.
- Solve dependencies with active initial objects.
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez about 4 years ago
PySD - 2.1.0
Allow working with Vensim models with regular DATA declaration, reading the data from a csv or tab file when loading the model. Giving several options to the user.
Allow comparing two files with missing values and return True if the missing values are at the same place.
Allow running submodel or the current model, selecting it by variable names or modules (produced when translating a file per views).
Bug fixes.
Improve and update documentation.
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez about 4 years ago
PySD - 2.0.0
Dependencies dictionary added: 1. Improving caching strategy 2. Improving initialization of Stateful objects 3. Other possible future applications (graph generation...)
Manage model components: 1. Components class to load model and manage them, allowing inline changes 2. Control variables managing through Time class, allowing dynamic finaltime, timestep and saveper.
Several bug fixes (modulo, exponentials)
General cleanup
Improvements in the documentation
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez about 4 years ago
PySD - 1.11.0
- Support for Vensim's Forecast function
- Support for Vensim's ELMCOUNT function
- Support for Vensim's :NA: keyword
- Allow any lever of submodules: Now separator takes as values a list, which will indicate the number of sublevels and characters to divide them
- Correct bugs
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez about 4 years ago
PySD - v1.9.0
- Divide the python model into folders and files depending on the Vensim view and subview
- Add support for INVERT MATRIX
- Added support for logical comparisons between subscript ranges
- Improvements in benchmarking tools
- Correct bugs
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 4 years ago
PySD - v1.7.0
- Add possibility to export to a pickle the states and other needed values of the stateful objects using
- Add possibility to use exported values of stateful objects as initial conditions
- Add control variables to the run arguments,
final_time,time_stepandsavepercan be modified easily when calling run. - A bug with SampleIfTrue was solved. -Solve initialization order bug.
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 4 years ago
PySD - v1.5.0
- Benchmarking tools added
- Add an option to totally flatten an output dataframe
- Add the possibility to select the as default columns only the ones with cache 'step'
- Logical functions added to support logical operations between subscripted variables
- Support logical operations of the same operator without parenthesis
- Solve some bugs related to subscripts
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 4 years ago
PySD - v1.4.0
New features: - Basic subscript mapping
Bugs correction: - Support for subscripted SMOOTH and TREND - Correction of user interaction with lookup variables
Other improvements: - Documentation - More descriptive errors with stateful objects
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 4 years ago
PySD - v1.3.0
- Support for Vensim's Sample If True function (https://www.vensim.com/documentation/fnsampleif_true.html)
- Support for reading subscript by numeric range (https://www.vensim.com/documentation/22090.html)
Scientific Software - Peer-reviewed
- Python
Published by enekomartinmartinez over 4 years ago
PySD - Last version to support Python 2
This release captures the code at the point where we decided to drop support for Python 2 (see: https://github.com/JamesPHoughton/pysd/issues/220). If you need python 2, use this version.
Scientific Software - Peer-reviewed
- Python
Published by JamesPHoughton about 5 years ago
PySD - XMILE Reintegration
Scientific Software - Peer-reviewed
- Python
Published by JamesPHoughton about 8 years ago
PySD - Class-based model components
In this release, we've significantly refactored the way model components are stored and accessed, to increase the power available to the end user
Scientific Software - Peer-reviewed
- Python
Published by JamesPHoughton over 10 years ago
PySD - First Packaged Release
Supports import of vensim .mdl files and XMILE files, execution of models, measurement of arbitrary model elements at arbitrary times.
Limited to a subset of vensim and xmile standard functionality
Scientific Software - Peer-reviewed
- Python
Published by JamesPHoughton over 11 years ago
PySD - pre-package versions
This documents progress prior to the first packaged release
Scientific Software - Peer-reviewed
- Python
Published by JamesPHoughton over 11 years ago