httpx 0.17.0 → 0.18.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -3
- data/doc/release_notes/0_18_0.md +69 -0
- data/doc/release_notes/0_18_1.md +12 -0
- data/doc/release_notes/0_18_2.md +10 -0
- data/doc/release_notes/0_18_3.md +7 -0
- data/lib/httpx/adapters/datadog.rb +1 -1
- data/lib/httpx/adapters/faraday.rb +5 -3
- data/lib/httpx/adapters/webmock.rb +7 -1
- data/lib/httpx/altsvc.rb +2 -2
- data/lib/httpx/chainable.rb +3 -3
- data/lib/httpx/connection/http1.rb +8 -5
- data/lib/httpx/connection/http2.rb +22 -7
- data/lib/httpx/connection.rb +70 -71
- data/lib/httpx/domain_name.rb +1 -1
- data/lib/httpx/extensions.rb +50 -4
- data/lib/httpx/io/ssl.rb +5 -1
- data/lib/httpx/io/tls.rb +7 -7
- data/lib/httpx/loggable.rb +5 -5
- data/lib/httpx/options.rb +7 -7
- data/lib/httpx/plugins/aws_sdk_authentication.rb +42 -18
- data/lib/httpx/plugins/aws_sigv4.rb +9 -11
- data/lib/httpx/plugins/compression.rb +5 -3
- data/lib/httpx/plugins/cookies/jar.rb +1 -1
- data/lib/httpx/plugins/expect.rb +7 -3
- data/lib/httpx/plugins/grpc/message.rb +2 -2
- data/lib/httpx/plugins/grpc.rb +3 -3
- data/lib/httpx/plugins/internal_telemetry.rb +8 -8
- data/lib/httpx/plugins/multipart.rb +2 -2
- data/lib/httpx/plugins/response_cache/store.rb +55 -0
- data/lib/httpx/plugins/response_cache.rb +88 -0
- data/lib/httpx/plugins/retries.rb +36 -14
- data/lib/httpx/plugins/stream.rb +1 -1
- data/lib/httpx/pool.rb +39 -13
- data/lib/httpx/request.rb +7 -7
- data/lib/httpx/resolver/https.rb +5 -7
- data/lib/httpx/resolver/native.rb +4 -2
- data/lib/httpx/resolver/system.rb +2 -0
- data/lib/httpx/resolver.rb +2 -2
- data/lib/httpx/response.rb +23 -14
- data/lib/httpx/selector.rb +12 -17
- data/lib/httpx/session.rb +7 -2
- data/lib/httpx/session2.rb +1 -1
- data/lib/httpx/timers.rb +84 -0
- data/lib/httpx/transcoder/body.rb +2 -1
- data/lib/httpx/transcoder/form.rb +1 -1
- data/lib/httpx/transcoder/json.rb +1 -1
- data/lib/httpx/utils.rb +8 -0
- data/lib/httpx/version.rb +1 -1
- data/lib/httpx.rb +1 -0
- data/sig/chainable.rbs +1 -0
- data/sig/connection/http1.rbs +5 -0
- data/sig/connection/http2.rbs +3 -0
- data/sig/connection.rbs +12 -6
- data/sig/plugins/aws_sdk_authentication.rbs +22 -4
- data/sig/plugins/response_cache.rbs +35 -0
- data/sig/plugins/retries.rbs +3 -0
- data/sig/pool.rbs +6 -0
- data/sig/resolver/native.rbs +3 -4
- data/sig/resolver/system.rbs +2 -0
- data/sig/response.rbs +3 -2
- data/sig/timers.rbs +32 -0
- data/sig/utils.rbs +4 -0
- metadata +17 -17
data/lib/httpx.rb
CHANGED
data/sig/chainable.rbs
CHANGED
@@ -32,6 +32,7 @@ module HTTPX
|
|
32
32
|
| (:stream, ?options) -> Plugins::sessionStream
|
33
33
|
| (:aws_sigv4, ?options) -> Plugins::awsSigV4Session
|
34
34
|
| (:grpc, ?options) -> Plugins::grpcSession
|
35
|
+
| (:response_cache, ?options) -> Plugins::sessionResponseCache
|
35
36
|
| (Symbol | Module, ?options) { (Class) -> void } -> Session
|
36
37
|
| (Symbol | Module, ?options) -> Session
|
37
38
|
|
data/sig/connection/http1.rbs
CHANGED
data/sig/connection/http2.rbs
CHANGED
data/sig/connection.rbs
CHANGED
@@ -25,7 +25,15 @@ module HTTPX
|
|
25
25
|
attr_reader state: Symbol
|
26
26
|
attr_reader pending: Array[Request]
|
27
27
|
attr_reader options: Options
|
28
|
-
attr_writer timers:
|
28
|
+
attr_writer timers: Timers
|
29
|
+
|
30
|
+
@origins: Array[URI::Generic]
|
31
|
+
@window_size: Integer
|
32
|
+
@read_buffer: Buffer
|
33
|
+
@write_buffer: Buffer
|
34
|
+
@inflight: Integer
|
35
|
+
@keep_alive_timeout: Numeric?
|
36
|
+
@total_timeout: Numeric?
|
29
37
|
|
30
38
|
def addresses: () -> Array[ipaddr]?
|
31
39
|
|
@@ -62,6 +70,7 @@ module HTTPX
|
|
62
70
|
|
63
71
|
def timeout: () -> Numeric?
|
64
72
|
|
73
|
+
def deactivate: () -> void
|
65
74
|
private
|
66
75
|
|
67
76
|
def initialize: (String, URI::Generic, options) -> untyped
|
@@ -76,6 +85,8 @@ module HTTPX
|
|
76
85
|
|
77
86
|
def parser: () -> _Parser
|
78
87
|
|
88
|
+
def send_request_to_parser: (Request request) -> void
|
89
|
+
|
79
90
|
def build_parser: () -> _Parser
|
80
91
|
| (String) -> _Parser
|
81
92
|
|
@@ -83,15 +94,10 @@ module HTTPX
|
|
83
94
|
|
84
95
|
def transition: (Symbol) -> void
|
85
96
|
|
86
|
-
def handle_response: () -> void
|
87
|
-
|
88
97
|
def on_error: (HTTPX::TimeoutError | Error | StandardError) -> void
|
89
98
|
|
90
99
|
def handle_error: (StandardError) -> void
|
91
100
|
|
92
|
-
def total_timeout: () -> untyped?
|
93
|
-
# def total_timeout: () -> Timers::Timer?
|
94
|
-
#
|
95
101
|
def purge_after_closed: () -> void
|
96
102
|
end
|
97
103
|
end
|
@@ -1,25 +1,43 @@
|
|
1
1
|
module HTTPX
|
2
2
|
module Plugins
|
3
3
|
module AwsSdkAuthentication
|
4
|
+
class Configuration
|
5
|
+
attr_reader profile: String?
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def initialize: (String? profile) -> void
|
10
|
+
end
|
11
|
+
|
4
12
|
class Credentials
|
13
|
+
@aws_credentials: untyped
|
14
|
+
|
5
15
|
include _SigV4Credentials
|
6
16
|
|
7
17
|
private
|
8
|
-
|
18
|
+
|
9
19
|
def initialize: (untyped aws_credentials) -> untyped
|
10
20
|
end
|
11
21
|
|
22
|
+
interface _AwsSdkOptions
|
23
|
+
def aws_profile: () -> String?
|
24
|
+
end
|
25
|
+
|
12
26
|
def self.load_dependencies: (singleton(Session)) -> void
|
13
27
|
|
14
28
|
def self.configure: (singleton(Session)) -> void
|
15
29
|
|
16
|
-
def self.extra_options: (Options) -> (Options)
|
30
|
+
def self.extra_options: (Options) -> (Options & _AwsSdkOptions)
|
31
|
+
|
32
|
+
def self.credentials: (String? profile) -> Credentials
|
33
|
+
|
34
|
+
def self.region: (String? profile) -> String
|
17
35
|
|
18
36
|
module InstanceMethods
|
19
|
-
def aws_sdk_authentication: (**untyped) -> instance
|
37
|
+
def aws_sdk_authentication: (?credentials: Credentials, ?region: String, **untyped) -> instance
|
20
38
|
end
|
21
39
|
end
|
22
40
|
|
23
|
-
type sessionAwsSdkAuthentication =
|
41
|
+
type sessionAwsSdkAuthentication = awsSigV4Session & AwsSdkAuthentication::InstanceMethods
|
24
42
|
end
|
25
43
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module HTTPX
|
2
|
+
module Plugins
|
3
|
+
module ResponseCache
|
4
|
+
CACHEABLE_VERBS: Array[Symbol]
|
5
|
+
|
6
|
+
def self?.cacheable_request?: (Request request) -> bool
|
7
|
+
def self?.cacheable_response?: (response response) -> bool
|
8
|
+
def self?.cached_response?: (response response) -> bool
|
9
|
+
|
10
|
+
class Store
|
11
|
+
@store: Hash[URI::Generic, Response]
|
12
|
+
|
13
|
+
def lookup: (URI::Generic uri) -> Response?
|
14
|
+
|
15
|
+
def cached?: (URI::Generic uri) -> bool
|
16
|
+
|
17
|
+
def cache: (URI::Generic uri, Response response) -> void
|
18
|
+
|
19
|
+
def prepare: (Request request) -> void
|
20
|
+
end
|
21
|
+
|
22
|
+
module InstanceMethods
|
23
|
+
@response_cache: Store
|
24
|
+
|
25
|
+
def clear_response_cache: () -> void
|
26
|
+
end
|
27
|
+
|
28
|
+
module ResponseMethods
|
29
|
+
def copy_from_cached: (Response other) -> void
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
type sessionResponseCache = Session & ResponseCache::InstanceMethods
|
34
|
+
end
|
35
|
+
end
|
data/sig/plugins/retries.rbs
CHANGED
@@ -4,6 +4,7 @@ module HTTPX
|
|
4
4
|
MAX_RETRIES: Integer
|
5
5
|
IDEMPOTENT_METHODS: Array[verb]
|
6
6
|
RETRYABLE_ERRORS: Array[singleton(StandardError)]
|
7
|
+
DEFAULT_JITTER: ^(Numeric) -> Numeric
|
7
8
|
|
8
9
|
interface _RetryCallback
|
9
10
|
def call: (response) -> bool?
|
@@ -12,6 +13,8 @@ module HTTPX
|
|
12
13
|
interface _RetriesOptions
|
13
14
|
def retry_after: () -> Numeric?
|
14
15
|
|
16
|
+
def retry_jitter: () -> ^(Numeric) -> Numeric
|
17
|
+
|
15
18
|
def max_retries: () -> Integer?
|
16
19
|
|
17
20
|
def retry_change_requests: () -> boolish
|
data/sig/pool.rbs
CHANGED
@@ -10,6 +10,8 @@ module HTTPX
|
|
10
10
|
|
11
11
|
def find_connection: (generic_uri, Options) -> Connection?
|
12
12
|
|
13
|
+
def deactivate: (*Array[Connection]) -> void
|
14
|
+
|
13
15
|
private
|
14
16
|
|
15
17
|
def initialize: () -> untyped
|
@@ -26,6 +28,10 @@ module HTTPX
|
|
26
28
|
|
27
29
|
def unregister_connection: (Connection) -> void
|
28
30
|
|
31
|
+
def select_connection: (resolver | Connection connection) -> void
|
32
|
+
|
33
|
+
def deselect_connection: (resolver | Connection connection) -> void
|
34
|
+
|
29
35
|
def coalesce_connections: (Connection, Connection) -> void
|
30
36
|
|
31
37
|
def next_timeout: () -> Numeric?
|
data/sig/resolver/native.rbs
CHANGED
@@ -5,8 +5,6 @@ module HTTPX
|
|
5
5
|
include ResolverMixin
|
6
6
|
include _ToIO
|
7
7
|
|
8
|
-
type state = :idle | :open | :closed
|
9
|
-
|
10
8
|
DEFAULTS: Hash[Symbol, untyped]
|
11
9
|
DNS_PORT: Integer
|
12
10
|
|
@@ -21,7 +19,8 @@ module HTTPX
|
|
21
19
|
@queries: Hash[String, Connection]
|
22
20
|
@read_buffer: String
|
23
21
|
@write_buffer: Buffer
|
24
|
-
|
22
|
+
|
23
|
+
attr_reader state: Symbol
|
25
24
|
|
26
25
|
def closed?: () -> bool
|
27
26
|
|
@@ -58,7 +57,7 @@ module HTTPX
|
|
58
57
|
|
59
58
|
def build_socket: () -> void
|
60
59
|
|
61
|
-
def transition: (
|
60
|
+
def transition: (Symbol nextstate) -> void
|
62
61
|
|
63
62
|
def handle_error: (NativeResolveError | StandardError) -> void
|
64
63
|
end
|
data/sig/resolver/system.rbs
CHANGED
data/sig/response.rbs
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
module HTTPX
|
2
2
|
interface _Response
|
3
|
-
def raise_for_status: () ->
|
3
|
+
def raise_for_status: () -> self
|
4
|
+
|
5
|
+
def error: () -> StandardError?
|
4
6
|
end
|
5
7
|
|
6
8
|
class Response
|
@@ -89,7 +91,6 @@ module HTTPX
|
|
89
91
|
@options: Options
|
90
92
|
|
91
93
|
attr_reader request: Request
|
92
|
-
attr_reader error: Exception
|
93
94
|
|
94
95
|
def status: () -> (Integer | _ToS)
|
95
96
|
|
data/sig/timers.rbs
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
module HTTPX
|
2
|
+
class Timers
|
3
|
+
@interval: Array[Interval]
|
4
|
+
|
5
|
+
def after: (Numeric interval_in_secs) { () -> void } -> void
|
6
|
+
|
7
|
+
def wait_interval: () -> Numeric?
|
8
|
+
|
9
|
+
def fire: (?StandardError error) -> void
|
10
|
+
|
11
|
+
def cancel: () -> void
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def initialize: () -> void
|
16
|
+
|
17
|
+
class Interval
|
18
|
+
include Comparable
|
19
|
+
|
20
|
+
attr_reader interval: Numeric
|
21
|
+
|
22
|
+
def to_f: () -> Float
|
23
|
+
|
24
|
+
def <<: (^() -> void) -> void
|
25
|
+
|
26
|
+
def elapse: (Numeric elapsed) -> Numeric
|
27
|
+
private
|
28
|
+
|
29
|
+
def initialize: (Numeric interval) -> void
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/sig/utils.rbs
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httpx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.18.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tiago Cardoso
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http-2-next
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.4.1
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: timers
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
27
|
description: A client library for making HTTP requests from Ruby.
|
42
28
|
email:
|
43
29
|
- cardoso_tiago@hotmail.com
|
@@ -76,6 +62,10 @@ extra_rdoc_files:
|
|
76
62
|
- doc/release_notes/0_16_0.md
|
77
63
|
- doc/release_notes/0_16_1.md
|
78
64
|
- doc/release_notes/0_17_0.md
|
65
|
+
- doc/release_notes/0_18_0.md
|
66
|
+
- doc/release_notes/0_18_1.md
|
67
|
+
- doc/release_notes/0_18_2.md
|
68
|
+
- doc/release_notes/0_18_3.md
|
79
69
|
- doc/release_notes/0_1_0.md
|
80
70
|
- doc/release_notes/0_2_0.md
|
81
71
|
- doc/release_notes/0_2_1.md
|
@@ -131,6 +121,10 @@ files:
|
|
131
121
|
- doc/release_notes/0_16_0.md
|
132
122
|
- doc/release_notes/0_16_1.md
|
133
123
|
- doc/release_notes/0_17_0.md
|
124
|
+
- doc/release_notes/0_18_0.md
|
125
|
+
- doc/release_notes/0_18_1.md
|
126
|
+
- doc/release_notes/0_18_2.md
|
127
|
+
- doc/release_notes/0_18_3.md
|
134
128
|
- doc/release_notes/0_1_0.md
|
135
129
|
- doc/release_notes/0_2_0.md
|
136
130
|
- doc/release_notes/0_2_1.md
|
@@ -214,6 +208,8 @@ files:
|
|
214
208
|
- lib/httpx/plugins/proxy/ssh.rb
|
215
209
|
- lib/httpx/plugins/push_promise.rb
|
216
210
|
- lib/httpx/plugins/rate_limiter.rb
|
211
|
+
- lib/httpx/plugins/response_cache.rb
|
212
|
+
- lib/httpx/plugins/response_cache/store.rb
|
217
213
|
- lib/httpx/plugins/retries.rb
|
218
214
|
- lib/httpx/plugins/stream.rb
|
219
215
|
- lib/httpx/plugins/upgrade.rb
|
@@ -232,6 +228,7 @@ files:
|
|
232
228
|
- lib/httpx/selector.rb
|
233
229
|
- lib/httpx/session.rb
|
234
230
|
- lib/httpx/session2.rb
|
231
|
+
- lib/httpx/timers.rb
|
235
232
|
- lib/httpx/transcoder.rb
|
236
233
|
- lib/httpx/transcoder/body.rb
|
237
234
|
- lib/httpx/transcoder/chunker.rb
|
@@ -278,6 +275,7 @@ files:
|
|
278
275
|
- sig/plugins/proxy/ssh.rbs
|
279
276
|
- sig/plugins/push_promise.rbs
|
280
277
|
- sig/plugins/rate_limiter.rbs
|
278
|
+
- sig/plugins/response_cache.rbs
|
281
279
|
- sig/plugins/retries.rbs
|
282
280
|
- sig/plugins/stream.rbs
|
283
281
|
- sig/plugins/upgrade.rbs
|
@@ -292,6 +290,7 @@ files:
|
|
292
290
|
- sig/response.rbs
|
293
291
|
- sig/selector.rbs
|
294
292
|
- sig/session.rbs
|
293
|
+
- sig/timers.rbs
|
295
294
|
- sig/transcoder.rbs
|
296
295
|
- sig/transcoder/body.rbs
|
297
296
|
- sig/transcoder/chunker.rbs
|
@@ -307,6 +306,7 @@ metadata:
|
|
307
306
|
documentation_uri: https://honeyryderchuck.gitlab.io/httpx/rdoc/
|
308
307
|
source_code_uri: https://gitlab.com/honeyryderchuck/httpx
|
309
308
|
homepage_uri: https://honeyryderchuck.gitlab.io/httpx/
|
309
|
+
rubygems_mfa_required: 'true'
|
310
310
|
post_install_message:
|
311
311
|
rdoc_options: []
|
312
312
|
require_paths:
|
@@ -322,7 +322,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
322
322
|
- !ruby/object:Gem::Version
|
323
323
|
version: '0'
|
324
324
|
requirements: []
|
325
|
-
rubygems_version: 3.2.
|
325
|
+
rubygems_version: 3.2.22
|
326
326
|
signing_key:
|
327
327
|
specification_version: 4
|
328
328
|
summary: HTTPX, to the future, and beyond
|