Gridworks Base
Project description
Gridworks Base
This repository serves two purposes:
-
it provides the base class for the default GridWorks actor using pika, the main python package for interacting with RabbitMQ
- install the
gwbase
package via
$ pip install gridworks-base
- install the
-
It provides scripts for runnig a local dev rabbit broker, which is the recommended way to develop.
Dev Rabbit Broker
All GridWorks repos require a running rabbitMQ dev broker running to pass tests or run dev simulations. Instructions for setting it up:
- Make sure you have docker installed
- Know whether your computer architecture is x86 or arm
- Start the dev broker in a docker container:
- x86 architecture:
./x86.sh
- arm architecture:
./arm.sh
- x86 architecture:
Tests for success:
- go to http://0.0.0.0:15672/ - it should look like this:
- Username/password for the dev rabbit broker: smqPublic/smqPublic
- [More info]](https://gridworks.readthedocs.io/en/latest/gridworks-broker.html) on the GridWorks use of rabbit brokers
- tests pass
poetry install
poetry shell
pytest -v
This, and most other GridWorks repositories, use poetry installed via pipx to handle package management. They are also kicked off via Cookiecutter, which also sets up a template for continuous integration in github actions, package publishing on pypi as well as documentation at pypi.
TODO: EXPLAIN MORE ABOUT CI, BLACK, NOX, DEPENDABOT. A MORE LINKS TO WHY THIS STUFF IS IMPORTANT IN A PRODUCTION SYSTEM.
Hello Rabbit
Quick start for seeing how the actor base can send a message on the rabbit broker. Run hello_rabbit.py (after starting up the dev rabbit broker, see dev broker above) and look at the src/gwbase/actor_base.py
code.
TODO: explain more about what this code does. Links to the type registroy, code generation. TODO: create a second hello script with two actors sending heartbeats back and forth.
Distributed under the terms of the MIT license, Gridworks Base is free and open source software.
Credits
This project was generated from @cjolowicz's Hypermodern Python Cookiecutter template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gridworks_base-0.2.2.tar.gz
.
File metadata
- Download URL: gridworks_base-0.2.2.tar.gz
- Upload date:
- Size: 39.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cccfcab729f650ee03f6b3fbaca62ea7d0d7271a00bbc0a73d9baac57e97142 |
|
MD5 | e2cf5b29f5967b186724fcda5dfb3ee1 |
|
BLAKE2b-256 | db264f641bbd3a5d9e3a5f64a0d3ce0cdc20541fb37d2799862b24c594f31816 |
File details
Details for the file gridworks_base-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: gridworks_base-0.2.2-py3-none-any.whl
- Upload date:
- Size: 53.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d39c81f6779710b7e25f017ec48dd9aa06dc3460bbf419e393d6307586388785 |
|
MD5 | bf3e30deed4bf3ff944bdcc596374b76 |
|
BLAKE2b-256 | f07c7d2d758412e3a1b3d3424f41db730b615c1f38cbe475dbc7c07d584446b2 |