From 17e3759030506b51024ca1eab56ad4716fecc2c6 Mon Sep 17 00:00:00 2001 From: Stainless Bot <107565488+stainless-bot@users.noreply.github.com> Date: Mon, 16 Oct 2023 20:51:07 +0100 Subject: [PATCH] fix(client): accept io.IOBase instances in file params (#232) --- src/modern_treasury/_utils/_utils.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modern_treasury/_utils/_utils.py b/src/modern_treasury/_utils/_utils.py index 992b016f..cb660d16 100644 --- a/src/modern_treasury/_utils/_utils.py +++ b/src/modern_treasury/_utils/_utils.py @@ -1,5 +1,6 @@ from __future__ import annotations +import io import os import re import inspect @@ -55,10 +56,10 @@ def _extract_items( return [] # We have exhausted the path, return the entry we found. - if not isinstance(obj, bytes) and not isinstance(obj, tuple): + if not isinstance(obj, bytes) and not isinstance(obj, tuple) and not isinstance(obj, io.IOBase): raise RuntimeError( - f"Expected entry at {flattened_key} to be bytes or a tuple but received {type(obj)} instead." - ) + f"Expected entry at {flattened_key} to be bytes, an io.IOBase instance or a tuple but received {type(obj)} instead." + ) from None # TODO: validate obj more? assert flattened_key is not None