Commit Graph

596 Commits

Author SHA1 Message Date
Jakub Roztocil
93d07cfe57 v2.3.0-dev 2020-06-18 22:25:07 +02:00
Jakub Roztocil
5945845420 v2.2.0 2020-06-18 22:20:12 +02:00
Jakub Roztocil
d35864e79d Cleanup 2020-06-16 13:01:48 +02:00
Jakub Roztocil
8a106781be Add --sorted
Also add --no-(sorted|unsorted) to allow the documented resetting to default via --no-<option>.
2020-06-16 12:54:50 +02:00
Jakub Roztocil
23dd80563f Cleanup 2020-06-16 12:25:46 +02:00
Jakub Roztocil
2bab69d9fb Fix default value 2020-06-16 12:24:03 +02:00
Jakub Roztocil
826489950d Added --unsorted
It acts as a shortcut for --format-options=json.sort_keys:false,headers.sort:false

#128
2020-06-16 12:20:13 +02:00
Jakub Roztocil
b86598886e Added netrc support for auth plugins.
Enabled for --auth-type=basic and digest, 3rd parties may opt in.

This closes #718, closes #719, closes #852, and also closes #934
2020-06-16 11:05:00 +02:00
Jakub Roztocil
37200eb055 Cleanup 2020-06-15 23:02:16 +02:00
Eyitayo Ogunbiyi
9c68d7dd87
Remove expired cookies (#929)
* added a test for expiring cookies

* updated tests

* set up util for extracting expired cookies from response header

* Revert "updated tests"

This reverts commit a4eb5c4498.

* Revert "Revert "updated tests""

This reverts commit d242e21bce.

* added more functionality to get-expired-cookies

* add 'clear expired cookies' from session.json files

* refactored get_expired_cookies

* fixed formatting issues

* ensured key exists in cookie_header dict

* fixed linting errors

* removed unused import

* Added tests for get_expired_cookies util

* Added additional test for get_expired_cookies

* added remove_expired_cookies method directly to sessions class

* extracted logic to clear cookies to sessions.py

* refactored utils

* added tests to check expired cookies being removed from session obj

* added type annotations for methods

* Refactored test_sessions

* Seperated out expiry related tests into own class

* Refactored get_expired_cookies in utils

* Refactored remove cookie methods

* fixed linting errors

* fixed indentation and also pluralized test class name

* removed inheritance from SessionTestbase class

* Moved related test to TestExpiredCookies class

Co-authored-by: kbanc <katherine.bancoft@gmail.com>
2020-06-15 22:28:04 +02:00
Jakub Roztocil
7ee519ef46 Update CHANGELOG 2020-06-08 18:02:04 +02:00
Carlo Sciolla
c4627cc882
Custom file upload MIME type (#927)
* Support curl-like syntax for custom MIME type for files

In order to specify a custom MIME type for file uploads, a syntax
similar to that used by cURL is used so that

http -F test_file@/path/to/file.bin;type=application/zip https://...

forwards the user-provided file type if provided, otherwise falling
back to the usual guesswork out of the file extension.
2020-06-08 17:59:41 +02:00
Jakub Roztocil
caeef2fb7c Use : instead of = in `--format-options 2020-05-28 14:24:15 +02:00
Jakub Roztocil
aae596d472 Improve --format-options error messages 2020-05-27 16:19:32 +02:00
Jakub Roztocil
cb51faec51 pep8 2020-05-27 16:12:31 +02:00
Jakub Roztocil
c2a0cef76e Add --format-options to allow disabling sorting, etc.
#128
2020-05-27 16:01:17 +02:00
Jakub Roztocil
ca02e51420 Improve plugin API docs 2020-05-26 10:07:53 +02:00
Jakub Roztocil
cd085cbc0d Refactor built-in plugin registry to avoid circular imports
Fix #925
2020-05-26 10:07:34 +02:00
Jakub Roztocil
27d57ce773 Cleanup 2020-05-23 20:30:25 +02:00
Jakub Roztocil
4c4efff56a Pass cert_reqs to context 2020-05-23 20:19:16 +02:00
Jakub Roztocil
a53505f26e Fix SSL context 2020-05-23 15:01:33 +02:00
Jakub Roztocil
d62d6a77d1 Add support for --ciphers (#870) 2020-05-23 13:26:06 +02:00
Jakub Roztocil
3e20ade645 Cleanup & refactor XDG_CONFIG_HOME support 2020-05-23 12:12:35 +02:00
Ash Holland
5af0874ed3
Support (part of) the XDG Base Directory Specification (#920)
On Unix-like systems, the configuration file now lives in
$XDG_CONFIG_HOME/httpie/ by default, not ~/.httpie/ (the behaviour on
Windows is unchanged). The previous location is still checked, in order
to support existing installations.

Searching $XDG_CONFIG_DIRS is still not supported.

Fixes #145; supersedes #436.
2020-05-21 15:50:00 +02:00
Jakub Roztocil
774ff148cd 2.2.0-dev 2020-04-18 12:57:56 +02:00
Jakub Roztocil
70a78249c1 2.1.0
#488 #840 #895
2020-04-18 12:54:40 +02:00
Jakub Roztocil
4351650691 Ignore --download with --offline 2020-04-16 11:41:12 +02:00
Jakub Roztocil
c9d770017e Fix 'Too many redirects' error message formatting 2020-04-15 17:43:08 +02:00
Jakub Roztocil
cdf691c212
Change default JSON Accept to application/json, */*;q=0.5
Close #488
2020-04-13 22:12:06 +02:00
Jakub Roztocil
684a4708d7 Add --path-as-is
Close #895
2020-04-13 20:18:56 +02:00
Mio
5754e33a75
Removed duplicate type annotation. (#888) 2020-04-13 18:15:48 +02:00
Jakub Roztocil
3a6ac7d126 Remove unused imports 2020-04-13 17:37:27 +02:00
Jakub Roztocil
381dd4f619 Actually fixed --form file upload w/ redirected stdin error handling
#840
2020-01-23 15:56:29 +01:00
Jakub Roztocil
e6bad645ed Fixed --form file upload mixed with redirected stdin error handling.
Close #840
2020-01-23 15:55:00 +01:00
Jakub Roztocil
4b524e6a8c v2.0.0 2020-01-12 10:50:57 +01:00
Jakub Roztocil
585cc0c039 Merge remote-tracking branch 'origin/master' 2019-12-04 13:37:46 +01:00
Tim Gates
89faec994a Fix simple typo: downland -> download (#823)
Closes #822
2019-12-04 13:32:08 +01:00
Jakub Roztocil
490eeaa650 Cleanup 2019-12-03 19:09:09 +01:00
Jakub Roztocil
f202f338a4 Remove automatic config file creation to avoid concurrency issues.
Close #788
Close #812
2019-12-02 17:43:16 +01:00
Jakub Roztocil
f0058eeaee cleanup 2019-12-02 10:42:33 +01:00
Jakub Roztocil
a23b636a63 Cleanup 2019-12-02 00:58:10 +01:00
Jakub Roztocil
d9b3a16fa6 Make ExitStatus subclass IntEnum to allow direct int comparisons 2019-09-18 11:57:06 +02:00
Jakub Roztocil
a42b275ae2 Typing & cleanup 2019-09-17 09:21:49 +02:00
Jakub Roztocil
37fa67cd3c Runnable KeyValueArgType.tokenize doctest 2019-09-17 09:07:12 +02:00
Jakub Roztocil
374c371ef1 Add httpie.status 2019-09-16 13:26:18 +02:00
Jakub Roztocil
c8fd4c2d6e Move compression out of adapter 2019-09-04 00:00:03 +02:00
Jakub Roztocil
bece3c77bb Add one-by-one processing of each HTTP request or response and --offline 2019-09-03 17:14:39 +02:00
Jakub Roztocil
c946b3d34f Cleanup 2019-09-02 14:38:23 +02:00
Jakub Roztocil
45e8e4e4ea Sessions 2019-09-01 21:15:39 +02:00
Jakub Roztocil
bd3208cf24 Refactor get_formatters_grouped 2019-09-01 11:45:47 +02:00
Jakub Roztocil
4dffac7a25 Refactor client 2019-09-01 11:38:14 +02:00
Jakub Roztocil
a34b3d9d87 Refactor PluginManager 2019-09-01 11:13:45 +02:00
Jakub Roztocil
30624e66ec Annotate formatters and processing 2019-08-31 19:13:36 +02:00
Jakub Roztocil
d603502960 Fix unregister annotation 2019-08-31 18:35:24 +02:00
Jakub Roztocil
b947d4826a Annotate plugins 2019-08-31 18:33:54 +02:00
Jakub Roztocil
e8ef5a783f Annotate and refactor streams.py 2019-08-31 18:21:10 +02:00
Jakub Roztocil
9da5c41704 Improve --debug output formatting 2019-08-31 18:00:03 +02:00
Jakub Roztocil
224519e0e2 Fix --ssl with --compress; refactor client 2019-08-31 17:52:56 +02:00
Jakub Roztocil
aba3b1ec01 Refactoring 2019-08-31 15:17:10 +02:00
Jakub Roztocil
3ea75a3577 Document $ALL_PROXY support (close #676)
It’s been supported by python-requests since v2.11.0 (2016-08-08)

d79024f246/HISTORY.md (2110-2016-08-08)
2019-08-31 12:31:32 +02:00
Jakub Roztocil
1dc67a6a38 Allow bypassing .netrc with --ignore-netrc (close #730) 2019-08-31 12:09:17 +02:00
Jakub Roztocil
a5713f7190 pep8 2019-08-30 21:26:51 +02:00
Jakub Roztocil
0f654388fc Python 3 annotations, super(), pathlib, etc. 2019-08-30 15:14:51 +02:00
Jakub Roztocil
63df735fef Update links to HTTPS 2019-08-30 10:07:01 +02:00
Jakub Roztocil
2579827418 Use set literal 2019-08-30 09:56:50 +02:00
Jakub Roztocil
9bd8b4e8f7 Don't fail if config dir not writeable (close #738) 2019-08-29 14:05:32 +02:00
Jakub Roztocil
ced9212c1f Allow stdin to be a closed fd #791 2019-08-29 13:39:42 +02:00
Jakub Roztocil
07da8ea852 Merge branch 'allow-closed-stdin' of https://github.com/mgsloan/httpie into mgsloan-allow-closed-stdin 2019-08-29 13:26:28 +02:00
Jakub Roztocil
8e04a24b90 Reintroduce $ https command alias with https:// as default scheme
Close #608
2019-08-29 13:08:02 +02:00
Jakub Roztocil
a4d8f1f22e Refactor --compress tests 2019-08-29 11:46:08 +02:00
Aleksandr Vinokurov
5ec954c03d Add compressed requests (#739)
* Add optional compression of the request's content

This option allows compression of the files and/or data during uploading,

Examples:

    http --form --compress POST https://localhost/upload csv@./very-big.csv

    http -x -x POST https://localhost/upload foo=bar

    cat /var/log/system.log | http -x POST https://localhost/upload

Signed-off-by: Aleksandr Vinokurov <aleksandr.vin@gmail.com>

* Add tests for compression

Signed-off-by: Aleksandr Vinokurov <aleksandr.vin@gmail.com>

* Fix code style issues

Signed-off-by: Aleksandr Vinokurov <aleksandr.vin@gmail.com>

* Fix zlib compression api missuse in Python3

Signed-off-by: Aleksandr Vinokurov <aleksandr.vin@gmail.com>

* Remove tracing from compression logic

Signed-off-by: Aleksandr Vinokurov <aleksandr.vin@gmail.com>
2019-08-29 10:44:59 +02:00
Jakub Roztocil
bb4f101c1e pep8 2019-08-29 10:09:56 +02:00
Jakub Roztocil
82081c889b Fix `--timeout=0` 2019-08-29 10:06:25 +02:00
Jakub Roztocil
05fc9c480a Remove the default 30-second connection timeout limit 2019-08-29 09:57:00 +02:00
Jakub Roztocil
a969013bdd Disable default max headers limit and add --max-headers (closes #802) 2019-08-29 09:39:19 +02:00
Jakub Roztocil
b3d2c1876e Python 2.7 support removal WIP 2019-08-29 08:53:56 +02:00
Jakub Roztocil
747be30d2e 1.0.3 2019-08-26 12:42:34 +02:00
Michael Sloan
c5ca9d248e Allow stdin to be a closed fd
Before this change, the following invocation would not work

```
$ http http://neverhttps.com <&-
```

The "<&-" at the end closes the stdin fd. Specifically, it would fail with

```
  ...
  File "/home/mgsloan/.local/lib/python3.6/site-packages/httpie/context.py", line 26, in Environment
    stdin_isatty = stdin.isatty()
AttributeError: 'NoneType' object has no attribute 'isatty'
```

This can occur when httpie is being programmatically invoked, and may
as well be supported.
2019-07-17 23:02:49 -06:00
Jakub Roztocil
6dee49357d Fix comments 2019-06-24 12:29:42 +02:00
Jakub Roztocil
df36d6255d Changed the way the output filename is generated
When ``--download`` without ``--output`` results in a redirect,
now only the initial URL is considered, not the final one.
2019-06-24 12:20:09 +02:00
Mickaël Schoentgen
3a46149de1 Fix several ResourceWarning: unclosed file (#741)
Signed-off-by: Mickaël Schoentgen <contact@tiger-222.fr>
2019-02-04 10:00:30 +01:00
Jakub Roztocil
c591a3810d 1.0.3-dev 2018-11-14 16:36:47 +01:00
Jakub Roztocil
0eba037037 v1.0.2
Close #729
2018-11-14 16:36:19 +01:00
Jakub Roztocil
3898129e9c Changelog 2018-11-14 16:22:00 +01:00
Jakub Roztocil
f6a19cf552 Don't call external URLs from tests #729 2018-11-14 11:42:59 +01:00
Jakub Roztocil
b5625e3d75 v1.0.0 2018-11-02 16:24:35 +01:00
Jakub Roztocil
932d3224f4 Cleanup 2018-11-02 16:23:17 +01:00
Jakub Roztocil
b596fedf13 exit 0 constant: OK => SUCCESS to avoid confusion w/ HTTP 200 OK 2018-11-02 16:07:39 +01:00
Jakub Roztocil
89b66f1608 Merge remote-tracking branch 'origin/master' 2018-11-02 14:58:08 +01:00
Vladimir Berkutov
a7d570916d #722: Add support for tls1.3 (#724)
* #722: Add support for tls1.3

* #722: Document the potential support for tls1.3
2018-11-02 14:57:53 +01:00
Jakub Roztocil
ab5a50cee8 Finish --style=auto for terminal ANSI colors and make it the default.
Previously (only in the development version), this was called 'preset'.
2018-11-02 14:53:05 +01:00
Matúš Ferech
256ea7d49d Add prog parameter to HTTPieArgumentParser (#715) 2018-10-30 18:41:56 +01:00
Matthew Leather
2cd6ea3050 Fix some broken documentation links (#703) 2018-09-07 19:10:04 +02:00
Jakub Roztocil
7917f1b40c Build fixes and clean-up
* reflect Python 3.7 release
* fix `pycodestyle` errors
* update `pycodestyle` config
* move `pytest` and `pycodestyle` config to `setup.cfg`
* add `make pycodestyle`
* add `make coveralls`
* etc.
2018-07-12 21:16:16 +02:00
Piotr Śliwka
87e661c5f1 Support using styles from Pygments plugins (#663)
`pygments.styles.STYLE_MAP` contains only styles built directly into
Pygments library. To list all available styles (including styles
registered by plugins), one should use `get_all_styles` generator.

For respective Pygments documentation, see:
http://pygments.org/docs/styles/#getting-a-list-of-available-styles
2018-04-14 15:25:59 -05:00
Jakub Roztocil
0f4dce98c7 Make default HTTP headers case-insensitive
Cloase #644
2018-02-22 12:52:57 +01:00
Jakub Roztocil
a803e845a5 More robust urllib3 import 2017-12-28 18:32:12 +01:00
Jakub Roztocil
7f5fd130c5 Start using dict comprehensions 2017-12-28 18:15:17 +01:00
Jakub Roztocil
ec899d70b7 Removed Python 2.6 support
* Travis CI doesn't support it anymore.
* It had EOL more than 4 years ago
2017-12-28 18:03:37 +01:00
Jakub Roztocil
4c138959ea
Merge pull request #633 from darshanime/version_number_fix
fix env version attribute
2017-12-13 21:18:38 +01:00