mirror of
https://github.com/httpie/cli.git
synced 2024-11-25 09:13:25 +01:00
Use :
instead of =
in `--format-options
This commit is contained in:
parent
aae596d472
commit
caeef2fb7c
@ -1403,7 +1403,7 @@ sorting, and specify a custom JSON indent size:
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ http --format-options headers.sort=false,json.sort_keys=false,json.indent=2 httpbin.org/get
|
$ http --format-options headers.sort:false,json.sort_keys:false,json.indent:2 httpbin.org/get
|
||||||
|
|
||||||
This is something you will typically store as one of the default options in your
|
This is something you will typically store as one of the default options in your
|
||||||
`config`_ file. See ``http --help`` for all the available formatting options.
|
`config`_ file. See ``http --help`` for all the available formatting options.
|
||||||
|
@ -190,7 +190,7 @@ def parse_format_options(s: str, defaults: Optional[dict]) -> dict:
|
|||||||
|
|
||||||
>>> parse_format_options(
|
>>> parse_format_options(
|
||||||
... defaults={'json': {'indent': 4, 'sort_keys': True}},
|
... defaults={'json': {'indent': 4, 'sort_keys': True}},
|
||||||
... s='json.indent=2,json.sort_keys=False',
|
... s='json.indent:2,json.sort_keys:False',
|
||||||
... )
|
... )
|
||||||
{'json': {'indent': 2, 'sort_keys': False}}
|
{'json': {'indent': 2, 'sort_keys': False}}
|
||||||
|
|
||||||
@ -202,7 +202,7 @@ def parse_format_options(s: str, defaults: Optional[dict]) -> dict:
|
|||||||
options = deepcopy(defaults or {})
|
options = deepcopy(defaults or {})
|
||||||
for option in s.split(','):
|
for option in s.split(','):
|
||||||
try:
|
try:
|
||||||
path, value = option.lower().split('=')
|
path, value = option.lower().split(':')
|
||||||
section, key = path.split('.')
|
section, key = path.split('.')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise argparse.ArgumentTypeError(f'invalid option {option!r}')
|
raise argparse.ArgumentTypeError(f'invalid option {option!r}')
|
||||||
|
@ -85,10 +85,10 @@ PRETTY_STDOUT_TTY_ONLY = object()
|
|||||||
|
|
||||||
|
|
||||||
DEFAULT_FORMAT_OPTIONS = [
|
DEFAULT_FORMAT_OPTIONS = [
|
||||||
'headers.sort=true',
|
'headers.sort:true',
|
||||||
'json.format=true',
|
'json.format:true',
|
||||||
'json.indent=4',
|
'json.indent:4',
|
||||||
'json.sort_keys=true',
|
'json.sort_keys:true',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -246,7 +246,7 @@ output_processing.add_argument(
|
|||||||
You can specify multiple comma-separated options. For example, this modifies
|
You can specify multiple comma-separated options. For example, this modifies
|
||||||
the settings to disable the sorting of JSON keys and headers:
|
the settings to disable the sorting of JSON keys and headers:
|
||||||
|
|
||||||
--format-options json.sort_keys=false,headers.sort=false
|
--format-options json.sort_keys:false,headers.sort:false
|
||||||
|
|
||||||
This is something you will typically put into your config file.
|
This is something you will typically put into your config file.
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ class TestFormatOptions:
|
|||||||
def get_headers(sort):
|
def get_headers(sort):
|
||||||
return http(
|
return http(
|
||||||
'--offline', '--print=H',
|
'--offline', '--print=H',
|
||||||
'--format-options', 'headers.sort=' + sort,
|
'--format-options', 'headers.sort:' + sort,
|
||||||
'example.org', 'ZZZ:foo', 'XXX:foo',
|
'example.org', 'ZZZ:foo', 'XXX:foo',
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -197,15 +197,15 @@ class TestFormatOptions:
|
|||||||
argvalues=[
|
argvalues=[
|
||||||
# @formatter:off
|
# @formatter:off
|
||||||
(
|
(
|
||||||
'json.sort_keys=true,json.indent=4',
|
'json.sort_keys:true,json.indent:4',
|
||||||
json.dumps({'a': 0, 'b': 0}, indent=4),
|
json.dumps({'a': 0, 'b': 0}, indent=4),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
'json.sort_keys=false,json.indent=2',
|
'json.sort_keys:false,json.indent:2',
|
||||||
json.dumps({'b': 0, 'a': 0}, indent=2),
|
json.dumps({'b': 0, 'a': 0}, indent=2),
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
'json.format=false',
|
'json.format:false',
|
||||||
json.dumps({'b': 0, 'a': 0}),
|
json.dumps({'b': 0, 'a': 0}),
|
||||||
),
|
),
|
||||||
# @formatter:on
|
# @formatter:on
|
||||||
@ -223,9 +223,9 @@ class TestFormatOptions:
|
|||||||
argnames=['defaults', 'options_string', 'expected'],
|
argnames=['defaults', 'options_string', 'expected'],
|
||||||
argvalues=[
|
argvalues=[
|
||||||
# @formatter:off
|
# @formatter:off
|
||||||
({'foo': {'bar': 1}}, 'foo.bar=2', {'foo': {'bar': 2}}),
|
({'foo': {'bar': 1}}, 'foo.bar:2', {'foo': {'bar': 2}}),
|
||||||
({'foo': {'bar': True}}, 'foo.bar=false', {'foo': {'bar': False}}),
|
({'foo': {'bar': True}}, 'foo.bar:false', {'foo': {'bar': False}}),
|
||||||
({'foo': {'bar': 'a'}}, 'foo.bar=b', {'foo': {'bar': 'b'}}),
|
({'foo': {'bar': 'a'}}, 'foo.bar:b', {'foo': {'bar': 'b'}}),
|
||||||
# @formatter:on
|
# @formatter:on
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@ -236,9 +236,9 @@ class TestFormatOptions:
|
|||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
argnames=['options_string', 'expected_error'],
|
argnames=['options_string', 'expected_error'],
|
||||||
argvalues=[
|
argvalues=[
|
||||||
('foo=2', 'invalid option'),
|
('foo:2', 'invalid option'),
|
||||||
('foo.baz=2', 'invalid key'),
|
('foo.baz:2', 'invalid key'),
|
||||||
('foo.bar=false', 'expected int got bool'),
|
('foo.bar:false', 'expected int got bool'),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
def test_parse_format_options_errors(self, options_string, expected_error):
|
def test_parse_format_options_errors(self, options_string, expected_error):
|
||||||
|
@ -216,6 +216,7 @@ def http(
|
|||||||
add_to_args.append('--timeout=3')
|
add_to_args.append('--timeout=3')
|
||||||
|
|
||||||
complete_args = [program_name, *add_to_args, *args]
|
complete_args = [program_name, *add_to_args, *args]
|
||||||
|
# print(' '.join(complete_args))
|
||||||
|
|
||||||
def dump_stderr():
|
def dump_stderr():
|
||||||
stderr.seek(0)
|
stderr.seek(0)
|
||||||
|
Loading…
Reference in New Issue
Block a user