From b66c5c2b88b032ea1abfe8b8fd7094b5789076e6 Mon Sep 17 00:00:00 2001 From: Hanzhen Yi Date: Mon, 27 Aug 2018 15:32:14 -0700 Subject: [PATCH 1/6] samplegen: convert binary type to str --- .../google/api/codegen/py/standalone_sample.snip | 14 ++++++++++++++ .../codegen/testdata/py/python_library.baseline | 3 +++ 2 files changed, 17 insertions(+) diff --git a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip index e576ffeb58..1bc8333248 100644 --- a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip +++ b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip @@ -35,6 +35,14 @@ @end + # FIXME(hzyi): handle ListInitType, MapInitType and StructInitType correctly + @join line : sample.initCode.argDefaultLines + @if line.lineType == "SimpleInitLine" + @if line.typeName == "str" + {@convertBinaryToStr(line.identifier)} + @end + @end + @end @end @if sample.initCode.lines {@initCode(sample.initCode.lines)} @@ -76,6 +84,12 @@ @end @end +@private convertBinaryToStr(identifier) + if isinstance({@identifier}, six.binary_type): + {@identifier} = {@identifier}.decode('utf-8') + +@end + @private optionalArrayMethodSampleCodeNonStreaming(apiMethod, initCode) {@singularResponseSampleCode(apiMethod, initCode)} @end diff --git a/src/test/java/com/google/api/codegen/testdata/py/python_library.baseline b/src/test/java/com/google/api/codegen/testdata/py/python_library.baseline index f57f26d788..3f0229b6e9 100644 --- a/src/test/java/com/google/api/codegen/testdata/py/python_library.baseline +++ b/src/test/java/com/google/api/codegen/testdata/py/python_library.baseline @@ -4345,6 +4345,9 @@ def sample_publish_series(name): # name = 'Math' + if isinstance(name, six.binary_type): + name = name.decode('utf-8') + shelf = {'name': name} # TODO: Initialize ``books``: From db7cdcd3b06ad70df08f2f8a5b54dd639fc28e18 Mon Sep 17 00:00:00 2001 From: Hanzhen Yi Date: Tue, 28 Aug 2018 17:04:58 -0700 Subject: [PATCH 2/6] import six --- .../api/codegen/py/standalone_sample.snip | 17 ++++++++++++++++- .../codegen/testdata/py/python_library.baseline | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip index 1bc8333248..d1e1404c24 100644 --- a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip +++ b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip @@ -23,7 +23,10 @@ @# [START {@sample.regionTag}] {@importList(sample.initCode.importSection.appImports)} - + @if needsImportSix(sample.initCode.argDefaultParams) + import six + @end + def sample_{@apiMethod.name}({@sampleFuncParam(sample.initCode.argDefaultParams)}): @# [START {@sample.regionTag}_core] @@ -84,6 +87,18 @@ @end @end +@private needsImportSix(defaultParams) + @join param : defaultParams + @if param.lineType == "SimpleInitLine" + @if param.typeName == "str" + needsImportSix: TRUE + @end + @end + @end +@end + + + @private convertBinaryToStr(identifier) if isinstance({@identifier}, six.binary_type): {@identifier} = {@identifier}.decode('utf-8') diff --git a/src/test/java/com/google/api/codegen/testdata/py/python_library.baseline b/src/test/java/com/google/api/codegen/testdata/py/python_library.baseline index 3f0229b6e9..369dce0b59 100644 --- a/src/test/java/com/google/api/codegen/testdata/py/python_library.baseline +++ b/src/test/java/com/google/api/codegen/testdata/py/python_library.baseline @@ -4337,6 +4337,7 @@ def sample_monolog_about_book(): # [START canonical] from google.cloud.example import library_v1 +import six def sample_publish_series(name): # [START canonical_core] From 4f23afc5590c7196221ce5d1cba9a73b17665654 Mon Sep 17 00:00:00 2001 From: Hanzhen Yi Date: Tue, 28 Aug 2018 17:13:42 -0700 Subject: [PATCH 3/6] format --- .../com/google/api/codegen/py/standalone_sample.snip | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip index d1e1404c24..959c39007a 100644 --- a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip +++ b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip @@ -23,10 +23,10 @@ @# [START {@sample.regionTag}] {@importList(sample.initCode.importSection.appImports)} - @if needsImportSix(sample.initCode.argDefaultParams) + @if shouldImportSix(sample.initCode.argDefaultParams) import six @end - + def sample_{@apiMethod.name}({@sampleFuncParam(sample.initCode.argDefaultParams)}): @# [START {@sample.regionTag}_core] @@ -87,7 +87,7 @@ @end @end -@private needsImportSix(defaultParams) +@private shouldImportSix(defaultParams) @join param : defaultParams @if param.lineType == "SimpleInitLine" @if param.typeName == "str" @@ -97,8 +97,6 @@ @end @end - - @private convertBinaryToStr(identifier) if isinstance({@identifier}, six.binary_type): {@identifier} = {@identifier}.decode('utf-8') From 667ab536d4003a3ae82cf798e62476cf63e79593 Mon Sep 17 00:00:00 2001 From: Hanzhen Yi Date: Wed, 29 Aug 2018 17:50:22 -0700 Subject: [PATCH 4/6] refactor --- .../api/codegen/py/standalone_sample.snip | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip index 959c39007a..16d074a7fb 100644 --- a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip +++ b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip @@ -23,7 +23,7 @@ @# [START {@sample.regionTag}] {@importList(sample.initCode.importSection.appImports)} - @if shouldImportSix(sample.initCode.argDefaultParams) + @if convertText(sample) import six @end @@ -39,13 +39,7 @@ # FIXME(hzyi): handle ListInitType, MapInitType and StructInitType correctly - @join line : sample.initCode.argDefaultLines - @if line.lineType == "SimpleInitLine" - @if line.typeName == "str" - {@convertBinaryToStr(line.identifier)} - @end - @end - @end + {@convertText(sample)} @end @if sample.initCode.lines {@initCode(sample.initCode.lines)} @@ -97,10 +91,16 @@ @end @end -@private convertBinaryToStr(identifier) - if isinstance({@identifier}, six.binary_type): - {@identifier} = {@identifier}.decode('utf-8') +@private convertText(sample) + @join line : sample.initCode.argDefaultLines + @if line.lineType == "SimpleInitLine" + @if line.typeName == "str" + if isinstance({@line.identifier}, six.binary_type): + {@line.identifier} = {@line.identifier}.decode('utf-8') + @end + @end + @end @end @private optionalArrayMethodSampleCodeNonStreaming(apiMethod, initCode) From cd978837b9aeff6c88a66f9420bf5e05d1e87fb0 Mon Sep 17 00:00:00 2001 From: Hanzhen Yi Date: Thu, 30 Aug 2018 09:55:54 -0700 Subject: [PATCH 5/6] code review --- .../api/codegen/py/standalone_sample.snip | 97 +++++++++---------- 1 file changed, 45 insertions(+), 52 deletions(-) diff --git a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip index 16d074a7fb..394300a368 100644 --- a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip +++ b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip @@ -23,56 +23,59 @@ @# [START {@sample.regionTag}] {@importList(sample.initCode.importSection.appImports)} - @if convertText(sample) - import six - @end + @let convertTextCode = convertText(sample) + @if convertTextCode + import six + + @end - def sample_{@apiMethod.name}({@sampleFuncParam(sample.initCode.argDefaultParams)}): - @# [START {@sample.regionTag}_core] + def sample_{@apiMethod.name}({@sampleFuncParam(sample.initCode.argDefaultParams)}): + @# [START {@sample.regionTag}_core] - client = {@apiMethod.apiModuleName}.{@apiMethod.apiClassName}() + client = {@apiMethod.apiModuleName}.{@apiMethod.apiClassName}() - @if sample.initCode.argDefaultLines - @join line : util.pretty(initCode(sample.initCode.argDefaultLines)) - @# {@line} - @end + @if sample.initCode.argDefaultLines + @join line : util.pretty(initCode(sample.initCode.argDefaultLines)) + @# {@line} + @end - # FIXME(hzyi): handle ListInitType, MapInitType and StructInitType correctly - {@convertText(sample)} - @end - @if sample.initCode.lines - {@initCode(sample.initCode.lines)} + # FIXME(hzyi): handle ListInitType, MapInitType and StructInitType correctly + {@convertTextCode} + @end + @if sample.initCode.lines + {@initCode(sample.initCode.lines)} - @end - @switch sample.callingForm - @case "Request" - {@optionalArrayMethodSampleCodeNonStreaming(apiMethod, sample.initCode)} - {@processResponse(sample)} - @case "RequestPaged" - {@pagedOptionalArrayMethodSampleCodePaged(apiMethod, sample)} - @case "RequestPagedAll" - {@pagedOptionalArrayMethodSampleCodeAll(apiMethod, sample)} - @case "RequestStreamingBidi" - {@optionalArrayMethodSampleCodeBidiStreaming(apiMethod, sample.initCode)} - {@processResponse(sample)} - @case "RequestStreamingClient" - {@optionalArrayMethodSampleCodeClientStreaming(apiMethod, sample.initCode)} - {@processResponse(sample)} - @case "RequestStreamingServer" - {@optionalArrayMethodSampleCodeServerStreaming(apiMethod, sample.initCode)} - {@processResponse(sample)} - @case "LongRunningPromise" - {@lroSampleCode(apiMethod, sample.initCode)} - {@processResponse(sample)} - @default - $unhandledCallingForm: {@sample.callingForm} in sample "{@apiMethod.getClass.getSimpleName}"$ - @end + @end + @switch sample.callingForm + @case "Request" + {@optionalArrayMethodSampleCodeNonStreaming(apiMethod, sample.initCode)} + {@processResponse(sample)} + @case "RequestPaged" + {@pagedOptionalArrayMethodSampleCodePaged(apiMethod, sample)} + @case "RequestPagedAll" + {@pagedOptionalArrayMethodSampleCodeAll(apiMethod, sample)} + @case "RequestStreamingBidi" + {@optionalArrayMethodSampleCodeBidiStreaming(apiMethod, sample.initCode)} + {@processResponse(sample)} + @case "RequestStreamingClient" + {@optionalArrayMethodSampleCodeClientStreaming(apiMethod, sample.initCode)} + {@processResponse(sample)} + @case "RequestStreamingServer" + {@optionalArrayMethodSampleCodeServerStreaming(apiMethod, sample.initCode)} + {@processResponse(sample)} + @case "LongRunningPromise" + {@lroSampleCode(apiMethod, sample.initCode)} + {@processResponse(sample)} + @default + $unhandledCallingForm: {@sample.callingForm} in sample "{@apiMethod.getClass.getSimpleName}"$ + @end - @# [END {@sample.regionTag}_core] + @# [END {@sample.regionTag}_core] - @# [END {@sample.regionTag}] - # FIXME(pongad): add a main method + @# [END {@sample.regionTag}] + # FIXME(pongad): add a main method + @end @end @private sampleFuncParam(defaultParams) @@ -81,16 +84,6 @@ @end @end -@private shouldImportSix(defaultParams) - @join param : defaultParams - @if param.lineType == "SimpleInitLine" - @if param.typeName == "str" - needsImportSix: TRUE - @end - @end - @end -@end - @private convertText(sample) @join line : sample.initCode.argDefaultLines @if line.lineType == "SimpleInitLine" From c1e7bc3b0f0ccfb5c9b80e70101e001df1989cd1 Mon Sep 17 00:00:00 2001 From: Hanzhen Yi Date: Thu, 30 Aug 2018 12:54:14 -0700 Subject: [PATCH 6/6] conflicts --- .../com/google/api/codegen/py/standalone_sample.snip | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip index f8ad6406ad..1b810af51e 100644 --- a/src/main/resources/com/google/api/codegen/py/standalone_sample.snip +++ b/src/main/resources/com/google/api/codegen/py/standalone_sample.snip @@ -73,8 +73,9 @@ $unhandledCallingForm: {@sample.callingForm} in sample "{@apiMethod.getClass.getSimpleName}"$ @end - @# [END {@sample.regionTag}_core] - @# [END {@sample.regionTag}] + @# [END {@sample.regionTag}_core] + @# [END {@sample.regionTag}] + @end def main(): @# FIXME: Convert argv from strings to the correct types.