sfctools - A toolbox for stock-flow consistent, agent-based models

sfctools - A toolbox for stock-flow consistent, agent-based models - Published in JOSS (2023)

https://gitlab.com/dlr-ve/esy/sfctools/framework

Science Score: 89.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README and JOSS metadata
  • Academic publication links
  • Committers with academic emails
    2 of 3 committers (66.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Sociology Social Sciences - 87% confidence
Mathematics Computer Science - 84% confidence
Last synced: 4 months ago · JSON representation

Repository

Code repository for sfctools

Basic Info
  • Host: gitlab.com
  • Owner: dlr-ve
  • License: mit
  • Default Branch: main
Statistics
  • Stars: 5
  • Forks: 1
  • Open Issues: 28
  • Releases: 0
Created almost 4 years ago

https://gitlab.com/dlr-ve/esy/sfctools/framework/blob/main/

# sfctools - A toolbox for stock-flow consistent, agent-based models

Sfctools is a lightweight and easy-to-use Python framework for agent-based macroeconomic, stock-flow consistent (ABM-SFC) modeling. It concentrates on agents in economics and helps you to construct agents, helps you to manage and document your model parameters, assures stock-flow consistency, and facilitates basic economic data structures (such as the balance sheet). For more documentation, see https://sfctools-framework.readthedocs.io/en/latest/.

## Installation

We recommend to install sfctools in a fresh Python 3.8 environment. For example, with conda, do

    conda create --name sfcenv python=3.8
    conda activate sfcenv
    conda install pip

Then, in a terminal of your choice, type:

    pip install sfctools

see https://pypi.org/project/sfctools/

## Usage with Graphical User Interface 'Attune'

Type

    python -m sfctools attune

to start the GUI.

## Usage inside Python

Try out this simple example:

```python
from sfctools import Agent, World 

class SomeAgent(Agent):
    def __init__(self, a):
        super().__init__()
        self.some_attribute = a

my_agent = SomeAgent(a='Hello')
your_agent = SomeAgent(a='World')

my_agents = World().get_agents_of_type("SomeAgent")
my_message = my_agents[0].some_attribute
your_message = my_agents[1].some_attribute

print("%s says %s, %s says %s" % (my_agent, my_message, your_agent, your_message))
```

The resulting output will be

```console 
SomeAgent__00001 says Hello, SomeAgent__00002 says World
```

## More Examples

Have a look at the [documentation page](https://sfctools-framework.readthedocs.io/en/latest/doc_api_examples/examples_framework.html) for more examples. 


## Cite this Software

You can cite the software as follows: 

Baldauf, T., (2023). sfctools - A toolbox for stock-flow consistent, agent-based models. Journal of Open Source Software, 8(87), 4980, https://doi.org/10.21105/joss.04980


You can cite the software repository as follows:

Thomas Baldauf. (2023). sfctools - A toolbox for stock-flow consistent, agent-based models (1.1.0.2b). Zenodo. https://doi.org/10.5281/zenodo.8118870


-----------------------------------

| Corresponding author: Thomas Baldauf, German Aerospace Center (DLR), Curiestr. 4 70563 Stuttgart | thomas.baldauf@dlr.de |

Owner

  • Name: dlr-ve
  • Login: dlr-ve
  • Kind: organization

JOSS Publication

sfctools - A toolbox for stock-flow consistent, agent-based models
Published
July 12, 2023
Volume 8, Issue 87, Page 4980
Authors
Thomas Baldauf ORCID
German Aerospace Center (DLR), Institute of Networked Energy Systems, Curiestr. 4, 70563 Stuttgart, Germany
Editor
Sebastian Benthall ORCID
Tags
Agent-Based Modeling Stock-Flow Consistent Modeling User Interface Economics

Committers

Last synced: 4 months ago

All Time
  • Total Commits: 470
  • Total Committers: 3
  • Avg Commits per committer: 156.667
  • Development Distribution Score (DDS): 0.149
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Thomas Baldauf t****f@d****e 400
Baldauf T****f@d****e 61
bald_to C****7 9
Committer Domains (Top 20 + Academic)
dlr.de: 2

Issues and Pull Requests

Last synced: 4 months ago


Dependencies

docs/requirements.txt pypi
  • enum_tools ==0.9.0.post1
  • sfctools ==0.8.2
  • sphinx_toolbox ==2.17.0
  • sphinxcontrib-bibtex ==2.4.1
poetry.lock pypi
  • attrs 22.1.0
  • cachecontrol 0.12.12
  • cachy 0.3.0
  • cattrs 1.0.0
  • certifi 2022.9.24
  • cffi 1.15.1
  • charset-normalizer 2.1.1
  • cleo 1.0.0a5
  • contourpy 1.0.5
  • crashtest 0.3.1
  • cryptography 38.0.1
  • cycler 0.11.0
  • distlib 0.3.6
  • dulwich 0.20.46
  • et-xmlfile 1.1.0
  • filelock 3.8.0
  • fonttools 4.37.3
  • graphviz 0.19.2
  • html5lib 1.1
  • idna 3.4
  • importlib-metadata 4.12.0
  • importlib-resources 5.9.0
  • jaraco.classes 3.2.3
  • jeepney 0.8.0
  • jsonschema 4.16.0
  • keyring 23.9.3
  • kiwisolver 1.4.4
  • matplotlib 3.6.0
  • more-itertools 8.14.0
  • msgpack 1.0.4
  • networkx 2.8.6
  • numpy 1.23.3
  • openpyxl 3.0.10
  • packaging 21.3
  • pandas 1.5.0
  • pexpect 4.8.0
  • pillow 9.2.0
  • pkginfo 1.8.3
  • pkgutil-resolve-name 1.3.10
  • platformdirs 2.5.2
  • poetry 1.2.1
  • poetry-core 1.2.0
  • poetry-plugin-export 1.0.7
  • ptyprocess 0.7.0
  • pycparser 2.21
  • pydot 1.4.2
  • pylev 1.4.0
  • pyparsing 3.0.9
  • pyperclip 1.8.2
  • pyrsistent 0.18.1
  • python-dateutil 2.8.2
  • pytz 2022.2.1
  • pywin32-ctypes 0.2.0
  • pyyaml 6.0
  • requests 2.28.1
  • requests-toolbelt 0.9.1
  • scipy 1.6.1
  • seaborn 0.11.2
  • secretstorage 3.3.3
  • setuptools-scm 7.0.5
  • shellingham 1.5.0
  • six 1.16.0
  • tomli 2.0.1
  • tomlkit 0.11.5
  • typing-extensions 4.3.0
  • urllib3 1.26.12
  • virtualenv 20.16.5
  • webencodings 0.5.1
  • xattr 0.9.9
  • zipp 3.8.1
pyproject.toml pypi
  • cattrs 1.0.0
  • graphviz ^0.19
  • matplotlib ^3.4
  • networkx ^2.6.3
  • numpy ^1.20.1
  • openpyxl ^3.0.10
  • pandas ^1.4
  • poetry ^1.1.6
  • pydot ^1.4
  • pyperclip ^1.8
  • python >=3.8,<4.0
  • pyyaml ^6.0
  • seaborn ^0.11.2
  • setuptools ^60.0.0
  • wheel ^0.36.2