Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove stringify from primitive types #5616

Merged
merged 36 commits into from
Oct 24, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
ed8cf85
Remove stringify from primitive types
shemogumbe Oct 16, 2024
7b65a27
clean up code
shemogumbe Oct 16, 2024
f43e99a
Merge branch 'main' into shem/remove_stringify_primitive_types
shemogumbe Oct 16, 2024
9b378b0
revert changes in launch.json file
shemogumbe Oct 16, 2024
2d3f071
Merge branch 'shem/remove_stringify_primitive_types' of https://githu…
shemogumbe Oct 16, 2024
64aa774
Updated changelog"
shemogumbe Oct 16, 2024
35b68a0
Merge branch 'main' into shem/remove_stringify_primitive_types
shemogumbe Oct 16, 2024
06da46e
move changelog to unrealeased
shemogumbe Oct 21, 2024
9c7eebf
Merge branch 'shem/remove_stringify_primitive_types' of https://githu…
shemogumbe Oct 21, 2024
3ee244b
update method writer tests
shemogumbe Oct 21, 2024
d22f203
Merge branch 'main' into shem/remove_stringify_primitive_types
shemogumbe Oct 21, 2024
26362a7
update code format
shemogumbe Oct 21, 2024
f745664
Merge branch 'shem/remove_stringify_primitive_types' of https://githu…
shemogumbe Oct 21, 2024
f419ecf
update code format
shemogumbe Oct 21, 2024
b0ac2ba
remove unused parameter
shemogumbe Oct 21, 2024
29cf0cf
update unit tests
shemogumbe Oct 21, 2024
8771a49
updete tests
shemogumbe Oct 21, 2024
d9adf4e
Merge branch 'main' into shem/remove_stringify_primitive_types
shemogumbe Oct 22, 2024
16f934c
fix unit test
shemogumbe Oct 22, 2024
70bc899
Merge branch 'shem/remove_stringify_primitive_types' of https://githu…
shemogumbe Oct 22, 2024
a347783
update unit tests
shemogumbe Oct 22, 2024
657fbef
fix integration tests
shemogumbe Oct 22, 2024
449b7d9
update get factory for enums
shemogumbe Oct 22, 2024
4a52f9d
update uni test for enums
shemogumbe Oct 22, 2024
6acb5c2
update uni test for enums
shemogumbe Oct 22, 2024
b04f415
Merge branch 'main' into shem/remove_stringify_primitive_types
shemogumbe Oct 22, 2024
5fb4c9a
Update CHANGELOG.md
shemogumbe Oct 22, 2024
61c4387
update method to internal
shemogumbe Oct 22, 2024
49cdeac
Merge branch 'shem/remove_stringify_primitive_types' of https://githu…
shemogumbe Oct 22, 2024
5e584e6
Merge branch 'main' into shem/remove_stringify_primitive_types
shemogumbe Oct 23, 2024
efd1df1
Merge branch 'main' into shem/remove_stringify_primitive_types
shemogumbe Oct 24, 2024
c6bc2d7
Update tests/Kiota.Builder.Tests/Writers/Python/CodeMethodWriterTests.cs
shemogumbe Oct 24, 2024
bd2b196
Update CHANGELOG.md
shemogumbe Oct 24, 2024
aa7fbb4
Merge branch 'main' into shem/remove_stringify_primitive_types
shemogumbe Oct 24, 2024
9614f7b
remove uused vars
shemogumbe Oct 24, 2024
ff89d6f
docs: removes duplicated changelog entry
baywet Oct 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 34 additions & 10 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -158,11 +158,11 @@
"args": [
"generate",
"--openapi",
"https://raw.githubusercontent.com/microsoftgraph/msgraph-sdk-powershell/dev/openApiDocs/v1.0/Mail.yml",
"https://raw.githubusercontent.com/shemogumbe/openapi/refs/heads/main/openapi/namesdata.yml",
shemogumbe marked this conversation as resolved.
Show resolved Hide resolved
"--language",
"python",
"-o",
"${workspaceFolder}/samples/msgraph-mail/python",
"${workspaceFolder}/samples/msgraph-names/python",
"-n",
"GraphPythonv1"
],
Expand Down Expand Up @@ -196,7 +196,10 @@
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/kiota/bin/Debug/net8.0/kiota.dll",
"args": ["search", "microsoft"],
"args": [
"search",
"microsoft"
],
"cwd": "${workspaceFolder}/src/kiota",
"console": "internalConsole",
"stopAtEntry": false
Expand All @@ -207,7 +210,10 @@
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/kiota/bin/Debug/net8.0/kiota.dll",
"args": ["search", "test"],
"args": [
"search",
"test"
],
"cwd": "${workspaceFolder}/src/kiota",
"console": "internalConsole",
"stopAtEntry": false
Expand Down Expand Up @@ -249,7 +255,11 @@
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/kiota/bin/Debug/net8.0/kiota.dll",
"args": ["info", "-l", "CSharp"],
"args": [
"info",
"-l",
"CSharp"
],
"cwd": "${workspaceFolder}/src/kiota",
"console": "internalConsole",
"stopAtEntry": false
Expand All @@ -260,7 +270,11 @@
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/kiota/bin/Debug/net8.0/kiota.dll",
"args": ["update", "-o", "${workspaceFolder}/samples"],
"args": [
"update",
"-o",
"${workspaceFolder}/samples"
],
"cwd": "${workspaceFolder}/src/kiota",
"console": "internalConsole",
"stopAtEntry": false
Expand All @@ -271,7 +285,10 @@
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/kiota/bin/Debug/net8.0/kiota.dll",
"args": ["workspace", "migrate"],
"args": [
"workspace",
"migrate"
],
"cwd": "${workspaceFolder}/samples/msgraph-mail/dotnet",
"console": "internalConsole",
"stopAtEntry": false,
Expand All @@ -285,7 +302,10 @@
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/kiota/bin/Debug/net8.0/kiota.dll",
"args": ["client", "generate"],
"args": [
"client",
"generate"
],
"cwd": "${workspaceFolder}/samples/msgraph-mail/dotnet",
"console": "internalConsole",
"stopAtEntry": false,
Expand Down Expand Up @@ -349,7 +369,11 @@
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/kiota/bin/Debug/net8.0/kiota.dll",
"args": ["login", "github", "device"],
"args": [
"login",
"github",
"device"
],
"cwd": "${workspaceFolder}/src/kiota",
"console": "internalConsole",
"stopAtEntry": false
Expand All @@ -361,4 +385,4 @@
"processId": "${command:pickProcess}"
}
]
}
}
3 changes: 2 additions & 1 deletion src/Kiota.Builder/Writers/Python/CodeMethodWriter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
var requestParams = new RequestParams(requestBodyParam, requestConfigParam, requestContentType);
if (!codeElement.IsOfKind(CodeMethodKind.Setter) &&
!(codeElement.IsOfKind(CodeMethodKind.Constructor) && parentClass.IsOfKind(CodeClassKind.RequestBuilder)))
foreach (var parameter in codeElement.Parameters.Where(static x => !x.Optional).OrderBy(static x => x.Name))

