Skip to content

Commit d09f71f

Browse files
add client.tsp fixes
1 parent 915d429 commit d09f71f

18 files changed

+7694
-6111
lines changed

specification/client/graders.client.tsp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,8 @@ using Azure.ClientGenerator.Core;
66

77
@@convenientAPI(Graders.runGrader, false);
88
@@convenientAPI(Graders.validateGrader, false);
9+
10+
@@usage(RunGraderRequest, Usage.json);
11+
@@usage(RunGraderResponse, Usage.output);
12+
@@usage(ValidateGraderRequest, Usage.json);
13+
@@usage(ValidateGraderResponse, Usage.output);

src/Custom/Images/GeneratedImageCollection.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ namespace OpenAI.Images;
1212
/// </summary>
1313
[CodeGenType("ImagesResponse")]
1414
[CodeGenSuppress(nameof(GeneratedImageCollection), typeof(DateTimeOffset))]
15-
[CodeGenSuppress(nameof(GeneratedImageCollection), typeof(DateTimeOffset), typeof(IList<GeneratedImage>), typeof(ImageTokenUsage), typeof(IDictionary<string, BinaryData>))]
1615
[CodeGenVisibility(nameof(Data), CodeGenVisibility.Internal)]
1716
public partial class GeneratedImageCollection : ReadOnlyCollection<GeneratedImage>
1817
{
@@ -22,7 +21,7 @@ public partial class GeneratedImageCollection : ReadOnlyCollection<GeneratedImag
2221
/// <param name="usage"></param>
2322
/// <param name="createdAt"></param>
2423
/// <param name="additionalBinaryDataProperties"> Keeps track of any properties unknown to the library. </param>
25-
internal GeneratedImageCollection(IList<GeneratedImage> data, ImageTokenUsage usage, DateTimeOffset createdAt, IDictionary<string, BinaryData> additionalBinaryDataProperties)
24+
internal GeneratedImageCollection(DateTimeOffset createdAt, IList<GeneratedImage> data, ImageTokenUsage usage, IDictionary<string, BinaryData> additionalBinaryDataProperties)
2625
: base([.. data])
2726
{
2827
Usage = usage;

src/Custom/Images/OpenAIImagesModelFactory.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ public static GeneratedImageCollection GeneratedImageCollection(DateTimeOffset c
3434
items ??= new List<GeneratedImage>();
3535

3636
return new GeneratedImageCollection(
37-
items.ToList(),
38-
usage,
39-
createdAt,
37+
data: items.ToList(),
38+
usage: usage,
39+
createdAt: createdAt,
4040
additionalBinaryDataProperties: null);
4141
}
4242
}
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
// <auto-generated/>
2+
3+
#nullable disable
4+
5+
using System;
6+
using System.ClientModel.Primitives;
7+
using System.Collections.Generic;
8+
using System.Text.Json;
9+
using OpenAI;
10+
11+
namespace OpenAI.Graders
12+
{
13+
public partial class RunGraderRequest : IJsonModel<RunGraderRequest>
14+
{
15+
internal RunGraderRequest()
16+
{
17+
}
18+
19+
void IJsonModel<RunGraderRequest>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options)
20+
{
21+
writer.WriteStartObject();
22+
JsonModelWriteCore(writer, options);
23+
writer.WriteEndObject();
24+
}
25+
26+
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options)
27+
{
28+
string format = options.Format == "W" ? ((IPersistableModel<RunGraderRequest>)this).GetFormatFromOptions(options) : options.Format;
29+
if (format != "J")
30+
{
31+
throw new FormatException($"The model {nameof(RunGraderRequest)} does not support writing '{format}' format.");
32+
}
33+
if (_additionalBinaryDataProperties?.ContainsKey("grader") != true)
34+
{
35+
writer.WritePropertyName("grader"u8);
36+
#if NET6_0_OR_GREATER
37+
writer.WriteRawValue(Grader);
38+
#else
39+
using (JsonDocument document = JsonDocument.Parse(Grader))
40+
{
41+
JsonSerializer.Serialize(writer, document.RootElement);
42+
}
43+
#endif
44+
}
45+
if (Optional.IsDefined(Item) && _additionalBinaryDataProperties?.ContainsKey("item") != true)
46+
{
47+
writer.WritePropertyName("item"u8);
48+
#if NET6_0_OR_GREATER
49+
writer.WriteRawValue(Item);
50+
#else
51+
using (JsonDocument document = JsonDocument.Parse(Item))
52+
{
53+
JsonSerializer.Serialize(writer, document.RootElement);
54+
}
55+
#endif
56+
}
57+
if (_additionalBinaryDataProperties?.ContainsKey("model_sample") != true)
58+
{
59+
writer.WritePropertyName("model_sample"u8);
60+
writer.WriteStringValue(ModelSample);
61+
}
62+
// Plugin customization: remove options.Format != "W" check
63+
if (_additionalBinaryDataProperties != null)
64+
{
65+
foreach (var item in _additionalBinaryDataProperties)
66+
{
67+
if (ModelSerializationExtensions.IsSentinelValue(item.Value))
68+
{
69+
continue;
70+
}
71+
writer.WritePropertyName(item.Key);
72+
#if NET6_0_OR_GREATER
73+
writer.WriteRawValue(item.Value);
74+
#else
75+
using (JsonDocument document = JsonDocument.Parse(item.Value))
76+
{
77+
JsonSerializer.Serialize(writer, document.RootElement);
78+
}
79+
#endif
80+
}
81+
}
82+
}
83+
84+
RunGraderRequest IJsonModel<RunGraderRequest>.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options);
85+
86+
protected virtual RunGraderRequest JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options)
87+
{
88+
string format = options.Format == "W" ? ((IPersistableModel<RunGraderRequest>)this).GetFormatFromOptions(options) : options.Format;
89+
if (format != "J")
90+
{
91+
throw new FormatException($"The model {nameof(RunGraderRequest)} does not support reading '{format}' format.");
92+
}
93+
using JsonDocument document = JsonDocument.ParseValue(ref reader);
94+
return DeserializeRunGraderRequest(document.RootElement, options);
95+
}
96+
97+
internal static RunGraderRequest DeserializeRunGraderRequest(JsonElement element, ModelReaderWriterOptions options)
98+
{
99+
if (element.ValueKind == JsonValueKind.Null)
100+
{
101+
return null;
102+
}
103+
BinaryData grader = default;
104+
BinaryData item = default;
105+
string modelSample = default;
106+
IDictionary<string, BinaryData> additionalBinaryDataProperties = new ChangeTrackingDictionary<string, BinaryData>();
107+
foreach (var prop in element.EnumerateObject())
108+
{
109+
if (prop.NameEquals("grader"u8))
110+
{
111+
grader = BinaryData.FromString(prop.Value.GetRawText());
112+
continue;
113+
}
114+
if (prop.NameEquals("item"u8))
115+
{
116+
if (prop.Value.ValueKind == JsonValueKind.Null)
117+
{
118+
continue;
119+
}
120+
item = BinaryData.FromString(prop.Value.GetRawText());
121+
continue;
122+
}
123+
if (prop.NameEquals("model_sample"u8))
124+
{
125+
modelSample = prop.Value.GetString();
126+
continue;
127+
}
128+
// Plugin customization: remove options.Format != "W" check
129+
additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText()));
130+
}
131+
return new RunGraderRequest(grader, item, modelSample, additionalBinaryDataProperties);
132+
}
133+
134+
BinaryData IPersistableModel<RunGraderRequest>.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options);
135+
136+
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options)
137+
{
138+
string format = options.Format == "W" ? ((IPersistableModel<RunGraderRequest>)this).GetFormatFromOptions(options) : options.Format;
139+
switch (format)
140+
{
141+
case "J":
142+
return ModelReaderWriter.Write(this, options, OpenAIContext.Default);
143+
default:
144+
throw new FormatException($"The model {nameof(RunGraderRequest)} does not support writing '{options.Format}' format.");
145+
}
146+
}
147+
148+
RunGraderRequest IPersistableModel<RunGraderRequest>.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options);
149+
150+
protected virtual RunGraderRequest PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options)
151+
{
152+
string format = options.Format == "W" ? ((IPersistableModel<RunGraderRequest>)this).GetFormatFromOptions(options) : options.Format;
153+
switch (format)
154+
{
155+
case "J":
156+
using (JsonDocument document = JsonDocument.Parse(data))
157+
{
158+
return DeserializeRunGraderRequest(document.RootElement, options);
159+
}
160+
default:
161+
throw new FormatException($"The model {nameof(RunGraderRequest)} does not support reading '{options.Format}' format.");
162+
}
163+
}
164+
165+
string IPersistableModel<RunGraderRequest>.GetFormatFromOptions(ModelReaderWriterOptions options) => "J";
166+
}
167+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// <auto-generated/>
2+
3+
#nullable disable
4+
5+
using System;
6+
using System.Collections.Generic;
7+
using System.Diagnostics.CodeAnalysis;
8+
9+
namespace OpenAI.Graders
10+
{
11+
[Experimental("OPENAI001")]
12+
public partial class RunGraderRequest
13+
{
14+
private protected IDictionary<string, BinaryData> _additionalBinaryDataProperties;
15+
16+
internal RunGraderRequest(BinaryData grader, string modelSample)
17+
{
18+
Grader = grader;
19+
ModelSample = modelSample;
20+
}
21+
22+
internal RunGraderRequest(BinaryData grader, BinaryData item, string modelSample, IDictionary<string, BinaryData> additionalBinaryDataProperties)
23+
{
24+
Grader = grader;
25+
Item = item;
26+
ModelSample = modelSample;
27+
_additionalBinaryDataProperties = additionalBinaryDataProperties;
28+
}
29+
30+
public BinaryData Grader { get; }
31+
32+
public BinaryData Item { get; }
33+
34+
public string ModelSample { get; }
35+
36+
internal IDictionary<string, BinaryData> SerializedAdditionalRawData
37+
{
38+
get => _additionalBinaryDataProperties;
39+
set => _additionalBinaryDataProperties = value;
40+
}
41+
}
42+
}

0 commit comments

Comments
 (0)