mirror of
https://github.com/httpie/cli.git
synced 2024-11-29 03:03:44 +01:00
parent
fc85988368
commit
70a78249c1
@ -6,8 +6,9 @@ This document records all notable changes to `HTTPie <https://httpie.org>`_.
|
|||||||
This project adheres to `Semantic Versioning <https://semver.org/>`_.
|
This project adheres to `Semantic Versioning <https://semver.org/>`_.
|
||||||
|
|
||||||
|
|
||||||
`2.1.0-dev`_ (unreleased)
|
`2.1.0`_ (2020-04-18)
|
||||||
-------------------------
|
---------------------
|
||||||
|
|
||||||
* Added ``--path-as-is`` to bypass dot segment (``/../`` or ``/./``)
|
* Added ``--path-as-is`` to bypass dot segment (``/../`` or ``/./``)
|
||||||
URL squashing (#895).
|
URL squashing (#895).
|
||||||
* Changed the default value ``Accept`` header value for JSON requests from
|
* Changed the default value ``Accept`` header value for JSON requests from
|
||||||
@ -420,4 +421,9 @@ This project adheres to `Semantic Versioning <https://semver.org/>`_.
|
|||||||
.. _1.0.2: https://github.com/jakubroztocil/httpie/compare/1.0.1...1.0.2
|
.. _1.0.2: https://github.com/jakubroztocil/httpie/compare/1.0.1...1.0.2
|
||||||
.. _1.0.3: https://github.com/jakubroztocil/httpie/compare/1.0.2...1.0.3
|
.. _1.0.3: https://github.com/jakubroztocil/httpie/compare/1.0.2...1.0.3
|
||||||
.. _2.0.0: https://github.com/jakubroztocil/httpie/compare/1.0.3...2.0.0
|
.. _2.0.0: https://github.com/jakubroztocil/httpie/compare/1.0.3...2.0.0
|
||||||
.. _2.1.0-dev: https://github.com/jakubroztocil/httpie/compare/2.0.0...master
|
.. _2.1.0: https://github.com/jakubroztocil/httpie/compare/2.0.0...2.1.0
|
||||||
|
|
||||||
|
|
||||||
|
.. _#488:https://github.com/jakubroztocil/httpie/issues/488
|
||||||
|
.. _#840:https://github.com/jakubroztocil/httpie/issues/840
|
||||||
|
.. _#895:https://github.com/jakubroztocil/httpie/issues/895
|
||||||
|
119
README.rst
119
README.rst
@ -27,11 +27,20 @@ generally interacting with HTTP servers.
|
|||||||
.. section-numbering::
|
.. section-numbering::
|
||||||
|
|
||||||
|
|
||||||
|
About this document
|
||||||
|
===================
|
||||||
|
|
||||||
|
This documentation is best viewed at `httpie.org/docs <https://httpie.org/docs>`_,
|
||||||
|
where you can select your corresponding HTTPie version as well as run examples directly from the
|
||||||
|
browser using a `termible.io <https://termible.io?utm_source=httpie-readme>`_ embedded terminal.
|
||||||
|
If you are reading this on GitHub, then this text covers the current *development* version.
|
||||||
|
You are invited to submit fixes and improvements to the the docs by editing
|
||||||
|
`README.rst <https://github.com/jakubroztocil/httpie/blob/master/README.rst>`_.
|
||||||
|
|
||||||
|
|
||||||
Main features
|
Main features
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
|
||||||
* Expressive and intuitive syntax
|
* Expressive and intuitive syntax
|
||||||
* Formatted and colorized terminal output
|
* Formatted and colorized terminal output
|
||||||
* Built-in JSON support
|
* Built-in JSON support
|
||||||
@ -157,13 +166,13 @@ Otherwise with ``pip``:
|
|||||||
|
|
||||||
|
|
||||||
Verify that now we have the
|
Verify that now we have the
|
||||||
`current development version identifier <https://github.com/jakubroztocil/httpie/blob/0af6ae1be444588bbc4747124e073423151178a0/httpie/__init__.py#L5>`_
|
`current development version identifier <https://github.com/jakubroztocil/httpie/blob/master/httpie/__init__.py#L6>`_
|
||||||
with the ``-dev`` suffix, for example:
|
with the ``-dev`` suffix, for example:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ http --version
|
$ http --version
|
||||||
1.0.0-dev
|
# 2.0.0-dev
|
||||||
|
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
@ -175,7 +184,7 @@ Hello World:
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ http httpie.org
|
$ http https://httpie.org/hello
|
||||||
|
|
||||||
|
|
||||||
Synopsis:
|
Synopsis:
|
||||||
@ -307,7 +316,7 @@ If you find yourself manually constructing URLs with querystring parameters
|
|||||||
on the terminal, you may appreciate the ``param==value`` syntax for appending
|
on the terminal, you may appreciate the ``param==value`` syntax for appending
|
||||||
URL parameters.
|
URL parameters.
|
||||||
|
|
||||||
With that, you don't have to worry about escaping the ``&``
|
With that, you don’t have to worry about escaping the ``&``
|
||||||
separators for your shell. Additionally, any special characters in the
|
separators for your shell. Additionally, any special characters in the
|
||||||
parameter name or value get automatically URL-escaped
|
parameter name or value get automatically URL-escaped
|
||||||
(as opposed to parameters specified in the full URL, which HTTPie doesn’t
|
(as opposed to parameters specified in the full URL, which HTTPie doesn’t
|
||||||
@ -459,14 +468,14 @@ their type is distinguished only by the separator used:
|
|||||||
+-----------------------+-----------------------------------------------------+
|
+-----------------------+-----------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
Note that data fields aren't the only way to specify request data:
|
Note that data fields aren’t the only way to specify request data:
|
||||||
`Redirected input`_ is a mechanism for passing arbitrary request data.
|
`Redirected input`_ is a mechanism for passing arbitrary request data.
|
||||||
|
|
||||||
|
|
||||||
Escaping rules
|
Escaping rules
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
You can use ``\`` to escape characters that shouldn't be used as separators
|
You can use ``\`` to escape characters that shouldn’t be used as separators
|
||||||
(or parts thereof). For instance, ``foo\==bar`` will become a data key/value
|
(or parts thereof). For instance, ``foo\==bar`` will become a data key/value
|
||||||
pair (``foo=`` and ``bar``) instead of a URL parameter.
|
pair (``foo=`` and ``bar``) instead of a URL parameter.
|
||||||
|
|
||||||
@ -538,7 +547,7 @@ Explicit JSON
|
|||||||
|
|
||||||
You can use ``--json, -j`` to explicitly set ``Accept``
|
You can use ``--json, -j`` to explicitly set ``Accept``
|
||||||
to ``application/json`` regardless of whether you are sending data
|
to ``application/json`` regardless of whether you are sending data
|
||||||
(it's a shortcut for setting the header via the usual header notation:
|
(it’s a shortcut for setting the header via the usual header notation:
|
||||||
``http url Accept:'application/json, */*;q=0.5'``). Additionally,
|
``http url Accept:'application/json, */*;q=0.5'``). Additionally,
|
||||||
HTTPie will try to detect JSON responses even when the
|
HTTPie will try to detect JSON responses even when the
|
||||||
``Content-Type`` is incorrectly ``text/plain`` or unknown.
|
``Content-Type`` is incorrectly ``text/plain`` or unknown.
|
||||||
@ -548,17 +557,20 @@ HTTPie will try to detect JSON responses even when the
|
|||||||
Non-string JSON fields
|
Non-string JSON fields
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
Non-string fields use the ``:=`` separator, which allows you to embed raw JSON
|
Non-string JSON fields use the ``:=`` separator, which allows you to embed arbitrary JSON data
|
||||||
into the resulting object. Text and raw JSON files can also be embedded into
|
into the resulting JSON object. Additionally, text and raw JSON files can also be embedded into
|
||||||
fields using ``=@`` and ``:=@``:
|
fields using ``=@`` and ``:=@``:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ http PUT httpbin.org/put \
|
$ http PUT httpbin.org/put \
|
||||||
name=John \
|
name=John \ # String (default)
|
||||||
age:=29 married:=false hobbies:='["http", "pies"]' \ # Raw JSON
|
age:=29 \ # Raw JSON — Number
|
||||||
description=@about-john.txt \ # Embed text file
|
married:=false \ # Raw JSON — Boolean
|
||||||
bookmarks:=@bookmarks.json # Embed JSON file
|
hobbies:='["http", "pies"]' \ # Raw JSON — Array
|
||||||
|
favorite:='{"tool": "HTTPie"}' \ # Raw JSON — Object
|
||||||
|
bookmarks:=@files/data.json \ # Embed JSON file
|
||||||
|
description=@files/text.txt # Embed text file
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: http
|
.. code-block:: http
|
||||||
@ -577,19 +589,33 @@ fields using ``=@`` and ``:=@``:
|
|||||||
"description": "John is a nice guy who likes pies.",
|
"description": "John is a nice guy who likes pies.",
|
||||||
"married": false,
|
"married": false,
|
||||||
"name": "John",
|
"name": "John",
|
||||||
|
"favorite": {
|
||||||
|
"tool": "HTTPie"
|
||||||
|
},
|
||||||
"bookmarks": {
|
"bookmarks": {
|
||||||
"HTTPie": "https://httpie.org",
|
"HTTPie": "https://httpie.org",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Please note that with this syntax the command gets unwieldy when sending
|
Raw and complex JSON
|
||||||
complex data. In that case it's always better to use `redirected input`_:
|
--------------------
|
||||||
|
|
||||||
|
Please note that with the `request items`_ data field syntax, commands
|
||||||
|
can quickly become unwieldy when sending complex structures.
|
||||||
|
In such cases, it’s better to pass the full raw JSON data via
|
||||||
|
`redirected input`_, for example:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ echo '{"hello": "world"}' | http POST httpbin.org/post
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ http POST httpbin.org/post < files/data.json
|
$ http POST httpbin.org/post < files/data.json
|
||||||
|
|
||||||
|
Furthermore, this syntax only allows you to send an object as the JSON document, but not an array, etc.
|
||||||
|
Here, again, the solution is to use `redirected input`_.
|
||||||
|
|
||||||
Forms
|
Forms
|
||||||
=====
|
=====
|
||||||
@ -805,7 +831,7 @@ Send multiple cookies
|
|||||||
User-Agent: HTTPie/0.9.9
|
User-Agent: HTTPie/0.9.9
|
||||||
|
|
||||||
|
|
||||||
If you often deal with cookies in your requests, then chances are you'd appreciate
|
If you often deal with cookies in your requests, then chances are you’d appreciate
|
||||||
the `sessions`_ feature.
|
the `sessions`_ feature.
|
||||||
|
|
||||||
|
|
||||||
@ -818,7 +844,7 @@ The currently supported authentication schemes are Basic and Digest
|
|||||||
=================== ======================================================
|
=================== ======================================================
|
||||||
``--auth, -a`` Pass a ``username:password`` pair as
|
``--auth, -a`` Pass a ``username:password`` pair as
|
||||||
the argument. Or, if you only specify a username
|
the argument. Or, if you only specify a username
|
||||||
(``-a username``), you'll be prompted for
|
(``-a username``), you’ll be prompted for
|
||||||
the password before the request is sent.
|
the password before the request is sent.
|
||||||
To send an empty password, pass ``username:``.
|
To send an empty password, pass ``username:``.
|
||||||
The ``username:password@hostname`` URL syntax is
|
The ``username:password@hostname`` URL syntax is
|
||||||
@ -855,7 +881,15 @@ Password prompt
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ http -a username example.org
|
$ http -a username httpbin.org/basic-auth/username/password
|
||||||
|
|
||||||
|
|
||||||
|
Empty password
|
||||||
|
--------------
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ http -a username: httpbin.org/headers
|
||||||
|
|
||||||
|
|
||||||
``.netrc``
|
``.netrc``
|
||||||
@ -893,7 +927,7 @@ Auth plugins
|
|||||||
|
|
||||||
Additional authentication mechanism can be installed as plugins.
|
Additional authentication mechanism can be installed as plugins.
|
||||||
They can be found on the `Python Package Index <https://pypi.python.org/pypi?%3Aaction=search&term=httpie&submit=search>`_.
|
They can be found on the `Python Package Index <https://pypi.python.org/pypi?%3Aaction=search&term=httpie&submit=search>`_.
|
||||||
Here's a few picks:
|
Here’s a few picks:
|
||||||
|
|
||||||
* `httpie-api-auth <https://github.com/pd/httpie-api-auth>`_: ApiAuth
|
* `httpie-api-auth <https://github.com/pd/httpie-api-auth>`_: ApiAuth
|
||||||
* `httpie-aws-auth <https://github.com/httpie/httpie-aws-auth>`_: AWS / Amazon S3
|
* `httpie-aws-auth <https://github.com/httpie/httpie-aws-auth>`_: AWS / Amazon S3
|
||||||
@ -954,7 +988,7 @@ To change the default limit of maximum ``30`` redirects, use the
|
|||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ http --follow --all --max-redirects=5 httpbin.org/redirect/3
|
$ http --follow --all --max-redirects=2 httpbin.org/redirect/3
|
||||||
|
|
||||||
|
|
||||||
Proxies
|
Proxies
|
||||||
@ -996,7 +1030,7 @@ SOCKS
|
|||||||
-----
|
-----
|
||||||
|
|
||||||
Homebrew-installed HTTPie comes with SOCKS proxy support out of the box.
|
Homebrew-installed HTTPie comes with SOCKS proxy support out of the box.
|
||||||
To enable SOCKS proxy support for non-Homebrew installations, you'll
|
To enable SOCKS proxy support for non-Homebrew installations, you’ll
|
||||||
might need to install ``requests[socks]`` manually using ``pip``:
|
might need to install ``requests[socks]`` manually using ``pip``:
|
||||||
|
|
||||||
|
|
||||||
@ -1018,7 +1052,7 @@ HTTPS
|
|||||||
Server SSL certificate verification
|
Server SSL certificate verification
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
To skip the host's SSL certificate verification, you can pass ``--verify=no``
|
To skip the host’s SSL certificate verification, you can pass ``--verify=no``
|
||||||
(default is ``yes``):
|
(default is ``yes``):
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -1154,7 +1188,7 @@ authentication is used (``--auth=digest``), etc.
|
|||||||
|
|
||||||
|
|
||||||
The intermediary requests/response are by default formatted according to
|
The intermediary requests/response are by default formatted according to
|
||||||
``--print, -p`` (and its shortcuts described above). If you'd like to change
|
``--print, -p`` (and its shortcuts described above). If you’d like to change
|
||||||
that, use the ``--history-print, -P`` option. It takes the same
|
that, use the ``--history-print, -P`` option. It takes the same
|
||||||
arguments as ``--print, -p`` but applies to the intermediary requests only.
|
arguments as ``--print, -p`` but applies to the intermediary requests only.
|
||||||
|
|
||||||
@ -1169,10 +1203,10 @@ Conditional body download
|
|||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
As an optimization, the response body is downloaded from the server
|
As an optimization, the response body is downloaded from the server
|
||||||
only if it's part of the output. This is similar to performing a ``HEAD``
|
only if it’s part of the output. This is similar to performing a ``HEAD``
|
||||||
request, except that it applies to any HTTP method you use.
|
request, except that it applies to any HTTP method you use.
|
||||||
|
|
||||||
Let's say that there is an API that returns the whole resource when it is
|
Let’s say that there is an API that returns the whole resource when it is
|
||||||
updated, but you are only interested in the response headers to see the
|
updated, but you are only interested in the response headers to see the
|
||||||
status code after an update:
|
status code after an update:
|
||||||
|
|
||||||
@ -1183,8 +1217,8 @@ status code after an update:
|
|||||||
|
|
||||||
Since we are only printing the HTTP headers here, the connection to the server
|
Since we are only printing the HTTP headers here, the connection to the server
|
||||||
is closed as soon as all the response headers have been received.
|
is closed as soon as all the response headers have been received.
|
||||||
Therefore, bandwidth and time isn't wasted downloading the body
|
Therefore, bandwidth and time isn’t wasted downloading the body
|
||||||
which you don't care about. The response headers are downloaded always,
|
which you don’t care about. The response headers are downloaded always,
|
||||||
even if they are not part of the output
|
even if they are not part of the output
|
||||||
|
|
||||||
|
|
||||||
@ -1296,8 +1330,16 @@ Colors and formatting
|
|||||||
|
|
||||||
Syntax highlighting is applied to HTTP headers and bodies (where it makes
|
Syntax highlighting is applied to HTTP headers and bodies (where it makes
|
||||||
sense). You can choose your preferred color scheme via the ``--style`` option
|
sense). You can choose your preferred color scheme via the ``--style`` option
|
||||||
if you don't like the default one (see ``$ http --help`` for the possible
|
if you don’t like the default one. There dozens of styles available, here are just a few special or notable ones:
|
||||||
values).
|
|
||||||
|
==================== ========================================================================
|
||||||
|
``auto`` Follows your terminal ANSI color styles. This is the default style used by HTTPie.
|
||||||
|
``default`` Default styles of the underlying Pygments library. Not actually used by default by HTTPie.
|
||||||
|
You can enable it with ``--style=default``
|
||||||
|
``monokai`` A popular color scheme. Enable with ``--style=monokai``.
|
||||||
|
``fruity`` A bold, colorful scheme. Enable with ``--style=fruity``.
|
||||||
|
… See ``$ http --help`` for all the possible ``--style`` values.
|
||||||
|
==================== ========================================================================
|
||||||
|
|
||||||
Also, the following formatting is applied:
|
Also, the following formatting is applied:
|
||||||
|
|
||||||
@ -1347,11 +1389,11 @@ Redirected output
|
|||||||
HTTPie uses a different set of defaults for redirected output than for
|
HTTPie uses a different set of defaults for redirected output than for
|
||||||
`terminal output`_. The differences being:
|
`terminal output`_. The differences being:
|
||||||
|
|
||||||
* Formatting and colors aren't applied (unless ``--pretty`` is specified).
|
* Formatting and colors aren’t applied (unless ``--pretty`` is specified).
|
||||||
* Only the response body is printed (unless one of the `output options`_ is set).
|
* Only the response body is printed (unless one of the `output options`_ is set).
|
||||||
* Also, binary data isn't suppressed.
|
* Also, binary data isn’t suppressed.
|
||||||
|
|
||||||
The reason is to make piping HTTPie's output to another programs and
|
The reason is to make piping HTTPie’s output to another programs and
|
||||||
downloading files work with no extra flags. Most of the time, only the raw
|
downloading files work with no extra flags. Most of the time, only the raw
|
||||||
response body is of an interest when the output is redirected.
|
response body is of an interest when the output is redirected.
|
||||||
|
|
||||||
@ -1453,7 +1495,7 @@ Resuming downloads
|
|||||||
|
|
||||||
If ``--output, -o`` is specified, you can resume a partial download using the
|
If ``--output, -o`` is specified, you can resume a partial download using the
|
||||||
``--continue, -c`` option. This only works with servers that support
|
``--continue, -c`` option. This only works with servers that support
|
||||||
``Range`` requests and ``206 Partial Content`` responses. If the server doesn't
|
``Range`` requests and ``206 Partial Content`` responses. If the server doesn’t
|
||||||
support that, the whole file will simply be downloaded:
|
support that, the whole file will simply be downloaded:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
@ -1468,7 +1510,7 @@ Other notes
|
|||||||
* ``--download`` always implies ``--follow`` (redirects are followed).
|
* ``--download`` always implies ``--follow`` (redirects are followed).
|
||||||
* ``--download`` also implies ``--check-status``
|
* ``--download`` also implies ``--check-status``
|
||||||
(error HTTP status will result in a non-zero exist static code).
|
(error HTTP status will result in a non-zero exist static code).
|
||||||
* HTTPie exits with status code ``1`` (error) if the body hasn't been fully
|
* HTTPie exits with status code ``1`` (error) if the body hasn’t been fully
|
||||||
downloaded.
|
downloaded.
|
||||||
* ``Accept-Encoding`` cannot be set with ``--download``.
|
* ``Accept-Encoding`` cannot be set with ``--download``.
|
||||||
|
|
||||||
@ -1541,7 +1583,6 @@ to the same host.
|
|||||||
# Inspect / edit the generated session file:
|
# Inspect / edit the generated session file:
|
||||||
$ cat session.json
|
$ cat session.json
|
||||||
|
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
# Re-use the existing session — the API-Token header will be set:
|
# Re-use the existing session — the API-Token header will be set:
|
||||||
@ -1747,7 +1788,7 @@ What happens is that when HTTPie is invoked for example from a cron job,
|
|||||||
``stdin`` is not connected to a terminal.
|
``stdin`` is not connected to a terminal.
|
||||||
Therefore, rules for `redirected input`_ apply, i.e., HTTPie starts to read it
|
Therefore, rules for `redirected input`_ apply, i.e., HTTPie starts to read it
|
||||||
expecting that the request body will be passed through.
|
expecting that the request body will be passed through.
|
||||||
And since there's no data nor ``EOF``, it will be stuck. So unless you're
|
And since there’s no data nor ``EOF``, it will be stuck. So unless you’re
|
||||||
piping some data to HTTPie, this flag should be used in scripts.
|
piping some data to HTTPie, this flag should be used in scripts.
|
||||||
|
|
||||||
Also, it might be good to set a connection ``--timeout`` limit to prevent
|
Also, it might be good to set a connection ``--timeout`` limit to prevent
|
||||||
@ -1762,7 +1803,7 @@ Interface design
|
|||||||
----------------
|
----------------
|
||||||
|
|
||||||
The syntax of the command arguments closely corresponds to the actual HTTP
|
The syntax of the command arguments closely corresponds to the actual HTTP
|
||||||
requests sent over the wire. It has the advantage that it's easy to remember
|
requests sent over the wire. It has the advantage that it’s easy to remember
|
||||||
and read. It is often possible to translate an HTTP request to an HTTPie
|
and read. It is often possible to translate an HTTP request to an HTTPie
|
||||||
argument list just by inlining the request elements. For example, compare this
|
argument list just by inlining the request elements. For example, compare this
|
||||||
HTTP request:
|
HTTP request:
|
||||||
@ -1791,7 +1832,7 @@ with the HTTPie command that sends it:
|
|||||||
|
|
||||||
Notice that both the order of elements and the syntax is very similar,
|
Notice that both the order of elements and the syntax is very similar,
|
||||||
and that only a small portion of the command is used to control HTTPie and
|
and that only a small portion of the command is used to control HTTPie and
|
||||||
doesn't directly correspond to any part of the request (here it's only ``-f``
|
doesn’t directly correspond to any part of the request (here it’s only ``-f``
|
||||||
asking HTTPie to send a form request).
|
asking HTTPie to send a form request).
|
||||||
|
|
||||||
The two modes, ``--pretty=all`` (default for terminal) and ``--pretty=none``
|
The two modes, ``--pretty=all`` (default for terminal) and ``--pretty=none``
|
||||||
|
@ -3,6 +3,6 @@ HTTPie - a CLI, cURL-like tool for humans.
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__version__ = '2.1.0-dev'
|
__version__ = '2.1.0'
|
||||||
__author__ = 'Jakub Roztocil'
|
__author__ = 'Jakub Roztocil'
|
||||||
__licence__ = 'BSD'
|
__licence__ = 'BSD'
|
||||||
|
35
setup.py
35
setup.py
@ -10,8 +10,11 @@ import httpie
|
|||||||
|
|
||||||
|
|
||||||
class PyTest(TestCommand):
|
class PyTest(TestCommand):
|
||||||
# `$ python setup.py test' simply installs minimal requirements
|
"""
|
||||||
# and runs the tests with no fancy stuff like parallel execution.
|
Running `$ python setup.py test' simply installs minimal requirements
|
||||||
|
and runs the tests with no fancy stuff like parallel execution.
|
||||||
|
|
||||||
|
"""
|
||||||
def finalize_options(self):
|
def finalize_options(self):
|
||||||
TestCommand.finalize_options(self)
|
TestCommand.finalize_options(self)
|
||||||
self.test_args = [
|
self.test_args = [
|
||||||
@ -26,8 +29,6 @@ class PyTest(TestCommand):
|
|||||||
|
|
||||||
|
|
||||||
tests_require = [
|
tests_require = [
|
||||||
# Pytest needs to come last.
|
|
||||||
# https://bitbucket.org/pypa/setuptools/issue/196/
|
|
||||||
'pytest-httpbin',
|
'pytest-httpbin',
|
||||||
'pytest',
|
'pytest',
|
||||||
'mock',
|
'mock',
|
||||||
@ -38,28 +39,24 @@ install_requires = [
|
|||||||
'requests>=2.22.0',
|
'requests>=2.22.0',
|
||||||
'Pygments>=2.5.2',
|
'Pygments>=2.5.2',
|
||||||
]
|
]
|
||||||
|
install_requires_win_only = [
|
||||||
|
'colorama>=0.2.4',
|
||||||
|
]
|
||||||
|
|
||||||
# Conditional dependencies:
|
# Conditional dependencies:
|
||||||
|
|
||||||
# sdist
|
# sdist
|
||||||
if 'bdist_wheel' not in sys.argv:
|
if 'bdist_wheel' not in sys.argv:
|
||||||
try:
|
|
||||||
# noinspection PyUnresolvedReferences
|
|
||||||
import argparse
|
|
||||||
except ImportError:
|
|
||||||
install_requires.append('argparse>=1.2.1')
|
|
||||||
|
|
||||||
if 'win32' in str(sys.platform).lower():
|
if 'win32' in str(sys.platform).lower():
|
||||||
# Terminal colors for Windows
|
# Terminal colors for Windows
|
||||||
install_requires.append('colorama>=0.2.4')
|
install_requires.extend(install_requires_win_only)
|
||||||
|
|
||||||
|
|
||||||
# bdist_wheel
|
# bdist_wheel
|
||||||
extras_require = {
|
extras_require = {
|
||||||
# https://wheel.readthedocs.io/en/latest/#defining-conditional-dependencies
|
# https://wheel.readthedocs.io/en/latest/#defining-conditional-dependencies
|
||||||
'python_version == "3.0" or python_version == "3.1"': ['argparse>=1.2.1'],
|
':sys_platform == "win32"': install_requires_win_only,
|
||||||
':sys_platform == "win32"': ['colorama>=0.2.4'],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -74,7 +71,7 @@ setup(
|
|||||||
description=httpie.__doc__.strip(),
|
description=httpie.__doc__.strip(),
|
||||||
long_description=long_description(),
|
long_description=long_description(),
|
||||||
url='https://httpie.org/',
|
url='https://httpie.org/',
|
||||||
download_url='https://github.com/jakubroztocil/httpie',
|
download_url=f'https://github.com/jakubroztocil/httpie/archive/{httpie.__version__}.tar.gz',
|
||||||
author=httpie.__author__,
|
author=httpie.__author__,
|
||||||
author_email='jakub@roztocil.co',
|
author_email='jakub@roztocil.co',
|
||||||
license=httpie.__licence__,
|
license=httpie.__licence__,
|
||||||
@ -85,6 +82,7 @@ setup(
|
|||||||
'https = httpie.__main__:main',
|
'https = httpie.__main__:main',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
python_requires='>=3.6',
|
||||||
extras_require=extras_require,
|
extras_require=extras_require,
|
||||||
install_requires=install_requires,
|
install_requires=install_requires,
|
||||||
tests_require=tests_require,
|
tests_require=tests_require,
|
||||||
@ -93,8 +91,6 @@ setup(
|
|||||||
'Development Status :: 5 - Production/Stable',
|
'Development Status :: 5 - Production/Stable',
|
||||||
'Programming Language :: Python',
|
'Programming Language :: Python',
|
||||||
'Programming Language :: Python :: 3 :: Only',
|
'Programming Language :: Python :: 3 :: Only',
|
||||||
'Programming Language :: Python :: 3.6',
|
|
||||||
'Programming Language :: Python :: 3.7',
|
|
||||||
'Environment :: Console',
|
'Environment :: Console',
|
||||||
'Intended Audience :: Developers',
|
'Intended Audience :: Developers',
|
||||||
'Intended Audience :: System Administrators',
|
'Intended Audience :: System Administrators',
|
||||||
@ -106,4 +102,11 @@ setup(
|
|||||||
'Topic :: Text Processing',
|
'Topic :: Text Processing',
|
||||||
'Topic :: Utilities'
|
'Topic :: Utilities'
|
||||||
],
|
],
|
||||||
|
project_urls={
|
||||||
|
'Documentation': 'https://httpie.org/docs',
|
||||||
|
'Source': 'https://github.com/jakubroztocil/httpie',
|
||||||
|
'Online Demo': 'https://httpie.org/run',
|
||||||
|
'Donate': 'https://httpie.org/donate',
|
||||||
|
'Twitter': 'https://twitter.com/clihttp',
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user