kislyuk / yq

Command-line YAML, XML, TOML processor - jq wrapper for YAML/XML/TOML documents
https://kislyuk.github.io/yq/
Apache License 2.0
2.53k stars 81 forks source link

Tests fail with a variety of errors: argparse.ArgumentError: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3', etc #168

Closed yurivict closed 1 year ago

yurivict commented 1 year ago
yq: error: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'
F[
  "2016-12-20T22:07:36Z"
]
"2016-12-20"
./usr/local/lib/python3.9/subprocess.py:1052: ResourceWarning: subprocess 68856 is still running
  _warn("subprocess %s is still running" % self.pid,
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py:62: ResourceWarning: unclosed file <_io.TextIOWrapper name=4 encoding='UTF-8'>
  self.assertIn(e.code, expect_exit_codes)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
../usr/ports/textproc/yq/work/yq-3.2.2/yq/__init__.py:148: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/tmp2v2k88fb' mode='w' encoding='UTF-8'>
  yq(input_streams=[input_stream], output_stream=DeferredOutputStream(input_stream.name), **yq_args)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/usr/ports/textproc/yq/work/yq-3.2.2/yq/__init__.py:148: ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/tmp8rhfzdqr' mode='w' encoding='UTF-8'>
  yq(input_streams=[input_stream], output_stream=DeferredOutputStream(input_stream.name), **yq_args)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
jq: error: syntax error, unexpected '/', expecting $end (Unix shell quoting issues?) at <top-level>, line 1:
/tmp/tmp2v2k88fb
jq: 1 compile error
.susage: yq [-h] [--yaml-output] [--yaml-roundtrip] [--yaml-output-grammar-version {1.1,1.2}] [--width WIDTH] [--indentless-lists] [--in-place] [--version] [jq_filter] [files ...]
yq: error: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'
F.{
  "a": 1
}
{"a":1}
.{
  "foo": {
    "bar": 1
  }
}
{
  "foo": {
    "bar": "2020-02-20"
  }
}
."bar"
usage: yq [-h] [--yaml-output] [--yaml-roundtrip] [--yaml-output-grammar-version {1.1,1.2}] [--width WIDTH] [--indentless-lists] [--in-place] [--version] [jq_filter] [files ...]
yq: error: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'
F{
  "foo": null
}
usage: yq [-h] [--yaml-output] [--yaml-roundtrip] [--yaml-output-grammar-version {1.1,1.2}] [--width WIDTH] [--indentless-lists] [--in-place] [--version] [jq_filter] [files ...]
yq: error: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'
Fusage: yq [-h] [--yaml-output] [--yaml-roundtrip] [--yaml-output-grammar-version {1.1,1.2}] [--width WIDTH] [--indentless-lists] [--in-place] [--version] [jq_filter] [files ...]
yq: error: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'
F."11:12:13"
.x.{
  "example": "Zm9vYmFyCg=="
}
{
  "example": {
    "Boston Red Sox": null,
    "Detroit Tigers": null,
    "New York Yankees": null
  }
}
.usage: yq [options] <jq filter> [input file...]
yq: Command-line YAML processor - jq wrapper for YAML documents

yq transcodes YAML documents to JSON and passes them to jq.
See https://github.com/kislyuk/yq for more information.

positional arguments:
  jq_filter
  files

optional arguments:
  -h, --help            show this help message and exit
  --yaml-output, --yml-output, -y
                        Transcode jq JSON output back into YAML and emit it
  --yaml-roundtrip, --yml-roundtrip, -Y
                        Transcode jq JSON output back into YAML and emit it. Preserve YAML tags and styles by representing them as extra items in their enclosing mappings and sequences while in JSON. This option is incompatible with jq filters that do not expect these extra items.
  --yaml-output-grammar-version {1.1,1.2}, --yml-out-ver {1.1,1.2}
                        When using --yaml-output, specify output grammar (the default is 1.1 and will be changed to 1.2 in a future version). Setting this to 1.2 will cause strings like 'on' and 'no' to be emitted unquoted.
  --width WIDTH, -w WIDTH
                        When using --yaml-output, specify string wrap width
  --indentless-lists, --indentless
                        When using --yaml-output, indent block style lists (sequences) with 0 spaces instead of 2
  --in-place, -i        Edit files in place (no backup - use caution)
  --version             show program's version number and exit

jq - commandline JSON processor [version -]

Usage:  jq [options] <jq filter> [file...]
    jq [options] --args <jq filter> [strings...]
    jq [options] --jsonargs <jq filter> [JSON_TEXTS...]

jq is a tool for processing JSON inputs, applying the given filter to
its JSON text inputs and producing the filter's results as JSON on
standard output.

The simplest filter is ., which copies jq's input to its output
unmodified (except for formatting, but note that IEEE754 is used
for number representation internally, with all that that implies).

For more advanced filters see the jq(1) manpage ("man jq")
and/or https://stedolan.github.io/jq

Example:

    $ echo '{"foo": 0}' | jq .
    {
        "foo": 0
    }

Some of the options include:
  -c               compact instead of pretty-printed output;
  -n               use `null` as the single input value;
  -e               set the exit status code based on the output;
  -s               read (slurp) all inputs into an array; apply filter to it;
  -r               output raw strings, not JSON texts;
  -R               read raw strings, not JSON texts;
  -C               colorize JSON;
  -M               monochrome (don't colorize JSON);
  -S               sort keys of objects on output;
  --tab            use tabs for indentation;
  --arg a v        set variable $a to value <v>;
  --argjson a v    set variable $a to JSON value <v>;
  --slurpfile a f  set variable $a to an array of JSON texts read from <f>;
  --rawfile a f    set variable $a to a string consisting of the contents of <f>;
  --args           remaining arguments are string arguments, not files;
  --jsonargs       remaining arguments are JSON arguments, not files;
  --               terminates argument processing;

Named arguments are also available as $ARGS.named[], while
positional arguments are available as $ARGS.positional[].

See the manpage for more options.
usage: yq [options] <jq filter> [input file...]
yq: Command-line YAML processor - jq wrapper for YAML documents

yq transcodes YAML documents to JSON and passes them to jq.
See https://github.com/kislyuk/yq for more information.

positional arguments:
  jq_filter
  files

optional arguments:
  -h, --help            show this help message and exit
  --yaml-output, --yml-output, -y
                        Transcode jq JSON output back into YAML and emit it
  --yaml-roundtrip, --yml-roundtrip, -Y
                        Transcode jq JSON output back into YAML and emit it. Preserve YAML tags and styles by representing them as extra items in their enclosing mappings and sequences while in JSON. This option is incompatible with jq filters that do not expect these extra items.
  --yaml-output-grammar-version {1.1,1.2}, --yml-out-ver {1.1,1.2}
                        When using --yaml-output, specify output grammar (the default is 1.1 and will be changed to 1.2 in a future version). Setting this to 1.2 will cause strings like 'on' and 'no' to be emitted unquoted.
  --width WIDTH, -w WIDTH
                        When using --yaml-output, specify string wrap width
  --indentless-lists, --indentless
                        When using --yaml-output, indent block style lists (sequences) with 0 spaces instead of 2
  --in-place, -i        Edit files in place (no backup - use caution)
  --version             show program's version number and exit

jq - commandline JSON processor [version -]

Usage:  jq [options] <jq filter> [file...]
    jq [options] --args <jq filter> [strings...]
    jq [options] --jsonargs <jq filter> [JSON_TEXTS...]

jq is a tool for processing JSON inputs, applying the given filter to
its JSON text inputs and producing the filter's results as JSON on
standard output.

The simplest filter is ., which copies jq's input to its output
unmodified (except for formatting, but note that IEEE754 is used
for number representation internally, with all that that implies).

For more advanced filters see the jq(1) manpage ("man jq")
and/or https://stedolan.github.io/jq

Example:

    $ echo '{"foo": 0}' | jq .
    {
        "foo": 0
    }

Some of the options include:
  -c               compact instead of pretty-printed output;
  -n               use `null` as the single input value;
  -e               set the exit status code based on the output;
  -s               read (slurp) all inputs into an array; apply filter to it;
  -r               output raw strings, not JSON texts;
  -R               read raw strings, not JSON texts;
  -C               colorize JSON;
  -M               monochrome (don't colorize JSON);
  -S               sort keys of objects on output;
  --tab            use tabs for indentation;
  --arg a v        set variable $a to value <v>;
  --argjson a v    set variable $a to JSON value <v>;
  --slurpfile a f  set variable $a to an array of JSON texts read from <f>;
  --rawfile a f    set variable $a to a string consisting of the contents of <f>;
  --args           remaining arguments are string arguments, not files;
  --jsonargs       remaining arguments are JSON arguments, not files;
  --               terminates argument processing;

Named arguments are also available as $ARGS.named[], while
positional arguments are available as $ARGS.positional[].

See the manpage for more options.
{}
3
1
.{}
{
  "yaml_struct": [
    {
      "key_1": "$.*?/|\\^(){}+@[]&_-",
      "key_2": [
        "$.*?/|\\^(){}+@[]&_-",
        "{ }",
        "value23"
      ],
      "key_3": "value31",
      "key_4": [
        "value41",
        "value42"
      ],
      "key_5": "value51"
    },
    {
      "key_1_": "value12",
      "_key_2": [
        "value24",
        "value25"
      ],
      "_key__3": "$.*?/|\\^(){}+@[]&_-"
    }
  ]
}
{
  "yaml_struct": [
    {
      "key_1": "$.*?/|\\^(){}+@[]&_-",
      "key_2": [
        "$.*?/|\\^(){}+@[]&_-",
        "{ }",
        "value23"
      ],
      "key_3": "value31",
      "key_4": [
        "value41",
        "value42"
      ],
      "key_5": "value51"
    },
    {
      "key_1_": "value12",
      "_key_2": [
        "value24",
        "value25"
      ],
      "_key__3": "$.*?/|\\^(){}+@[]&_-"
    }
  ]
}
{
  "yaml_struct": [
    {
      "key_1": "$.*?/|\\^(){}+@[]&_-",
      "key_2": [
        "$.*?/|\\^(){}+@[]&_-",
        "{ }",
        "value23"
      ],
      "key_3": "value31",
      "key_4": [
        "value41",
        "value42"
      ],
      "key_5": "value51"
    },
    {
      "key_1_": "value12",
      "_key_2": [
        "value24",
        "value25"
      ],
      "_key__3": "$.*?/|\\^(){}+@[]&_-"
    }
  ]
}
{}
{
  "yaml_struct": [
    {
      "key_1": "$.*?/|\\^(){}+@[]&_-",
      "key_2": [
        "$.*?/|\\^(){}+@[]&_-",
        "{ }",
        "value23"
      ],
      "key_3": "value31",
      "key_4": [
        "value41",
        "value42"
      ],
      "key_5": "value51"
    },
    {
      "key_1_": "value12",
      "_key_2": [
        "value24",
        "value25"
      ],
      "_key__3": "$.*?/|\\^(){}+@[]&_-"
    }
  ]
}
{
  "yaml_struct": [
    {
      "key_1": "$.*?/|\\^(){}+@[]&_-",
      "key_2": [
        "$.*?/|\\^(){}+@[]&_-",
        "{ }",
        "value23"
      ],
      "key_3": "value31",
      "key_4": [
        "value41",
        "value42"
      ],
      "key_5": "value51"
    },
    {
      "key_1_": "value12",
      "_key_2": [
        "value24",
        "value25"
      ],
      "_key__3": "$.*?/|\\^(){}+@[]&_-"
    }
  ]
}
{
  "yaml_struct": [
    {
      "key_1": "$.*?/|\\^(){}+@[]&_-",
      "key_2": [
        "$.*?/|\\^(){}+@[]&_-",
        "{ }",
        "value23"
      ],
      "key_3": "value31",
      "key_4": [
        "value41",
        "value42"
      ],
      "key_5": "value51"
    },
    {
      "key_1_": "value12",
      "_key_2": [
        "value24",
        "value25"
      ],
      "_key__3": "$.*?/|\\^(){}+@[]&_-"
    }
  ]
}
jq - commandline JSON processor [version -]

Usage:  jq [options] <jq filter> [file...]
    jq [options] --args <jq filter> [strings...]
    jq [options] --jsonargs <jq filter> [JSON_TEXTS...]

jq is a tool for processing JSON inputs, applying the given filter to
its JSON text inputs and producing the filter's results as JSON on
standard output.

The simplest filter is ., which copies jq's input to its output
unmodified (except for formatting, but note that IEEE754 is used
for number representation internally, with all that that implies).

For more advanced filters see the jq(1) manpage ("man jq")
and/or https://stedolan.github.io/jq

Example:

    $ echo '{"foo": 0}' | jq .
    {
        "foo": 0
    }

Some of the options include:
  -c               compact instead of pretty-printed output;
  -n               use `null` as the single input value;
  -e               set the exit status code based on the output;
  -s               read (slurp) all inputs into an array; apply filter to it;
  -r               output raw strings, not JSON texts;
  -R               read raw strings, not JSON texts;
  -C               colorize JSON;
  -M               monochrome (don't colorize JSON);
  -S               sort keys of objects on output;
  --tab            use tabs for indentation;
  --arg a v        set variable $a to value <v>;
  --argjson a v    set variable $a to JSON value <v>;
  --slurpfile a f  set variable $a to an array of JSON texts read from <f>;
  --rawfile a f    set variable $a to a string consisting of the contents of <f>;
  --args           remaining arguments are string arguments, not files;
  --jsonargs       remaining arguments are JSON arguments, not files;
  --               terminates argument processing;

Named arguments are also available as $ARGS.named[], while
positional arguments are available as $ARGS.positional[].

See the manpage for more options.
jq - commandline JSON processor [version -]

Usage:  jq [options] <jq filter> [file...]
    jq [options] --args <jq filter> [strings...]
    jq [options] --jsonargs <jq filter> [JSON_TEXTS...]

jq is a tool for processing JSON inputs, applying the given filter to
its JSON text inputs and producing the filter's results as JSON on
standard output.

The simplest filter is ., which copies jq's input to its output
unmodified (except for formatting, but note that IEEE754 is used
for number representation internally, with all that that implies).

For more advanced filters see the jq(1) manpage ("man jq")
and/or https://stedolan.github.io/jq

Example:

    $ echo '{"foo": 0}' | jq .
    {
        "foo": 0
    }

Some of the options include:
  -c               compact instead of pretty-printed output;
  -n               use `null` as the single input value;
  -e               set the exit status code based on the output;
  -s               read (slurp) all inputs into an array; apply filter to it;
  -r               output raw strings, not JSON texts;
  -R               read raw strings, not JSON texts;
  -C               colorize JSON;
  -M               monochrome (don't colorize JSON);
  -S               sort keys of objects on output;
  --tab            use tabs for indentation;
  --arg a v        set variable $a to value <v>;
  --argjson a v    set variable $a to JSON value <v>;
  --slurpfile a f  set variable $a to an array of JSON texts read from <f>;
  --rawfile a f    set variable $a to a string consisting of the contents of <f>;
  --args           remaining arguments are string arguments, not files;
  --jsonargs       remaining arguments are JSON arguments, not files;
  --               terminates argument processing;

Named arguments are also available as $ARGS.named[], while
positional arguments are available as $ARGS.positional[].

See the manpage for more options.
jq - commandline JSON processor [version -]

Usage:  jq [options] <jq filter> [file...]
    jq [options] --args <jq filter> [strings...]
    jq [options] --jsonargs <jq filter> [JSON_TEXTS...]

jq is a tool for processing JSON inputs, applying the given filter to
its JSON text inputs and producing the filter's results as JSON on
standard output.

The simplest filter is ., which copies jq's input to its output
unmodified (except for formatting, but note that IEEE754 is used
for number representation internally, with all that that implies).

For more advanced filters see the jq(1) manpage ("man jq")
and/or https://stedolan.github.io/jq

Example:

    $ echo '{"foo": 0}' | jq .
    {
        "foo": 0
    }

Some of the options include:
  -c               compact instead of pretty-printed output;
  -n               use `null` as the single input value;
  -e               set the exit status code based on the output;
  -s               read (slurp) all inputs into an array; apply filter to it;
  -r               output raw strings, not JSON texts;
  -R               read raw strings, not JSON texts;
  -C               colorize JSON;
  -M               monochrome (don't colorize JSON);
  -S               sort keys of objects on output;
  --tab            use tabs for indentation;
  --arg a v        set variable $a to value <v>;
  --argjson a v    set variable $a to JSON value <v>;
  --slurpfile a f  set variable $a to an array of JSON texts read from <f>;
  --rawfile a f    set variable $a to a string consisting of the contents of <f>;
  --args           remaining arguments are string arguments, not files;
  --jsonargs       remaining arguments are JSON arguments, not files;
  --               terminates argument processing;

Named arguments are also available as $ARGS.named[], while
positional arguments are available as $ARGS.positional[].

See the manpage for more options.
.{}
jq: --indent takes a number between -1 and 7
Use jq --help for help with command-line options,
or see the jq manpage, or online docs  at https://stedolan.github.io/jq
E/usr/local/lib/python3.9/subprocess.py:1052: ResourceWarning: subprocess 68927 is still running
  _warn("subprocess %s is still running" % self.pid,
ResourceWarning: Enable tracemalloc to get the object allocation traceback
.
======================================================================
ERROR: test_yq_arg_passthrough (__main__.TestYq)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 1269, in __call__
    return open(string, self._mode, self._bufsize, self._encoding,
FileNotFoundError: [Errno 2] No such file or directory: '/dev/fd/4'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 131, in test_yq_arg_passthrough
    self.assertEqual(self.run_yq("", ["-y", arg, tf.name, self.fd_path(tf2)]), "1\n...\n")
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 60, in run_yq
    cli(args, input_format=input_format)
  File "/usr/ports/textproc/yq/work/yq-3.2.2/yq/__init__.py", line 112, in cli
    args.input_streams.insert(0, argparse.FileType()(args.jq_filter))
  File "/usr/local/lib/python3.9/argparse.py", line 1274, in __call__
    raise ArgumentTypeError(message % args)
argparse.ArgumentTypeError: can't open '/dev/fd/4': [Errno 2] No such file or directory: '/dev/fd/4'

======================================================================
FAIL: test_abbrev_opt_collisions (__main__.TestYq)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 1269, in __call__
    return open(string, self._mode, self._bufsize, self._encoding,
FileNotFoundError: [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 2483, in _get_value
    result = type_func(arg_string)
  File "/usr/local/lib/python3.9/argparse.py", line 1274, in __call__
    raise ArgumentTypeError(message % args)
argparse.ArgumentTypeError: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 1858, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/usr/local/lib/python3.9/argparse.py", line 2070, in _parse_known_args
    stop_index = consume_positionals(start_index)
  File "/usr/local/lib/python3.9/argparse.py", line 2026, in consume_positionals
    take_action(action, args)
  File "/usr/local/lib/python3.9/argparse.py", line 1919, in take_action
    argument_values = self._get_values(action, argument_strings)
  File "/usr/local/lib/python3.9/argparse.py", line 2468, in _get_values
    value = [self._get_value(action, v) for v in arg_strings]
  File "/usr/local/lib/python3.9/argparse.py", line 2468, in <listcomp>
    value = [self._get_value(action, v) for v in arg_strings]
  File "/usr/local/lib/python3.9/argparse.py", line 2489, in _get_value
    raise ArgumentError(action, msg)
argparse.ArgumentError: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 60, in run_yq
    cli(args, input_format=input_format)
  File "/usr/ports/textproc/yq/work/yq-3.2.2/yq/__init__.py", line 80, in cli
    args, jq_args = parser.parse_known_args(args=args)
  File "/usr/local/lib/python3.9/argparse.py", line 1861, in parse_known_args
    self.error(str(err))
  File "/usr/local/lib/python3.9/argparse.py", line 2582, in error
    self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
  File "/usr/local/lib/python3.9/argparse.py", line 2569, in exit
    _sys.exit(status)
SystemExit: 2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 262, in test_abbrev_opt_collisions
    self.run_yq("", ["-y", "-e", "--slurp", ".[0] == .[1]", "-", self.fd_path(tf), self.fd_path(tf2)]),
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 62, in run_yq
    self.assertIn(e.code, expect_exit_codes)
AssertionError: 2 not found in {0}

======================================================================
FAIL: test_multidocs (__main__.TestYq)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 1269, in __call__
    return open(string, self._mode, self._bufsize, self._encoding,
FileNotFoundError: [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 2483, in _get_value
    result = type_func(arg_string)
  File "/usr/local/lib/python3.9/argparse.py", line 1274, in __call__
    raise ArgumentTypeError(message % args)
argparse.ArgumentTypeError: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 1858, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/usr/local/lib/python3.9/argparse.py", line 2070, in _parse_known_args
    stop_index = consume_positionals(start_index)
  File "/usr/local/lib/python3.9/argparse.py", line 2026, in consume_positionals
    take_action(action, args)
  File "/usr/local/lib/python3.9/argparse.py", line 1919, in take_action
    argument_values = self._get_values(action, argument_strings)
  File "/usr/local/lib/python3.9/argparse.py", line 2468, in _get_values
    value = [self._get_value(action, v) for v in arg_strings]
  File "/usr/local/lib/python3.9/argparse.py", line 2468, in <listcomp>
    value = [self._get_value(action, v) for v in arg_strings]
  File "/usr/local/lib/python3.9/argparse.py", line 2489, in _get_value
    raise ArgumentError(action, msg)
argparse.ArgumentError: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 60, in run_yq
    cli(args, input_format=input_format)
  File "/usr/ports/textproc/yq/work/yq-3.2.2/yq/__init__.py", line 80, in cli
    args, jq_args = parser.parse_known_args(args=args)
  File "/usr/local/lib/python3.9/argparse.py", line 1861, in parse_known_args
    self.error(str(err))
  File "/usr/local/lib/python3.9/argparse.py", line 2582, in error
    self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
  File "/usr/local/lib/python3.9/argparse.py", line 2569, in exit
    _sys.exit(status)
SystemExit: 2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 161, in test_multidocs
    self.assertEqual(self.run_yq("", ["-y", ".a", self.fd_path(tf), self.fd_path(tf2)]), "b\n--- 1\n...\n")
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 62, in run_yq
    self.assertIn(e.code, expect_exit_codes)
AssertionError: 2 not found in {0}

======================================================================
FAIL: test_unrecognized_tags (__main__.TestYq)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 1269, in __call__
    return open(string, self._mode, self._bufsize, self._encoding,
FileNotFoundError: [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 2483, in _get_value
    result = type_func(arg_string)
  File "/usr/local/lib/python3.9/argparse.py", line 1274, in __call__
    raise ArgumentTypeError(message % args)
argparse.ArgumentTypeError: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 1858, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/usr/local/lib/python3.9/argparse.py", line 2070, in _parse_known_args
    stop_index = consume_positionals(start_index)
  File "/usr/local/lib/python3.9/argparse.py", line 2026, in consume_positionals
    take_action(action, args)
  File "/usr/local/lib/python3.9/argparse.py", line 1919, in take_action
    argument_values = self._get_values(action, argument_strings)
  File "/usr/local/lib/python3.9/argparse.py", line 2468, in _get_values
    value = [self._get_value(action, v) for v in arg_strings]
  File "/usr/local/lib/python3.9/argparse.py", line 2468, in <listcomp>
    value = [self._get_value(action, v) for v in arg_strings]
  File "/usr/local/lib/python3.9/argparse.py", line 2489, in _get_value
    raise ArgumentError(action, msg)
argparse.ArgumentError: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 60, in run_yq
    cli(args, input_format=input_format)
  File "/usr/ports/textproc/yq/work/yq-3.2.2/yq/__init__.py", line 80, in cli
    args, jq_args = parser.parse_known_args(args=args)
  File "/usr/local/lib/python3.9/argparse.py", line 1861, in parse_known_args
    self.error(str(err))
  File "/usr/local/lib/python3.9/argparse.py", line 2582, in error
    self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
  File "/usr/local/lib/python3.9/argparse.py", line 2569, in exit
    _sys.exit(status)
SystemExit: 2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 181, in test_unrecognized_tags
    self.assertEqual(self.run_yq("", ["-y", ".xyz.foo", self.fd_path(tf)]), "bar\n...\n")
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 62, in run_yq
    self.assertIn(e.code, expect_exit_codes)
AssertionError: 2 not found in {0}

======================================================================
FAIL: test_xq (__main__.TestYq)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 1269, in __call__
    return open(string, self._mode, self._bufsize, self._encoding,
FileNotFoundError: [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 2483, in _get_value
    result = type_func(arg_string)
  File "/usr/local/lib/python3.9/argparse.py", line 1274, in __call__
    raise ArgumentTypeError(message % args)
argparse.ArgumentTypeError: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 1858, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/usr/local/lib/python3.9/argparse.py", line 2070, in _parse_known_args
    stop_index = consume_positionals(start_index)
  File "/usr/local/lib/python3.9/argparse.py", line 2026, in consume_positionals
    take_action(action, args)
  File "/usr/local/lib/python3.9/argparse.py", line 1919, in take_action
    argument_values = self._get_values(action, argument_strings)
  File "/usr/local/lib/python3.9/argparse.py", line 2468, in _get_values
    value = [self._get_value(action, v) for v in arg_strings]
  File "/usr/local/lib/python3.9/argparse.py", line 2468, in <listcomp>
    value = [self._get_value(action, v) for v in arg_strings]
  File "/usr/local/lib/python3.9/argparse.py", line 2489, in _get_value
    raise ArgumentError(action, msg)
argparse.ArgumentError: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 60, in run_yq
    cli(args, input_format=input_format)
  File "/usr/ports/textproc/yq/work/yq-3.2.2/yq/__init__.py", line 80, in cli
    args, jq_args = parser.parse_known_args(args=args)
  File "/usr/local/lib/python3.9/argparse.py", line 1861, in parse_known_args
    self.error(str(err))
  File "/usr/local/lib/python3.9/argparse.py", line 2582, in error
    self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
  File "/usr/local/lib/python3.9/argparse.py", line 2569, in exit
    _sys.exit(status)
SystemExit: 2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 227, in test_xq
    self.run_yq("", ["-x", ".a", self.fd_path(tf), self.fd_path(tf2)], input_format="xml"),
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 62, in run_yq
    self.assertIn(e.code, expect_exit_codes)
AssertionError: 2 not found in {0}

======================================================================
FAIL: test_xq_dtd (__main__.TestYq)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 1269, in __call__
    return open(string, self._mode, self._bufsize, self._encoding,
FileNotFoundError: [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 2483, in _get_value
    result = type_func(arg_string)
  File "/usr/local/lib/python3.9/argparse.py", line 1274, in __call__
    raise ArgumentTypeError(message % args)
argparse.ArgumentTypeError: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/argparse.py", line 1858, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/usr/local/lib/python3.9/argparse.py", line 2070, in _parse_known_args
    stop_index = consume_positionals(start_index)
  File "/usr/local/lib/python3.9/argparse.py", line 2026, in consume_positionals
    take_action(action, args)
  File "/usr/local/lib/python3.9/argparse.py", line 1919, in take_action
    argument_values = self._get_values(action, argument_strings)
  File "/usr/local/lib/python3.9/argparse.py", line 2468, in _get_values
    value = [self._get_value(action, v) for v in arg_strings]
  File "/usr/local/lib/python3.9/argparse.py", line 2468, in <listcomp>
    value = [self._get_value(action, v) for v in arg_strings]
  File "/usr/local/lib/python3.9/argparse.py", line 2489, in _get_value
    raise ArgumentError(action, msg)
argparse.ArgumentError: argument files: can't open '/dev/fd/3': [Errno 2] No such file or directory: '/dev/fd/3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 60, in run_yq
    cli(args, input_format=input_format)
  File "/usr/ports/textproc/yq/work/yq-3.2.2/yq/__init__.py", line 80, in cli
    args, jq_args = parser.parse_known_args(args=args)
  File "/usr/local/lib/python3.9/argparse.py", line 1861, in parse_known_args
    self.error(str(err))
  File "/usr/local/lib/python3.9/argparse.py", line 2582, in error
    self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
  File "/usr/local/lib/python3.9/argparse.py", line 2569, in exit
    _sys.exit(status)
SystemExit: 2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 241, in test_xq_dtd
    self.run_yq("", ["-x", ".a", self.fd_path(tf)], input_format="xml"), '<b c="d">e</b><b>f</b>\n'
  File "/usr/ports/textproc/yq/work/yq-3.2.2/test/./test.py", line 62, in run_yq
    self.assertIn(e.code, expect_exit_codes)
AssertionError: 2 not found in {0}

----------------------------------------------------------------------
Ran 22 tests in 4.014s

FAILED (failures=5, errors=1, skipped=1, expected failures=1)

Version: 3.2.2 FreeBSD 13.2

kislyuk commented 1 year ago

Thanks for your interest in yq - this looks like an issue with the IPC configuration on your system, not with yq itself.