openai 0.17.0 → 0.17.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6413e169f6a035774a4322aa42bbce1b9374344c1f68c5d452be6b0dffcd9756
4
- data.tar.gz: 1ef928f4030023fd8a2076b08c3077f8ee7b9d95eef046eebbfc72004d46d327
3
+ metadata.gz: f9090d21fb7dcdd5e12c607bbe02aa7c1e7336e02148fec0465b21cc43bb9d45
4
+ data.tar.gz: 61662c62cde77fefb5bec16ce51127efd60b4f71542d2bcf2c48f0225ecb29f9
5
5
  SHA512:
6
- metadata.gz: cf5a3da338b678f1680b605d0cd5a383ca95d601706422e5bedd5131e7ee7d91f01941b7f913368cec2e007fc684309e64e449e52e724a3c7a764c993c3d9e53
7
- data.tar.gz: ebb89edd3814ee447bcfababcb05662d26e7380fb024c943cb5fa30196fcc6c49aea64c820de4fe8256f2acdf20562544e41a410084d1e34c774cf179329dc47
6
+ metadata.gz: '08c00969160cc09128778848c99704501b192ca61ed7a845f5d9ead7a59eedd7762b5c0e3e941b4b016b2baa935200d59e8d480a55b82dbd5ebeeb58d94660a4'
7
+ data.tar.gz: 3386e4858cfe7ce20c46b10ac51f2cfa403f963bf0ef33e1eedb70f8eeb14076f539729700f442f65b6535bea30b8a9638e8c43bc79e6a7af56a8efaaf26f907
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.17.1 (2025-08-09)
4
+
5
+ Full Changelog: [v0.17.0...v0.17.1](https://github.com/openai/openai-ruby/compare/v0.17.0...v0.17.1)
6
+
7
+ ### Chores
8
+
9
+ * collect metadata from type DSL ([d63cb9e](https://github.com/openai/openai-ruby/commit/d63cb9eb8efc60d43bd17c96bb6dc1e3b4254b26))
10
+ * **internal:** update comment in script ([a08be47](https://github.com/openai/openai-ruby/commit/a08be4787dfc910a7c9cc06bc72f9c40b40250a4))
11
+
3
12
  ## 0.17.0 (2025-08-08)
4
13
 
5
14
  Full Changelog: [v0.16.0...v0.17.0](https://github.com/openai/openai-ruby/compare/v0.16.0...v0.17.0)
data/README.md CHANGED
@@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "openai", "~> 0.17.0"
18
+ gem "openai", "~> 0.17.1"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -148,6 +148,7 @@ module OpenAI
148
148
  # @option spec [Boolean] :"nil?"
149
149
  def initialize(type_info, spec = {})
150
150
  @item_type_fn = OpenAI::Internal::Type::Converter.type_info(type_info || spec)
151
+ @meta = OpenAI::Internal::Type::Converter.meta_info(type_info, spec)
151
152
  @nilable = spec.fetch(:nil?, false)
152
153
  end
153
154
 
@@ -52,6 +52,7 @@ module OpenAI
52
52
  #
53
53
  # @option spec [Boolean] :"nil?"
54
54
  private def add_field(name_sym, required:, type_info:, spec:)
55
+ meta = OpenAI::Internal::Type::Converter.meta_info(type_info, spec)
55
56
  type_fn, info =
56
57
  case type_info
57
58
  in Proc | OpenAI::Internal::Type::Converter | Class
@@ -74,7 +75,8 @@ module OpenAI
74
75
  required: required,
75
76
  nilable: nilable,
76
77
  const: const,
77
- type_fn: type_fn
78
+ type_fn: type_fn,
79
+ meta: meta
78
80
  }
79
81
 
80
82
  define_method(setter) do |value|
@@ -98,6 +98,33 @@ module OpenAI
98
98
  end
99
99
  end
100
100
 
101
+ # @api private
102
+ #
103
+ # @param type_info [Hash{Symbol=>Object}, Proc, OpenAI::Internal::Type::Converter, Class] .
104
+ #
105
+ # @option type_info [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
106
+ #
107
+ # @option type_info [Proc] :enum
108
+ #
109
+ # @option type_info [Proc] :union
110
+ #
111
+ # @option type_info [Boolean] :"nil?"
112
+ #
113
+ # @param spec [Hash{Symbol=>Object}, Proc, OpenAI::Internal::Type::Converter, Class] .
114
+ #
115
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
116
+ #
117
+ # @option spec [Proc] :enum
118
+ #
119
+ # @option spec [Proc] :union
120
+ #
121
+ # @option spec [Boolean] :"nil?"
122
+ #
123
+ # @return [Hash{Symbol=>Object}]
124
+ def meta_info(type_info, spec)
125
+ [spec, type_info].grep(Hash).first.to_h.except(:const, :enum, :union, :nil?)
126
+ end
127
+
101
128
  # @api private
102
129
  #
103
130
  # @param translate_names [Boolean]
@@ -168,6 +168,7 @@ module OpenAI
168
168
  # @option spec [Boolean] :"nil?"
169
169
  def initialize(type_info, spec = {})
170
170
  @item_type_fn = OpenAI::Internal::Type::Converter.type_info(type_info || spec)
171
+ @meta = OpenAI::Internal::Type::Converter.meta_info(type_info, spec)
171
172
  @nilable = spec.fetch(:nil?, false)
172
173
  end
173
174
 
@@ -33,20 +33,20 @@ module OpenAI
33
33
  #
34
34
  # All of the specified variant info for this union.
35
35
  #
36
- # @return [Array<Array(Symbol, Proc)>]
36
+ # @return [Array<Array(Symbol, Proc, Hash{Symbol=>Object})>]
37
37
  private def known_variants = (@known_variants ||= [])
38
38
 
39
39
  # @api private
40
40
  #
41
- # @return [Array<Array(Symbol, Object)>]
41
+ # @return [Array<Array(Symbol, Object, Hash{Symbol=>Object})>]
42
42
  protected def derefed_variants
43
- known_variants.map { |key, variant_fn| [key, variant_fn.call] }
43
+ known_variants.map { |key, variant_fn, meta| [key, variant_fn.call, meta] }
44
44
  end
45
45
 
46
46
  # All of the specified variants for this union.
47
47
  #
48
48
  # @return [Array<Object>]
49
- def variants = derefed_variants.map(&:last)
49
+ def variants = derefed_variants.map { _2 }
50
50
 
51
51
  # @api private
52
52
  #
@@ -72,12 +72,13 @@ module OpenAI
72
72
  #
73
73
  # @option spec [Boolean] :"nil?"
74
74
  private def variant(key, spec = nil)
75
+ meta = OpenAI::Internal::Type::Converter.meta_info(nil, spec)
75
76
  variant_info =
76
77
  case key
77
78
  in Symbol
78
- [key, OpenAI::Internal::Type::Converter.type_info(spec)]
79
+ [key, OpenAI::Internal::Type::Converter.type_info(spec), meta]
79
80
  in Proc | OpenAI::Internal::Type::Converter | Class | Hash
80
- [nil, OpenAI::Internal::Type::Converter.type_info(key)]
81
+ [nil, OpenAI::Internal::Type::Converter.type_info(key), meta]
81
82
  end
82
83
 
83
84
  known_variants << variant_info
@@ -100,7 +101,8 @@ module OpenAI
100
101
  return nil if key == OpenAI::Internal::OMIT
101
102
 
102
103
  key = key.to_sym if key.is_a?(String)
103
- known_variants.find { |k,| k == key }&.last&.call
104
+ _, found = known_variants.find { |k,| k == key }
105
+ found&.call
104
106
  else
105
107
  nil
106
108
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenAI
4
- VERSION = "0.17.0"
4
+ VERSION = "0.17.1"
5
5
  end
@@ -86,6 +86,52 @@ module OpenAI
86
86
  def self.type_info(spec)
87
87
  end
88
88
 
89
+ # @api private
90
+ sig do
91
+ params(
92
+ type_info:
93
+ T.any(
94
+ {
95
+ const:
96
+ T.nilable(
97
+ T.any(NilClass, T::Boolean, Integer, Float, Symbol)
98
+ ),
99
+ enum:
100
+ T.nilable(
101
+ T.proc.returns(OpenAI::Internal::Type::Converter::Input)
102
+ ),
103
+ union:
104
+ T.nilable(
105
+ T.proc.returns(OpenAI::Internal::Type::Converter::Input)
106
+ )
107
+ },
108
+ T.proc.returns(OpenAI::Internal::Type::Converter::Input),
109
+ OpenAI::Internal::Type::Converter::Input
110
+ ),
111
+ spec:
112
+ T.any(
113
+ {
114
+ const:
115
+ T.nilable(
116
+ T.any(NilClass, T::Boolean, Integer, Float, Symbol)
117
+ ),
118
+ enum:
119
+ T.nilable(
120
+ T.proc.returns(OpenAI::Internal::Type::Converter::Input)
121
+ ),
122
+ union:
123
+ T.nilable(
124
+ T.proc.returns(OpenAI::Internal::Type::Converter::Input)
125
+ )
126
+ },
127
+ T.proc.returns(OpenAI::Internal::Type::Converter::Input),
128
+ OpenAI::Internal::Type::Converter::Input
129
+ )
130
+ ).returns(OpenAI::Internal::AnyHash)
131
+ end
132
+ def self.meta_info(type_info, spec)
133
+ end
134
+
89
135
  # @api private
90
136
  sig do
91
137
  params(translate_names: T::Boolean).returns(
@@ -16,7 +16,8 @@ module OpenAI
16
16
  T::Array[
17
17
  [
18
18
  T.nilable(Symbol),
19
- T.proc.returns(OpenAI::Internal::Type::Converter::Input)
19
+ T.proc.returns(OpenAI::Internal::Type::Converter::Input),
20
+ OpenAI::Internal::AnyHash
20
21
  ]
21
22
  ]
22
23
  )
@@ -25,7 +26,11 @@ module OpenAI
25
26
  end
26
27
 
27
28
  # @api private
28
- sig { returns(T::Array[[T.nilable(Symbol), T.anything]]) }
29
+ sig do
30
+ returns(
31
+ T::Array[[T.nilable(Symbol), T.anything, OpenAI::Internal::AnyHash]]
32
+ )
33
+ end
29
34
  protected def derefed_variants
30
35
  end
31
36
 
@@ -39,6 +39,23 @@ module OpenAI
39
39
  | OpenAI::Internal::Type::Converter::input spec
40
40
  ) -> (^-> top)
41
41
 
42
+ def self.meta_info: (
43
+ {
44
+ const: (nil | bool | Integer | Float | Symbol)?,
45
+ enum: ^-> OpenAI::Internal::Type::Converter::input?,
46
+ union: ^-> OpenAI::Internal::Type::Converter::input?
47
+ }
48
+ | ^-> OpenAI::Internal::Type::Converter::input
49
+ | OpenAI::Internal::Type::Converter::input type_info,
50
+ {
51
+ const: (nil | bool | Integer | Float | Symbol)?,
52
+ enum: ^-> OpenAI::Internal::Type::Converter::input?,
53
+ union: ^-> OpenAI::Internal::Type::Converter::input?
54
+ }
55
+ | ^-> OpenAI::Internal::Type::Converter::input
56
+ | OpenAI::Internal::Type::Converter::input spec
57
+ ) -> ::Hash[Symbol, top]
58
+
42
59
  def self.new_coerce_state: (
43
60
  ?translate_names: bool
44
61
  ) -> OpenAI::Internal::Type::Converter::coerce_state
@@ -5,9 +5,9 @@ module OpenAI
5
5
  include OpenAI::Internal::Type::Converter
6
6
  include OpenAI::Internal::Util::SorbetRuntimeSupport
7
7
 
8
- private def self.known_variants: -> ::Array[[Symbol?, (^-> OpenAI::Internal::Type::Converter::input)]]
8
+ private def self.known_variants: -> ::Array[[Symbol?, (^-> OpenAI::Internal::Type::Converter::input), ::Hash[Symbol, top]]]
9
9
 
10
- def self.derefed_variants: -> ::Array[[Symbol?, top]]
10
+ def self.derefed_variants: -> ::Array[[Symbol?, top, ::Hash[Symbol, top]]]
11
11
 
12
12
  def self.variants: -> ::Array[top]
13
13
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.17.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-08 00:00:00.000000000 Z
11
+ date: 2025-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: connection_pool