> ## Documentation Index
> Fetch the complete documentation index at: /docs/llms.txt
> Use this file to discover all available pages before exploring further.

# utilities

# `prefect.client.utilities`

Utilities for working with clients.

## Functions

### `get_or_create_client` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/client/utilities.py#L31](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/client/utilities.py#L31)</sup>

```python theme={null}
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>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/client/utilities.py#L63](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/client/utilities.py#L63)</sup>

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

### `inject_client` <sup>[https://github.com/PrefectHQ/prefect/blob/main/src/prefect/client/utilities.py#L74](https://github.com/PrefectHQ/prefect/blob/main/src/prefect/client/utilities.py#L74)</sup>

```python theme={null}
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.
