Coverage for src/pypermission/__init__.py: 100%
12 statements
« prev ^ index » next coverage.py v7.11.3, created at 2025-11-14 14:14 +0000
« prev ^ index » next coverage.py v7.11.3, created at 2025-11-14 14:14 +0000
1"""
2`PyPermission` - The python RBAC authorization library for projects where `sqlalchemy` is a valid option.
4Author: Jendrik A. Potyka, Fabian A. Preiss
5"""
7__version__ = "0.3.0"
8__author__ = "Jendrik A. Potyka, Fabian A. Preiss"
10from typing import Final
12from pypermission.db import create_rbac_database_table, set_sqlite_pragma
13from pypermission.exc import PermissionNotGrantedError, PyPermissionError
14from pypermission.models import FrozenClass, Permission, Policy
15from pypermission.service.role import RoleService
16from pypermission.service.subject import SubjectService
19class RBAC(metaclass=FrozenClass):
20 """
21 Namespace for the Role and Subject services.
23 Attributes
24 ----------
25 role : RoleService
26 Shorthand for all RoleService functions.
27 subject : SubjectService
28 Shorthand for all SubjectService functions.
29 """
31 role: Final[type[RoleService]] = RoleService
32 subject: Final[type[SubjectService]] = SubjectService
35__all__ = [
36 "RBAC",
37 "Policy",
38 "Permission",
39 "create_rbac_database_table",
40 "set_sqlite_pragma",
41 "PyPermissionError",
42 "PermissionNotGrantedError",
43]