utils
Provides publicly utility functions.
Functions:
-
mark_thread_pydev_do_not_trace–Modifies the given thread's attributes to hide or unhide it from the debugger (e.g., debugpy).
-
get_kernel–Get the current kernel.
-
get_job–Get the job for the current context.
-
get_parent_message–Get the parent message for the current context.
-
get_subshell_id–Get the
subshell_idfor the current context. -
subshell_context–A context manager to work in the context of a shell or subshell.
-
get_metadata–Gets the metadata for the current context.
-
get_tags–Gets the tags for the current context.
-
get_tag_value–Get the value for the tag from a collection of tags.
-
setattr_nested–Replace an existing nested attribute/trait of an object.
-
apply_settings–Apply the settings onto the object.
-
error_to_content–Convert the error to a dict.
-
redirect_stdout–Re-direct sys.stdout generated in the current context.
-
redirect_stderr–Re-direct sys.stderr generated in the current context.
-
show_result–A context where
show_resultis enabled/disabled. -
get_context_hash–Get the hash of the call stack at a certain level.
mark_thread_pydev_do_not_trace
¶
mark_thread_pydev_do_not_trace(thread: Thread | None = None, *, remove=False) -> None
Modifies the given thread's attributes to hide or unhide it from the debugger (e.g., debugpy).
Source code in src/async_kernel/utils.py
58 59 60 61 62 | |
get_kernel
¶
get_kernel() -> Kernel
Get the current kernel.
Source code in src/async_kernel/utils.py
65 66 67 68 69 70 71 72 | |
get_job
¶
Get the job for the current context.
Raises:
-
LookupError–If there is no job in the current context.
Source code in src/async_kernel/utils.py
80 81 82 83 84 85 86 | |
get_parent_message
¶
get_parent_message(job: Job[T_content_co] | None = None) -> Message[T_content_co] | None
Get the parent message for the current context.
Source code in src/async_kernel/utils.py
89 90 91 92 93 94 | |
get_subshell_id
¶
get_subshell_id() -> str | None
Get the subshell_id for the current context.
Source code in src/async_kernel/utils.py
97 98 99 | |
subshell_context
¶
subshell_context(subshell_id: str | None) -> Generator[None, Any, None]
A context manager to work in the context of a shell or subshell.
Parameters:
Source code in src/async_kernel/utils.py
102 103 104 105 106 107 108 109 110 | |
get_metadata
¶
Gets the metadata for the current context.
Source code in src/async_kernel/utils.py
113 114 115 116 117 118 | |
get_tags
¶
Gets the tags for the current context.
-
Reference
utils
get_tag_value
Source code in src/async_kernel/utils.py
121 122 123 124 125 126 | |
get_tag_value
¶
Get the value for the tag from a collection of tags.
Parameters:
-
(tag¶Tags) –The tag to get the value from.
-
(default¶_TagType) –The default value if a tag is not found. The default is also used to determine the type for conversion of the value.
-
(tags¶Iterable[str] | None, default:None) –A list of tags to search. When not provided get_tags is used.
The tag value is the value trailing behind
Source code in src/async_kernel/utils.py
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | |
setattr_nested
¶
setattr_nested(
obj: object, name: str, value: str | Any, *, _return_value=False
) -> dict[str, Any]
Replace an existing nested attribute/trait of an object.
If the attribute name contains dots, it is interpreted as a nested attribute. For example, if name is "a.b.c", then the code will attempt to set obj.a.b.c to value.
Parameters:
-
(obj¶object) –The object to set the attribute on.
-
(name¶str) –The name of the attribute to set.
-
(value¶str | Any) –The value to set the attribute to.
Returns:
-
dict[str, Any]–The mapping of the name to the set value if the value has been set.
-
dict[str, Any]–An empty dict indicates the value was not set.
Source code in src/async_kernel/utils.py
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 | |
apply_settings
¶
Apply the settings onto the object.
Returns:
Notes
- If flags are included using the pattern
'flags': iterable(str), the flags are interpreted as boolean values. Generally, it is preferred to specify the value in the settings explicitly.
Source code in src/async_kernel/utils.py
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | |
error_to_content
¶
error_to_content(error: BaseException) -> ErrorReply
Convert the error to a dict.
ref: https://jupyter-client.readthedocs.io/en/stable/messaging.html#request-reply
Source code in src/async_kernel/utils.py
206 207 208 209 210 211 212 213 214 215 216 | |
redirect_stdout
¶
Re-direct sys.stdout generated in the current context.
See Also
- [contextlib.redirect_stdout][]
Source code in src/async_kernel/utils.py
219 220 221 222 223 224 225 226 227 228 229 230 231 | |
redirect_stderr
¶
Re-direct sys.stderr generated in the current context.
See Also
- [contextlib.redirect_stderr][]
Source code in src/async_kernel/utils.py
234 235 236 237 238 239 240 241 242 243 244 245 246 | |
show_result
¶
A context where show_result is enabled/disabled.
Source code in src/async_kernel/utils.py
249 250 251 252 253 254 255 256 257 | |
get_context_hash
¶
Get the hash of the call stack at a certain level.
This is useful to discriminate a call context in the dunder methods __enter__,
__exit__, __aenter__ and __aexit__.
Parameters:
-
(level¶int, default:0) –The level up the frame stack to use starting outside the current frame.
Tips
- When supporting re-entrant contexts, a list or count should be kept.
- Check the hash has not already been used to prevent re-entrance.
- Use atomic operations or an instance lock for thread safety, (adjust the )
Source code in src/async_kernel/utils.py
265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 | |