Sample code to reproduce the issue.
from async_files.utils import async_wraps
from async_files import FileIO
from async_files.fileobj import DEFAULT_CONFIG, FileObj
TARBALL_CONFIG = DEFAULT_CONFIG
TARBALL_CONFIG["strings_async_attrs"].extend(["add", "extract", "extractall"])
class TarballFileObj(FileObj):
CONFIG = TARBALL_CONFIG
add: callable
extract: callable
extractall: callable
class async_open(FileIO):
OPEN = tarfile.open
FILEOBJ = TarballFileObj
async def make_tarfile_from_dir(output_filename, source_dir):
if not output_filename.endswith('.gz'):
output_filename += '.tar.gz'
async with async_open(output_filename, "w:gz") as tar:
await tar.add(source_dir, arcname='.')
return output_filename
Traceback (most recent call last):
File "C:\Users\lin\AppData\Local\pypoetry\Cache\virtualenvs\ember-VqhvFD7x-py3.9\lib\site-packages\sanic\app.py", line 939, in handle_request
response = await response
File "D:\projects\Auto-Test-System-Sanic\webserver\app\main\controller\test_controller.py", line 99, in handler
await make_tarfile_from_dir(os.path.join(result_dir, f'{os.path.basename(test_script)}.tar.gz'), dist)
File "D:\projects\Auto-Test-System-Sanic\webserver\app\main\util\tarball.py", line 30, in make_tarfile_from_dir
async with async_open(output_filename, "w:gz") as tar:
File "C:\Users\lin\AppData\Local\pypoetry\Cache\virtualenvs\ember-VqhvFD7x-py3.9\lib\site-packages\async_files\fileio.py", line 40, in __aenter__
return await self.open()
File "C:\Users\lin\AppData\Local\pypoetry\Cache\virtualenvs\ember-VqhvFD7x-py3.9\lib\site-packages\async_files\fileio.py", line 34, in open
file = await self.__class__.OPEN(**self.bound_args.arguments, **self.bound_args.arguments['kwargs'])
File "C:\Users\lin\AppData\Local\pypoetry\Cache\virtualenvs\ember-VqhvFD7x-py3.9\lib\site-packages\async_files\utils.py", line 12, in run
return await loop.run_in_executor(executor, pfunc)
File "C:\Python39\lib\concurrent\futures\thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "C:\Python39\lib\tarfile.py", line 1627, in open
return func(name, filemode, fileobj, **kwargs)
File "C:\Python39\lib\tarfile.py", line 1680, in gzopen
t = cls.taropen(name, mode, fileobj, **kwargs)
File "C:\Python39\lib\tarfile.py", line 1657, in taropen
return cls(name, mode, fileobj, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'kwargs'