Metadata-Version: 2.4
Name: grace-framework
Version: 1.5.0a0
Summary: Extensible Discord bot framework based on Discord.py
Author: Simon Roy
Maintainer-email: Code Society Lab <admin@codesociety.xyz>
License: The MIT License (MIT)
        
        Copyright (c) 2024 Code Society Lab
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in
        all copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
        THE SOFTWARE.
        
Project-URL: Homepage, https://codesociety.xyz
Project-URL: Source, https://github.com/Code-Society-Lab/grace-framework
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: discord>2.0
Requires-Dist: logger
Requires-Dist: coloredlogs
Requires-Dist: python-dotenv
Requires-Dist: configparser
Requires-Dist: click
Requires-Dist: sqlalchemy
Requires-Dist: sqlalchemy-utils
Requires-Dist: sqlmodel
Requires-Dist: pydantic
Requires-Dist: alembic
Requires-Dist: cookiecutter
Requires-Dist: jinja2-strcase
Requires-Dist: inflect
Requires-Dist: watchdog
Requires-Dist: apscheduler
Provides-Extra: dev
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-mock; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: isort; extra == "dev"
Provides-Extra: doc
Requires-Dist: mkdocs; extra == "doc"
Requires-Dist: mkdocs-material; extra == "doc"
Requires-Dist: mkdocstrings[python]; extra == "doc"

# Grace Framework
> *Build powerful Discord bots, without the boilerplate.*

[![Static Badge](https://img.shields.io/badge/%F0%9F%93%9A-Documentation-%235c5c5c)](https://github.com/Code-Society-Lab/grace-framework/wiki)
[![Join on Discord](https://discordapp.com/api/guilds/823178343943897088/widget.png?style=shield)](https://discord.gg/code-society-823178343943897088)
[![Tests](https://github.com/Code-Society-Lab/grace-framework/actions/workflows/grace_framework.yml/badge.svg?branch=main)](https://github.com/Code-Society-Lab/grace-framework/actions/workflows/grace_framework.yml)


## What is Grace Framework
Grace Framework is an opinionated, extensible Discord bot framework built on top of [discord.py](https://github.com/Rapptz/discord.py). It comes with a various tools designed to help you rapidly build scalable, feature-rich Discord bots with minimal boilerplate.

#### Key features
- **Quick to start**: Generate a full-featured bot in seconds
- **Modular Architecture**: Clean separation of features via extensions
- **Database Integration**: Easily connect your bot to a persistent backend
- **Built-in Generators**: Create extensions, models and more with a single command

#### Inspiration
Grace Framework was inspired by the evolution of our community discord bot, [Grace](https://github.com/Code-Society-Lab/grace),  that evolved, gaining support for modular extensions, database integrations, and rapid feature development — it began to resemble a standalone framework. Recognizing its potential, we decided to extracted its architecture into Grace Framework, making its ease-of-use and flexibility available to developers everywhere.

## Getting Started
#### 1- Install the package
**requirements**
- Python 3.10 or higher
- SQLite (or Postgresql, MySQL & MariaDB, Oracle, and MS-SQL)

```
$ pip install grace-framework
```

To install the development version:
```
$ git clone https://github.com/Code-Society-Lab/grace-framework.git
$ cd grace-framework
$ pip install -e .
```

*Note*: It is recommended to use a [virtual environment](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/) when installing python packages.

#### 2- Generate a new bot
```
$ grace new my-awesome-bot
$ cd my-awesome-bot
```

By default, a database is scaffolded alongside your bot. Pass `--no-database` to skip
it, and add one later with `grace generate database`.

#### 3- Set your bot token
Edit the `.env` in the project directory and set `DISCORD_TOKEN`.

```
DISCORD_TOKEN=YOUR TOKEN
```

#### 4- Run your bot
```
$ grace run
```

#### 5- Start building!
Check out the official [wiki](https://github.com/Code-Society-Lab/grace-framework/wiki) for guides, architecture, and API reference.

# Contributing
We welcome everyone to contribute! 

Whether it's fixing bugs, suggesting features, or improving the docs - every bit helps.
- Submit an issue
- Open a pull request
- Or just hop into our [Discord community](https://discord.gg/code-society-823178343943897088) and say hi!

If you intend to contribute, please read the [CONTRIBUTING.md](./CONTRIBUTING.md) first. Additionally, **every contributor** is expected to follow the [code of conduct](./CODE_OF_CONDUCT.md).

# License
Grace Framework is released under [MIT](https://github.com/Code-Society-Lab/grace-framework/blob/main/LICENSE)
