[
https://issues.apache.org/jira/browse/ARROW-13546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17393032#comment-17393032
]
Maarten Breddels commented on ARROW-13546:
------------------------------------------
My current workaround, to make it backward compatible, if anyone hits the same
issue
{code:java}
def _make_argument_optional(f, **defaults):
# workaround for https://issues.apache.org/jira/browse/ARROW-13546
# makes f act as if arguments have default values (or ignore when the
argument does not exist)
import inspect
import functools
sig = inspect.signature(f)
params = sig.parameters
@functools.wraps(f)
def wrapper(*args, **kwargs):
kwargs = kwargs.copy()
for name, value in defaults.items():
if name in params and name not in kwargs:
kwargs[name] = value
return f(*args, **kwargs)
return wrapper
_make_argument_optional(fs.open_output_stream, metadata=None)(path)
{code}
> [Python] Breaking API change in FSSpecHandler, requires metadata argument
> -------------------------------------------------------------------------
>
> Key: ARROW-13546
> URL: https://issues.apache.org/jira/browse/ARROW-13546
> Project: Apache Arrow
> Issue Type: Bug
> Components: Python
> Reporter: Maarten Breddels
> Priority: Major
>
> [https://github.com/apache/arrow/pull/10295] introduced the required metadata
> argument to FSSpecHandler.open_output_stream
> Noticed this in our CI/testsuite at
> [https://github.com/vaexio/vaex/pull/1490]
> {code:java}
> def create():
> 261> return fs.open_output_stream(path)
> 262E TypeError: open_output_stream() missing 1 required positional
> argument: 'metadata'
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)