Coverage for /Users/davegaeddert/Development/dropseed/plain/plain-flags/plain/flags/utils.py: 62%

8 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2024-10-16 22:03 -0500

1from typing import Any 

2 

3from plain import models 

4 

5 

6def coerce_key(key: Any) -> str: 

7 """ 

8 Converts a flag key to a string for storage in the DB 

9 (special handling of model instances) 

10 """ 

11 if isinstance(key, str): 

12 return key 

13 

14 if isinstance(key, models.Model): 

15 return f"{key._meta.package_label}.{key._meta.model_name}:{key.pk}" 

16 

17 return str(key)