turbopuffer 0.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ignore +2 -0
- data/CHANGELOG.md +205 -0
- data/README.md +270 -40
- data/SECURITY.md +27 -0
- data/lib/turbopuffer/client.rb +122 -16
- data/lib/turbopuffer/errors.rb +228 -0
- data/lib/turbopuffer/file_part.rb +55 -0
- data/lib/turbopuffer/internal/namespace_page.rb +86 -0
- data/lib/turbopuffer/internal/transport/base_client.rb +567 -0
- data/lib/turbopuffer/internal/transport/pooled_net_requester.rb +201 -0
- data/lib/turbopuffer/internal/type/array_of.rb +168 -0
- data/lib/turbopuffer/internal/type/base_model.rb +529 -0
- data/lib/turbopuffer/internal/type/base_page.rb +55 -0
- data/lib/turbopuffer/internal/type/boolean.rb +77 -0
- data/lib/turbopuffer/internal/type/converter.rb +327 -0
- data/lib/turbopuffer/internal/type/enum.rb +152 -0
- data/lib/turbopuffer/internal/type/file_input.rb +108 -0
- data/lib/turbopuffer/internal/type/hash_of.rb +188 -0
- data/lib/turbopuffer/internal/type/request_parameters.rb +42 -0
- data/lib/turbopuffer/internal/type/union.rb +254 -0
- data/lib/turbopuffer/internal/type/unknown.rb +81 -0
- data/lib/turbopuffer/internal/util.rb +914 -0
- data/lib/turbopuffer/internal.rb +20 -0
- data/lib/turbopuffer/models/aggregation_group.rb +8 -0
- data/lib/turbopuffer/models/attribute_schema.rb +19 -0
- data/lib/turbopuffer/models/attribute_schema_config.rb +56 -0
- data/lib/turbopuffer/models/attribute_type.rb +7 -0
- data/lib/turbopuffer/models/client_namespaces_params.rb +38 -0
- data/lib/turbopuffer/models/columns.rb +64 -0
- data/lib/turbopuffer/models/distance_metric.rb +19 -0
- data/lib/turbopuffer/models/full_text_search.rb +20 -0
- data/lib/turbopuffer/models/full_text_search_config.rb +83 -0
- data/lib/turbopuffer/models/id.rb +19 -0
- data/lib/turbopuffer/models/include_attributes.rb +22 -0
- data/lib/turbopuffer/models/language.rb +32 -0
- data/lib/turbopuffer/models/namespace_delete_all_params.rb +20 -0
- data/lib/turbopuffer/models/namespace_delete_all_response.rb +19 -0
- data/lib/turbopuffer/models/namespace_explain_query_params.rb +137 -0
- data/lib/turbopuffer/models/namespace_explain_query_response.rb +19 -0
- data/lib/turbopuffer/models/namespace_hint_cache_warm_params.rb +20 -0
- data/lib/turbopuffer/models/namespace_hint_cache_warm_response.rb +26 -0
- data/lib/turbopuffer/models/namespace_metadata.rb +43 -0
- data/lib/turbopuffer/models/namespace_metadata_params.rb +20 -0
- data/lib/turbopuffer/models/namespace_multi_query_params.rb +73 -0
- data/lib/turbopuffer/models/namespace_multi_query_response.rb +58 -0
- data/lib/turbopuffer/models/namespace_query_params.rb +137 -0
- data/lib/turbopuffer/models/namespace_query_response.rb +49 -0
- data/lib/turbopuffer/models/namespace_recall_params.rb +66 -0
- data/lib/turbopuffer/models/namespace_recall_response.rb +68 -0
- data/lib/turbopuffer/models/namespace_schema_params.rb +20 -0
- data/lib/turbopuffer/models/namespace_schema_response.rb +8 -0
- data/lib/turbopuffer/models/namespace_summary.rb +19 -0
- data/lib/turbopuffer/models/namespace_update_schema_params.rb +29 -0
- data/lib/turbopuffer/models/namespace_update_schema_response.rb +9 -0
- data/lib/turbopuffer/models/namespace_write_params.rb +158 -0
- data/lib/turbopuffer/models/namespace_write_response.rb +67 -0
- data/lib/turbopuffer/models/query.rb +81 -0
- data/lib/turbopuffer/models/query_billing.rb +26 -0
- data/lib/turbopuffer/models/query_performance.rb +63 -0
- data/lib/turbopuffer/models/row.rb +46 -0
- data/lib/turbopuffer/models/tokenizer.rb +19 -0
- data/lib/turbopuffer/models/vector.rb +22 -0
- data/lib/turbopuffer/models/vector_encoding.rb +16 -0
- data/lib/turbopuffer/models/write_billing.rb +26 -0
- data/lib/turbopuffer/models.rb +106 -0
- data/lib/turbopuffer/namespace.rb +14 -50
- data/lib/turbopuffer/request_options.rb +77 -0
- data/lib/turbopuffer/resources/namespaces.rb +366 -0
- data/lib/turbopuffer/version.rb +1 -1
- data/lib/turbopuffer.rb +92 -4
- data/manifest.yaml +15 -0
- data/rbi/turbopuffer/client.rbi +91 -0
- data/rbi/turbopuffer/errors.rbi +205 -0
- data/rbi/turbopuffer/file_part.rbi +37 -0
- data/rbi/turbopuffer/internal/namespace_page.rbi +22 -0
- data/rbi/turbopuffer/internal/transport/base_client.rbi +297 -0
- data/rbi/turbopuffer/internal/transport/pooled_net_requester.rbi +80 -0
- data/rbi/turbopuffer/internal/type/array_of.rbi +104 -0
- data/rbi/turbopuffer/internal/type/base_model.rbi +304 -0
- data/rbi/turbopuffer/internal/type/base_page.rbi +43 -0
- data/rbi/turbopuffer/internal/type/boolean.rbi +58 -0
- data/rbi/turbopuffer/internal/type/converter.rbi +216 -0
- data/rbi/turbopuffer/internal/type/enum.rbi +82 -0
- data/rbi/turbopuffer/internal/type/file_input.rbi +59 -0
- data/rbi/turbopuffer/internal/type/hash_of.rbi +104 -0
- data/rbi/turbopuffer/internal/type/request_parameters.rbi +31 -0
- data/rbi/turbopuffer/internal/type/union.rbi +128 -0
- data/rbi/turbopuffer/internal/type/unknown.rbi +58 -0
- data/rbi/turbopuffer/internal/util.rbi +487 -0
- data/rbi/turbopuffer/internal.rbi +18 -0
- data/rbi/turbopuffer/models/aggregation_group.rbi +13 -0
- data/rbi/turbopuffer/models/attribute_schema.rbi +17 -0
- data/rbi/turbopuffer/models/attribute_schema_config.rbi +103 -0
- data/rbi/turbopuffer/models/attribute_type.rbi +7 -0
- data/rbi/turbopuffer/models/client_namespaces_params.rbi +71 -0
- data/rbi/turbopuffer/models/columns.rbi +82 -0
- data/rbi/turbopuffer/models/distance_metric.rbi +27 -0
- data/rbi/turbopuffer/models/full_text_search.rbi +19 -0
- data/rbi/turbopuffer/models/full_text_search_config.rbi +133 -0
- data/rbi/turbopuffer/models/id.rbi +16 -0
- data/rbi/turbopuffer/models/include_attributes.rbi +24 -0
- data/rbi/turbopuffer/models/language.rbi +36 -0
- data/rbi/turbopuffer/models/namespace_delete_all_params.rbi +41 -0
- data/rbi/turbopuffer/models/namespace_delete_all_response.rbi +31 -0
- data/rbi/turbopuffer/models/namespace_explain_query_params.rbi +273 -0
- data/rbi/turbopuffer/models/namespace_explain_query_response.rbi +34 -0
- data/rbi/turbopuffer/models/namespace_hint_cache_warm_params.rbi +41 -0
- data/rbi/turbopuffer/models/namespace_hint_cache_warm_response.rbi +38 -0
- data/rbi/turbopuffer/models/namespace_metadata.rbi +62 -0
- data/rbi/turbopuffer/models/namespace_metadata_params.rbi +41 -0
- data/rbi/turbopuffer/models/namespace_multi_query_params.rbi +175 -0
- data/rbi/turbopuffer/models/namespace_multi_query_response.rbi +121 -0
- data/rbi/turbopuffer/models/namespace_query_params.rbi +267 -0
- data/rbi/turbopuffer/models/namespace_query_response.rbi +84 -0
- data/rbi/turbopuffer/models/namespace_recall_params.rbi +106 -0
- data/rbi/turbopuffer/models/namespace_recall_response.rbi +134 -0
- data/rbi/turbopuffer/models/namespace_schema_params.rbi +41 -0
- data/rbi/turbopuffer/models/namespace_schema_response.rbi +11 -0
- data/rbi/turbopuffer/models/namespace_summary.rbi +28 -0
- data/rbi/turbopuffer/models/namespace_update_schema_params.rbi +80 -0
- data/rbi/turbopuffer/models/namespace_update_schema_response.rbi +11 -0
- data/rbi/turbopuffer/models/namespace_write_params.rbi +290 -0
- data/rbi/turbopuffer/models/namespace_write_response.rbi +101 -0
- data/rbi/turbopuffer/models/query.rbi +132 -0
- data/rbi/turbopuffer/models/query_billing.rbi +46 -0
- data/rbi/turbopuffer/models/query_performance.rbi +82 -0
- data/rbi/turbopuffer/models/row.rbi +47 -0
- data/rbi/turbopuffer/models/tokenizer.rbi +24 -0
- data/rbi/turbopuffer/models/vector.rbi +22 -0
- data/rbi/turbopuffer/models/vector_encoding.rbi +22 -0
- data/rbi/turbopuffer/models/write_billing.rbi +49 -0
- data/rbi/turbopuffer/models.rbi +72 -0
- data/rbi/turbopuffer/namespace.rbi +8 -0
- data/rbi/turbopuffer/request_options.rbi +59 -0
- data/rbi/turbopuffer/resources/namespaces.rbi +304 -0
- data/rbi/turbopuffer/version.rbi +5 -0
- data/sig/turbopuffer/client.rbs +41 -0
- data/sig/turbopuffer/errors.rbs +117 -0
- data/sig/turbopuffer/file_part.rbs +21 -0
- data/sig/turbopuffer/internal/namespace_page.rbs +13 -0
- data/sig/turbopuffer/internal/transport/base_client.rbs +131 -0
- data/sig/turbopuffer/internal/transport/pooled_net_requester.rbs +45 -0
- data/sig/turbopuffer/internal/type/array_of.rbs +48 -0
- data/sig/turbopuffer/internal/type/base_model.rbs +102 -0
- data/sig/turbopuffer/internal/type/base_page.rbs +24 -0
- data/sig/turbopuffer/internal/type/boolean.rbs +26 -0
- data/sig/turbopuffer/internal/type/converter.rbs +79 -0
- data/sig/turbopuffer/internal/type/enum.rbs +32 -0
- data/sig/turbopuffer/internal/type/file_input.rbs +25 -0
- data/sig/turbopuffer/internal/type/hash_of.rbs +48 -0
- data/sig/turbopuffer/internal/type/request_parameters.rbs +19 -0
- data/sig/turbopuffer/internal/type/union.rbs +52 -0
- data/sig/turbopuffer/internal/type/unknown.rbs +26 -0
- data/sig/turbopuffer/internal/util.rbs +185 -0
- data/sig/turbopuffer/internal.rbs +9 -0
- data/sig/turbopuffer/models/aggregation_group.rbs +7 -0
- data/sig/turbopuffer/models/attribute_schema.rbs +11 -0
- data/sig/turbopuffer/models/attribute_schema_config.rbs +52 -0
- data/sig/turbopuffer/models/attribute_type.rbs +5 -0
- data/sig/turbopuffer/models/client_namespaces_params.rbs +38 -0
- data/sig/turbopuffer/models/columns.rbs +42 -0
- data/sig/turbopuffer/models/distance_metric.rbs +17 -0
- data/sig/turbopuffer/models/full_text_search.rbs +11 -0
- data/sig/turbopuffer/models/full_text_search_config.rbs +75 -0
- data/sig/turbopuffer/models/id.rbs +11 -0
- data/sig/turbopuffer/models/include_attributes.rbs +13 -0
- data/sig/turbopuffer/models/language.rbs +48 -0
- data/sig/turbopuffer/models/namespace_delete_all_params.rbs +25 -0
- data/sig/turbopuffer/models/namespace_delete_all_response.rbs +13 -0
- data/sig/turbopuffer/models/namespace_explain_query_params.rbs +141 -0
- data/sig/turbopuffer/models/namespace_explain_query_response.rbs +15 -0
- data/sig/turbopuffer/models/namespace_hint_cache_warm_params.rbs +25 -0
- data/sig/turbopuffer/models/namespace_hint_cache_warm_response.rbs +18 -0
- data/sig/turbopuffer/models/namespace_metadata.rbs +35 -0
- data/sig/turbopuffer/models/namespace_metadata_params.rbs +25 -0
- data/sig/turbopuffer/models/namespace_multi_query_params.rbs +86 -0
- data/sig/turbopuffer/models/namespace_multi_query_response.rbs +65 -0
- data/sig/turbopuffer/models/namespace_query_params.rbs +139 -0
- data/sig/turbopuffer/models/namespace_query_response.rbs +48 -0
- data/sig/turbopuffer/models/namespace_recall_params.rbs +63 -0
- data/sig/turbopuffer/models/namespace_recall_response.rbs +61 -0
- data/sig/turbopuffer/models/namespace_schema_params.rbs +25 -0
- data/sig/turbopuffer/models/namespace_schema_response.rbs +8 -0
- data/sig/turbopuffer/models/namespace_summary.rbs +13 -0
- data/sig/turbopuffer/models/namespace_update_schema_params.rbs +37 -0
- data/sig/turbopuffer/models/namespace_update_schema_response.rbs +8 -0
- data/sig/turbopuffer/models/namespace_write_params.rbs +156 -0
- data/sig/turbopuffer/models/namespace_write_response.rbs +56 -0
- data/sig/turbopuffer/models/query.rbs +75 -0
- data/sig/turbopuffer/models/query_billing.rbs +25 -0
- data/sig/turbopuffer/models/query_performance.rbs +45 -0
- data/sig/turbopuffer/models/row.rbs +24 -0
- data/sig/turbopuffer/models/tokenizer.rbs +16 -0
- data/sig/turbopuffer/models/vector.rbs +13 -0
- data/sig/turbopuffer/models/vector_encoding.rbs +14 -0
- data/sig/turbopuffer/models/write_billing.rbs +27 -0
- data/sig/turbopuffer/models.rbs +65 -0
- data/sig/turbopuffer/namespace.rbs +5 -0
- data/sig/turbopuffer/request_options.rbs +36 -0
- data/sig/turbopuffer/resources/namespaces.rbs +99 -0
- data/sig/turbopuffer/version.rbs +3 -0
- metadata +218 -29
- data/.standard.yml +0 -3
- data/LICENSE.txt +0 -21
- data/Rakefile +0 -10
- data/sig/turbopuffer.rbs +0 -4
@@ -0,0 +1,80 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
module Internal
|
5
|
+
module Transport
|
6
|
+
# @api private
|
7
|
+
class PooledNetRequester
|
8
|
+
extend Turbopuffer::Internal::Util::SorbetRuntimeSupport
|
9
|
+
|
10
|
+
Request =
|
11
|
+
T.type_alias do
|
12
|
+
{
|
13
|
+
method: Symbol,
|
14
|
+
url: URI::Generic,
|
15
|
+
headers: T::Hash[String, String],
|
16
|
+
body: T.anything,
|
17
|
+
deadline: Float
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
# from the golang stdlib
|
22
|
+
# https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49
|
23
|
+
KEEP_ALIVE_TIMEOUT = 30
|
24
|
+
|
25
|
+
DEFAULT_MAX_CONNECTIONS = T.let(T.unsafe(nil), Integer)
|
26
|
+
|
27
|
+
class << self
|
28
|
+
# @api private
|
29
|
+
sig { params(url: URI::Generic).returns(Net::HTTP) }
|
30
|
+
def connect(url)
|
31
|
+
end
|
32
|
+
|
33
|
+
# @api private
|
34
|
+
sig { params(conn: Net::HTTP, deadline: Float).void }
|
35
|
+
def calibrate_socket_timeout(conn, deadline)
|
36
|
+
end
|
37
|
+
|
38
|
+
# @api private
|
39
|
+
sig do
|
40
|
+
params(
|
41
|
+
request:
|
42
|
+
Turbopuffer::Internal::Transport::PooledNetRequester::Request,
|
43
|
+
blk: T.proc.params(arg0: String).void
|
44
|
+
).returns([Net::HTTPGenericRequest, T.proc.void])
|
45
|
+
end
|
46
|
+
def build_request(request, &blk)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# @api private
|
51
|
+
sig do
|
52
|
+
params(
|
53
|
+
url: URI::Generic,
|
54
|
+
deadline: Float,
|
55
|
+
blk: T.proc.params(arg0: Net::HTTP).void
|
56
|
+
).void
|
57
|
+
end
|
58
|
+
private def with_pool(url, deadline:, &blk)
|
59
|
+
end
|
60
|
+
|
61
|
+
# @api private
|
62
|
+
sig do
|
63
|
+
params(
|
64
|
+
request:
|
65
|
+
Turbopuffer::Internal::Transport::PooledNetRequester::Request
|
66
|
+
).returns([Integer, Net::HTTPResponse, T::Enumerable[String]])
|
67
|
+
end
|
68
|
+
def execute(request)
|
69
|
+
end
|
70
|
+
|
71
|
+
# @api private
|
72
|
+
sig { params(size: Integer).returns(T.attached_class) }
|
73
|
+
def self.new(
|
74
|
+
size: Turbopuffer::Internal::Transport::PooledNetRequester::DEFAULT_MAX_CONNECTIONS
|
75
|
+
)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
module Internal
|
5
|
+
module Type
|
6
|
+
# @api private
|
7
|
+
#
|
8
|
+
# Array of items of a given type.
|
9
|
+
class ArrayOf
|
10
|
+
include Turbopuffer::Internal::Type::Converter
|
11
|
+
include Turbopuffer::Internal::Util::SorbetRuntimeSupport
|
12
|
+
|
13
|
+
abstract!
|
14
|
+
|
15
|
+
Elem = type_member(:out)
|
16
|
+
|
17
|
+
sig do
|
18
|
+
params(
|
19
|
+
type_info:
|
20
|
+
T.any(
|
21
|
+
Turbopuffer::Internal::AnyHash,
|
22
|
+
T.proc.returns(Turbopuffer::Internal::Type::Converter::Input),
|
23
|
+
Turbopuffer::Internal::Type::Converter::Input
|
24
|
+
),
|
25
|
+
spec: Turbopuffer::Internal::AnyHash
|
26
|
+
).returns(T.attached_class)
|
27
|
+
end
|
28
|
+
def self.[](type_info, spec = {})
|
29
|
+
end
|
30
|
+
|
31
|
+
sig { params(other: T.anything).returns(T::Boolean) }
|
32
|
+
def ===(other)
|
33
|
+
end
|
34
|
+
|
35
|
+
sig { params(other: T.anything).returns(T::Boolean) }
|
36
|
+
def ==(other)
|
37
|
+
end
|
38
|
+
|
39
|
+
sig { returns(Integer) }
|
40
|
+
def hash
|
41
|
+
end
|
42
|
+
|
43
|
+
# @api private
|
44
|
+
sig do
|
45
|
+
override
|
46
|
+
.params(
|
47
|
+
value: T.any(T::Array[T.anything], T.anything),
|
48
|
+
state: Turbopuffer::Internal::Type::Converter::CoerceState
|
49
|
+
)
|
50
|
+
.returns(T.any(T::Array[T.anything], T.anything))
|
51
|
+
end
|
52
|
+
def coerce(value, state:)
|
53
|
+
end
|
54
|
+
|
55
|
+
# @api private
|
56
|
+
sig do
|
57
|
+
override
|
58
|
+
.params(
|
59
|
+
value: T.any(T::Array[T.anything], T.anything),
|
60
|
+
state: Turbopuffer::Internal::Type::Converter::DumpState
|
61
|
+
)
|
62
|
+
.returns(T.any(T::Array[T.anything], T.anything))
|
63
|
+
end
|
64
|
+
def dump(value, state:)
|
65
|
+
end
|
66
|
+
|
67
|
+
# @api private
|
68
|
+
sig { returns(T.anything) }
|
69
|
+
def to_sorbet_type
|
70
|
+
end
|
71
|
+
|
72
|
+
# @api private
|
73
|
+
sig { returns(Elem) }
|
74
|
+
protected def item_type
|
75
|
+
end
|
76
|
+
|
77
|
+
# @api private
|
78
|
+
sig { returns(T::Boolean) }
|
79
|
+
protected def nilable?
|
80
|
+
end
|
81
|
+
|
82
|
+
# @api private
|
83
|
+
sig do
|
84
|
+
params(
|
85
|
+
type_info:
|
86
|
+
T.any(
|
87
|
+
Turbopuffer::Internal::AnyHash,
|
88
|
+
T.proc.returns(Turbopuffer::Internal::Type::Converter::Input),
|
89
|
+
Turbopuffer::Internal::Type::Converter::Input
|
90
|
+
),
|
91
|
+
spec: Turbopuffer::Internal::AnyHash
|
92
|
+
).void
|
93
|
+
end
|
94
|
+
def initialize(type_info, spec = {})
|
95
|
+
end
|
96
|
+
|
97
|
+
# @api private
|
98
|
+
sig { params(depth: Integer).returns(String) }
|
99
|
+
def inspect(depth: 0)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,304 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
module Internal
|
5
|
+
module Type
|
6
|
+
class BaseModel
|
7
|
+
extend Turbopuffer::Internal::Type::Converter
|
8
|
+
extend Turbopuffer::Internal::Util::SorbetRuntimeSupport
|
9
|
+
|
10
|
+
abstract!
|
11
|
+
|
12
|
+
KnownField =
|
13
|
+
T.type_alias do
|
14
|
+
{
|
15
|
+
mode: T.nilable(Symbol),
|
16
|
+
required: T::Boolean,
|
17
|
+
nilable: T::Boolean
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
OrHash =
|
22
|
+
T.type_alias do
|
23
|
+
T.any(
|
24
|
+
Turbopuffer::Internal::Type::BaseModel,
|
25
|
+
Turbopuffer::Internal::AnyHash
|
26
|
+
)
|
27
|
+
end
|
28
|
+
|
29
|
+
class << self
|
30
|
+
# @api private
|
31
|
+
#
|
32
|
+
# Assumes superclass fields are totally defined before fields are accessed /
|
33
|
+
# defined on subclasses.
|
34
|
+
sig { params(child: T.self_type).void }
|
35
|
+
def inherited(child)
|
36
|
+
end
|
37
|
+
|
38
|
+
# @api private
|
39
|
+
sig do
|
40
|
+
returns(
|
41
|
+
T::Hash[
|
42
|
+
Symbol,
|
43
|
+
T.all(
|
44
|
+
Turbopuffer::Internal::Type::BaseModel::KnownField,
|
45
|
+
{
|
46
|
+
type_fn:
|
47
|
+
T.proc.returns(
|
48
|
+
Turbopuffer::Internal::Type::Converter::Input
|
49
|
+
)
|
50
|
+
}
|
51
|
+
)
|
52
|
+
]
|
53
|
+
)
|
54
|
+
end
|
55
|
+
def known_fields
|
56
|
+
end
|
57
|
+
|
58
|
+
# @api private
|
59
|
+
sig do
|
60
|
+
returns(
|
61
|
+
T::Hash[
|
62
|
+
Symbol,
|
63
|
+
T.all(
|
64
|
+
Turbopuffer::Internal::Type::BaseModel::KnownField,
|
65
|
+
{ type: Turbopuffer::Internal::Type::Converter::Input }
|
66
|
+
)
|
67
|
+
]
|
68
|
+
)
|
69
|
+
end
|
70
|
+
def fields
|
71
|
+
end
|
72
|
+
|
73
|
+
# @api private
|
74
|
+
sig do
|
75
|
+
params(
|
76
|
+
name_sym: Symbol,
|
77
|
+
required: T::Boolean,
|
78
|
+
type_info:
|
79
|
+
T.any(
|
80
|
+
{
|
81
|
+
const:
|
82
|
+
T.nilable(
|
83
|
+
T.any(NilClass, T::Boolean, Integer, Float, Symbol)
|
84
|
+
),
|
85
|
+
enum:
|
86
|
+
T.nilable(
|
87
|
+
T.proc.returns(
|
88
|
+
Turbopuffer::Internal::Type::Converter::Input
|
89
|
+
)
|
90
|
+
),
|
91
|
+
union:
|
92
|
+
T.nilable(
|
93
|
+
T.proc.returns(
|
94
|
+
Turbopuffer::Internal::Type::Converter::Input
|
95
|
+
)
|
96
|
+
),
|
97
|
+
api_name: Symbol,
|
98
|
+
nil?: T::Boolean
|
99
|
+
},
|
100
|
+
T.proc.returns(Turbopuffer::Internal::Type::Converter::Input),
|
101
|
+
Turbopuffer::Internal::Type::Converter::Input
|
102
|
+
),
|
103
|
+
spec: Turbopuffer::Internal::AnyHash
|
104
|
+
).void
|
105
|
+
end
|
106
|
+
private def add_field(name_sym, required:, type_info:, spec:)
|
107
|
+
end
|
108
|
+
|
109
|
+
# @api private
|
110
|
+
sig do
|
111
|
+
params(
|
112
|
+
name_sym: Symbol,
|
113
|
+
type_info:
|
114
|
+
T.any(
|
115
|
+
Turbopuffer::Internal::AnyHash,
|
116
|
+
T.proc.returns(Turbopuffer::Internal::Type::Converter::Input),
|
117
|
+
Turbopuffer::Internal::Type::Converter::Input
|
118
|
+
),
|
119
|
+
spec: Turbopuffer::Internal::AnyHash
|
120
|
+
).void
|
121
|
+
end
|
122
|
+
def required(name_sym, type_info, spec = {})
|
123
|
+
end
|
124
|
+
|
125
|
+
# @api private
|
126
|
+
sig do
|
127
|
+
params(
|
128
|
+
name_sym: Symbol,
|
129
|
+
type_info:
|
130
|
+
T.any(
|
131
|
+
Turbopuffer::Internal::AnyHash,
|
132
|
+
T.proc.returns(Turbopuffer::Internal::Type::Converter::Input),
|
133
|
+
Turbopuffer::Internal::Type::Converter::Input
|
134
|
+
),
|
135
|
+
spec: Turbopuffer::Internal::AnyHash
|
136
|
+
).void
|
137
|
+
end
|
138
|
+
def optional(name_sym, type_info, spec = {})
|
139
|
+
end
|
140
|
+
|
141
|
+
# @api private
|
142
|
+
#
|
143
|
+
# `request_only` attributes not excluded from `.#coerce` when receiving responses
|
144
|
+
# even if well behaved servers should not send them
|
145
|
+
sig { params(blk: T.proc.void).void }
|
146
|
+
private def request_only(&blk)
|
147
|
+
end
|
148
|
+
|
149
|
+
# @api private
|
150
|
+
#
|
151
|
+
# `response_only` attributes are omitted from `.#dump` when making requests
|
152
|
+
sig { params(blk: T.proc.void).void }
|
153
|
+
private def response_only(&blk)
|
154
|
+
end
|
155
|
+
|
156
|
+
sig { params(other: T.anything).returns(T::Boolean) }
|
157
|
+
def ==(other)
|
158
|
+
end
|
159
|
+
|
160
|
+
sig { returns(Integer) }
|
161
|
+
def hash
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
sig { params(other: T.anything).returns(T::Boolean) }
|
166
|
+
def ==(other)
|
167
|
+
end
|
168
|
+
|
169
|
+
sig { returns(Integer) }
|
170
|
+
def hash
|
171
|
+
end
|
172
|
+
|
173
|
+
class << self
|
174
|
+
# @api private
|
175
|
+
sig do
|
176
|
+
override
|
177
|
+
.params(
|
178
|
+
value:
|
179
|
+
T.any(
|
180
|
+
Turbopuffer::Internal::Type::BaseModel,
|
181
|
+
T::Hash[T.anything, T.anything],
|
182
|
+
T.anything
|
183
|
+
),
|
184
|
+
state: Turbopuffer::Internal::Type::Converter::CoerceState
|
185
|
+
)
|
186
|
+
.returns(T.any(T.attached_class, T.anything))
|
187
|
+
end
|
188
|
+
def coerce(value, state:)
|
189
|
+
end
|
190
|
+
|
191
|
+
# @api private
|
192
|
+
sig do
|
193
|
+
override
|
194
|
+
.params(
|
195
|
+
value: T.any(T.attached_class, T.anything),
|
196
|
+
state: Turbopuffer::Internal::Type::Converter::DumpState
|
197
|
+
)
|
198
|
+
.returns(T.any(T::Hash[T.anything, T.anything], T.anything))
|
199
|
+
end
|
200
|
+
def dump(value, state:)
|
201
|
+
end
|
202
|
+
|
203
|
+
# @api private
|
204
|
+
sig { returns(T.anything) }
|
205
|
+
def to_sorbet_type
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
class << self
|
210
|
+
# @api private
|
211
|
+
sig do
|
212
|
+
params(
|
213
|
+
model: Turbopuffer::Internal::Type::BaseModel,
|
214
|
+
convert: T::Boolean
|
215
|
+
).returns(Turbopuffer::Internal::AnyHash)
|
216
|
+
end
|
217
|
+
def recursively_to_h(model, convert:)
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
# Returns the raw value associated with the given key, if found. Otherwise, nil is
|
222
|
+
# returned.
|
223
|
+
#
|
224
|
+
# It is valid to lookup keys that are not in the API spec, for example to access
|
225
|
+
# undocumented features. This method does not parse response data into
|
226
|
+
# higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
|
227
|
+
sig { params(key: Symbol).returns(T.nilable(T.anything)) }
|
228
|
+
def [](key)
|
229
|
+
end
|
230
|
+
|
231
|
+
# Returns a Hash of the data underlying this object. O(1)
|
232
|
+
#
|
233
|
+
# Keys are Symbols and values are the raw values from the response. The return
|
234
|
+
# value indicates which values were ever set on the object. i.e. there will be a
|
235
|
+
# key in this hash if they ever were, even if the set value was nil.
|
236
|
+
#
|
237
|
+
# This method is not recursive. The returned value is shared by the object, so it
|
238
|
+
# should not be mutated.
|
239
|
+
sig { overridable.returns(Turbopuffer::Internal::AnyHash) }
|
240
|
+
def to_h
|
241
|
+
end
|
242
|
+
|
243
|
+
# Returns a Hash of the data underlying this object. O(1)
|
244
|
+
#
|
245
|
+
# Keys are Symbols and values are the raw values from the response. The return
|
246
|
+
# value indicates which values were ever set on the object. i.e. there will be a
|
247
|
+
# key in this hash if they ever were, even if the set value was nil.
|
248
|
+
#
|
249
|
+
# This method is not recursive. The returned value is shared by the object, so it
|
250
|
+
# should not be mutated.
|
251
|
+
sig { overridable.returns(Turbopuffer::Internal::AnyHash) }
|
252
|
+
def to_hash
|
253
|
+
end
|
254
|
+
|
255
|
+
# In addition to the behaviour of `#to_h`, this method will recursively call
|
256
|
+
# `#to_h` on nested models.
|
257
|
+
sig { overridable.returns(Turbopuffer::Internal::AnyHash) }
|
258
|
+
def deep_to_h
|
259
|
+
end
|
260
|
+
|
261
|
+
sig do
|
262
|
+
params(keys: T.nilable(T::Array[Symbol])).returns(
|
263
|
+
Turbopuffer::Internal::AnyHash
|
264
|
+
)
|
265
|
+
end
|
266
|
+
def deconstruct_keys(keys)
|
267
|
+
end
|
268
|
+
|
269
|
+
sig { params(a: T.anything).returns(String) }
|
270
|
+
def to_json(*a)
|
271
|
+
end
|
272
|
+
|
273
|
+
sig { params(a: T.anything).returns(String) }
|
274
|
+
def to_yaml(*a)
|
275
|
+
end
|
276
|
+
|
277
|
+
# Create a new instance of a model.
|
278
|
+
sig do
|
279
|
+
params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).returns(
|
280
|
+
T.attached_class
|
281
|
+
)
|
282
|
+
end
|
283
|
+
def self.new(data = {})
|
284
|
+
end
|
285
|
+
|
286
|
+
class << self
|
287
|
+
# @api private
|
288
|
+
sig { params(depth: Integer).returns(String) }
|
289
|
+
def inspect(depth: 0)
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
293
|
+
sig { returns(String) }
|
294
|
+
def to_s
|
295
|
+
end
|
296
|
+
|
297
|
+
# @api private
|
298
|
+
sig { returns(String) }
|
299
|
+
def inspect
|
300
|
+
end
|
301
|
+
end
|
302
|
+
end
|
303
|
+
end
|
304
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
module Internal
|
5
|
+
module Type
|
6
|
+
# @api private
|
7
|
+
#
|
8
|
+
# This module provides a base implementation for paginated responses in the SDK.
|
9
|
+
module BasePage
|
10
|
+
Elem = type_member(:out)
|
11
|
+
|
12
|
+
sig { overridable.returns(T::Boolean) }
|
13
|
+
def next_page?
|
14
|
+
end
|
15
|
+
|
16
|
+
sig { overridable.returns(T.self_type) }
|
17
|
+
def next_page
|
18
|
+
end
|
19
|
+
|
20
|
+
sig { overridable.params(blk: T.proc.params(arg0: Elem).void).void }
|
21
|
+
def auto_paging_each(&blk)
|
22
|
+
end
|
23
|
+
|
24
|
+
sig { returns(T::Enumerable[Elem]) }
|
25
|
+
def to_enum
|
26
|
+
end
|
27
|
+
|
28
|
+
# @api private
|
29
|
+
sig do
|
30
|
+
params(
|
31
|
+
client: Turbopuffer::Internal::Transport::BaseClient,
|
32
|
+
req:
|
33
|
+
Turbopuffer::Internal::Transport::BaseClient::RequestComponents,
|
34
|
+
headers: T::Hash[String, String],
|
35
|
+
page_data: T.anything
|
36
|
+
).void
|
37
|
+
end
|
38
|
+
def initialize(client:, req:, headers:, page_data:)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
module Internal
|
5
|
+
module Type
|
6
|
+
# @api private
|
7
|
+
#
|
8
|
+
# Ruby has no Boolean class; this is something for models to refer to.
|
9
|
+
class Boolean
|
10
|
+
extend Turbopuffer::Internal::Type::Converter
|
11
|
+
extend Turbopuffer::Internal::Util::SorbetRuntimeSupport
|
12
|
+
|
13
|
+
abstract!
|
14
|
+
|
15
|
+
sig { params(other: T.anything).returns(T::Boolean) }
|
16
|
+
def self.===(other)
|
17
|
+
end
|
18
|
+
|
19
|
+
sig { params(other: T.anything).returns(T::Boolean) }
|
20
|
+
def self.==(other)
|
21
|
+
end
|
22
|
+
|
23
|
+
class << self
|
24
|
+
# @api private
|
25
|
+
#
|
26
|
+
# Coerce value to Boolean if possible, otherwise return the original value.
|
27
|
+
sig do
|
28
|
+
override
|
29
|
+
.params(
|
30
|
+
value: T.any(T::Boolean, T.anything),
|
31
|
+
state: Turbopuffer::Internal::Type::Converter::CoerceState
|
32
|
+
)
|
33
|
+
.returns(T.any(T::Boolean, T.anything))
|
34
|
+
end
|
35
|
+
def coerce(value, state:)
|
36
|
+
end
|
37
|
+
|
38
|
+
# @api private
|
39
|
+
sig do
|
40
|
+
override
|
41
|
+
.params(
|
42
|
+
value: T.any(T::Boolean, T.anything),
|
43
|
+
state: Turbopuffer::Internal::Type::Converter::DumpState
|
44
|
+
)
|
45
|
+
.returns(T.any(T::Boolean, T.anything))
|
46
|
+
end
|
47
|
+
def dump(value, state:)
|
48
|
+
end
|
49
|
+
|
50
|
+
# @api private
|
51
|
+
sig { returns(T.anything) }
|
52
|
+
def to_sorbet_type
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|