Helpers to develop Pyramid applications
Project description
Pyramid-Helpers
Pyramid-Helpers is a set of helpers to develop applications using Pyramid framework.
It includes authentication, forms, i18n and pagination helpers.
Prerequisites
The project is managed using Poetry
PostgreSQL adapter (Optional)
In order to use a PostgreSQL database, it is recommended to install the psycopg adapter. You should check the build prerequisites in order to install this package (source only).
LDAP client (Optional)
LDAP client relies on the python-ldap client. You should check the build prerequisites in order to install this package.
Development
# Create virtualenv
mkdir .venv
python3 -m venv .venv
# Activate virtualenv
source .venv/bin/activate
# Update virtualenv
pip install -U pip setuptools
# Install Poetry
pip install wheel
pip install poetry
# Install application in development mode
poetry install --extras "{source|binary} [api-doc] [auth-ldap] [auth-radius]"
poetry run invoke i18n.generate
# Copy and adapt conf/ directory
cp -a conf .conf
# Initialize database
phelpers-init-db .conf/application.ini
# Run web server in development mode
poetry run invoke service.httpd --config-uri=.conf/application.ini --env=.conf/environment
# Run static and functional tests:
poetry run invoke test --config-uri=.conf/application.ini --env=.conf/environment
Tests
Static code validation
# flake8
poetry run invoke test.flake8 --config-uri=.conf/application.ini --env=.conf/environment
# pylint
poetry run invoke test.pylint --config-uri=.conf/application.ini --env=.conf/environment
# both
poetry run invoke test.static --config-uri=.conf/application.ini --env=.conf/environment
Validators
poetry run invoke test.functional --config-uri=.conf/application.ini --env=.conf/environment --test='tests/test_validators.py'
API
# API tests must be executed on a «clean» database, reset it if necessary
rm pyramid-helpers.sqlite
phelpers-init-db .conf/application.ini
# Start the HTTPD service
poetry run invoke service.httpd --config-uri=.conf/application.ini --env=.conf/environment
# Launch the tests from another console
poetry run invoke test.functional --config-uri=.conf/application.ini --env=.conf/environment --test='tests/api/test_articles.py'
# You may add `--app-url` argument if needed :
poetry run invoke test.functional --config-uri=.conf/application.ini --env=.conf/environment --app-url='https://0.0.0.0:6543' --test='tests/api/test_articles.py'
API tests must be executed in the correct order, moreover most of them depends on previous one.
I18n
Extract messages
poetry run invoke i18n.extract i18n.update
Compile catalogs and update JSON files
poetry run invoke i18n.generate
Create new language
poetry run invoke i18n.init {locale_name}
Installation
pip install pyramid-helpers
# And optionally:
phelpers-init-db conf/application.ini
Files list
.
├── babel.cfg Babel configuration file (i18n)
├── CHANGES.md
├── pylintrc Pylint configuration file
├── pyproject.toml Poetry configuration file
├── README.md
├── setup.cfg
├── conf
│ ├── application.ini Main configuration file
│ ├── auth.ini Authentication configuration
│ ├── ldap.ini LDAP configuration file (auth)
│ └── radius.ini RADIUS configuration file (auth)
├── pyramid_helpers
│ ├── __init__.py demo app config
│ ├── auth.py auth helpers for demo app
│ ├── models.py SQLAlchemy model for demo app
│ ├── paginate.py pagination class, decorator and setup
│ ├── predicates.py custom route predicates (Enum, Numeric)
│ ├── resources.py basic resource file for demo app
│ ├── forms
│ │ ├── __init__.py form class, decorator and setup, largely inspired from formhelpers[1]
│ │ ├── auth.py formencode schema for authentication for demo app
│ │ ├── articles.py formencode schemas for articles for demo app
│ │ ├── tags.py HTML input tags renderers
│ │ └── validators.py various formencode validators
│ ├── funcs
│ │ ├── __init__.py
│ │ └── articles.py functions for articles management
│ ├── i18n.py i18n setup and helpers
│ ├── locale
│ │ ├── fr
│ │ │ └── LC_MESSAGES
│ │ │ └── pyramid-helpers.po
│ │ └── pyramid-helpers.pot
│ ├── scripts
│ │ ├── __init__.py
│ │ └── initializedb.py
│ ├── static
│ │ ├── css
│ │ │ └── pyramid-helpers.css demo app stylesheet
│ │ └── js
│ │ └── pyramid-helpers.js demo app javascript
│ ├── templates Mako templates
│ │ ├── articles Mako templates for demo app
│ │ │ ├── edit.mako
│ │ │ ├── index.mako
│ │ │ └── view.mako
│ │ ├── confirm.mako
│ │ ├── errors.mako
│ │ ├── form-tags.mako Mako templates for forms rendering - derivates from formhelpers[1]
│ │ ├── login.mako
│ │ ├── paginate.mako Mako templates for pagination rendering
│ │ ├── site.mako Main template
│ │ └── validators.mako Test template for validators
│ └── views
│ ├── __init__.py
│ └── articles.py
├── tasks Invoke tasks
│ ├── __init__.py initialization
│ ├── common.py common file
│ ├── i18n.py i18n tasks
│ ├── service.py service tasks
│ └── test.py test tasks
└── tests Functional tests (pytest)
├── api
│ └── test_articles.py test functions for articles API
├── conftest.py configuration file for pytest
└── test_validators.py test functions for formencode validators
Useful documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyramid-helpers-1.5.0.tar.gz
.
File metadata
- Download URL: pyramid-helpers-1.5.0.tar.gz
- Upload date:
- Size: 389.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.6 CPython/3.9.2 Linux/5.10.0-6-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a53c18268d33191b1a62d9e1ad7e6657fb941731f3efaf0832fb345b2400c4a |
|
MD5 | 4b32ee4a394c4f23da106675d83d5dfa |
|
BLAKE2b-256 | 5aa3fca30b532d38a4e28f3ed6978a8183326c2c4799b5e63986b0b9163589c4 |
File details
Details for the file pyramid_helpers-1.5.0-py3-none-any.whl
.
File metadata
- Download URL: pyramid_helpers-1.5.0-py3-none-any.whl
- Upload date:
- Size: 424.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.6 CPython/3.9.2 Linux/5.10.0-6-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85aa073c03223065b978299ba3a0881d193357fd684e5664628514be2a476e60 |
|
MD5 | c2ce5c4894cc6b1d775965ad29fdb837 |
|
BLAKE2b-256 | 0f58586f2fcea41202e4501ac95368b73724011b1b897cda11c7a44f0977e469 |