Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stijndcl/didier
Over-engineered Discord bot for my Ghent University class
https://github.com/stijndcl/didier
bot didier discord discord-bot discord-py python python3
Last synced: about 1 month ago
JSON representation
Over-engineered Discord bot for my Ghent University class
- Host: GitHub
- URL: https://github.com/stijndcl/didier
- Owner: stijndcl
- Created: 2020-10-04T17:30:49.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-03-03T23:48:23.000Z (11 months ago)
- Last Synced: 2024-03-04T17:55:55.945Z (11 months ago)
- Topics: bot, didier, discord, discord-bot, discord-py, python, python3
- Language: Python
- Homepage:
- Size: 5.29 MB
- Stars: 10
- Watchers: 1
- Forks: 6
- Open Issues: 8
-
Metadata Files:
- Readme: readme.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Didier
[![wakatime](https://wakatime.com/badge/user/3543d4ec-ec93-4b43-abd6-2bc2e310f3c4/project/100156e4-2fb5-40b4-b808-e47ef687905c.svg)](https://wakatime.com/badge/user/3543d4ec-ec93-4b43-abd6-2bc2e310f3c4/project/100156e4-2fb5-40b4-b808-e47ef687905c)
You bet. The time has come.
## Development
Didier uses `Python 3.9.5`, as specified in the [`.python-version`](.python-version)-file. This file will cause [`pyenv`](https://github.com/pyenv/pyenv) to automatically use the correct version when you're working on Didier.
```shell
# Installing Python 3.9.5 through pyenv
pyenv install 3.9.5# Creating a Virtual Environment and activate it
# PyCharm will automatically activate your venv
python3 -m venv venv
source venv/bin/activate# Installing dependencies + development dependencies
pip3 install -r requirements.txt -r requirements-dev.txt# Installing pre-commit hooks
pre-commit install
```The database can be managed easily using `Docker Compose`. If you want to, however, you can run a regular PostgreSQL server and connect to that instead.
A separate database is used in the tests, as it would obviously not be ideal when tests randomly wipe your database.
```shell
# Starting the database
docker compose up -d# Starting the database used in tests
docker compose -f docker-compose.test.yml up -d
```### Commands
_All of these are Python tools. Depending on your OS and configuration, you may have to prefix them with `python3 -m`._
```shell
# Starting Didier
python3 main.py# Running database migrations
alembic upgrade head# Creating a new database migration
alembic revision --autogenerate -m "Revision message here"# Running tests
pytest# Running tests with Coverage
coverage run -m pytest
# Generating code coverage report
coverage html# Running code quality checks
black
flake8
mypy
```It's also convenient to have code-formatting happen automatically on-save. The [`Black documentation`](https://black.readthedocs.io/en/stable/integrations/editors.html) explains how to set this up for different types of editors.