Check warning on line 43 in src/Kiota.Builder/Writers/Python/CodeMethodWriter.cs

View workflow job for this annotation

GitHub Actions / Build

Loop should be simplified by calling Select(parameter => parameter.Name)) (https://rules.sonarsource.com/csharp/RSPEC-3267)
{
var parameterName = parameter.Name;
writer.StartBlock($"if {parameterName} is None:");
Expand Down Expand Up @@ -112,7 +112,7 @@
break;
}
}
private void WriteRawUrlBuilderBody(CodeClass parentClass, CodeMethod codeElement, LanguageWriter writer)

Check warning on line 115 in src/Kiota.Builder/Writers/Python/CodeMethodWriter.cs

View workflow job for this annotation

GitHub Actions / Build

Make 'WriteRawUrlBuilderBody' a static method. (https://rules.sonarsource.com/csharp/RSPEC-2325)
{
var rawUrlParameter = codeElement.Parameters.OfKind(CodeParameterKind.RawUrl) ?? throw new InvalidOperationException("RawUrlBuilder method should have a RawUrl parameter");
var requestAdapterProperty = parentClass.GetPropertyOfKind(CodePropertyKind.RequestAdapter) ?? throw new InvalidOperationException("RawUrlBuilder method should have a RequestAdapter property");
Expand All @@ -135,7 +135,7 @@
writer.WriteLine($"return {parentClass.Name}()");
}
private const string ResultVarName = "result";
private void WriteFactoryMethodBodyForUnionModel(CodeMethod codeElement, CodeClass parentClass, CodeParameter parseNodeParameter, LanguageWriter writer)

Check warning on line 138 in src/Kiota.Builder/Writers/Python/CodeMethodWriter.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed. (https://rules.sonarsource.com/csharp/RSPEC-3776)
{
writer.WriteLine($"{ResultVarName} = {parentClass.Name}()");
var includeElse = false;
Expand Down Expand Up @@ -164,7 +164,7 @@
}
writer.WriteLine($"return {ResultVarName}");
}
private void WriteFactoryMethodBodyForIntersectionModel(CodeMethod codeElement, CodeClass parentClass, CodeParameter parseNodeParameter, LanguageWriter writer)

Check warning on line 167 in src/Kiota.Builder/Writers/Python/CodeMethodWriter.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed. (https://rules.sonarsource.com/csharp/RSPEC-3776)
{
writer.WriteLine($"{ResultVarName} = {parentClass.Name}()");
var includeElse = false;
Expand Down Expand Up @@ -324,7 +324,7 @@
return _SetterAccessProperties;
}
}
private void WriteConstructorBody(CodeClass parentClass, CodeMethod currentMethod, LanguageWriter writer, bool inherits)

Check warning on line 327 in src/Kiota.Builder/Writers/Python/CodeMethodWriter.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor this method to reduce its Cognitive Complexity from 28 to the 15 allowed. (https://rules.sonarsource.com/csharp/RSPEC-3776)
{
if (inherits && !parentClass.IsOfKind(CodeClassKind.Model))
{
Expand Down Expand Up @@ -373,7 +373,7 @@
writer.IncreaseIndent();
}
}
private void WriteDirectAccessProperties(CodeClass parentClass, LanguageWriter writer)

Check warning on line 376 in src/Kiota.Builder/Writers/Python/CodeMethodWriter.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed. (https://rules.sonarsource.com/csharp/RSPEC-3776)
{
foreach (var propWithDefault in parentClass.GetPropertiesOfKind(DirectAccessProperties)
.Where(static x => !string.IsNullOrEmpty(x.DefaultValue) && !NoneKeyword.Equals(x.DefaultValue, StringComparison.Ordinal))
Expand All @@ -390,7 +390,7 @@
conventions.WriteInLineDescription(propWithDefault, writer);
if (parentClass.IsOfKind(CodeClassKind.Model))
{
writer.WriteLine($"{propWithDefault.Name}: {(propWithDefault.Type.IsNullable ? "Optional[" : string.Empty)}{returnType}{(propWithDefault.Type.IsNullable ? "]" : string.Empty)} = {defaultValue}");

Check warning on line 393 in src/Kiota.Builder/Writers/Python/CodeMethodWriter.cs

View workflow job for this annotation

GitHub Actions / Build

Define a constant instead of using this literal 'Optional[' 7 times. (https://rules.sonarsource.com/csharp/RSPEC-1192)
writer.WriteLine();
}
else
Expand Down Expand Up @@ -427,7 +427,7 @@
}
}
private const string NoneKeyword = "None";
private void WriteSetterAccessPropertiesWithoutDefaults(CodeClass parentClass, LanguageWriter writer)

Check warning on line 430 in src/Kiota.Builder/Writers/Python/CodeMethodWriter.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed. (https://rules.sonarsource.com/csharp/RSPEC-3776)
{
foreach (var propWithoutDefault in parentClass.GetPropertiesOfKind(SetterAccessProperties)
.Where(static x => string.IsNullOrEmpty(x.DefaultValue) || NoneKeyword.Equals(x.DefaultValue, StringComparison.Ordinal))
Expand Down Expand Up @@ -499,7 +499,7 @@
else
WriteDeserializerBodyForInheritedModel(inherits, codeElement, parentClass, writer);
}
private void WriteDeserializerBodyForUnionModel(CodeMethod method, CodeClass parentClass, LanguageWriter writer)

Check warning on line 502 in src/Kiota.Builder/Writers/Python/CodeMethodWriter.cs

View workflow job for this annotation

GitHub Actions / Build

Make 'WriteDeserializerBodyForUnionModel' a static method. (https://rules.sonarsource.com/csharp/RSPEC-2325)
{
foreach (var otherPropName in parentClass
.GetPropertiesOfKind(CodePropertyKind.Custom)
Expand All @@ -515,7 +515,7 @@
}
writer.WriteLine($"return {DefaultDeserializerValue}");
}
private void WriteDeserializerBodyForIntersectionModel(CodeClass parentClass, LanguageWriter writer)

Check warning on line 518 in src/Kiota.Builder/Writers/Python/CodeMethodWriter.cs

View workflow job for this annotation

GitHub Actions / Build

Make 'WriteDeserializerBodyForIntersectionModel' a static method. (https://rules.sonarsource.com/csharp/RSPEC-2325)
{
var complexProperties = parentClass.GetPropertiesOfKind(CodePropertyKind.Custom)
.Where(static x => x.Type is CodeType propType && propType.TypeDefinition is CodeClass && !x.Type.IsCollection)
Expand Down Expand Up @@ -806,7 +806,8 @@
private string GetTypeFactory(bool isVoid, bool isStream, string returnType)
{
if (isVoid) return string.Empty;
if (isStream || conventions.IsPrimitiveType(returnType)) return $" \"{returnType}\",";
if (isStream || conventions.IsPrimitiveType(returnType)) return $" {returnType},";
shemogumbe marked this conversation as resolved.
Show resolved Hide resolved

return $" {returnType},";
}
private string GetSendRequestMethodName(bool isVoid, bool isStream, bool isCollection, string returnType)
Expand Down
Loading