Skip to content

pik-software/pik-django-utils

Repository files navigation

pik-django-utils

This project aim is to provide common django project utils and tools for all PIK django projects.

It should provide guidance and tool recommendations for documentation, testing, etc.

This project is a part of django-service-boilerplate.

Versioning

We use semantic versioning MAJOR.MINOR.MAINTENANCE scheme, where the project author increments:

  • MAJOR version when they make incompatible API changes,
  • MINOR version when they add functionality in a backwards-compatible manner, and
  • MAINTENANCE version when they make backwards-compatible bug fixes.

PACKAGES

  • pik.core - Django specific staff
  • pik.libs - Django specific modules and libraries
  • pik.utils - not Django specific small utils and goodness

pik.core

  • pik.core.models - Abstract Django models for common use cases
  • pik.core.models.fields - common model fields
  • pik.core.tests - Testing helpers
  • pik.core.shortcuts - Django code shortcuts and missed helpers
  • pik.core.cache - Cache helpers
  • pik.core.clear_history - Module for deleting old history rows

pik.core.models

  • BasePHistorical / BaseHistorical - Base Historical Entity models
  • NullOwned / Owned - Models for user relation
  • SoftDeleted - Soft deletable model

pik.core.models.fields

  • InheritPrimaryUidField - Allows you to save the same UID Identifier for child table in inherited tables as in parent table

pik.core.tests

  • create_user / get_user - user fixtures

pik.core.shortcuts

  • get_object_or_none(model: Type[models.Model], **search_keys) -> Optional[models.Model]
  • validate_and_create_object(model: Type[models.Model], **kwargs) -> models.Model
  • validate_and_update_object(obj: models.Model, **kwargs) -> Tuple[models.Model, bool]
  • update_or_create_object(model: Type[models.Model], search_keys: Optional[dict] = None, **kwargs) -> Tuple[models.Model, bool, bool]
  • get_current_request() -> Optional[HttpRequest]

pik.libs

...

pik.utils

  • pik.utils.normalization - text normalization helpers

pik.utils.normalization

  • normalize(text: str) -> str
  • company_name_normalization(name: str) -> str