Utils
Snailz utilities.
UniqueIdGenerator
Generate unique IDs using provided function.
Source code in src/snailz/utils.py
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | |
__init__(name, func, limit=UNIQUE_ID_LIMIT)
Initialize.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
A name for this generator |
required |
func
|
Callable
|
Function that creates IDs when called |
required |
limit
|
int
|
Maximum number of attempts |
UNIQUE_ID_LIMIT
|
Source code in src/snailz/utils.py
33 34 35 36 37 38 39 40 41 42 43 44 | |
next(*args)
Get next unique ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
args
|
object
|
Arguments to pass to the ID-generating function |
()
|
Returns:
| Type | Description |
|---|---|
str
|
A unique identifier that hasn't been returned before |
Raises:
| Type | Description |
|---|---|
RuntimeError
|
If unable to generate a unique ID within limit attempts |
Source code in src/snailz/utils.py
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | |
display(filepath, data)
Write to a file or to stdout.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
filepath
|
str | None
|
Output filepath or None for stdout |
required |
data
|
BaseModel | str
|
what to write |
required |
Source code in src/snailz/utils.py
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | |
fail(msg)
Report failure and exit.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
msg
|
str
|
Error message to display |
required |
Source code in src/snailz/utils.py
86 87 88 89 90 91 92 93 | |
report(verbose, msg)
Report if verbosity turned on.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
verbose
|
bool
|
Is display on or off? |
required |
msg
|
str
|
Message to display |
required |
Source code in src/snailz/utils.py
96 97 98 99 100 101 102 103 104 | |
to_csv(rows, fields, f_make_row)
Generic converter from list of models to CSV string.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rows
|
list
|
List of rows to convert. |
required |
fields
|
list
|
List of names of columns. |
required |
f_make_row
|
Callable
|
Function that converts a row to text. |
required |
Returns:
| Type | Description |
|---|---|
str
|
CSV representation of data. |
Source code in src/snailz/utils.py
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | |
_serialize_json(obj)
Custom JSON serializer for JSON conversion.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
obj
|
object
|
The object to serialize |
required |
Returns:
| Type | Description |
|---|---|
str | dict
|
String representation of date objects or dict for Pydantic models |
Raises:
| Type | Description |
|---|---|
TypeError
|
If the object type is not supported for serialization |
Source code in src/snailz/utils.py
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | |