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

1""" 

2`PyPermission` - The python RBAC authorization library for projects where `sqlalchemy` is a valid option. 

3 

4Author: Jendrik A. Potyka, Fabian A. Preiss 

5""" 

6 

7__version__ = "0.3.0" 

8__author__ = "Jendrik A. Potyka, Fabian A. Preiss" 

9 

10from typing import Final 

11 

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 

17 

18 

19class RBAC(metaclass=FrozenClass): 

20 """ 

21 Namespace for the Role and Subject services. 

22 

23 Attributes 

24 ---------- 

25 role : RoleService 

26 Shorthand for all RoleService functions. 

27 subject : SubjectService 

28 Shorthand for all SubjectService functions. 

29 """ 

30 

31 role: Final[type[RoleService]] = RoleService 

32 subject: Final[type[SubjectService]] = SubjectService 

33 

34 

35__all__ = [ 

36 "RBAC", 

37 "Policy", 

38 "Permission", 

39 "create_rbac_database_table", 

40 "set_sqlite_pragma", 

41 "PyPermissionError", 

42 "PermissionNotGrantedError", 

43]