sfctools - A toolbox for stock-flow consistent, agent-based models
sfctools - A toolbox for stock-flow consistent, agent-based models - Published in JOSS (2023)
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
- Repositories: 11
- Profile: https://gitlab.com/dlr-ve
JOSS Publication
sfctools - A toolbox for stock-flow consistent, agent-based models
Published
July 12, 2023
Volume 8, Issue 87, Page 4980
Authors
Tags
Agent-Based Modeling Stock-Flow Consistent Modeling User Interface EconomicsCommitters
Last synced: 4 months ago
Top Committers
| Name | 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
