dspy 0.15.3 → 0.15.4

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: 9cc1edc860e1ab653456abf9dbeccd8b5229b17445e666ceecff554b17427094
4
- data.tar.gz: e5e595e5ff48a0f61ee6ecd1f3e537656d4b6c44d2ded5c270a7b8f040c9d6cb
3
+ metadata.gz: e7154d8c22730a4216467c15a71d3adf4e2826e49211dfde7fd20e20344e4d4b
4
+ data.tar.gz: 4e3450f2b5d9e8acf2a5b583a3180bec0608b4c948a9b860bcd8bd387dc0bb7a
5
5
  SHA512:
6
- metadata.gz: 9f4ec0f3c1b3e76e7bf0420c006f4b245f74d62118560de157742a5da9f60f3c2e669c0b3d9465982aa5d6770718e685595d54d451752e23869b83e2447e8c2b
7
- data.tar.gz: 4ba4df139927c765a31ab35235c9522c5d12c7052577501f588f6444c7dd9b3c03185250fad8a95ecd1083928b58142d9f772edde2b2f3fe8018e41c1c2c0320
6
+ metadata.gz: 36f07d86290d95e91ac8842807739d9edd566e3b9694413060181266611ea6fa1de941a509feb4518dfd3cf97f922689f8f15df7f6d3182cae0bef1b94b785cb
7
+ data.tar.gz: ad2a480af294da127d6fc6b54c56f66e9c59829e86c4dab70c6427d5b9dc6a7a9e26381f35448e9a8b514326169784ba160a92ba488fc06a9e47fcdacd2a2814
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ 54 # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require 'sorbet-runtime'
@@ -168,8 +168,22 @@ module DSPy
168
168
  symbolized_hash = value.transform_keys(&:to_sym)
169
169
  symbolized_hash.delete(:_type)
170
170
 
171
- # Create the struct instance
172
- return type.raw_type.new(**symbolized_hash)
171
+ # Coerce struct field values based on their types
172
+ struct_class = type.raw_type
173
+ struct_props = struct_class.props
174
+
175
+ coerced_hash = {}
176
+ symbolized_hash.each do |key, val|
177
+ if struct_props[key]
178
+ prop_type = struct_props[key][:type_object] || struct_props[key][:type]
179
+ coerced_hash[key] = coerce_value_to_type(val, prop_type)
180
+ else
181
+ coerced_hash[key] = val
182
+ end
183
+ end
184
+
185
+ # Create the struct instance with coerced values
186
+ return struct_class.new(**coerced_hash)
173
187
  end
174
188
  end
175
189
  end
@@ -183,4 +197,4 @@ module DSPy
183
197
  end
184
198
  end
185
199
  end
186
- end
200
+ end
data/lib/dspy/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DSPy
4
- VERSION = "0.15.3"
4
+ VERSION = "0.15.4"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dspy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.3
4
+ version: 0.15.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vicente Reig Rincón de Arellano