代码如下:
# benchmark.py
#!/usr/bin/env python
import functools
import itertools
import json
import os
import pickle
import sys
import time
from pathlib import Path
from typing import Callable, NoReturn, TypeVar
# pip install -U asynctor httpx rich fastdfs-client tqdm
import tqdm
from asynctor import bulk_gather, run, timeit
from asynctor.tasks import ThreadGroup
from httpx import AsyncClient
from rich import print
from fastdfs_client import FastdfsClient
T = TypeVar("T")
def catch_cost(func: Callable[..., T]) -> Callable[..., tuple[float, T]]:
@functools.wraps(func)
def wrapper(*args, **kw) -> tuple[float, T]:
start = time.time()
rv = func(*args, **kw)
cost = round(time.time() - start, 1)
return cost, rv
return wrapper
@timeit
async def show_result(output: Path, dfs: FastdfsClient) -> None:
"""展示上传结果,验证返回的URL"""