turbopuffer-ruby 0.2.0.pre.alpha.1
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 +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +60 -0
- data/README.md +291 -0
- data/SECURITY.md +27 -0
- data/lib/turbopuffer/client.rb +130 -0
- data/lib/turbopuffer/errors.rb +214 -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 +563 -0
- data/lib/turbopuffer/internal/transport/pooled_net_requester.rb +209 -0
- data/lib/turbopuffer/internal/type/array_of.rb +167 -0
- data/lib/turbopuffer/internal/type/base_model.rb +534 -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 +300 -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 +187 -0
- data/lib/turbopuffer/internal/type/request_parameters.rb +42 -0
- data/lib/turbopuffer/internal/type/union.rb +252 -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/attribute_schema.rb +19 -0
- data/lib/turbopuffer/models/attribute_schema_config.rb +48 -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 +72 -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_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 +35 -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 +51 -0
- data/lib/turbopuffer/models/namespace_query_params.rb +119 -0
- data/lib/turbopuffer/models/namespace_query_response.rb +41 -0
- data/lib/turbopuffer/models/namespace_recall_params.rb +57 -0
- data/lib/turbopuffer/models/namespace_recall_response.rb +39 -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 +63 -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 +38 -0
- data/lib/turbopuffer/models/tokenizer.rb +17 -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 +101 -0
- data/lib/turbopuffer/namespace.rb +22 -0
- data/lib/turbopuffer/request_options.rb +77 -0
- data/lib/turbopuffer/resources/namespaces.rb +311 -0
- data/lib/turbopuffer/version.rb +5 -0
- data/lib/turbopuffer.rb +94 -0
- data/manifest.yaml +15 -0
- data/rbi/turbopuffer/client.rbi +91 -0
- data/rbi/turbopuffer/errors.rbi +178 -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 +298 -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 +162 -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 +121 -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/attribute_schema.rbi +17 -0
- data/rbi/turbopuffer/models/attribute_schema_config.rbi +92 -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 +116 -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_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 +54 -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 +111 -0
- data/rbi/turbopuffer/models/namespace_query_params.rbi +241 -0
- data/rbi/turbopuffer/models/namespace_query_response.rbi +73 -0
- data/rbi/turbopuffer/models/namespace_recall_params.rbi +93 -0
- data/rbi/turbopuffer/models/namespace_recall_response.rbi +59 -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 +106 -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 +22 -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 +64 -0
- data/rbi/turbopuffer/namespace.rbi +8 -0
- data/rbi/turbopuffer/request_options.rbi +59 -0
- data/rbi/turbopuffer/resources/namespaces.rbi +243 -0
- data/rbi/turbopuffer/version.rbi +5 -0
- data/sig/turbopuffer/client.rbs +41 -0
- data/sig/turbopuffer/errors.rbs +110 -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 +62 -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/attribute_schema.rbs +11 -0
- data/sig/turbopuffer/models/attribute_schema_config.rbs +45 -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 +68 -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_hint_cache_warm_params.rbs +25 -0
- data/sig/turbopuffer/models/namespace_hint_cache_warm_response.rbs +17 -0
- data/sig/turbopuffer/models/namespace_metadata.rbs +30 -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 +53 -0
- data/sig/turbopuffer/models/namespace_query_params.rbs +125 -0
- data/sig/turbopuffer/models/namespace_query_response.rbs +39 -0
- data/sig/turbopuffer/models/namespace_recall_params.rbs +56 -0
- data/sig/turbopuffer/models/namespace_recall_response.rbs +26 -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 +61 -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 +15 -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 +61 -0
- data/sig/turbopuffer/namespace.rbs +5 -0
- data/sig/turbopuffer/request_options.rbs +36 -0
- data/sig/turbopuffer/resources/namespaces.rbs +81 -0
- data/sig/turbopuffer/version.rbs +3 -0
- metadata +251 -0
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
module Models
|
5
|
+
class QueryPerformance < Turbopuffer::Internal::Type::BaseModel
|
6
|
+
# @!attribute approx_namespace_size
|
7
|
+
# the approximate number of documents in the namespace.
|
8
|
+
#
|
9
|
+
# @return [Integer]
|
10
|
+
required :approx_namespace_size, Integer
|
11
|
+
|
12
|
+
# @!attribute cache_hit_ratio
|
13
|
+
# The ratio of cache hits to total cache lookups.
|
14
|
+
#
|
15
|
+
# @return [Float]
|
16
|
+
required :cache_hit_ratio, Float
|
17
|
+
|
18
|
+
# @!attribute cache_temperature
|
19
|
+
# A qualitative description of the cache hit ratio (`hot`, `warm`, or `cold`).
|
20
|
+
#
|
21
|
+
# @return [String]
|
22
|
+
required :cache_temperature, String
|
23
|
+
|
24
|
+
# @!attribute exhaustive_search_count
|
25
|
+
# The number of unindexed documents processed by the query.
|
26
|
+
#
|
27
|
+
# @return [Integer]
|
28
|
+
required :exhaustive_search_count, Integer
|
29
|
+
|
30
|
+
# @!attribute query_execution_ms
|
31
|
+
# Request time measured on the server, excluding time spent waiting due to the
|
32
|
+
# namespace concurrency limit.
|
33
|
+
#
|
34
|
+
# @return [Integer]
|
35
|
+
required :query_execution_ms, Integer
|
36
|
+
|
37
|
+
# @!attribute server_total_ms
|
38
|
+
# Request time measured on the server, including time spent waiting for other
|
39
|
+
# queries to complete if the namespace was at its concurrency limit.
|
40
|
+
#
|
41
|
+
# @return [Integer]
|
42
|
+
required :server_total_ms, Integer
|
43
|
+
|
44
|
+
# @!method initialize(approx_namespace_size:, cache_hit_ratio:, cache_temperature:, exhaustive_search_count:, query_execution_ms:, server_total_ms:)
|
45
|
+
# Some parameter documentations has been truncated, see
|
46
|
+
# {Turbopuffer::Models::QueryPerformance} for more details.
|
47
|
+
#
|
48
|
+
# The performance information for a query.
|
49
|
+
#
|
50
|
+
# @param approx_namespace_size [Integer] the approximate number of documents in the namespace.
|
51
|
+
#
|
52
|
+
# @param cache_hit_ratio [Float] The ratio of cache hits to total cache lookups.
|
53
|
+
#
|
54
|
+
# @param cache_temperature [String] A qualitative description of the cache hit ratio (`hot`, `warm`, or `cold`).
|
55
|
+
#
|
56
|
+
# @param exhaustive_search_count [Integer] The number of unindexed documents processed by the query.
|
57
|
+
#
|
58
|
+
# @param query_execution_ms [Integer] Request time measured on the server, excluding time spent waiting due to the nam
|
59
|
+
#
|
60
|
+
# @param server_total_ms [Integer] Request time measured on the server, including time spent waiting for other quer
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
module Models
|
5
|
+
class Row < Turbopuffer::Internal::Type::BaseModel
|
6
|
+
# @!attribute id
|
7
|
+
# An identifier for a document.
|
8
|
+
#
|
9
|
+
# @return [String, Integer]
|
10
|
+
required :id, union: -> { Turbopuffer::ID }
|
11
|
+
|
12
|
+
# @!attribute vector
|
13
|
+
# A vector embedding associated with a document.
|
14
|
+
#
|
15
|
+
# @return [Array<Float>, String, nil]
|
16
|
+
optional :vector, union: -> { Turbopuffer::Vector }
|
17
|
+
|
18
|
+
# @!method initialize(id:, vector: nil)
|
19
|
+
# A single document, in a row-based format.
|
20
|
+
#
|
21
|
+
# @param id [String, Integer] An identifier for a document.
|
22
|
+
#
|
23
|
+
# @param vector [Array<Float>, String] A vector embedding associated with a document.
|
24
|
+
|
25
|
+
def method_missing(name, *args, &block)
|
26
|
+
if @data.key?(name)
|
27
|
+
@data[name]
|
28
|
+
else
|
29
|
+
super
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def respond_to_missing?(name, include_private = false)
|
34
|
+
@data.key?(name) || super
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
module Models
|
5
|
+
# The tokenizer to use for full-text search on an attribute.
|
6
|
+
module Tokenizer
|
7
|
+
extend Turbopuffer::Internal::Type::Enum
|
8
|
+
|
9
|
+
PRE_TOKENIZED_ARRAY = :pre_tokenized_array
|
10
|
+
WORD_V0 = :word_v0
|
11
|
+
WORD_V1 = :word_v1
|
12
|
+
|
13
|
+
# @!method self.values
|
14
|
+
# @return [Array<Symbol>]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
module Models
|
5
|
+
# A vector embedding associated with a document.
|
6
|
+
module Vector
|
7
|
+
extend Turbopuffer::Internal::Type::Union
|
8
|
+
|
9
|
+
# A dense vector encoded as an array of floats.
|
10
|
+
variant -> { Turbopuffer::Models::Vector::FloatArray }
|
11
|
+
|
12
|
+
# A dense vector encoded as a base64 string.
|
13
|
+
variant String
|
14
|
+
|
15
|
+
# @!method self.variants
|
16
|
+
# @return [Array(Array<Float>, String)]
|
17
|
+
|
18
|
+
# @type [Turbopuffer::Internal::Type::Converter]
|
19
|
+
FloatArray = Turbopuffer::Internal::Type::ArrayOf[Float]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
module Models
|
5
|
+
# The encoding to use for vectors in the response.
|
6
|
+
module VectorEncoding
|
7
|
+
extend Turbopuffer::Internal::Type::Enum
|
8
|
+
|
9
|
+
FLOAT = :float
|
10
|
+
BASE64 = :base64
|
11
|
+
|
12
|
+
# @!method self.values
|
13
|
+
# @return [Array<Symbol>]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
module Models
|
5
|
+
class WriteBilling < Turbopuffer::Internal::Type::BaseModel
|
6
|
+
# @!attribute billable_logical_bytes_written
|
7
|
+
# The number of billable logical bytes written to the namespace.
|
8
|
+
#
|
9
|
+
# @return [Integer]
|
10
|
+
required :billable_logical_bytes_written, Integer
|
11
|
+
|
12
|
+
# @!attribute query
|
13
|
+
# The billing information for a query.
|
14
|
+
#
|
15
|
+
# @return [Turbopuffer::Models::QueryBilling, nil]
|
16
|
+
optional :query, -> { Turbopuffer::QueryBilling }
|
17
|
+
|
18
|
+
# @!method initialize(billable_logical_bytes_written:, query: nil)
|
19
|
+
# The billing information for a write request.
|
20
|
+
#
|
21
|
+
# @param billable_logical_bytes_written [Integer] The number of billable logical bytes written to the namespace.
|
22
|
+
#
|
23
|
+
# @param query [Turbopuffer::Models::QueryBilling] The billing information for a query.
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
[Turbopuffer::Internal::Type::BaseModel, *Turbopuffer::Internal::Type::BaseModel.subclasses].each do |cls|
|
5
|
+
cls.define_sorbet_constant!(:OrHash) { T.type_alias { T.any(cls, Turbopuffer::Internal::AnyHash) } }
|
6
|
+
end
|
7
|
+
|
8
|
+
Turbopuffer::Internal::Util.walk_namespaces(Turbopuffer::Models).each do |mod|
|
9
|
+
case mod
|
10
|
+
in Turbopuffer::Internal::Type::Enum | Turbopuffer::Internal::Type::Union
|
11
|
+
mod.constants.each do |name|
|
12
|
+
case mod.const_get(name)
|
13
|
+
in true | false
|
14
|
+
mod.define_sorbet_constant!(:TaggedBoolean) { T.type_alias { T::Boolean } }
|
15
|
+
mod.define_sorbet_constant!(:OrBoolean) { T.type_alias { T::Boolean } }
|
16
|
+
in Integer
|
17
|
+
mod.define_sorbet_constant!(:TaggedInteger) { T.type_alias { Integer } }
|
18
|
+
mod.define_sorbet_constant!(:OrInteger) { T.type_alias { Integer } }
|
19
|
+
in Float
|
20
|
+
mod.define_sorbet_constant!(:TaggedFloat) { T.type_alias { Float } }
|
21
|
+
mod.define_sorbet_constant!(:OrFloat) { T.type_alias { Float } }
|
22
|
+
in Symbol
|
23
|
+
mod.define_sorbet_constant!(:TaggedSymbol) { T.type_alias { Symbol } }
|
24
|
+
mod.define_sorbet_constant!(:OrSymbol) { T.type_alias { T.any(Symbol, String) } }
|
25
|
+
else
|
26
|
+
end
|
27
|
+
end
|
28
|
+
else
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
Turbopuffer::Internal::Util.walk_namespaces(Turbopuffer::Models)
|
33
|
+
.lazy
|
34
|
+
.grep(Turbopuffer::Internal::Type::Union)
|
35
|
+
.each do |mod|
|
36
|
+
const = :Variants
|
37
|
+
next if mod.sorbet_constant_defined?(const)
|
38
|
+
|
39
|
+
mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } }
|
40
|
+
end
|
41
|
+
|
42
|
+
AttributeSchema = Turbopuffer::Models::AttributeSchema
|
43
|
+
|
44
|
+
AttributeSchemaConfig = Turbopuffer::Models::AttributeSchemaConfig
|
45
|
+
|
46
|
+
AttributeType = Turbopuffer::Models::AttributeType
|
47
|
+
|
48
|
+
ClientNamespacesParams = Turbopuffer::Models::ClientNamespacesParams
|
49
|
+
|
50
|
+
Columns = Turbopuffer::Models::Columns
|
51
|
+
|
52
|
+
DistanceMetric = Turbopuffer::Models::DistanceMetric
|
53
|
+
|
54
|
+
FullTextSearch = Turbopuffer::Models::FullTextSearch
|
55
|
+
|
56
|
+
FullTextSearchConfig = Turbopuffer::Models::FullTextSearchConfig
|
57
|
+
|
58
|
+
ID = Turbopuffer::Models::ID
|
59
|
+
|
60
|
+
IncludeAttributes = Turbopuffer::Models::IncludeAttributes
|
61
|
+
|
62
|
+
Language = Turbopuffer::Models::Language
|
63
|
+
|
64
|
+
NamespaceDeleteAllParams = Turbopuffer::Models::NamespaceDeleteAllParams
|
65
|
+
|
66
|
+
NamespaceHintCacheWarmParams = Turbopuffer::Models::NamespaceHintCacheWarmParams
|
67
|
+
|
68
|
+
NamespaceMetadata = Turbopuffer::Models::NamespaceMetadata
|
69
|
+
|
70
|
+
NamespaceMetadataParams = Turbopuffer::Models::NamespaceMetadataParams
|
71
|
+
|
72
|
+
NamespaceMultiQueryParams = Turbopuffer::Models::NamespaceMultiQueryParams
|
73
|
+
|
74
|
+
NamespaceQueryParams = Turbopuffer::Models::NamespaceQueryParams
|
75
|
+
|
76
|
+
NamespaceRecallParams = Turbopuffer::Models::NamespaceRecallParams
|
77
|
+
|
78
|
+
NamespaceSchemaParams = Turbopuffer::Models::NamespaceSchemaParams
|
79
|
+
|
80
|
+
NamespaceSummary = Turbopuffer::Models::NamespaceSummary
|
81
|
+
|
82
|
+
NamespaceUpdateSchemaParams = Turbopuffer::Models::NamespaceUpdateSchemaParams
|
83
|
+
|
84
|
+
NamespaceWriteParams = Turbopuffer::Models::NamespaceWriteParams
|
85
|
+
|
86
|
+
Query = Turbopuffer::Models::Query
|
87
|
+
|
88
|
+
QueryBilling = Turbopuffer::Models::QueryBilling
|
89
|
+
|
90
|
+
QueryPerformance = Turbopuffer::Models::QueryPerformance
|
91
|
+
|
92
|
+
Row = Turbopuffer::Models::Row
|
93
|
+
|
94
|
+
Tokenizer = Turbopuffer::Models::Tokenizer
|
95
|
+
|
96
|
+
Vector = Turbopuffer::Models::Vector
|
97
|
+
|
98
|
+
VectorEncoding = Turbopuffer::Models::VectorEncoding
|
99
|
+
|
100
|
+
WriteBilling = Turbopuffer::Models::WriteBilling
|
101
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
class Namespace < Turbopuffer::Resources::Namespaces
|
5
|
+
# Returns the namespace ID.
|
6
|
+
#
|
7
|
+
# @return [String]
|
8
|
+
def id
|
9
|
+
@client.default_namespace
|
10
|
+
end
|
11
|
+
|
12
|
+
# @api private
|
13
|
+
#
|
14
|
+
# @param client [Turbopuffer::Client]
|
15
|
+
# @param namespace [String]
|
16
|
+
def initialize(client, namespace)
|
17
|
+
client = client.dup
|
18
|
+
client.instance_variable_set(:@default_namespace, namespace)
|
19
|
+
super(client: client)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Turbopuffer
|
4
|
+
# Specify HTTP behaviour to use for a specific request. These options supplement
|
5
|
+
# or override those provided at the client level.
|
6
|
+
#
|
7
|
+
# When making a request, you can pass an actual {RequestOptions} instance, or
|
8
|
+
# simply pass a Hash with symbol keys matching the attributes on this class.
|
9
|
+
class RequestOptions < Turbopuffer::Internal::Type::BaseModel
|
10
|
+
# @api private
|
11
|
+
#
|
12
|
+
# @param opts [Turbopuffer::RequestOptions, Hash{Symbol=>Object}]
|
13
|
+
#
|
14
|
+
# @raise [ArgumentError]
|
15
|
+
def self.validate!(opts)
|
16
|
+
case opts
|
17
|
+
in Turbopuffer::RequestOptions | Hash
|
18
|
+
opts.to_h.each_key do |k|
|
19
|
+
unless fields.include?(k)
|
20
|
+
raise ArgumentError.new("Request `opts` keys must be one of #{fields.keys}, got #{k.inspect}")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
else
|
24
|
+
raise ArgumentError.new("Request `opts` must be a Hash or RequestOptions, got #{opts.inspect}")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# @!attribute idempotency_key
|
29
|
+
# Idempotency key to send with request and all associated retries. Will only be
|
30
|
+
# sent for write requests.
|
31
|
+
#
|
32
|
+
# @return [String, nil]
|
33
|
+
optional :idempotency_key, String
|
34
|
+
|
35
|
+
# @!attribute extra_query
|
36
|
+
# Extra query params to send with the request. These are `.merge`’d into any
|
37
|
+
# `query` given at the client level.
|
38
|
+
#
|
39
|
+
# @return [Hash{String=>Array<String>, String, nil}, nil]
|
40
|
+
optional :extra_query, Turbopuffer::Internal::Type::HashOf[Turbopuffer::Internal::Type::ArrayOf[String]]
|
41
|
+
|
42
|
+
# @!attribute extra_headers
|
43
|
+
# Extra headers to send with the request. These are `.merged`’d into any
|
44
|
+
# `extra_headers` given at the client level.
|
45
|
+
#
|
46
|
+
# @return [Hash{String=>String, nil}, nil]
|
47
|
+
optional :extra_headers, Turbopuffer::Internal::Type::HashOf[String, nil?: true]
|
48
|
+
|
49
|
+
# @!attribute extra_body
|
50
|
+
# Extra data to send with the request. These are deep merged into any data
|
51
|
+
# generated as part of the normal request.
|
52
|
+
#
|
53
|
+
# @return [Object, nil]
|
54
|
+
optional :extra_body, Turbopuffer::Internal::Type::HashOf[Turbopuffer::Internal::Type::Unknown]
|
55
|
+
|
56
|
+
# @!attribute max_retries
|
57
|
+
# Maximum number of retries to attempt after a failed initial request.
|
58
|
+
#
|
59
|
+
# @return [Integer, nil]
|
60
|
+
optional :max_retries, Integer
|
61
|
+
|
62
|
+
# @!attribute timeout
|
63
|
+
# Request timeout in seconds.
|
64
|
+
#
|
65
|
+
# @return [Float, nil]
|
66
|
+
optional :timeout, Float
|
67
|
+
|
68
|
+
# @!method initialize(values = {})
|
69
|
+
# Returns a new instance of RequestOptions.
|
70
|
+
#
|
71
|
+
# @param values [Hash{Symbol=>Object}]
|
72
|
+
|
73
|
+
define_sorbet_constant!(:OrHash) do
|
74
|
+
T.type_alias { T.any(Turbopuffer::RequestOptions, Turbopuffer::Internal::AnyHash) }
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|