From 4783c4f268eaed456cca930309341a1a1abe5342 Mon Sep 17 00:00:00 2001 From: khamidov <63729380+amalkhamidov@users.noreply.github.com> Date: Sun, 8 Nov 2020 02:22:36 +0500 Subject: [PATCH] feat(InputFile): adding Pathlib to supporting types for files (#442) * feat(InputFile): adding Pathlib to supporting types for files * Resolve filename via pathlib Co-authored-by: Khamidov Amal Co-authored-by: Alex Root Junior --- aiogram/types/input_file.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/aiogram/types/input_file.py b/aiogram/types/input_file.py index 3c397395..3a78c499 100644 --- a/aiogram/types/input_file.py +++ b/aiogram/types/input_file.py @@ -4,6 +4,8 @@ import io import logging import os import secrets +from pathlib import Path +from typing import Union import aiohttp @@ -25,7 +27,7 @@ class InputFile(base.TelegramObject): https://core.telegram.org/bots/api#inputfile """ - def __init__(self, path_or_bytesio, filename=None, conf=None): + def __init__(self, path_or_bytesio: Union[str, io.IOBase, Path], filename=None, conf=None): """ :param path_or_bytesio: @@ -45,6 +47,12 @@ class InputFile(base.TelegramObject): elif isinstance(path_or_bytesio, _WebPipe): self._path = None self._file = path_or_bytesio + + elif isinstance(path_or_bytesio, Path): + self._file = path_or_bytesio.open("rb") + self._path = path_or_bytesio.resolve() + if filename is None: + filename = path_or_bytesio.name else: raise TypeError('Not supported file type.')