Skip to main content

Lightweight, YAML-driven, text based, generic irc Bot framework

Project description

MewBot

Contributor Covenant

All Contributors

Linting Quality Gate Status

MewBot is an automation framework intended to simplify building cross-platform text/chat-bots. The design is intended to be modular with configuration separated from code, allowing users and developers to build out custom logic and behaviours with minimal coding experience.

Status

:warning: This project is still in the very early stages. Some basic bots can be built and run, but we currently consider all parts of the framework to be unstable.

Packages and Modules

Package Modules Description
mewbot mewbot Tools to load a bot, and run that bot.
mewbot-core mewbot.core Base interfaces for all modules
mewbot-api mewbot.api.v1 Development libraries + component registry system. This is the package that all 3rd party libraries should depend on for their interfaces.
mewbot-io mewbot.io.* The bindings to connect MewBot to a given service.
mewbot-test mewbot.tests Utilities for writing tests for MewBot modules.

module dependency graph

Development

Contributions to the project are made via GitHub pull requests, which will enforce the code style and linting requirements of this project.

Setting up project for local development

The recommended way to set this project up is using python 3.9 (or higher) with a venv setup. The setup is mostly standard, but we do have to add ./src to the PYTHONPATH so that python correctly detects all the source files. The following example will get you started in bash-like shells.

# Get the source code
git clone git@github.com:mewler/mewbot
cd mewbot

# Set up the virtual environment
python3 -m venv venv
printf 'PYTHON_PATH=./src:$PYTHON_PATH\n' >>venv/bin/activate

# Activate the virtual environment
source venv/bin/activate

# Install all dependencies (including development dependencies)
pip install requirements-dev.txt

# Run a demo!
python3 -m examples examples/trivial_socket.yaml

Running the tests and linters

You can run the linters via the convenience script python3 -m tools.lint. This runs the auto-formatter black, two opinionated linting tools in flake8 and pylint, and the mypy type checker in strict mode.

You can run the test framework using the convenience script python3 -m tools.test. Locally this will default to running all tests in parallel for fast testing. You can add the flag --cov to enable coverage, which will output coverage information both to the terminal and store details of code coverage as webpages in coverage/.

More information on the linters and tests can be found in the contributor documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mewbot-io-0.0.1.tar.gz (17.8 kB view hashes)

Uploaded Source

Built Distribution

mewbot_io-0.0.1-py3-none-any.whl (18.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page