Ошибка mypy: значение переменной типа "_AnyPath" для "copyfile" не может быть "Union [str, Path]" - PullRequest
0 голосов
/ 24 июня 2019

Раньше он работал со старой версией (0.6xx?) Mypy:

import pathlib
import shutil
from typing import Union

def f(x: Union[str, pathlib.Path]):
    shutil.copyfile("bla", x)

, но не в mypy 0.710, где он жалуется:

error: Value of type variable "_AnyPath" of "copyfile" cannot be "Union[str, Path]"

Как это должно бытьисправлена?

1 Ответ

0 голосов
/ 24 июня 2019

Кажется, это единственный путь:

import os
import shutil
from typing import TypeVar

_AnyPath = TypeVar("_AnyPath", str, os.PathLike)

def f(x: _AnyPath):
    shutil.copyfile("bla", x)
...