mirror of https://github.com/stijndcl/didier
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
1 month ago | |
---|---|---|
.github | 2 months ago | |
alembic | 1 month ago | |
database | 1 month ago | |
didier | 1 month ago | |
files/dictionaries | 8 months ago | |
profile_pictures | 6 months ago | |
tests | 2 months ago | |
.editorconfig | 10 months ago | |
.flake8 | 5 months ago | |
.gitignore | 6 months ago | |
.pre-commit-config.yaml | 1 month ago | |
.python-version | 2 years ago | |
alembic.ini | 9 months ago | |
codecov.yaml | 8 months ago | |
docker-compose.test.yml | 7 months ago | |
docker-compose.yml | 7 months ago | |
main.py | 5 months ago | |
pyproject.toml | 6 months ago | |
readme.md | 7 months ago | |
requirements-dev.txt | 1 month ago | |
requirements.txt | 6 months ago | |
run_db_scripts.py | 5 months ago | |
settings.py | 1 month ago |
readme.md
Didier
You bet. The time has come.
Development
Didier uses Python 3.9.5
, as specified in the .python-version
-file. This file will cause pyenv
to automatically use the correct version when you're working on Didier.
# 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.
# 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
.
# 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
explains how to set this up for different types of editors.