Skip to main content

About

A reusable DRF library that provides reusable components.

Installation

pip install django-pycorpkit

Quick start

  1. Add “django-pycorpkit” to your INSTALLED_APPS setting:

    INSTALLED_APPS = [
        ...
        "pycorpkit.common",
        "pycorpkit.accountx",
        "pycorpkit.org_structure",
    ]
  2. Include the django_sample_lib URLconf in your project urls.py:

    path('api/', include('pycorpkit.urls')),
  3. Run migrations:

    python manage.py migrate
  4. Add exception handler and default backend filter:

    REST_FRAMEWORK = {
        "EXCEPTION_HANDLER": "pycorpkit.common.utils.exception_handler.custom_exception_handler",
        "DEFAULT_PERMISSION_CLASSES": [
            "pycorpkit.accountx.permissions.enforce.EnforceDRFViewPermission",
        ],
        "DEFAULT_FILTER_BACKENDS": (
            "pycorpkit.common.filters.base.OrganisationFilterBackend",
        ),
    }
  5. Add required variables in settings file:

    PERMISSIONS_PATH = "testapp.perms"
    APP_NAME = "PyCorpKit"
    CLIENT_DOMAIN = "http://domain.com/"
    AUTH_USER_MODEL = "accountx.User"
    DEFAULT_FROM_EMAIL = "admin@example.com"
    SIMPLE_JWT = {
        "ACCESS_TOKEN_LIFETIME": timedelta(seconds=3600),
        "REFRESH_TOKEN_LIFETIME": timedelta(days=7),
    }
  6. INCLUDE django_rest_passwordreset in installed apps

    INSTALLED_APPS = (
        'django_rest_passwordreset',
    )
  7. Add PhoneModelBackend to AUTHENTICATION_BACKENDS

    AUTHENTICATION_BACKENDS = [
        'django.contrib.auth.backends.ModelBackend',
        # add the below after `ModelBackend`
        'pycorpkit.common.utils.phone_backend.PhoneModelBackend',
    ]
  8. Add organisation middleware

    MIDDLEWARE = [
        "pycorpkit.common.utils.middleware.OrganisationIDMiddleware",
    ]
  9. Define DEFAULT_ROLES in settings

    DEFAULT_ROLES = {
        "Organisation Admin": ORGANISATION_ADMIN,
        "Branch Admin": BRANCH_ADMIN,
        "Department Admin": DEPARTMENT_ADMIN,
        "User": PROFILE_ADMIN,
    }

Development

To set up the development environment:

  1. Clone the repository

  2. Create a virtual environment and activate it

  3. Install development dependencies:

    pip install -e ".[dev]"
  4. Run tests:

    python -m pytest tests
    # OR
    pytest tests/

Install test dependencies

pip install -e ".[test]"

Making migrations

python testapp/manage.py makemigrations
python testapp/manage.py makemigrations <app_name> --empty

Migrate

python testapp/manage.py migrate

Metadata

Release files for django-pycorpkit 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-pycorpkit 1.0.4
File Size Uploaded
django_pycorpkit-1.0.4.tar.gz 70.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-pycorpkit 1.0.4
File Interpreter ABI Platform
django_pycorpkit-1.0.4-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 140.0 kB

Release files / django_pycorpkit-1.0.4.tar.gz

Download URL django_pycorpkit-1.0.4.tar.gz
Size 70.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8079d83c17914e86feb6c49373c9b5bb8c1035500967dc620848db4ac57e672b
BLAKE2b-256 checksum
How to use checksums
a08adacaeb97ed74ae1df17ac56be1fdcd58b973ecb9b53022afea40e074b6c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release files / django_pycorpkit-1.0.4-py2.py3-none-any.whl

Download URL django_pycorpkit-1.0.4-py2.py3-none-any.whl
Size 69.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
1bdb7babb724cec2d60892271a78620e00baae91f24bdf7f75275d81d6eba2fe
BLAKE2b-256 checksum
How to use checksums
41e2da1a2bb220ea4c20a45ab4d78278297c000e9b657811919922a1639b0428
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.0.4 This release

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page