Skip to content

Commit

Permalink
feat: Simplified some enums which includes EnumName.
Browse files Browse the repository at this point in the history
  • Loading branch information
HavenDV committed Sep 22, 2024
1 parent 823612e commit f02687b
Show file tree
Hide file tree
Showing 38 changed files with 815 additions and 770 deletions.
57 changes: 53 additions & 4 deletions src/libs/AutoSDK/Extensions/OpenApiExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -246,15 +246,19 @@ public static bool HasAllOfTypeForMetadata(
// }
if (context.Schema.Enum.Any() && context.Schema.Default is OpenApiString enumString && !string.IsNullOrWhiteSpace(enumString.Value))
{
return context.TypeData.Value.CSharpTypeWithoutNullability + "." + context.Schema.Default.ToEnumValue(string.Empty, context.Settings).Name;
var @enum = context.ComputeEnum();
var value = @enum.TryGetValue(context.Schema.Default.GetString() ?? string.Empty, out var result) ? result.Name : "Unknown";

return context.TypeData.Value.CSharpTypeWithoutNullability + "." + value;
}
if (context.Schema.AnyOf.Any(x => x.Enum.Any()) && context.Schema.Default != null)
{
var enumChildContext = context.Children
.Where(x => x.Hint is Hint.AnyOf)
.First(x => x.Schema.Enum.Any());
var @enum = enumChildContext.ComputeEnum();
var value = @enum.TryGetValue(context.Schema.Default.GetString() ?? string.Empty, out var result) ? result.Name : "";

var value = context.Schema.Default.ToEnumValue(string.Empty, context.Settings).Name;
if (string.IsNullOrWhiteSpace(value))
{
if (context.Children
Expand All @@ -278,16 +282,20 @@ public static bool HasAllOfTypeForMetadata(
var enumChildContext = context.Children
.Where(x => x.Hint is Hint.OneOf)
.First(x => x.Schema.Enum.Any());
var @enum = enumChildContext.ComputeEnum();
var value = @enum.TryGetValue(context.Schema.Default.GetString() ?? string.Empty, out var result) ? result.Name : "Unknown";

return enumChildContext.TypeData?.CSharpTypeWithoutNullability + "." + context.Schema.Default.ToEnumValue(string.Empty, context.Settings).Name;
return enumChildContext.TypeData?.CSharpTypeWithoutNullability + "." + value;
}
if (context.Schema.AllOf.Any(x => x.Enum.Any()) && context.Schema.Default != null)
{
var enumChildContext = context.Children
.Where(x => x.Hint is Hint.AllOf)
.First(x => x.Schema.Enum.Any());
var @enum = enumChildContext.ComputeEnum();
var value = @enum.TryGetValue(context.Schema.Default.GetString() ?? string.Empty, out var result) ? result.Name : "Unknown";

return enumChildContext.TypeData?.CSharpTypeWithoutNullability + "." + context.Schema.Default.ToEnumValue(string.Empty, context.Settings).Name;
return enumChildContext.TypeData?.CSharpTypeWithoutNullability + "." + value;
}
if (context.Schema.Default is OpenApiString @string && !string.IsNullOrWhiteSpace(@string.Value))
{
Expand Down Expand Up @@ -439,6 +447,47 @@ public static string ReplacePlusAndMinusOnStart(
return text;
}

public static Dictionary<string, PropertyData> ComputeEnum(
this SchemaContext context)
{
context = context ?? throw new ArgumentNullException(nameof(context));

return context.Schema.Enum.ComputeEnum(
enumName: context.Id,
description: context.Parameter?.Description ?? context.Schema.Description ?? string.Empty,
context.Settings);
}

public static Dictionary<string, PropertyData> ComputeEnum(
this IList<IOpenApiAny> @enum,
string enumName,
string description,
Settings settings)
{
var values = @enum
.Select(value => value.ToEnumValue(
description: description,
settings))
.Where(value => !string.IsNullOrWhiteSpace(value.Name))
.ToDictionary(x => x.Id, x => x);

if (values.All(x => x.Value.Name.ToUpperInvariant().Contains(enumName.ToUpperInvariant())))
{
values = values.ToDictionary(
x => x.Key,
x => x.Value with
{
Name = x.Value.Name.Remove(
x.Value.Name.IndexOf(enumName, StringComparison.OrdinalIgnoreCase),
enumName.Length).ToEnumValue(
description: description,
settings).Name,
});
}

return values;
}

public static PropertyData ToEnumValue(
this IOpenApiAny any,
string description,
Expand Down
8 changes: 2 additions & 6 deletions src/libs/AutoSDK/Models/ModelData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,8 @@ public static ModelData FromSchemaContext(
.SelectMany(x => x.ComputedProperties)
.ToImmutableArray() : [],
EnumValues: context.Schema.IsEnum()
? context.Schema.Enum
.Select(value => value.ToEnumValue(
description: context.Parameter?.Description ?? context.Schema.Description ?? string.Empty,
context.Settings))
.Where(value => !string.IsNullOrWhiteSpace(value.Name))
.ToImmutableArray() : [],
? context.ComputeEnum().Values.ToImmutableArray()
: [],
Summary: context.Schema.GetSummary(),
IsDeprecated: context.Schema.Deprecated
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ partial void ProcessCreateFinetunedModelResponseContent(
string name,
global::G.Settings settings,
string? xClientName = default,
global::G.Status? status = global::G.Status.STATUSUNSPECIFIED,
global::G.Status? status = global::G.Status.UNSPECIFIED,
global::System.Threading.CancellationToken cancellationToken = default)
{
var request = new global::G.FinetunedModel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ partial void ProcessUpdateFinetunedModelResponseContent(
string name,
global::G.Settings settings,
string? xClientName = default,
global::G.Status? status = global::G.Status.STATUSUNSPECIFIED,
global::G.Status? status = global::G.Status.UNSPECIFIED,
global::System.Threading.CancellationToken cancellationToken = default)
{
var request = new global::G.UpdateFinetunedModelRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public partial interface IFinetuningClient
string name,
global::G.Settings settings,
string? xClientName = default,
global::G.Status? status = global::G.Status.STATUSUNSPECIFIED,
global::G.Status? status = global::G.Status.UNSPECIFIED,
global::System.Threading.CancellationToken cancellationToken = default);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public partial interface IFinetuningClient
string name,
global::G.Settings settings,
string? xClientName = default,
global::G.Status? status = global::G.Status.STATUSUNSPECIFIED,
global::G.Status? status = global::G.Status.UNSPECIFIED,
global::System.Threading.CancellationToken cancellationToken = default);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public sealed partial class BaseModel
/// Default Value: STRATEGY_UNSPECIFIED
/// </summary>
[global::Newtonsoft.Json.JsonProperty("strategy")]
public global::G.Strategy? Strategy { get; set; } = global::G.Strategy.STRATEGYUNSPECIFIED;
public global::G.Strategy? Strategy { get; set; } = global::G.Strategy.UNSPECIFIED;

/// <summary>
/// Additional properties that are not explicitly defined in the schema
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,27 +20,27 @@ public enum BaseType
/// Unspecified model.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="BASE_TYPE_UNSPECIFIED")]
BASETYPEUNSPECIFIED,
UNSPECIFIED,
/// <summary>
/// Generative model.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="BASE_TYPE_GENERATIVE")]
BASETYPEGENERATIVE,
GENERATIVE,
/// <summary>
/// Classification model.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="BASE_TYPE_CLASSIFICATION")]
BASETYPECLASSIFICATION,
CLASSIFICATION,
/// <summary>
/// Rerank model.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="BASE_TYPE_RERANK")]
BASETYPERERANK,
RERANK,
/// <summary>
/// Chat model.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="BASE_TYPE_CHAT")]
BASETYPECHAT,
CHAT,
}

/// <summary>
Expand All @@ -55,11 +55,11 @@ public static string ToValueString(this BaseType value)
{
return value switch
{
BaseType.BASETYPEUNSPECIFIED => "BASE_TYPE_UNSPECIFIED",
BaseType.BASETYPEGENERATIVE => "BASE_TYPE_GENERATIVE",
BaseType.BASETYPECLASSIFICATION => "BASE_TYPE_CLASSIFICATION",
BaseType.BASETYPERERANK => "BASE_TYPE_RERANK",
BaseType.BASETYPECHAT => "BASE_TYPE_CHAT",
BaseType.UNSPECIFIED => "BASE_TYPE_UNSPECIFIED",
BaseType.GENERATIVE => "BASE_TYPE_GENERATIVE",
BaseType.CLASSIFICATION => "BASE_TYPE_CLASSIFICATION",
BaseType.RERANK => "BASE_TYPE_RERANK",
BaseType.CHAT => "BASE_TYPE_CHAT",
_ => throw new global::System.ArgumentOutOfRangeException(nameof(value), value, null),
};
}
Expand All @@ -70,11 +70,11 @@ public static string ToValueString(this BaseType value)
{
return value switch
{
"BASE_TYPE_UNSPECIFIED" => BaseType.BASETYPEUNSPECIFIED,
"BASE_TYPE_GENERATIVE" => BaseType.BASETYPEGENERATIVE,
"BASE_TYPE_CLASSIFICATION" => BaseType.BASETYPECLASSIFICATION,
"BASE_TYPE_RERANK" => BaseType.BASETYPERERANK,
"BASE_TYPE_CHAT" => BaseType.BASETYPECHAT,
"BASE_TYPE_UNSPECIFIED" => BaseType.UNSPECIFIED,
"BASE_TYPE_GENERATIVE" => BaseType.GENERATIVE,
"BASE_TYPE_CLASSIFICATION" => BaseType.CLASSIFICATION,
"BASE_TYPE_RERANK" => BaseType.RERANK,
"BASE_TYPE_CHAT" => BaseType.CHAT,
_ => null,
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public sealed partial class Event
/// Default Value: STATUS_UNSPECIFIED
/// </summary>
[global::Newtonsoft.Json.JsonProperty("status")]
public global::G.Status? Status { get; set; } = global::G.Status.STATUSUNSPECIFIED;
public global::G.Status? Status { get; set; } = global::G.Status.UNSPECIFIED;

/// <summary>
/// Timestamp when the event happened.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public sealed partial class FinetunedModel
/// Default Value: STATUS_UNSPECIFIED
/// </summary>
[global::Newtonsoft.Json.JsonProperty("status")]
public global::G.Status? Status { get; set; } = global::G.Status.STATUSUNSPECIFIED;
public global::G.Status? Status { get; set; } = global::G.Status.UNSPECIFIED;

/// <summary>
/// read-only. Creation timestamp.<br/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,47 +24,47 @@ public enum Status
/// Unspecified status.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STATUS_UNSPECIFIED")]
STATUSUNSPECIFIED,
UNSPECIFIED,
/// <summary>
/// The fine-tuned model is being fine-tuned.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STATUS_FINETUNING")]
STATUSFINETUNING,
FINETUNING,
/// <summary>
/// The fine-tuned model is being deployed.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STATUS_DEPLOYING_API")]
STATUSDEPLOYINGAPI,
DEPLOYINGAPI,
/// <summary>
/// The fine-tuned model is ready to receive requests.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STATUS_READY")]
STATUSREADY,
READY,
/// <summary>
/// The fine-tuned model failed.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STATUS_FAILED")]
STATUSFAILED,
FAILED,
/// <summary>
/// The fine-tuned model was deleted.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STATUS_DELETED")]
STATUSDELETED,
DELETED,
/// <summary>
/// The fine-tuned model is temporarily unavailable.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STATUS_TEMPORARILY_OFFLINE")]
STATUSTEMPORARILYOFFLINE,
TEMPORARILYOFFLINE,
/// <summary>
/// The fine-tuned model is paused (Vanilla only).
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STATUS_PAUSED")]
STATUSPAUSED,
PAUSED,
/// <summary>
/// The fine-tuned model is queued for training.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STATUS_QUEUED")]
STATUSQUEUED,
QUEUED,
}

/// <summary>
Expand All @@ -79,15 +79,15 @@ public static string ToValueString(this Status value)
{
return value switch
{
Status.STATUSUNSPECIFIED => "STATUS_UNSPECIFIED",
Status.STATUSFINETUNING => "STATUS_FINETUNING",
Status.STATUSDEPLOYINGAPI => "STATUS_DEPLOYING_API",
Status.STATUSREADY => "STATUS_READY",
Status.STATUSFAILED => "STATUS_FAILED",
Status.STATUSDELETED => "STATUS_DELETED",
Status.STATUSTEMPORARILYOFFLINE => "STATUS_TEMPORARILY_OFFLINE",
Status.STATUSPAUSED => "STATUS_PAUSED",
Status.STATUSQUEUED => "STATUS_QUEUED",
Status.UNSPECIFIED => "STATUS_UNSPECIFIED",
Status.FINETUNING => "STATUS_FINETUNING",
Status.DEPLOYINGAPI => "STATUS_DEPLOYING_API",
Status.READY => "STATUS_READY",
Status.FAILED => "STATUS_FAILED",
Status.DELETED => "STATUS_DELETED",
Status.TEMPORARILYOFFLINE => "STATUS_TEMPORARILY_OFFLINE",
Status.PAUSED => "STATUS_PAUSED",
Status.QUEUED => "STATUS_QUEUED",
_ => throw new global::System.ArgumentOutOfRangeException(nameof(value), value, null),
};
}
Expand All @@ -98,15 +98,15 @@ public static string ToValueString(this Status value)
{
return value switch
{
"STATUS_UNSPECIFIED" => Status.STATUSUNSPECIFIED,
"STATUS_FINETUNING" => Status.STATUSFINETUNING,
"STATUS_DEPLOYING_API" => Status.STATUSDEPLOYINGAPI,
"STATUS_READY" => Status.STATUSREADY,
"STATUS_FAILED" => Status.STATUSFAILED,
"STATUS_DELETED" => Status.STATUSDELETED,
"STATUS_TEMPORARILY_OFFLINE" => Status.STATUSTEMPORARILYOFFLINE,
"STATUS_PAUSED" => Status.STATUSPAUSED,
"STATUS_QUEUED" => Status.STATUSQUEUED,
"STATUS_UNSPECIFIED" => Status.UNSPECIFIED,
"STATUS_FINETUNING" => Status.FINETUNING,
"STATUS_DEPLOYING_API" => Status.DEPLOYINGAPI,
"STATUS_READY" => Status.READY,
"STATUS_FAILED" => Status.FAILED,
"STATUS_DELETED" => Status.DELETED,
"STATUS_TEMPORARILY_OFFLINE" => Status.TEMPORARILYOFFLINE,
"STATUS_PAUSED" => Status.PAUSED,
"STATUS_QUEUED" => Status.QUEUED,
_ => null,
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ public enum Strategy
/// Unspecified strategy.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STRATEGY_UNSPECIFIED")]
STRATEGYUNSPECIFIED,
UNSPECIFIED,
/// <summary>
/// Serve the fine-tuned model on a dedicated GPU.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STRATEGY_VANILLA")]
STRATEGYVANILLA,
VANILLA,
/// <summary>
/// Serve the fine-tuned model on a shared GPU.
/// </summary>
[global::System.Runtime.Serialization.EnumMember(Value="STRATEGY_TFEW")]
STRATEGYTFEW,
TFEW,
}

/// <summary>
Expand All @@ -43,9 +43,9 @@ public static string ToValueString(this Strategy value)
{
return value switch
{
Strategy.STRATEGYUNSPECIFIED => "STRATEGY_UNSPECIFIED",
Strategy.STRATEGYVANILLA => "STRATEGY_VANILLA",
Strategy.STRATEGYTFEW => "STRATEGY_TFEW",
Strategy.UNSPECIFIED => "STRATEGY_UNSPECIFIED",
Strategy.VANILLA => "STRATEGY_VANILLA",
Strategy.TFEW => "STRATEGY_TFEW",
_ => throw new global::System.ArgumentOutOfRangeException(nameof(value), value, null),
};
}
Expand All @@ -56,9 +56,9 @@ public static string ToValueString(this Strategy value)
{
return value switch
{
"STRATEGY_UNSPECIFIED" => Strategy.STRATEGYUNSPECIFIED,
"STRATEGY_VANILLA" => Strategy.STRATEGYVANILLA,
"STRATEGY_TFEW" => Strategy.STRATEGYTFEW,
"STRATEGY_UNSPECIFIED" => Strategy.UNSPECIFIED,
"STRATEGY_VANILLA" => Strategy.VANILLA,
"STRATEGY_TFEW" => Strategy.TFEW,
_ => null,
};
}
Expand Down
Loading

0 comments on commit f02687b

Please sign in to comment.