core
Bad
¶
Bases: Generic[B, G]
The bad side of the disjoint union.
Source code in m/core/fp.py
__init__(value)
¶
Initialize a Bad
instance.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
B
|
The "bad" value to store in the instance. |
required |
__iter__()
¶
Iterate over values of an instance.
The intention is to raise a StopBadIteration
exception to
be able to break out of for loop comprehensions.
Raises:
Type | Description |
---|---|
StopBadIteration
|
If the instance has a "Bad" value. |
Source code in m/core/fp.py
flat_map_bad(fct)
¶
Apply the input function if this is a Bad
value.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fct |
Callable[[B], OneOf[B, G]]
|
The function to apply to the "Bad" value. |
required |
Returns:
Type | Description |
---|---|
OneOf[B, G]
|
Itself if its a |
Source code in m/core/fp.py
get_or_else(default)
¶
Return the value if its Good or the given argument if its a Bad.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
default |
LazyArg[G]
|
The default value in case the instance is "Bad". |
required |
Returns:
Type | Description |
---|---|
G
|
Either the value or the default specified by "default". |
Source code in m/core/fp.py
iter()
¶
Shortcut to transform to a list.
Can be used as list(x.iter())
. It will either contain a value or be
an empty list.
Yields:
Type | Description |
---|---|
G
|
The value if the instance is a "Good" value. |
map(_fct)
¶
Apply the function to its value if this is a Good
instance.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
_fct |
Callable[[G], K]
|
The function to apply to the "Good" value. |
required |
Returns:
Type | Description |
---|---|
'Bad[B, K]'
|
Itself if its a |
Source code in m/core/fp.py
Good
¶
Bases: Generic[B, G]
The good side of the disjoint union.
Source code in m/core/fp.py
__init__(value)
¶
Initialize a Good
instance.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
value |
G
|
The "good" value to store in the instance. |
required |
__iter__()
¶
flat_map_bad(_fct)
¶
Apply the input function if this is a Bad
value.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
_fct |
Callable[[B], OneOf[B, G]]
|
The function to apply to the "Bad" value. |
required |
Returns:
Type | Description |
---|---|
OneOf[B, G]
|
Itself if its a |
Source code in m/core/fp.py
get_or_else(_default)
¶
Return the value.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
_default |
LazyArg[G]
|
The default value in case the instance is "Bad". |
required |
Returns:
Type | Description |
---|---|
G
|
Either the value or the default specified by "default". |
iter()
¶
Shortcut to transform to a list.
Can be used as list(x.iter())
. It will either contain a value or be
an empty list.
Yields:
Type | Description |
---|---|
G
|
The value if the instance is a "Good" value. |
Source code in m/core/fp.py
map(fct)
¶
Apply the function to its value if this is a Good
instance.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fct |
Callable[[G], K]
|
The function to apply to the "Good" value. |
required |
Returns:
Type | Description |
---|---|
'Good[B, K]'
|
Itself if its a |
Source code in m/core/fp.py
Issue
¶
Bases: Exception
Wrapper to keep track of all exceptions.
It provides a 'cause' field so that we may know why an issue was triggered.
Source code in m/core/issue.py
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 |
|
__init__(message, description=None, cause=None, context=None, include_traceback=True)
¶
Create an Issue.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message |
str
|
Simple description of the issue. |
required |
description |
str | None
|
More in depth detail on the issue |
None
|
cause |
Exception | None
|
The exception/Issue that is responsible for this instance. |
None
|
context |
object | None
|
Dictionary with any useful data related to the issue. |
None
|
include_traceback |
bool
|
If False, it skips computing the traceback. |
True
|
Source code in m/core/issue.py
__str__()
¶
Convert the instance to a string.
Returns:
Type | Description |
---|---|
str
|
A string representation of the Issue instance. |
Source code in m/core/issue.py
only_context()
¶
Return true if the issue only offers context.
In some cases we may create an issue with only a message and a context. This function will let us know of such case so that a log formatter may be able to unwrap the context.
Returns:
Type | Description |
---|---|
bool
|
True if it is safe to only display the context value on a log. |
Source code in m/core/issue.py
to_dict(show_traceback=True)
¶
Convert to a ordered dictionary.
This is done so that each of the properties are written in an expected order.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
show_traceback |
bool
|
If False, it will remove all stacktraces. |
True
|
Returns:
Type | Description |
---|---|
IssueDict
|
An |
Source code in m/core/issue.py
to_str(show_traceback)
¶
Convert the instance to string.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
show_traceback |
bool
|
If false, it will remove the error traceback. |
required |
Returns:
Type | Description |
---|---|
str
|
A string representation of the Issue instance. |
Source code in m/core/issue.py
hone(msg, context=None, description=None, include_traceback=True)
¶
Create a function to repackage the issue with a new message and context.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
msg |
str
|
The new message. |
required |
context |
object | None
|
The new context. |
None
|
description |
str | None
|
The new description. |
None
|
include_traceback |
bool
|
Whether to include the traceback. |
True
|
Returns:
Type | Description |
---|---|
Callable[[Issue], OneOf[Issue, Any]]
|
A function that takes an issue and returns a new issue. |
Source code in m/core/one_of.py
is_bad(inst)
¶
Assert that a OneOf instance is a Bad
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
inst |
OneOf[B, G]
|
The |
required |
Returns:
Type | Description |
---|---|
TypeGuard[Bad[B, G]]
|
True if the instance is a |
Source code in m/core/fp.py
non_issue(inst)
¶
Obtain the value of the OneOf
as if it was a Good value.
Warning: This should only be used provided that we know for sure
that we are not dealing with a Bad
value.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
inst |
OneOf[Issue, G]
|
A OneOf. |
required |
Returns:
Type | Description |
---|---|
G
|
The value stored in the OneOf. |