upstage-des


Nameupstage-des JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryA library for behavior-driven discrete event simulation.
upload_time2024-12-10 18:25:44
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords agent based modeling agents behavior modeling discrete event simulation modeling operations simpy simulation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # UPSTAGE

UPSTAGE is a **U**niversal **P**latform for **S**imulating
**T**asks and **A**ctors with **G**raphs and **E**vents built atop
[__`SimPy 4`__][simpy-repo].

## What is UPSTAGE for?

__UPSTAGE__ is a Python framework for creating robust, behavior-driven Discrete Event Simulations (DES). The primary goal of UPSTAGE is to enable the quick creation of simulations at any desired level of abstraction with built-in data recording, simulation integrity and runtime checks, and assistance for the usual pitfalls in custom discrete-event simulation: interrupts and cancellations. It is designed is to simplify the development process for simulation models of *complex systems of systems*.

__UPSTAGE__ leverages the extensible [__`SimPy`__][simpy-docs] library and adds two concepts to accelerate the generation of complex discrete-event simulations.

1. `Actor` - i.e., an entity that has `State`
2. `Task` - i.e., actions actors can perform and that can be organized into a `TaskNetwork`.

Actors can have multiple networks running on them, their states can be shared, and there are features for interactions between task networks running on the same actor. Those tasks modify the states on their actor, with features for real-time states that update on request without requiring time-stepping or modifying the existing events.

![image](docs/source/_static/upstage-flow.png)

Additional features include:

1. Context-aware `EnvironmentContext`, accessed via `UpstageBase`, enabling thread-safe simulation globals for the _Stage_ and _Named Entities_ (see below).
1. __Active States__ (e.g.,`LinearChangingState`) represent continuous-time attributes of actors that can be queried at discrete points in time, or trigger events when they reach a certain level.
1. Spatial-aware data types (e.g., `CartesianLocation`) and states like the waypoint-following `GeodeticLocationChangingState`.
1. Geodetic and cartesian positions, distances, and motion - with ranged sensing.
1. `NamedEntity` in a thread-safe global context, enabling easier "director" logic creation with less argument passing in your code
1. The `Stage`: a global context variable for simulation properties and attributes. This enables under-the-hood coordination of motion, geography, and other features.
1. __Rehearsal__: Write planning and simulation code in one place only, and "rehearse" an actor through a task network using planning factors to discover task feasibility before the actor attempts to complete the task.
1. All States are recordable
1. Numerous runtime checks and error handling for typical DES pitfalls: based on more than a decade of custom DES-building experience.
1. And more!

See the [documentation][upstage-docs] for tutorials and details.

## Requirements

UPSTAGE only requires Python 3.11+ and Simpy 4+.

## Installation

In an environment (Python 3.11+) of your choice:

```console
pip install upstage-des
```

### Installation from source

Alternatively, you can download UPSTAGE and install it manually. Clone, or download the archive and extract it. From the extraction location (and within a suitable Python environment):

```console
python -m pip install .
```

(or just `pip install .`)

### Installation for tests

To run the tests: clone locally, install into a fresh environment, and run using:

```console
pip install -e .[test]
pytest
```

## Documentation

See the [documentation][upstage-docs] for tutorials and additional details.

## How do I report an issue?

Using the issue feature, please explain in as much detail as possible:

1. The Python version and environment
2. How UPSTAGE was installed
3. A minimum working example of the bug, along with any output/errors.

## How do I contribute?

To set up a suitable development environment, see [CONTRIBUTING][contributing].

For information on how to style your code, see the [Style Guide][style-guide].

[contributing]: ./CONTRIBUTING.md
[style-guide]: ./STYLE_GUIDE.md
[simpy-docs]: https://simpy.readthedocs.io/en/latest/
[simpy-repo]: https://gitlab.com/team-simpy/simpy/
[upstage-docs]: https://gtri.github.io/upstage


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "upstage-des",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "agent based modeling, agents, behavior modeling, discrete event simulation, modeling, operations, simpy, simulation",
    "author": null,
    "author_email": "James Arruda <James.Arruda@gtri.gatech.edu>",
    "download_url": "https://files.pythonhosted.org/packages/bf/e6/c56c58ce0674d95aa51bbc37e6f45f1927642a8e1e62fd39d5b59819cefa/upstage_des-0.1.1.tar.gz",
    "platform": null,
    "description": "# UPSTAGE\n\nUPSTAGE is a **U**niversal **P**latform for **S**imulating\n**T**asks and **A**ctors with **G**raphs and **E**vents built atop\n[__`SimPy 4`__][simpy-repo].\n\n## What is UPSTAGE for?\n\n__UPSTAGE__ is a Python framework for creating robust, behavior-driven Discrete Event Simulations (DES). The primary goal of UPSTAGE is to enable the quick creation of simulations at any desired level of abstraction with built-in data recording, simulation integrity and runtime checks, and assistance for the usual pitfalls in custom discrete-event simulation: interrupts and cancellations. It is designed is to simplify the development process for simulation models of *complex systems of systems*.\n\n__UPSTAGE__ leverages the extensible [__`SimPy`__][simpy-docs] library and adds two concepts to accelerate the generation of complex discrete-event simulations.\n\n1. `Actor` - i.e., an entity that has `State`\n2. `Task` - i.e., actions actors can perform and that can be organized into a `TaskNetwork`.\n\nActors can have multiple networks running on them, their states can be shared, and there are features for interactions between task networks running on the same actor. Those tasks modify the states on their actor, with features for real-time states that update on request without requiring time-stepping or modifying the existing events.\n\n![image](docs/source/_static/upstage-flow.png)\n\nAdditional features include:\n\n1. Context-aware `EnvironmentContext`, accessed via `UpstageBase`, enabling thread-safe simulation globals for the _Stage_ and _Named Entities_ (see below).\n1. __Active States__ (e.g.,`LinearChangingState`) represent continuous-time attributes of actors that can be queried at discrete points in time, or trigger events when they reach a certain level.\n1. Spatial-aware data types (e.g., `CartesianLocation`) and states like the waypoint-following `GeodeticLocationChangingState`.\n1. Geodetic and cartesian positions, distances, and motion - with ranged sensing.\n1. `NamedEntity` in a thread-safe global context, enabling easier \"director\" logic creation with less argument passing in your code\n1. The `Stage`: a global context variable for simulation properties and attributes. This enables under-the-hood coordination of motion, geography, and other features.\n1. __Rehearsal__: Write planning and simulation code in one place only, and \"rehearse\" an actor through a task network using planning factors to discover task feasibility before the actor attempts to complete the task.\n1. All States are recordable\n1. Numerous runtime checks and error handling for typical DES pitfalls: based on more than a decade of custom DES-building experience.\n1. And more!\n\nSee the [documentation][upstage-docs] for tutorials and details.\n\n## Requirements\n\nUPSTAGE only requires Python 3.11+ and Simpy 4+.\n\n## Installation\n\nIn an environment (Python 3.11+) of your choice:\n\n```console\npip install upstage-des\n```\n\n### Installation from source\n\nAlternatively, you can download UPSTAGE and install it manually. Clone, or download the archive and extract it. From the extraction location (and within a suitable Python environment):\n\n```console\npython -m pip install .\n```\n\n(or just `pip install .`)\n\n### Installation for tests\n\nTo run the tests: clone locally, install into a fresh environment, and run using:\n\n```console\npip install -e .[test]\npytest\n```\n\n## Documentation\n\nSee the [documentation][upstage-docs] for tutorials and additional details.\n\n## How do I report an issue?\n\nUsing the issue feature, please explain in as much detail as possible:\n\n1. The Python version and environment\n2. How UPSTAGE was installed\n3. A minimum working example of the bug, along with any output/errors.\n\n## How do I contribute?\n\nTo set up a suitable development environment, see [CONTRIBUTING][contributing].\n\nFor information on how to style your code, see the [Style Guide][style-guide].\n\n[contributing]: ./CONTRIBUTING.md\n[style-guide]: ./STYLE_GUIDE.md\n[simpy-docs]: https://simpy.readthedocs.io/en/latest/\n[simpy-repo]: https://gitlab.com/team-simpy/simpy/\n[upstage-docs]: https://gtri.github.io/upstage\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A library for behavior-driven discrete event simulation.",
    "version": "0.1.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/gtri/upstage/issues",
        "Documentation": "https://gtri.github.io/upstage",
        "Source": "https://github.com/gtri/upstage"
    },
    "split_keywords": [
        "agent based modeling",
        " agents",
        " behavior modeling",
        " discrete event simulation",
        " modeling",
        " operations",
        " simpy",
        " simulation"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bbda79c4644cce0ae2dccf5dd9559d7c4097d329ccf278b2b30a5dcccb145c61",
                "md5": "fe1636ee3e3ecae24d29fcda1930b3c7",
                "sha256": "8652ed4b7bc8f38ff9db957431c931c6ac2eadafa02b4e5bf40b6537e714540c"
            },
            "downloads": -1,
            "filename": "upstage_des-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fe1636ee3e3ecae24d29fcda1930b3c7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 166776,
            "upload_time": "2024-12-10T18:25:41",
            "upload_time_iso_8601": "2024-12-10T18:25:41.427882Z",
            "url": "https://files.pythonhosted.org/packages/bb/da/79c4644cce0ae2dccf5dd9559d7c4097d329ccf278b2b30a5dcccb145c61/upstage_des-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bfe6c56c58ce0674d95aa51bbc37e6f45f1927642a8e1e62fd39d5b59819cefa",
                "md5": "e6532101d15fc6364c6f8646394dee6a",
                "sha256": "e05a35b7637612f4fe0a306d5f950260e97b73c73c66ce85780719bdfa421083"
            },
            "downloads": -1,
            "filename": "upstage_des-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e6532101d15fc6364c6f8646394dee6a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 123951,
            "upload_time": "2024-12-10T18:25:44",
            "upload_time_iso_8601": "2024-12-10T18:25:44.214366Z",
            "url": "https://files.pythonhosted.org/packages/bf/e6/c56c58ce0674d95aa51bbc37e6f45f1927642a8e1e62fd39d5b59819cefa/upstage_des-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-10 18:25:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gtri",
    "github_project": "upstage",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "upstage-des"
}
        
Elapsed time: 0.36926s