---
title: utilities
sidebarTitle: utilities
---

# `prefect.client.utilities`



Utilities for working with clients.


## Functions

### `get_or_create_client` <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/client/utilities.py#L31" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

```python
get_or_create_client(client: Optional['PrefectClient'] = None) -> tuple['PrefectClient', bool]
```


Returns provided client, infers a client from context if available, or creates a new client.

**Args:**
- `- client`: an optional client to use

**Returns:**
- - tuple: a tuple of the client and a boolean indicating if the client was inferred from context


### `client_injector` <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/client/utilities.py#L63" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

```python
client_injector(func: Callable[Concatenate['PrefectClient', P], Coroutine[Any, Any, R]]) -> Callable[P, Coroutine[Any, Any, R]]
```

### `inject_client` <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/client/utilities.py#L74" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

```python
inject_client(fn: Callable[P, Coroutine[Any, Any, R]]) -> Callable[P, Coroutine[Any, Any, R]]
```


Simple helper to provide a context managed client to an asynchronous function.

The decorated function _must_ take a `client` kwarg and if a client is passed when
called it will be used instead of creating a new one, but it will not be context
managed as it is assumed that the caller is managing the context.

