This template is based on Pyramid Realworld Example App
The Pyramid Realworld Example App has gone to great lengths to adhere to the Pyramid community styleguides & best practices. But using it as github scaffold/template for your next Pyramid project meant after you've created your project, you need to go and remove lot of unwanted code (Not every app has articles and comments). It also means you need to replace (at least) conduit
(and Conduit
) with your own project name. cookiecutter approach helps with the second issue.
Please star the original Pyramid Realworld Example App repo.
Most of the times, in order to meet the deadline, we can not focus on the best practices. But if following the best practices is made simple, we will use it.
Following comes "built in"
- Continuous integration via CircleCI
- Support for
editorconfig
- Built in pre commit hooks
- flake8 checks with several flake8 plugins.
- Format code using
black
code formatter. - Spell check
- Ensures that you have not left any debug statements in your commit "by mistake"
- and more (Look inside
.pre-commit-config.yaml
)
- Tests for base project
- Makefile to make several tasks easy
Procfile
andruntime.txt
to make deploying on heroku easy.- Dockerized postgres, so you don't have to install and manage docker on your development machine.
You need to have cookiecutter, docker, pipenv and Python 3.7 installed on your machine. Docker should be running. Then you can run:
$ cookiecutter https://github.com/mandarvaze/cookiecutter-pyramid-realworld
$ cd <project_slug>
$ git init
$ make install
$ pipenv install -e .
$ make start-pgsql
$ make devdb
$ make run
Now point your browser to:
- http://localhost:8080/api -> Swagger documentation for the API
To run unit tests, mypy typing checker and flake8 linter:
$ make tests
To stop docker and clean container, you can run:
$ make stop-pgsql
$ make clean-pgsql
- Pyramid community for making such an amazing framework
- Team Niteo for making the Pyramid Realworld Example App
- pydanny, audreyr and others for making cookiecutter.