Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyramid-helpers-1.5.1.tar.gz (389.5 kB view details)

Uploaded Source

Built Distribution

pyramid_helpers-1.5.1-py3-none-any.whl (425.2 kB view details)

Uploaded Python 3

File details

Details for the file pyramid-helpers-1.5.1.tar.gz.

File metadata

  • Download URL: pyramid-helpers-1.5.1.tar.gz
  • Upload date:
  • Size: 389.5 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

Hashes for pyramid-helpers-1.5.1.tar.gz
Algorithm Hash digest
SHA256 6ffbe7251aaf31ee79b3a9fbb4279db24c86b6d4d9771c26c497a77dbeb35e4d
MD5 be8a4558843a6c3d5b68c1b766e007ab
BLAKE2b-256 6ebdfadc7e3c71a6c642252c5c00e8aa9ff58e9bfed6df7c8e4a28fafa452f9d

See more details on using hashes here.

File details

Details for the file pyramid_helpers-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: pyramid_helpers-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 425.2 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

Hashes for pyramid_helpers-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1a4d6406e177f1e87f29b256a1e2aab3e81060e4a573ca8703acc2965a0a454f
MD5 96b0aee63bad903c28cc7f8ce3a452f7
BLAKE2b-256 b318fda96d939b7b2465a295ac8072d76c35e34491aa8da2722bbf615b1900fa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page