@looker/sdk-codegen 21.9.0 → 21.9.3

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/lib/codeGen.d.ts +14 -0
  3. package/lib/codeGen.js +19 -0
  4. package/lib/codeGen.js.map +1 -1
  5. package/lib/codeGenerators.d.ts +2 -2
  6. package/lib/codeGenerators.js.map +1 -1
  7. package/lib/csharp.gen.js.map +1 -1
  8. package/lib/esm/codeGen.js +19 -0
  9. package/lib/esm/codeGen.js.map +1 -1
  10. package/lib/esm/codeGenerators.js.map +1 -1
  11. package/lib/esm/csharp.gen.js.map +1 -1
  12. package/lib/esm/exampleInfo.js.map +1 -1
  13. package/lib/esm/go.gen.js.map +1 -1
  14. package/lib/esm/kotlin.gen.js.map +1 -1
  15. package/lib/esm/pseudo.gen.js.map +1 -1
  16. package/lib/esm/python.gen.js +1 -1
  17. package/lib/esm/python.gen.js.map +1 -1
  18. package/lib/esm/sdkModels.js +380 -21
  19. package/lib/esm/sdkModels.js.map +1 -1
  20. package/lib/esm/specConverter.js +2 -2
  21. package/lib/esm/specConverter.js.map +1 -1
  22. package/lib/esm/specDiff.js +2 -0
  23. package/lib/esm/specDiff.js.map +1 -1
  24. package/lib/esm/swift.gen.js.map +1 -1
  25. package/lib/esm/typescript.gen.js +154 -10
  26. package/lib/esm/typescript.gen.js.map +1 -1
  27. package/lib/exampleInfo.d.ts +2 -14
  28. package/lib/exampleInfo.js.map +1 -1
  29. package/lib/go.gen.js.map +1 -1
  30. package/lib/kotlin.gen.js.map +1 -1
  31. package/lib/pseudo.gen.js.map +1 -1
  32. package/lib/python.gen.js +1 -1
  33. package/lib/python.gen.js.map +1 -1
  34. package/lib/sdkModels.d.ts +21 -1
  35. package/lib/sdkModels.js +382 -21
  36. package/lib/sdkModels.js.map +1 -1
  37. package/lib/specConverter.d.ts +4 -4
  38. package/lib/specConverter.js +2 -2
  39. package/lib/specConverter.js.map +1 -1
  40. package/lib/specDiff.js +2 -0
  41. package/lib/specDiff.js.map +1 -1
  42. package/lib/swift.gen.js.map +1 -1
  43. package/lib/typescript.gen.d.ts +13 -0
  44. package/lib/typescript.gen.js +153 -9
  45. package/lib/typescript.gen.js.map +1 -1
  46. package/package.json +6 -5
  47. package/lib/esm/testUtils/index.js +0 -2
  48. package/lib/esm/testUtils/index.js.map +0 -1
  49. package/lib/esm/testUtils/testUtils.js +0 -53
  50. package/lib/esm/testUtils/testUtils.js.map +0 -1
  51. package/lib/testUtils/index.js +0 -17
  52. package/lib/testUtils/index.js.map +0 -1
  53. package/lib/testUtils/testUtils.js +0 -64
  54. package/lib/testUtils/testUtils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kotlin.gen.js","names":["_sdkModels","require","_codeGen","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","KotlinGen","CodeGen","constructor","arguments","supportsMultiApi","isDefaultApi","apiVersion","defaultApi","sdkClassName","concat","apiRef","apiNamespace","methodsPrologue","_indent","warnEditing","streamsPrologue","methodsEpilogue","modelsPrologue","modelsEpilogue","commentHeader","indent","text","commentStr","length","undefined","noComment","commentBlock","beginRegion","description","endRegion","declareProperty","property","optional","required","type","typeMap","attr","hasSpecialNeeds","jsonName","result","name","paramComment","param","mapped","describeParam","declareParameter","method","paramMappedType","pOpt","default","assignType","inputs","className","mt","args","bump","bumper","v","arrayValue","push","open","useModelClassForTypes","typeOpen","nl","join","typeClose","assignParams","hasComplexArg","keys","params","allParams","forEach","p","argValue","indentStr","arg","argSetSep","intrinsic","argDelimiter","makeTheCall","_method$returnType","typeName","returnType","resp","methodHeaderComment","_method$description","streamer","lines","trim","resultType","httpMethod","endpoint","responseIsBoth","responseIsBinary","methodHeaderDeclaration","trimEnd","deprecated","jvmOverloads","paramDelimiter","optionalParams","methodSignature","encodePathParams","encodings","pathParams","declareMethod","httpCall","streamerSignature","declareStreamer","streamCall","declareEnumValue","mayQuote","describeProperty","typeSignature","EnumType","props","values","properties","map","prop","header","declareType","num","enumDelimiter","propDelimiter","errorResponses","_method","httpPath","path","prefix","indexOf","replace","argGroup","hash","argBump","argWrapper","argList","nullStr","argFill","current","httpArgs","request","useRequest","bodyArg","queryArgs","it","toLowerCase","summary","typeNames","countError","names","api","types","Error","refCount","filter","asString","_","ktTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","asVal","string","uri","url","void","_i","_v","elementType","mapName","JSON","stringify","exports"],"sources":["../src/kotlin.gen.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type {\n Arg,\n ArgValues,\n EnumValueType,\n IMethod,\n IParameter,\n IProperty,\n IType,\n} from './sdkModels';\nimport { EnumType, describeParam, mayQuote } from './sdkModels';\nimport type { CodeAssignment, IMappedType } from './codeGen';\nimport { CodeGen, commentBlock } from './codeGen';\n\nexport class KotlinGen extends CodeGen {\n codePath = './kotlin/src/main/com/';\n packagePath = 'looker';\n itself = 'this';\n fileExtension = '.kt';\n commentStr = '// ';\n nullStr = 'null';\n transport = 'transport';\n\n argDelimiter = ', ';\n // makeTheCall definitions\n argSetSep = ' = ';\n hashSetSep = ' to ';\n arrayOpen = 'arrayOf(';\n arrayClose = ')';\n hashOpen = 'mapOf(';\n hashClose = ')';\n hashKeyQuote = '\"';\n typeOpen = '(';\n typeClose = ')';\n useModelClassForTypes = true;\n\n paramDelimiter = ',\\n';\n propDelimiter = ',\\n';\n codeQuote = '\"';\n enumDelimiter = ',\\n';\n\n indentStr = ' ';\n endTypeStr = '\\n) : Serializable';\n needsRequestTypes = false;\n willItStream = true;\n\n private readonly defaultApi = '4.0';\n\n supportsMultiApi(): boolean {\n return false;\n }\n\n isDefaultApi() {\n return this.apiVersion === this.defaultApi;\n }\n\n // TODO create `defaultPackageName` property in CodeGen\n sdkClassName() {\n return this.isDefaultApi() ? 'LookerSDK' : `Looker${this.apiRef}SDK`;\n }\n\n /**\n * Return either api versioned namespace text or empty string if current API is the default\n * @returns {string} 'api40' or '', for example\n */\n apiNamespace() {\n if (this.apiVersion === this.defaultApi) return '';\n return `.api${this.apiRef}`;\n }\n\n methodsPrologue(_indent: string) {\n return `\n// ${this.warnEditing()}\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.looker.rtl.*\nimport java.util.*\n\nclass ${this.sdkClassName()}(authSession: AuthSession) : APIMethods(authSession) {\n\n val stream by lazy { ${this.sdkClassName()}Stream(this.authSession) }\n`;\n }\n\n streamsPrologue(_indent: string): string {\n return `\n// ${this.warnEditing()}\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.looker.rtl.*\nimport java.util.*\n\nclass ${this.sdkClassName()}Stream(authSession: AuthSession) : APIMethods(authSession) {\n\n`;\n }\n\n methodsEpilogue(_indent: string) {\n return '\\n}';\n }\n\n modelsPrologue(_indent: string) {\n return `\n// ${this.warnEditing()}\n\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.looker.rtl.*\nimport java.io.Serializable\nimport java.util.*\n`;\n }\n\n modelsEpilogue(_indent: string) {\n return '';\n }\n\n // TODO create methodHeader(IMethod) and typeHeader(IType) https://kotlinlang.org/docs/reference/kotlin-doc.html\n commentHeader(indent: string, text: string | undefined, commentStr = ' * ') {\n if (this.noComment || !text) return '';\n if (commentStr === ' ') {\n return `${indent}/**\\n\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\n`;\n }\n return `${indent}/**\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\n`;\n }\n\n beginRegion(indent: string, description: string): string {\n return `${indent}//region ${description}`;\n }\n\n endRegion(indent: string, description: string): string {\n return `${indent}//endregion ${description}`;\n }\n\n declareProperty(indent: string, property: IProperty) {\n const optional = !property.required ? '? = null' : '';\n const type = this.typeMap(property.type);\n // handle property names with special characters\n const attr = property.hasSpecialNeeds\n ? `${indent}@SerializedName(\"${property.jsonName}\")\\n`\n : '';\n const result = `${attr}${indent}var ${property.name}: ${type.name}${optional}`;\n return result;\n }\n\n paramComment(param: IParameter, mapped: IMappedType) {\n return `@param {${mapped.name}} ${param.name} ${describeParam(param)}`;\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const mapped = this.paramMappedType(param, method);\n let pOpt = '';\n if (!param.required) {\n pOpt = '?';\n }\n return (\n `${indent}${param.name}: ${mapped.name}${pOpt}` +\n (param.required ? '' : mapped.default ? ` = ${mapped.default}` : '')\n );\n }\n\n /**\n * Maps input values into type\n * @param indent starting indent level\n * @param type that receives assignments\n * @param inputs to assign to type\n */\n assignType(indent: string, type: IType, inputs: ArgValues): string {\n const result = super.assignType(indent, type, inputs);\n if (result || type.className !== 'DelimArrayType') return result;\n const mt = this.typeMap(type);\n const args: string[] = [];\n // child properties are indented one level\n const bump = this.bumper(indent);\n const v = this.arrayValue(bump, type, inputs);\n args.push(v);\n const open = this.useModelClassForTypes\n ? `${mt.name}${this.typeOpen}`\n : this.typeOpen;\n const nl = `,\\n${bump}`;\n // need a bump after `open` to account for the first argument\n // not getting the proper bump from args.join()\n return `${open}\\n${bump}${args.join(nl)}\\n${indent}${this.typeClose}`;\n }\n\n // overridden from CodeGen\n assignParams(method: IMethod, inputs: ArgValues): string {\n const args: string[] = [];\n let hasComplexArg = false;\n if (Object.keys(inputs).length > 0) {\n const params = method.allParams;\n params.forEach((p) => {\n const v = this.argValue(this.indentStr, p, inputs);\n if (v !== '') {\n // const arg = this.useNamedArguments ? `${p.name}${this.argSetSep}${v}` : v\n const arg = !p.required ? `${p.name}${this.argSetSep}${v}` : v;\n args.push(arg);\n if (!p.type.intrinsic) {\n hasComplexArg = true;\n }\n }\n });\n }\n let open = '';\n if (args.length > 1 || hasComplexArg) {\n open = `\\n${this.indentStr}`;\n }\n return args.length > 0 ? `${open}${args.join(this.argDelimiter)}` : '';\n }\n\n // overridden from CodeGen\n makeTheCall(method: IMethod, inputs: ArgValues): string {\n const typeName = method.returnType?.type\n ? this.typeMap(method.returnType.type).name\n : 'String';\n const resp = `val response = await sdk.ok<${typeName}>(sdk.${method.name}(`;\n const args = this.assignParams(method, inputs);\n return `${resp}${args}))`;\n }\n\n methodHeaderComment(method: IMethod, streamer = false) {\n const lines: string[] = [];\n\n lines.push(method.description?.trim());\n\n if (method.allParams.length) {\n lines.push('');\n method.allParams.forEach((p) =>\n lines.push(this.paramComment(p, this.paramMappedType(p, method)))\n );\n }\n\n const resultType = streamer ? 'ByteArray' : this.typeMap(method.type).name;\n lines.push('');\n lines.push(`${method.httpMethod} ${method.endpoint} -> ${resultType}`);\n\n if (method.responseIsBoth()) {\n lines.push('');\n lines.push('**Note**: Binary content may be returned by this method.');\n } else if (method.responseIsBinary()) {\n lines.push('');\n lines.push('**Note**: Binary content is returned by this method.');\n }\n\n return lines.join('\\n');\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const bump = indent + this.indentStr;\n\n const params: string[] = [];\n const args = method.allParams; // get the params in signature order\n if (args && args.length > 0)\n args.forEach((p) => params.push(this.declareParameter(bump, method, p)));\n\n return `\n${this.commentHeader(\n indent,\n this.methodHeaderComment(method, streamer)\n).trimEnd()}\n${this.deprecated(indent, method)}${indent}${this.jvmOverloads(method)}fun ${\n method.name\n }(\n${params.join(this.paramDelimiter)}\n${indent}) : SDKResponse {\n`;\n }\n\n deprecated(indent: string, method: IMethod) {\n return method.deprecated\n ? `${indent}@Deprecated(message = \"Deprecated method\")\\n`\n : '';\n }\n\n jvmOverloads(method: IMethod) {\n return method.optionalParams.length > 0 ? '@JvmOverloads ' : '';\n }\n\n methodSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, false);\n }\n\n encodePathParams(indent: string, method: IMethod) {\n let encodings = '';\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n encodings += `${indent}val path_${param.name} = encodeParam(${param.name})\\n`;\n }\n }\n return encodings;\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent);\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n );\n }\n\n streamerSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, true);\n }\n\n declareStreamer(indent: string, method: IMethod) {\n const bump = this.bumper(indent);\n return (\n this.streamerSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.streamCall(bump, method) +\n `\\n${indent}}`\n );\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}${mayQuote(value)}`;\n }\n\n describeProperty(property: IProperty) {\n return `@property ${property.name} ${super.describeProperty(property)}`;\n }\n\n typeSignature(indent: string, type: IType) {\n if (type instanceof EnumType) {\n return `\n${this.commentHeader(indent, type.description).trim()}\n${indent}enum class ${type.name} : Serializable {\n`.trim();\n } else {\n const props = Object.values(type.properties).map((prop) =>\n this.describeProperty(prop)\n );\n\n const header = `\n${type.description}\n\n${props.join('\\n')}\n`.trim();\n\n return `\n${this.commentHeader(indent, header).trim()}\n${indent}data class ${type.name} (\n`.trim();\n }\n }\n\n declareType(indent: string, type: IType) {\n const bump = this.bumper(indent);\n if (type instanceof EnumType) {\n const num = type as EnumType;\n const props = num.values.map((value) =>\n this.declareEnumValue(bump, value)\n );\n\n return `\n${this.typeSignature(indent, type)}\n${props.join(this.enumDelimiter)}\n}\n`.trim();\n } else {\n const props = Object.values(type.properties).map((prop) =>\n this.declareProperty(bump, prop)\n );\n\n return `\n${this.typeSignature(indent, type)}\n${props.join(this.propDelimiter)}\n) : Serializable\n`.trim();\n }\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return '';\n // const results: string[] = method.errorResponses\n // .map(r => `I${r.type.name}`)\n // return results.join(' | ')\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || '';\n if (path.indexOf('{') >= 0)\n return '\"' + path.replace(/{/gi, '${path_' + prefix) + '\"';\n return `\"${path}\"`;\n }\n\n argGroup(indent: string, args: Arg[], prefix?: string) {\n if (!args || args.length === 0) return 'mapOf()';\n const hash: string[] = [];\n for (const arg of args) {\n if (prefix) {\n hash.push(`\"${arg}\" to ${prefix}${arg}`);\n } else {\n hash.push(`\"${arg}\" to ${arg}`);\n }\n }\n const bump = this.bumper(indent);\n const argBump = this.bumper(bump);\n const argWrapper = `,\\n ${argBump}`;\n return `\\n${bump}mapOf(${hash.join(argWrapper)})`;\n }\n\n argList(indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || '';\n return args && args.length !== 0\n ? `\\n${indent}${prefix}${args.join(this.argDelimiter + prefix)}`\n : this.nullStr;\n }\n\n // this is a builder function to produce arguments with optional null place holders but no extra required optional arguments\n argFill(current: string, args: string) {\n if (!current && args.trim() === this.nullStr) {\n // Don't append trailing optional arguments if none have been set yet\n return '';\n }\n return `${args}${current ? this.argDelimiter : ''}${current}`;\n }\n\n // build the http argument list from back to front, so trailing undefined arguments\n // can be omitted. Path arguments are resolved as part of the path parameter to general\n // purpose API method call\n // e.g.\n // {queryArgs...}, bodyArg, {headerArgs...}, {cookieArgs...}\n // {queryArgs...}, null, null, {cookieArgs...}\n // null, bodyArg\n // {queryArgs...}\n httpArgs(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : '';\n // add options at the end of the request calls. this will cause all other arguments to be\n // filled in but there's no way to avoid this for passing in the last optional parameter.\n // Fortunately, this code bloat is minimal and also hidden from the consumer.\n // let result = this.argFill('', 'options')\n // let result = this.argFill('', this.argGroup(indent, method.cookieArgs, request))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs, request))\n let result = this.argFill(\n '',\n method.bodyArg ? `${request}${method.bodyArg}` : this.nullStr\n );\n result = this.argFill(\n result,\n this.argGroup(indent, method.queryArgs, request)\n );\n return result;\n }\n\n httpCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : '';\n const type = this.typeMap(method.type);\n const args = this.httpArgs(indent, method);\n // TODO don't currently need these for Kotlin\n // const errors = this.errorResponses(indent, method)\n return `${indent}return ${this.it(method.httpMethod.toLowerCase())}<${\n type.name\n }>(${this.httpPath(method.endpoint, request)}${args ? ', ' + args : ''})`;\n }\n\n streamCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : '';\n // const type = this.typeMap(method.type)\n const bump = indent + this.indentStr;\n const args = this.httpArgs(bump, method);\n // const errors = this.errorResponses(indent, method)\n return `${bump}return ${this.it(\n method.httpMethod.toLowerCase()\n )}<ByteArray>(${this.httpPath(method.endpoint, request)}${\n args ? ', ' + args : ''\n })`;\n }\n\n summary(indent: string, text: string | undefined) {\n return this.commentHeader(indent, text);\n }\n\n // TODO avoid duplicate code\n typeNames(countError = true) {\n const names: string[] = [];\n if (!this.api) return names;\n if (countError) {\n this.api.types.Error.refCount++;\n } else {\n this.api.types.Error.refCount = 0;\n }\n const types = this.api.types;\n Object.values(types)\n .filter((type) => type.refCount > 0 && !type.intrinsic)\n .forEach((type) => names.push(`I${type.name}`));\n // TODO import default constants if necessary\n // Object.values(types)\n // .filter(type => type instanceof RequestType)\n // .forEach(type => names.push(`${strDefault}${type.name.substring(strRequest.length)}`))\n return names;\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type);\n const mt = this.nullStr;\n const asString: CodeAssignment = (_, v) => `\"${v}\"`;\n const ktTypes: Record<string, IMappedType> = {\n any: { default: mt, name: 'Any' },\n boolean: { default: mt, name: 'Boolean' },\n byte: { default: mt, name: 'binary' },\n date: { default: mt, name: 'Date' },\n datetime: { default: mt, name: 'Date' },\n double: { default: mt, name: 'Double' },\n float: { default: mt, name: 'Float' },\n int32: { default: mt, name: 'Int' },\n int64: { default: mt, name: 'Long' },\n integer: { default: mt, name: 'Int' },\n number: { default: mt, name: 'Double' },\n object: { default: mt, name: 'Any' },\n password: { default: mt, name: 'Password', asVal: asString },\n string: { default: mt, name: 'String', asVal: asString },\n uri: { default: mt, name: 'UriString', asVal: asString },\n url: { default: mt, name: 'UrlString', asVal: asString },\n void: { default: mt, name: 'Void', asVal: (_i, _v: any) => 'String' },\n };\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType);\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `Array<${map.name}>` };\n case 'HashType': {\n const mapName = type.elementType.name === 'string' ? 'Any' : map.name; // TODO fix bad API spec, like MergeQuery vis_config\n // TODO figure out this bizarre string template error either in IntelliJ or TypeScript\n // return {name: `Map<String,${map.name}>`, default: '{}'}\n return { default: this.nullStr, name: 'Map<String' + `,${mapName}>` };\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n asVal: (_, v) => `DelimArray<${map.name}>(arrayOf(${v}))`,\n };\n case 'EnumType':\n return {\n default: '',\n name: type.name,\n asVal: (_, v) => `${type.name}.${v}`,\n };\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`);\n }\n\n if (type.name) {\n return (\n ktTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n );\n } else {\n throw new Error('Cannot output a nameless type.');\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"kotlin.gen.js","names":["_sdkModels","require","_codeGen","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","KotlinGen","CodeGen","constructor","arguments","supportsMultiApi","isDefaultApi","apiVersion","defaultApi","sdkClassName","concat","apiRef","apiNamespace","methodsPrologue","_indent","warnEditing","streamsPrologue","methodsEpilogue","modelsPrologue","modelsEpilogue","commentHeader","indent","text","commentStr","length","undefined","noComment","commentBlock","beginRegion","description","endRegion","declareProperty","property","optional","required","type","typeMap","attr","hasSpecialNeeds","jsonName","result","name","paramComment","param","mapped","describeParam","declareParameter","method","paramMappedType","pOpt","default","assignType","inputs","className","mt","args","bump","bumper","v","arrayValue","push","open","useModelClassForTypes","typeOpen","nl","join","typeClose","assignParams","hasComplexArg","keys","params","allParams","forEach","p","argValue","indentStr","arg","argSetSep","intrinsic","argDelimiter","makeTheCall","_method$returnType","typeName","returnType","resp","methodHeaderComment","_method$description","streamer","lines","trim","resultType","httpMethod","endpoint","responseIsBoth","responseIsBinary","methodHeaderDeclaration","trimEnd","deprecated","jvmOverloads","paramDelimiter","optionalParams","methodSignature","encodePathParams","encodings","pathParams","declareMethod","httpCall","streamerSignature","declareStreamer","streamCall","declareEnumValue","mayQuote","describeProperty","typeSignature","EnumType","props","values","properties","map","prop","header","declareType","num","enumDelimiter","propDelimiter","errorResponses","_method","httpPath","path","prefix","indexOf","replace","argGroup","hash","argBump","argWrapper","argList","nullStr","argFill","current","httpArgs","request","useRequest","bodyArg","queryArgs","it","toLowerCase","summary","typeNames","countError","names","api","types","Error","refCount","filter","asString","_","ktTypes","any","boolean","byte","date","datetime","double","float","int32","int64","integer","number","object","password","asVal","string","uri","url","void","_i","_v","elementType","mapName","JSON","stringify","exports"],"sources":["../src/kotlin.gen.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type {\n Arg,\n ArgValues,\n EnumValueType,\n IMethod,\n IParameter,\n IProperty,\n IType,\n} from './sdkModels';\nimport { EnumType, describeParam, mayQuote } from './sdkModels';\nimport type { CodeAssignment, IMappedType } from './codeGen';\nimport { CodeGen, commentBlock } from './codeGen';\n\nexport class KotlinGen extends CodeGen {\n codePath = './kotlin/src/main/com/';\n packagePath = 'looker';\n itself = 'this';\n fileExtension = '.kt';\n commentStr = '// ';\n nullStr = 'null';\n transport = 'transport';\n\n argDelimiter = ', ';\n // makeTheCall definitions\n argSetSep = ' = ';\n hashSetSep = ' to ';\n arrayOpen = 'arrayOf(';\n arrayClose = ')';\n hashOpen = 'mapOf(';\n hashClose = ')';\n hashKeyQuote = '\"';\n typeOpen = '(';\n typeClose = ')';\n useModelClassForTypes = true;\n\n paramDelimiter = ',\\n';\n propDelimiter = ',\\n';\n codeQuote = '\"';\n enumDelimiter = ',\\n';\n\n indentStr = ' ';\n endTypeStr = '\\n) : Serializable';\n needsRequestTypes = false;\n willItStream = true;\n\n private readonly defaultApi = '4.0';\n\n supportsMultiApi(): boolean {\n return false;\n }\n\n isDefaultApi() {\n return this.apiVersion === this.defaultApi;\n }\n\n // TODO create `defaultPackageName` property in CodeGen\n sdkClassName() {\n return this.isDefaultApi() ? 'LookerSDK' : `Looker${this.apiRef}SDK`;\n }\n\n /**\n * Return either api versioned namespace text or empty string if current API is the default\n * @returns {string} 'api40' or '', for example\n */\n apiNamespace() {\n if (this.apiVersion === this.defaultApi) return '';\n return `.api${this.apiRef}`;\n }\n\n methodsPrologue(_indent: string) {\n return `\n// ${this.warnEditing()}\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.looker.rtl.*\nimport java.util.*\n\nclass ${this.sdkClassName()}(authSession: AuthSession) : APIMethods(authSession) {\n\n val stream by lazy { ${this.sdkClassName()}Stream(this.authSession) }\n`;\n }\n\n streamsPrologue(_indent: string): string {\n return `\n// ${this.warnEditing()}\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.looker.rtl.*\nimport java.util.*\n\nclass ${this.sdkClassName()}Stream(authSession: AuthSession) : APIMethods(authSession) {\n\n`;\n }\n\n methodsEpilogue(_indent: string) {\n return '\\n}';\n }\n\n modelsPrologue(_indent: string) {\n return `\n// ${this.warnEditing()}\n\npackage com.looker.sdk${this.apiNamespace()}\n\nimport com.looker.rtl.*\nimport java.io.Serializable\nimport java.util.*\n`;\n }\n\n modelsEpilogue(_indent: string) {\n return '';\n }\n\n // TODO create methodHeader(IMethod) and typeHeader(IType) https://kotlinlang.org/docs/reference/kotlin-doc.html\n commentHeader(indent: string, text: string | undefined, commentStr = ' * ') {\n if (this.noComment || !text) return '';\n if (commentStr === ' ') {\n return `${indent}/**\\n\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\n`;\n }\n return `${indent}/**\\n${commentBlock(\n text,\n indent,\n commentStr\n )}\\n${indent} */\\n`;\n }\n\n beginRegion(indent: string, description: string): string {\n return `${indent}//region ${description}`;\n }\n\n endRegion(indent: string, description: string): string {\n return `${indent}//endregion ${description}`;\n }\n\n declareProperty(indent: string, property: IProperty) {\n const optional = !property.required ? '? = null' : '';\n const type = this.typeMap(property.type);\n // handle property names with special characters\n const attr = property.hasSpecialNeeds\n ? `${indent}@SerializedName(\"${property.jsonName}\")\\n`\n : '';\n const result = `${attr}${indent}var ${property.name}: ${type.name}${optional}`;\n return result;\n }\n\n paramComment(param: IParameter, mapped: IMappedType) {\n return `@param {${mapped.name}} ${param.name} ${describeParam(param)}`;\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n const mapped = this.paramMappedType(param, method);\n let pOpt = '';\n if (!param.required) {\n pOpt = '?';\n }\n return (\n `${indent}${param.name}: ${mapped.name}${pOpt}` +\n (param.required ? '' : mapped.default ? ` = ${mapped.default}` : '')\n );\n }\n\n /**\n * Maps input values into type\n * @param indent starting indent level\n * @param type that receives assignments\n * @param inputs to assign to type\n */\n assignType(indent: string, type: IType, inputs: ArgValues): string {\n const result = super.assignType(indent, type, inputs);\n if (result || type.className !== 'DelimArrayType') return result;\n const mt = this.typeMap(type);\n const args: string[] = [];\n // child properties are indented one level\n const bump = this.bumper(indent);\n const v = this.arrayValue(bump, type, inputs);\n args.push(v);\n const open = this.useModelClassForTypes\n ? `${mt.name}${this.typeOpen}`\n : this.typeOpen;\n const nl = `,\\n${bump}`;\n // need a bump after `open` to account for the first argument\n // not getting the proper bump from args.join()\n return `${open}\\n${bump}${args.join(nl)}\\n${indent}${this.typeClose}`;\n }\n\n // overridden from CodeGen\n assignParams(method: IMethod, inputs: ArgValues): string {\n const args: string[] = [];\n let hasComplexArg = false;\n if (Object.keys(inputs).length > 0) {\n const params = method.allParams;\n params.forEach(p => {\n const v = this.argValue(this.indentStr, p, inputs);\n if (v !== '') {\n // const arg = this.useNamedArguments ? `${p.name}${this.argSetSep}${v}` : v\n const arg = !p.required ? `${p.name}${this.argSetSep}${v}` : v;\n args.push(arg);\n if (!p.type.intrinsic) {\n hasComplexArg = true;\n }\n }\n });\n }\n let open = '';\n if (args.length > 1 || hasComplexArg) {\n open = `\\n${this.indentStr}`;\n }\n return args.length > 0 ? `${open}${args.join(this.argDelimiter)}` : '';\n }\n\n // overridden from CodeGen\n makeTheCall(method: IMethod, inputs: ArgValues): string {\n const typeName = method.returnType?.type\n ? this.typeMap(method.returnType.type).name\n : 'String';\n const resp = `val response = await sdk.ok<${typeName}>(sdk.${method.name}(`;\n const args = this.assignParams(method, inputs);\n return `${resp}${args}))`;\n }\n\n methodHeaderComment(method: IMethod, streamer = false) {\n const lines: string[] = [];\n\n lines.push(method.description?.trim());\n\n if (method.allParams.length) {\n lines.push('');\n method.allParams.forEach(p =>\n lines.push(this.paramComment(p, this.paramMappedType(p, method)))\n );\n }\n\n const resultType = streamer ? 'ByteArray' : this.typeMap(method.type).name;\n lines.push('');\n lines.push(`${method.httpMethod} ${method.endpoint} -> ${resultType}`);\n\n if (method.responseIsBoth()) {\n lines.push('');\n lines.push('**Note**: Binary content may be returned by this method.');\n } else if (method.responseIsBinary()) {\n lines.push('');\n lines.push('**Note**: Binary content is returned by this method.');\n }\n\n return lines.join('\\n');\n }\n\n methodHeaderDeclaration(indent: string, method: IMethod, streamer = false) {\n const bump = indent + this.indentStr;\n\n const params: string[] = [];\n const args = method.allParams; // get the params in signature order\n if (args && args.length > 0)\n args.forEach(p => params.push(this.declareParameter(bump, method, p)));\n\n return `\n${this.commentHeader(\n indent,\n this.methodHeaderComment(method, streamer)\n).trimEnd()}\n${this.deprecated(indent, method)}${indent}${this.jvmOverloads(method)}fun ${\n method.name\n }(\n${params.join(this.paramDelimiter)}\n${indent}) : SDKResponse {\n`;\n }\n\n deprecated(indent: string, method: IMethod) {\n return method.deprecated\n ? `${indent}@Deprecated(message = \"Deprecated method\")\\n`\n : '';\n }\n\n jvmOverloads(method: IMethod) {\n return method.optionalParams.length > 0 ? '@JvmOverloads ' : '';\n }\n\n methodSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, false);\n }\n\n encodePathParams(indent: string, method: IMethod) {\n let encodings = '';\n if (method.pathParams.length > 0) {\n for (const param of method.pathParams) {\n encodings += `${indent}val path_${param.name} = encodeParam(${param.name})\\n`;\n }\n }\n return encodings;\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent);\n return (\n this.methodSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method) +\n `\\n${indent}}`\n );\n }\n\n streamerSignature(indent: string, method: IMethod) {\n return this.methodHeaderDeclaration(indent, method, true);\n }\n\n declareStreamer(indent: string, method: IMethod) {\n const bump = this.bumper(indent);\n return (\n this.streamerSignature(indent, method) +\n this.encodePathParams(bump, method) +\n this.streamCall(bump, method) +\n `\\n${indent}}`\n );\n }\n\n declareEnumValue(indent: string, value: EnumValueType) {\n return `${indent}${mayQuote(value)}`;\n }\n\n describeProperty(property: IProperty) {\n return `@property ${property.name} ${super.describeProperty(property)}`;\n }\n\n typeSignature(indent: string, type: IType) {\n if (type instanceof EnumType) {\n return `\n${this.commentHeader(indent, type.description).trim()}\n${indent}enum class ${type.name} : Serializable {\n`.trim();\n } else {\n const props = Object.values(type.properties).map(prop =>\n this.describeProperty(prop)\n );\n\n const header = `\n${type.description}\n\n${props.join('\\n')}\n`.trim();\n\n return `\n${this.commentHeader(indent, header).trim()}\n${indent}data class ${type.name} (\n`.trim();\n }\n }\n\n declareType(indent: string, type: IType) {\n const bump = this.bumper(indent);\n if (type instanceof EnumType) {\n const num = type as EnumType;\n const props = num.values.map(value => this.declareEnumValue(bump, value));\n\n return `\n${this.typeSignature(indent, type)}\n${props.join(this.enumDelimiter)}\n}\n`.trim();\n } else {\n const props = Object.values(type.properties).map(prop =>\n this.declareProperty(bump, prop)\n );\n\n return `\n${this.typeSignature(indent, type)}\n${props.join(this.propDelimiter)}\n) : Serializable\n`.trim();\n }\n }\n\n errorResponses(_indent: string, _method: IMethod) {\n return '';\n // const results: string[] = method.errorResponses\n // .map(r => `I${r.type.name}`)\n // return results.join(' | ')\n }\n\n httpPath(path: string, prefix?: string) {\n prefix = prefix || '';\n if (path.indexOf('{') >= 0)\n return '\"' + path.replace(/{/gi, '${path_' + prefix) + '\"';\n return `\"${path}\"`;\n }\n\n argGroup(indent: string, args: Arg[], prefix?: string) {\n if (!args || args.length === 0) return 'mapOf()';\n const hash: string[] = [];\n for (const arg of args) {\n if (prefix) {\n hash.push(`\"${arg}\" to ${prefix}${arg}`);\n } else {\n hash.push(`\"${arg}\" to ${arg}`);\n }\n }\n const bump = this.bumper(indent);\n const argBump = this.bumper(bump);\n const argWrapper = `,\\n ${argBump}`;\n return `\\n${bump}mapOf(${hash.join(argWrapper)})`;\n }\n\n argList(indent: string, args: Arg[], prefix?: string) {\n prefix = prefix || '';\n return args && args.length !== 0\n ? `\\n${indent}${prefix}${args.join(this.argDelimiter + prefix)}`\n : this.nullStr;\n }\n\n // this is a builder function to produce arguments with optional null place holders but no extra required optional arguments\n argFill(current: string, args: string) {\n if (!current && args.trim() === this.nullStr) {\n // Don't append trailing optional arguments if none have been set yet\n return '';\n }\n return `${args}${current ? this.argDelimiter : ''}${current}`;\n }\n\n // build the http argument list from back to front, so trailing undefined arguments\n // can be omitted. Path arguments are resolved as part of the path parameter to general\n // purpose API method call\n // e.g.\n // {queryArgs...}, bodyArg, {headerArgs...}, {cookieArgs...}\n // {queryArgs...}, null, null, {cookieArgs...}\n // null, bodyArg\n // {queryArgs...}\n httpArgs(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : '';\n // add options at the end of the request calls. this will cause all other arguments to be\n // filled in but there's no way to avoid this for passing in the last optional parameter.\n // Fortunately, this code bloat is minimal and also hidden from the consumer.\n // let result = this.argFill('', 'options')\n // let result = this.argFill('', this.argGroup(indent, method.cookieArgs, request))\n // result = this.argFill(result, this.argGroup(indent, method.headerArgs, request))\n let result = this.argFill(\n '',\n method.bodyArg ? `${request}${method.bodyArg}` : this.nullStr\n );\n result = this.argFill(\n result,\n this.argGroup(indent, method.queryArgs, request)\n );\n return result;\n }\n\n httpCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : '';\n const type = this.typeMap(method.type);\n const args = this.httpArgs(indent, method);\n // TODO don't currently need these for Kotlin\n // const errors = this.errorResponses(indent, method)\n return `${indent}return ${this.it(method.httpMethod.toLowerCase())}<${\n type.name\n }>(${this.httpPath(method.endpoint, request)}${args ? ', ' + args : ''})`;\n }\n\n streamCall(indent: string, method: IMethod) {\n const request = this.useRequest(method) ? 'request.' : '';\n // const type = this.typeMap(method.type)\n const bump = indent + this.indentStr;\n const args = this.httpArgs(bump, method);\n // const errors = this.errorResponses(indent, method)\n return `${bump}return ${this.it(\n method.httpMethod.toLowerCase()\n )}<ByteArray>(${this.httpPath(method.endpoint, request)}${\n args ? ', ' + args : ''\n })`;\n }\n\n summary(indent: string, text: string | undefined) {\n return this.commentHeader(indent, text);\n }\n\n // TODO avoid duplicate code\n typeNames(countError = true) {\n const names: string[] = [];\n if (!this.api) return names;\n if (countError) {\n this.api.types.Error.refCount++;\n } else {\n this.api.types.Error.refCount = 0;\n }\n const types = this.api.types;\n Object.values(types)\n .filter(type => type.refCount > 0 && !type.intrinsic)\n .forEach(type => names.push(`I${type.name}`));\n // TODO import default constants if necessary\n // Object.values(types)\n // .filter(type => type instanceof RequestType)\n // .forEach(type => names.push(`${strDefault}${type.name.substring(strRequest.length)}`))\n return names;\n }\n\n typeMap(type: IType): IMappedType {\n super.typeMap(type);\n const mt = this.nullStr;\n const asString: CodeAssignment = (_, v) => `\"${v}\"`;\n const ktTypes: Record<string, IMappedType> = {\n any: { default: mt, name: 'Any' },\n boolean: { default: mt, name: 'Boolean' },\n byte: { default: mt, name: 'binary' },\n date: { default: mt, name: 'Date' },\n datetime: { default: mt, name: 'Date' },\n double: { default: mt, name: 'Double' },\n float: { default: mt, name: 'Float' },\n int32: { default: mt, name: 'Int' },\n int64: { default: mt, name: 'Long' },\n integer: { default: mt, name: 'Int' },\n number: { default: mt, name: 'Double' },\n object: { default: mt, name: 'Any' },\n password: { default: mt, name: 'Password', asVal: asString },\n string: { default: mt, name: 'String', asVal: asString },\n uri: { default: mt, name: 'UriString', asVal: asString },\n url: { default: mt, name: 'UrlString', asVal: asString },\n void: { default: mt, name: 'Void', asVal: (_i, _v: any) => 'String' },\n };\n\n if (type.elementType) {\n // This is a structure with nested types\n const map = this.typeMap(type.elementType);\n switch (type.className) {\n case 'ArrayType':\n return { default: this.nullStr, name: `Array<${map.name}>` };\n case 'HashType': {\n const mapName = type.elementType.name === 'string' ? 'Any' : map.name; // TODO fix bad API spec, like MergeQuery vis_config\n // TODO figure out this bizarre string template error either in IntelliJ or TypeScript\n // return {name: `Map<String,${map.name}>`, default: '{}'}\n return { default: this.nullStr, name: 'Map<String' + `,${mapName}>` };\n }\n case 'DelimArrayType':\n return {\n default: this.nullStr,\n name: `DelimArray<${map.name}>`,\n asVal: (_, v) => `DelimArray<${map.name}>(arrayOf(${v}))`,\n };\n case 'EnumType':\n return {\n default: '',\n name: type.name,\n asVal: (_, v) => `${type.name}.${v}`,\n };\n }\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`);\n }\n\n if (type.name) {\n return (\n ktTypes[type.name] || { default: this.nullStr, name: `${type.name}` }\n );\n } else {\n throw new Error('Cannot output a nameless type.');\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pseudo.gen.js","names":["_codeGen","require","_sdkModels","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","PseudoGen","CodeGen","constructor","arguments","methodSignature","indent","method","params","allParams","args","map","p","declareParameter","bump","bumper","fragment","length","concat","join","trim","commentHeader","description","trimRight","operationId","primaryResponse","type","name","text","_commentStr","noComment","comment","commentStr","construct","_indent","_type","declareMethod","_method","param","result","required","declareProperty","property","lb","rb","encodePathParams","methodsEpilogue","methodsPrologue","modelsEpilogue","modelsPrologue","summary","_text","typeSignature","typeOpen","declareType","ArrayType","elementType","trimStart","exports"],"sources":["../src/pseudo.gen.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport { CodeGen } from './codeGen';\nimport type { IMethod, IParameter, IProperty, IType } from './sdkModels';\nimport { ArrayType } from './sdkModels';\n\n// eslint-disable @typescript-eslint/no-unused-vars\n\n/**\n * Pseudocde generator\n */\nexport class PseudoGen extends CodeGen {\n commentStr = '\"';\n endTypeStr = '}';\n /**\n * Generic prototype-style method signature generator\n *\n * NOTE: Every language generator should override this methodSignature function\n *\n * @param indent indentation for code\n * @param method for signature\n */\n methodSignature(indent: string, method: IMethod): string {\n const params = method.allParams;\n const args = params.map((p) => this.declareParameter(indent, method, p));\n const bump = this.bumper(indent);\n const fragment =\n args.length === 0\n ? ''\n : `\\n${bump}${args.join(',\\n' + bump).trim()}${indent}\\n`;\n return (\n this.commentHeader(indent, method.description.trimRight()) +\n `${indent}${method.operationId}(${fragment}): ${method.primaryResponse.type.name}`\n );\n }\n\n commentHeader(\n indent: string,\n text: string | undefined,\n _commentStr?: string\n ): string | string {\n if (this.noComment) return '';\n const comment = super.commentHeader(indent, text, _commentStr).trimRight();\n if (!comment) return '';\n return `${comment}${this.commentStr}\\n`;\n }\n\n construct(_indent: string, _type: IType): string {\n return '';\n }\n\n declareMethod(_indent: string, _method: IMethod): string {\n return '';\n }\n\n declareParameter(\n indent: string,\n _method: IMethod,\n param: IParameter\n ): string {\n let result = `${indent}${param.name}: ${param.type.name}`;\n if (!param.required) result = `[${result}]`;\n return this.commentHeader(indent, param.description) + result;\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const lb = property.required ? '' : '[';\n const rb = property.required ? '' : ']';\n return (\n this.commentHeader(indent, property.description) +\n `${indent}${lb}${property.name}: ${property.type.name}${rb}`\n );\n }\n\n encodePathParams(_indent: string, _method: IMethod): string {\n return '';\n }\n\n methodsEpilogue(_indent: string): string {\n return '';\n }\n\n methodsPrologue(_indent: string): string {\n return '';\n }\n\n modelsEpilogue(_indent: string): string {\n return '';\n }\n\n modelsPrologue(_indent: string): string {\n return '';\n }\n\n summary(_indent: string, _text: string | undefined): string {\n return '';\n }\n\n typeSignature(indent: string, type: IType): string {\n return (\n this.commentHeader(indent, type.description) +\n `${indent}${type.name} ${this.typeOpen}\\n`\n );\n }\n\n declareType(indent: string, type: IType): string {\n if (!(type instanceof ArrayType)) {\n return super.declareType(indent, type);\n }\n return `${indent}list of ${super\n .declareType(indent, type.elementType)\n .trimStart()}`;\n }\n}\n"],"mappings":";;;;;;AA0BA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAAwC,SAAAE,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAOjC,MAAMW,SAAS,SAASC,gBAAO,CAAC;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAAxB,eAAA,qBACxB,GAAG;IAAAA,eAAA,qBACH,GAAG;EAAA;EAShByB,eAAeA,CAACC,MAAc,EAAEC,MAAe,EAAU;IACvD,IAAMC,MAAM,GAAGD,MAAM,CAACE,SAAS;IAC/B,IAAMC,IAAI,GAAGF,MAAM,CAACG,GAAG,CAAEC,CAAC,IAAK,IAAI,CAACC,gBAAgB,CAACP,MAAM,EAAEC,MAAM,EAAEK,CAAC,CAAC,CAAC;IACxE,IAAME,IAAI,GAAG,IAAI,CAACC,MAAM,CAACT,MAAM,CAAC;IAChC,IAAMU,QAAQ,GACZN,IAAI,CAACO,MAAM,KAAK,CAAC,GACb,EAAE,QAAAC,MAAA,CACGJ,IAAI,EAAAI,MAAA,CAAGR,IAAI,CAACS,IAAI,CAAC,KAAK,GAAGL,IAAI,CAAC,CAACM,IAAI,CAAC,CAAC,EAAAF,MAAA,CAAGZ,MAAM,OAAI;IAC7D,OACE,IAAI,CAACe,aAAa,CAACf,MAAM,EAAEC,MAAM,CAACe,WAAW,CAACC,SAAS,CAAC,CAAC,CAAC,MAAAL,MAAA,CACvDZ,MAAM,EAAAY,MAAA,CAAGX,MAAM,CAACiB,WAAW,OAAAN,MAAA,CAAIF,QAAQ,SAAAE,MAAA,CAAMX,MAAM,CAACkB,eAAe,CAACC,IAAI,CAACC,IAAI,CAAE;EAEtF;EAEAN,aAAaA,CACXf,MAAc,EACdsB,IAAwB,EACxBC,WAAoB,EACH;IACjB,IAAI,IAAI,CAACC,SAAS,EAAE,OAAO,EAAE;IAC7B,IAAMC,OAAO,GAAG,KAAK,CAACV,aAAa,CAACf,MAAM,EAAEsB,IAAI,EAAEC,WAAW,CAAC,CAACN,SAAS,CAAC,CAAC;IAC1E,IAAI,CAACQ,OAAO,EAAE,OAAO,EAAE;IACvB,UAAAb,MAAA,CAAUa,OAAO,EAAAb,MAAA,CAAG,IAAI,CAACc,UAAU;EACrC;EAEAC,SAASA,CAACC,OAAe,EAAEC,KAAY,EAAU;IAC/C,OAAO,EAAE;EACX;EAEAC,aAAaA,CAACF,OAAe,EAAEG,OAAgB,EAAU;IACvD,OAAO,EAAE;EACX;EAEAxB,gBAAgBA,CACdP,MAAc,EACd+B,OAAgB,EAChBC,KAAiB,EACT;IACR,IAAIC,MAAM,MAAArB,MAAA,CAAMZ,MAAM,EAAAY,MAAA,CAAGoB,KAAK,CAACX,IAAI,QAAAT,MAAA,CAAKoB,KAAK,CAACZ,IAAI,CAACC,IAAI,CAAE;IACzD,IAAI,CAACW,KAAK,CAACE,QAAQ,EAAED,MAAM,OAAArB,MAAA,CAAOqB,MAAM,MAAG;IAC3C,OAAO,IAAI,CAAClB,aAAa,CAACf,MAAM,EAAEgC,KAAK,CAAChB,WAAW,CAAC,GAAGiB,MAAM;EAC/D;EAEAE,eAAeA,CAACnC,MAAc,EAAEoC,QAAmB,EAAU;IAC3D,IAAMC,EAAE,GAAGD,QAAQ,CAACF,QAAQ,GAAG,EAAE,GAAG,GAAG;IACvC,IAAMI,EAAE,GAAGF,QAAQ,CAACF,QAAQ,GAAG,EAAE,GAAG,GAAG;IACvC,OACE,IAAI,CAACnB,aAAa,CAACf,MAAM,EAAEoC,QAAQ,CAACpB,WAAW,CAAC,MAAAJ,MAAA,CAC7CZ,MAAM,EAAAY,MAAA,CAAGyB,EAAE,EAAAzB,MAAA,CAAGwB,QAAQ,CAACf,IAAI,QAAAT,MAAA,CAAKwB,QAAQ,CAAChB,IAAI,CAACC,IAAI,EAAAT,MAAA,CAAG0B,EAAE,CAAE;EAEhE;EAEAC,gBAAgBA,CAACX,OAAe,EAAEG,OAAgB,EAAU;IAC1D,OAAO,EAAE;EACX;EAEAS,eAAeA,CAACZ,OAAe,EAAU;IACvC,OAAO,EAAE;EACX;EAEAa,eAAeA,CAACb,OAAe,EAAU;IACvC,OAAO,EAAE;EACX;EAEAc,cAAcA,CAACd,OAAe,EAAU;IACtC,OAAO,EAAE;EACX;EAEAe,cAAcA,CAACf,OAAe,EAAU;IACtC,OAAO,EAAE;EACX;EAEAgB,OAAOA,CAAChB,OAAe,EAAEiB,KAAyB,EAAU;IAC1D,OAAO,EAAE;EACX;EAEAC,aAAaA,CAAC9C,MAAc,EAAEoB,IAAW,EAAU;IACjD,OACE,IAAI,CAACL,aAAa,CAACf,MAAM,EAAEoB,IAAI,CAACJ,WAAW,CAAC,MAAAJ,MAAA,CACzCZ,MAAM,EAAAY,MAAA,CAAGQ,IAAI,CAACC,IAAI,OAAAT,MAAA,CAAI,IAAI,CAACmC,QAAQ,OAAI;EAE9C;EAEAC,WAAWA,CAAChD,MAAc,EAAEoB,IAAW,EAAU;IAC/C,IAAI,EAAEA,IAAI,YAAY6B,oBAAS,CAAC,EAAE;MAChC,OAAO,KAAK,CAACD,WAAW,CAAChD,MAAM,EAAEoB,IAAI,CAAC;IACxC;IACA,UAAAR,MAAA,CAAUZ,MAAM,cAAAY,MAAA,CAAW,KAAK,CAC7BoC,WAAW,CAAChD,MAAM,EAAEoB,IAAI,CAAC8B,WAAW,CAAC,CACrCC,SAAS,CAAC,CAAC;EAChB;AACF;AAACC,OAAA,CAAAzD,SAAA,GAAAA,SAAA"}
1
+ {"version":3,"file":"pseudo.gen.js","names":["_codeGen","require","_sdkModels","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","PseudoGen","CodeGen","constructor","arguments","methodSignature","indent","method","params","allParams","args","map","p","declareParameter","bump","bumper","fragment","length","concat","join","trim","commentHeader","description","trimRight","operationId","primaryResponse","type","name","text","_commentStr","noComment","comment","commentStr","construct","_indent","_type","declareMethod","_method","param","result","required","declareProperty","property","lb","rb","encodePathParams","methodsEpilogue","methodsPrologue","modelsEpilogue","modelsPrologue","summary","_text","typeSignature","typeOpen","declareType","ArrayType","elementType","trimStart","exports"],"sources":["../src/pseudo.gen.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport { CodeGen } from './codeGen';\nimport type { IMethod, IParameter, IProperty, IType } from './sdkModels';\nimport { ArrayType } from './sdkModels';\n\n// eslint-disable @typescript-eslint/no-unused-vars\n\n/**\n * Pseudocde generator\n */\nexport class PseudoGen extends CodeGen {\n commentStr = '\"';\n endTypeStr = '}';\n /**\n * Generic prototype-style method signature generator\n *\n * NOTE: Every language generator should override this methodSignature function\n *\n * @param indent indentation for code\n * @param method for signature\n */\n methodSignature(indent: string, method: IMethod): string {\n const params = method.allParams;\n const args = params.map(p => this.declareParameter(indent, method, p));\n const bump = this.bumper(indent);\n const fragment =\n args.length === 0\n ? ''\n : `\\n${bump}${args.join(',\\n' + bump).trim()}${indent}\\n`;\n return (\n this.commentHeader(indent, method.description.trimRight()) +\n `${indent}${method.operationId}(${fragment}): ${method.primaryResponse.type.name}`\n );\n }\n\n commentHeader(\n indent: string,\n text: string | undefined,\n _commentStr?: string\n ): string | string {\n if (this.noComment) return '';\n const comment = super.commentHeader(indent, text, _commentStr).trimRight();\n if (!comment) return '';\n return `${comment}${this.commentStr}\\n`;\n }\n\n construct(_indent: string, _type: IType): string {\n return '';\n }\n\n declareMethod(_indent: string, _method: IMethod): string {\n return '';\n }\n\n declareParameter(\n indent: string,\n _method: IMethod,\n param: IParameter\n ): string {\n let result = `${indent}${param.name}: ${param.type.name}`;\n if (!param.required) result = `[${result}]`;\n return this.commentHeader(indent, param.description) + result;\n }\n\n declareProperty(indent: string, property: IProperty): string {\n const lb = property.required ? '' : '[';\n const rb = property.required ? '' : ']';\n return (\n this.commentHeader(indent, property.description) +\n `${indent}${lb}${property.name}: ${property.type.name}${rb}`\n );\n }\n\n encodePathParams(_indent: string, _method: IMethod): string {\n return '';\n }\n\n methodsEpilogue(_indent: string): string {\n return '';\n }\n\n methodsPrologue(_indent: string): string {\n return '';\n }\n\n modelsEpilogue(_indent: string): string {\n return '';\n }\n\n modelsPrologue(_indent: string): string {\n return '';\n }\n\n summary(_indent: string, _text: string | undefined): string {\n return '';\n }\n\n typeSignature(indent: string, type: IType): string {\n return (\n this.commentHeader(indent, type.description) +\n `${indent}${type.name} ${this.typeOpen}\\n`\n );\n }\n\n declareType(indent: string, type: IType): string {\n if (!(type instanceof ArrayType)) {\n return super.declareType(indent, type);\n }\n return `${indent}list of ${super\n .declareType(indent, type.elementType)\n .trimStart()}`;\n }\n}\n"],"mappings":"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"}
package/lib/python.gen.js CHANGED
@@ -401,7 +401,7 @@ class PythonGen extends _codeGen.CodeGen {
401
401
  var result = pythonTypes[type.name];
402
402
  return result || {
403
403
  default: this.nullStr,
404
- name: name
404
+ name
405
405
  };
406
406
  }
407
407
  typeMapMethods(type) {
@@ -1 +1 @@
1
- {"version":3,"file":"python.gen.js","names":["_sdkModels","require","_codeGen","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","PythonGen","CodeGen","constructor","arguments","concat","indentStr","repeat","Set","_indent","warnEditing","packagePath","packageName","apiVersion","apiRef","structureHookTK","hooks","join","prop","required","type","customType","EnumType","includes","className","sdkFileName","baseFileName","fileName","argGroup","args","length","nullStr","hash","arg","push","dataStructureDelimiter","beginRegion","indent","description","endRegion","_description","declareProperty","property","annotations","undefined","mappedType","typeMapModels","propName","name","pythonKeywords","has","propType","propDef","annotation","isBareForwardRef","bumper","methodReturnType","method","typeMapMethods","returnType","responseIsBoth","responseIsBinary","methodSignature","_method$description","bump","params","allParams","forEach","p","declareParameter","head","trim","httpMethod","endpoint","commentHeader","paramDelimiter","param","location","strBody","writeableType","mapped","paramType","describeParam","default","makeTheCall","inputs","origDelim","argDelimiter","resp","assignParams","match","initArg","declareType","decl","invalid","typeProperties","values","requiredProperties","optionalProperties","construct","inits","declareConstructorArg","result","properties","some","argFill","current","delimiter","replace","httpArgs","callerIndent","currIndent","bodyArg","queryArgs","queryParams","test","httpCall","deprecation","callOpener","it","toLowerCase","callArgs","callCloser","returnStmt","encodePathParams","encodings","pathParams","doEncode","declareMethod","summary","typeSignature","b2","attrs","isEnum","baseClass","usesReservedPythonKeyword","attr","text","prefixModelsNamespace","format","forwardRef","typeMap","asString","_","v","pythonTypes","any","boolean","byte","datetime","double","float","int32","int64","integer","number","password","asVal","string","object","uri","void","elementType","map","typeName","defaultValue","Error","JSON","stringify","mt","exports"],"sources":["../src/python.gen.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type {\n Arg,\n ArgValues,\n IMethod,\n IParameter,\n IProperty,\n IType,\n} from './sdkModels';\nimport { EnumType, describeParam, strBody } from './sdkModels';\nimport type { CodeAssignment, IMappedType } from './codeGen';\nimport { CodeGen } from './codeGen';\n\nexport class PythonGen extends CodeGen {\n codePath = './python/';\n packagePath = 'looker_sdk';\n itself = 'self';\n fileExtension = '.py';\n commentStr = '# ';\n nullStr = 'None';\n\n indentStr = ' ';\n argDelimiter = `,\\n${this.indentStr.repeat(3)}`;\n argSetSep = '=';\n paramDelimiter = ',\\n';\n propDelimiter = '\\n';\n dataStructureDelimiter = ', ';\n enumDelimiter = '\\n';\n codeQuote = '\"';\n typeOpen = '(';\n typeClose = ')';\n hashKeyQuote = '\"';\n useModelClassForTypes = true;\n\n endTypeStr = '';\n\n // keyword.kwlist\n pythonKeywords = new Set<string>([\n 'False',\n 'None',\n 'True',\n 'and',\n 'as',\n 'assert',\n 'async',\n 'await',\n 'break',\n 'class',\n 'continue',\n 'def',\n 'del',\n 'elif',\n 'else',\n 'except',\n 'finally',\n 'for',\n 'from',\n 'global',\n 'if',\n 'import',\n 'in',\n 'is',\n 'lambda',\n 'nonlocal',\n 'not',\n 'or',\n 'pass',\n 'raise',\n 'return',\n 'try',\n 'while',\n 'with',\n 'yield',\n ]);\n\n // cattrs [un]structure hooks for model [de]serialization\n hooks: string[] = [];\n structureHookTK = 'translate_keys_structure_hook';\n pythonReservedKeywordClasses: Set<string> = new Set();\n\n methodsPrologue = (_indent: string) => `\n# ${this.warnEditing()}\nimport datetime\nfrom typing import Any, MutableMapping, Optional, Sequence, Union, cast\nimport warnings\n\nfrom . import models as mdls\nfrom ${this.packagePath}.rtl import api_methods\nfrom ${this.packagePath}.rtl import transport\n\nclass ${this.packageName}(api_methods.APIMethods):\n`;\n\n methodsEpilogue = (_indent: string) =>\n this.apiVersion === '4.0' ? `LookerSDK = ${this.packageName}` : '';\n\n modelsPrologue = (_indent: string) => `\n# ${this.warnEditing()}\nimport datetime\nimport enum\nfrom typing import Any, MutableMapping, Optional, Sequence\n\ntry:\n from typing import ForwardRef # type: ignore\nexcept ImportError:\n from typing import _ForwardRef as ForwardRef # type: ignore\n\nimport attr\n\nfrom ${this.packagePath}.rtl import model\nfrom ${this.packagePath}.rtl import serialize as sr\n\nEXPLICIT_NULL = model.EXPLICIT_NULL # type: ignore\nDelimSequence = model.DelimSequence\n`;\n\n modelsEpilogue = (_indent: string) => `\nimport functools # noqa:E402\n\nforward_ref_structure_hook = functools.partial(\n sr.forward_ref_structure_hook, globals(), sr.converter${this.apiRef}\n)\nsr.converter${this.apiRef}.register_structure_hook_func(\n lambda t: t.__class__ is ForwardRef, forward_ref_structure_hook\n)\n${\n this.structureHookTK\n} = functools.partial(sr.translate_keys_structure_hook, sr.converter${\n this.apiRef\n })\n${this.hooks.join('\\n')}\n`;\n\n sdkFileName(baseFileName: string) {\n return this.fileName(`sdk/api${this.apiRef}/${baseFileName}`);\n }\n\n argGroup(_indent: string, args: Arg[]) {\n if (!args || args.length === 0) return this.nullStr;\n const hash: string[] = [];\n for (const arg of args) {\n hash.push(`\"${arg}\": ${arg}`);\n }\n return `{${hash.join(this.dataStructureDelimiter)}}`;\n }\n\n beginRegion(indent: string, description: string): string {\n // Sadly, Black reformats this to \"# region\" and IntelliJ doesn't recognize it either way\n return `${indent}#region ${description}`;\n }\n\n endRegion(indent: string, _description: string): string {\n // Sadly, Black reformats this to \"# endregion\" and IntelliJ doesn't recognize it either way\n return `${indent}#endregion`;\n }\n\n declareProperty(indent: string, property: IProperty, annotations = false) {\n const mappedType = this.typeMapModels(property.type);\n let propName = property.name;\n if (this.pythonKeywords.has(propName)) {\n propName = propName + '_';\n }\n let propType = mappedType.name;\n if (!property.required) {\n propType = `Optional[${mappedType.name}]`;\n }\n\n let propDef;\n if (annotations) {\n let annotation = propType;\n if (this.isBareForwardRef(property)) {\n annotation = `ForwardRef(${propType})`;\n }\n propDef = `${this.bumper(indent)}\"${propName}\": ${annotation}`;\n } else {\n if (!property.required) {\n propType += ` = ${this.nullStr}`;\n }\n propDef = `${indent}${propName}: ${propType}`;\n }\n return propDef;\n }\n\n private methodReturnType(method: IMethod) {\n const type = this.typeMapMethods(method.type);\n let returnType = type.name;\n if (method.responseIsBoth()) {\n returnType = `Union[${returnType}, bytes]`;\n } else if (method.responseIsBinary()) {\n returnType = 'bytes';\n }\n return returnType;\n }\n\n // because Python has named default parameters, Request types are not required like\n // they are for TypeScript\n methodSignature(indent: string, method: IMethod) {\n const returnType = this.methodReturnType(method);\n const bump = this.bumper(indent);\n const params: string[] = [];\n const args = method.allParams;\n if (args && args.length > 0) {\n method.allParams.forEach((p) =>\n params.push(this.declareParameter(bump, method, p))\n );\n }\n let head = method.description?.trim();\n head =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${returnType}`;\n params.push(\n `${bump}transport_options: Optional[transport.TransportOptions] = None,`\n );\n return (\n this.commentHeader(indent, head) +\n `${indent}def ${method.name}(\\n` +\n `${bump}self${params.length > 0 ? ',\\n' : ''}` +\n `${params.join(this.paramDelimiter)}\\n` +\n `${indent}) -> ${returnType}:\\n`\n );\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n let type: IType;\n if (param.location === strBody) {\n type = this.writeableType(param.type, method) || param.type;\n } else {\n type = param.type;\n }\n const mapped = this.typeMapMethods(type);\n const paramType = param.required ? mapped.name : `Optional[${mapped.name}]`;\n return (\n this.commentHeader(indent, describeParam(param)) +\n `${indent}${param.name}: ${paramType}` +\n (param.required ? '' : ` = ${mapped.default}`)\n );\n }\n\n makeTheCall(method: IMethod, inputs: ArgValues): string {\n const origDelim = this.argDelimiter;\n this.argDelimiter = `,\\n${this.indentStr}`;\n let resp = `response = sdk.${method.name}(`;\n const args = this.assignParams(method, inputs);\n if (args.match(/\\bmdls\\b/)) {\n resp = 'from looker_sdk import models as mdls\\n\\n' + resp;\n }\n this.argDelimiter = origDelim;\n return `${resp}${args})`;\n }\n\n initArg(indent: string, property: IProperty) {\n let propName = property.name;\n if (this.pythonKeywords.has(propName)) {\n propName = propName + '_';\n }\n return `${indent}self.${propName} = ${propName}`;\n }\n\n declareType(indent: string, type: IType) {\n let decl = super.declareType(indent, type);\n if (type instanceof EnumType) {\n const invalid =\n 'invalid_api_enum_value = \"invalid_api_enum_value\"' +\n '\\n\\n\\n# https://github.com/python/mypy/issues/2427' +\n `\\n${type.name}.__new__ = model.safe_enum__new__ # type: ignore`;\n decl += `\\n${this.bumper(indent)}${invalid}`;\n }\n return decl;\n }\n\n typeProperties(type: IType) {\n return Object.values(type.requiredProperties).concat(\n Object.values(type.optionalProperties)\n );\n }\n\n private isBareForwardRef = (prop: IProperty) => {\n // contains a \"bare\" forward reference e.g. `result_format: \"ResultFormat\"`\n // so we need to emit the `__annotations__` property\n return (\n prop.required &&\n (prop.type.customType || prop.type instanceof EnumType) &&\n !['ArrayType', 'HashType', 'DelimArrayType'].includes(prop.type.className)\n );\n };\n\n /**\n * Ideally we'd rely on @attr.s to generate the constructor for us\n * However, neither Jedi (https://github.com/davidhalter/jedi-vim/issues/816)\n * nor microsoft/python-language-server\n * (https://github.com/microsoft/python-language-server/issues/399)\n * display good tooltips for these auto-generated __init__ methods. So for\n * now we'll generate them ourselves following the functionality of\n * @attr.s(kw_only=True) we'll only allow kw_args.\n */\n construct(indent: string, type: IType) {\n if (type instanceof EnumType) return '';\n indent = this.bumper(indent);\n const bump = this.bumper(indent);\n const annotations: string[] = [];\n const args: string[] = [];\n const inits: string[] = [];\n this.typeProperties(type).forEach((prop) => {\n annotations.push(this.declareProperty(indent, prop, true));\n args.push(this.declareConstructorArg('', prop));\n inits.push(this.initArg(bump, prop));\n });\n let result = '';\n if (Object.values(type.properties).some(this.isBareForwardRef)) {\n result =\n `\\n${indent}__annotations__ = {\\n` +\n `${annotations.join(',\\n')}` +\n `\\n${indent}}`;\n }\n result +=\n `\\n\\n${indent}def __init__(self, *${this.argDelimiter}` +\n `${args.join(this.argDelimiter)}):\\n` +\n inits.join('\\n');\n return result;\n }\n\n declareConstructorArg(indent: string, property: IProperty) {\n const mappedType = this.typeMapModels(property.type);\n let propType: string;\n if (property.required) {\n propType = mappedType.name;\n } else {\n propType = `Optional[${mappedType.name}] = ${this.nullStr}`;\n }\n let propName = property.name;\n if (this.pythonKeywords.has(propName)) {\n propName = propName + '_';\n }\n return `${indent}${propName}: ${propType}`;\n }\n\n // this is a builder function to produce arguments with optional null place holders but no extra required optional arguments\n argFill(current: string, args: string): string {\n if (!current && args.trim() === this.nullStr) {\n // Don't append trailing optional arguments if none have been set yet\n return '';\n }\n let delimiter = ',\\n';\n if (!current) {\n delimiter = '';\n // Caller manually inserted delimiter followed by inline comment\n } else if (args.match(/, {2}#/)) {\n delimiter = delimiter.replace(',', '');\n }\n return `${args}${delimiter}${current}`;\n }\n\n httpArgs(callerIndent: string, method: IMethod): string {\n const currIndent = this.bumper(callerIndent);\n let args = '';\n args = this.argFill(\n args,\n `${currIndent}transport_options=transport_options`\n );\n if (method.bodyArg) {\n args = this.argFill(args, `${currIndent}body=${method.bodyArg}`);\n }\n if (method.queryArgs.length) {\n const queryParams = this.argGroup('', method.queryArgs);\n args = this.argFill(args, `${currIndent}query_params=${queryParams}`);\n }\n let returnType = this.methodReturnType(method);\n if (method.responseIsBoth()) {\n // cattrs needs the python object Union[<rt>, bytes] in order\n // to properly deserialize the response. However, this argument\n // is passed as a value so we get a mypy error that the argument\n // has type \"object\" instead of TStructure. Hence the # type: ignore\n returnType += ', # type: ignore';\n }\n args = this.argFill(args, `${currIndent}structure=${returnType}`);\n let endpoint = `\"${method.endpoint}\"`;\n if (/\\{\\w+\\}/.test(endpoint)) {\n // avoid flake8: f-string is missing placeholders\n endpoint = `f${endpoint}`;\n }\n args = this.argFill(args, `${currIndent}path=${endpoint}`);\n return args;\n }\n\n httpCall(callerIndent: string, method: IMethod): string {\n // callOpener itself is nested inside a cast()\n const currIndent = this.bumper(callerIndent);\n let deprecation = '';\n if (method.name === 'login_user') {\n deprecation =\n `${callerIndent}warnings.warn(\"login_user behavior changed significantly ` +\n `in 21.4.0. See https://git.io/JOtH1\")\\n`;\n }\n const callOpener =\n `${callerIndent}response = cast(\\n` +\n `${currIndent}${this.methodReturnType(method)},\\n` +\n `${currIndent}${this.it(method.httpMethod.toLowerCase())}(\\n`;\n const callArgs = `${this.httpArgs(currIndent, method)}\\n`;\n const callCloser = `${currIndent})\\n${callerIndent})\\n`;\n const returnStmt = `${callerIndent}return response`;\n return deprecation + callOpener + callArgs + callCloser + returnStmt;\n }\n\n encodePathParams(indent: string, method: IMethod) {\n let encodings = '';\n const pathParams = method.pathParams;\n if (pathParams.length > 0) {\n for (const param of pathParams) {\n if (param.doEncode()) {\n encodings += `${indent}${param.name} = self.encode_path_param(${param.name})\\n`;\n }\n }\n }\n return encodings;\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent);\n\n return (\n this.methodSignature(indent, method) +\n this.summary(bump, method.summary) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method)\n );\n }\n\n typeSignature(indent: string, type: IType) {\n const bump = this.bumper(indent);\n const b2 = this.bumper(bump);\n const attrs: string[] = [];\n const isEnum = type instanceof EnumType;\n const baseClass = isEnum ? 'enum.Enum' : 'model.Model';\n let usesReservedPythonKeyword = false;\n\n if (!isEnum) {\n for (const prop of this.typeProperties(type)) {\n let propName = prop.name;\n if (this.pythonKeywords.has(propName)) {\n propName = propName + '_';\n usesReservedPythonKeyword = true;\n }\n let attr = `${b2}${propName}:`;\n if (prop.description) {\n attr += ` ${prop.description}`;\n }\n attrs.push(attr);\n }\n }\n\n if (usesReservedPythonKeyword) {\n this.hooks.push(\n `sr.converter${this.apiRef}.register_structure_hook(\\n${bump}${type.name}, # type: ignore\\n${bump}${this.structureHookTK} # type:ignore\\n)`\n );\n }\n\n let result =\n `\\n` +\n (isEnum ? '' : `${indent}@attr.s(auto_attribs=True, init=False)\\n`) +\n `${indent}class ${type.name}(${baseClass}):\\n` +\n `${bump}\"\"\"\\n` +\n (type.description ? `${bump}${type.description}\\n\\n` : '');\n\n if (attrs.length > 0) {\n result += `${bump}Attributes:\\n` + `${attrs.join('\\n')}\\n`;\n }\n\n return result + `${bump}\"\"\"\\n`;\n }\n\n summary(indent: string, text: string | undefined) {\n return text ? `${indent}\"\"\"${text}\"\"\"\\n` : '';\n }\n\n // when format is \"methods\" that means we're in the methods.py module\n // and we need to reference the type by the `mdls.` package name\n prefixModelsNamespace(\n name: string,\n format: 'models' | 'methods',\n forwardRef = false\n ): string {\n if (format === 'models') {\n // need to quote this forwardRef\n name = forwardRef ? `\"${name}\"` : name;\n } else if (format === 'methods') {\n name = `mdls.${name}`;\n }\n return name;\n }\n\n // hack default format to 'methods' so that argValue() calls the right thing\n typeMap(type: IType, format: 'models' | 'methods' = 'methods'): IMappedType {\n const asString: CodeAssignment = (_, v) => `\"${v}\"`;\n const pythonTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'Any' },\n boolean: { default: this.nullStr, name: 'bool' },\n byte: { default: this.nullStr, name: 'bytes' },\n datetime: { default: this.nullStr, name: 'datetime.datetime' },\n double: { default: this.nullStr, name: 'float' },\n float: { default: this.nullStr, name: 'float' },\n int32: { default: this.nullStr, name: 'int' },\n int64: { default: this.nullStr, name: 'int' },\n integer: { default: this.nullStr, name: 'int' },\n number: { default: this.nullStr, name: 'float' },\n password: { default: this.nullStr, name: 'str', asVal: asString },\n string: { default: this.nullStr, name: 'str', asVal: asString },\n object: { default: this.nullStr, name: 'str', asVal: asString },\n uri: { default: this.nullStr, name: 'str', asVal: asString },\n void: { default: this.nullStr, name: 'None' },\n };\n\n super.typeMap(type);\n if (type.elementType) {\n const map = this.typeMap(type.elementType, format);\n let typeName: string;\n let name: string;\n const defaultValue = this.nullStr;\n let asVal: CodeAssignment | undefined;\n switch (type.className) {\n case 'ArrayType':\n typeName = 'Sequence';\n name = `${typeName}[${map.name}]`;\n break;\n case 'HashType':\n typeName = 'MutableMapping';\n // TODO fix bad API spec, like MergeQuery vis_config\n name =\n typeName +\n '[str, ' +\n (type.elementType.name === 'string' ? 'Any' : map.name) +\n ']';\n break;\n case 'DelimArrayType':\n typeName = this.prefixModelsNamespace('DelimSequence', format);\n name = `${typeName}[${map.name}]`;\n asVal = (_, v) => `${typeName}([${v}])`;\n break;\n case 'EnumType':\n name = typeName = this.prefixModelsNamespace(type.name, format, true);\n asVal = (_, v) => `${typeName}.${v}`;\n break;\n default:\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`);\n }\n const mt: IMappedType = { default: defaultValue, name: name };\n if (asVal) {\n mt.asVal = asVal;\n }\n return mt;\n }\n if (!type.name) {\n throw new Error('Cannot output a nameless type.');\n }\n const name = this.prefixModelsNamespace(\n type.name,\n format,\n !!type.customType\n );\n const result = pythonTypes[type.name];\n return result || { default: this.nullStr, name: name };\n }\n\n typeMapMethods(type: IType) {\n return this.typeMap(type, 'methods');\n }\n\n typeMapModels(type: IType) {\n return this.typeMap(type, 'models');\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"python.gen.js","names":["_sdkModels","require","_codeGen","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","PythonGen","CodeGen","constructor","arguments","concat","indentStr","repeat","Set","_indent","warnEditing","packagePath","packageName","apiVersion","apiRef","structureHookTK","hooks","join","prop","required","type","customType","EnumType","includes","className","sdkFileName","baseFileName","fileName","argGroup","args","length","nullStr","hash","arg","push","dataStructureDelimiter","beginRegion","indent","description","endRegion","_description","declareProperty","property","annotations","undefined","mappedType","typeMapModels","propName","name","pythonKeywords","has","propType","propDef","annotation","isBareForwardRef","bumper","methodReturnType","method","typeMapMethods","returnType","responseIsBoth","responseIsBinary","methodSignature","_method$description","bump","params","allParams","forEach","p","declareParameter","head","trim","httpMethod","endpoint","commentHeader","paramDelimiter","param","location","strBody","writeableType","mapped","paramType","describeParam","default","makeTheCall","inputs","origDelim","argDelimiter","resp","assignParams","match","initArg","declareType","decl","invalid","typeProperties","values","requiredProperties","optionalProperties","construct","inits","declareConstructorArg","result","properties","some","argFill","current","delimiter","replace","httpArgs","callerIndent","currIndent","bodyArg","queryArgs","queryParams","test","httpCall","deprecation","callOpener","it","toLowerCase","callArgs","callCloser","returnStmt","encodePathParams","encodings","pathParams","doEncode","declareMethod","summary","typeSignature","b2","attrs","isEnum","baseClass","usesReservedPythonKeyword","attr","text","prefixModelsNamespace","format","forwardRef","typeMap","asString","_","v","pythonTypes","any","boolean","byte","datetime","double","float","int32","int64","integer","number","password","asVal","string","object","uri","void","elementType","map","typeName","defaultValue","Error","JSON","stringify","mt","exports"],"sources":["../src/python.gen.ts"],"sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type {\n Arg,\n ArgValues,\n IMethod,\n IParameter,\n IProperty,\n IType,\n} from './sdkModels';\nimport { EnumType, describeParam, strBody } from './sdkModels';\nimport type { CodeAssignment, IMappedType } from './codeGen';\nimport { CodeGen } from './codeGen';\n\nexport class PythonGen extends CodeGen {\n codePath = './python/';\n packagePath = 'looker_sdk';\n itself = 'self';\n fileExtension = '.py';\n commentStr = '# ';\n nullStr = 'None';\n\n indentStr = ' ';\n argDelimiter = `,\\n${this.indentStr.repeat(3)}`;\n argSetSep = '=';\n paramDelimiter = ',\\n';\n propDelimiter = '\\n';\n dataStructureDelimiter = ', ';\n enumDelimiter = '\\n';\n codeQuote = '\"';\n typeOpen = '(';\n typeClose = ')';\n hashKeyQuote = '\"';\n useModelClassForTypes = true;\n\n endTypeStr = '';\n\n // keyword.kwlist\n pythonKeywords = new Set<string>([\n 'False',\n 'None',\n 'True',\n 'and',\n 'as',\n 'assert',\n 'async',\n 'await',\n 'break',\n 'class',\n 'continue',\n 'def',\n 'del',\n 'elif',\n 'else',\n 'except',\n 'finally',\n 'for',\n 'from',\n 'global',\n 'if',\n 'import',\n 'in',\n 'is',\n 'lambda',\n 'nonlocal',\n 'not',\n 'or',\n 'pass',\n 'raise',\n 'return',\n 'try',\n 'while',\n 'with',\n 'yield',\n ]);\n\n // cattrs [un]structure hooks for model [de]serialization\n hooks: string[] = [];\n structureHookTK = 'translate_keys_structure_hook';\n pythonReservedKeywordClasses: Set<string> = new Set();\n\n methodsPrologue = (_indent: string) => `\n# ${this.warnEditing()}\nimport datetime\nfrom typing import Any, MutableMapping, Optional, Sequence, Union, cast\nimport warnings\n\nfrom . import models as mdls\nfrom ${this.packagePath}.rtl import api_methods\nfrom ${this.packagePath}.rtl import transport\n\nclass ${this.packageName}(api_methods.APIMethods):\n`;\n\n methodsEpilogue = (_indent: string) =>\n this.apiVersion === '4.0' ? `LookerSDK = ${this.packageName}` : '';\n\n modelsPrologue = (_indent: string) => `\n# ${this.warnEditing()}\nimport datetime\nimport enum\nfrom typing import Any, MutableMapping, Optional, Sequence\n\ntry:\n from typing import ForwardRef # type: ignore\nexcept ImportError:\n from typing import _ForwardRef as ForwardRef # type: ignore\n\nimport attr\n\nfrom ${this.packagePath}.rtl import model\nfrom ${this.packagePath}.rtl import serialize as sr\n\nEXPLICIT_NULL = model.EXPLICIT_NULL # type: ignore\nDelimSequence = model.DelimSequence\n`;\n\n modelsEpilogue = (_indent: string) => `\nimport functools # noqa:E402\n\nforward_ref_structure_hook = functools.partial(\n sr.forward_ref_structure_hook, globals(), sr.converter${this.apiRef}\n)\nsr.converter${this.apiRef}.register_structure_hook_func(\n lambda t: t.__class__ is ForwardRef, forward_ref_structure_hook\n)\n${\n this.structureHookTK\n} = functools.partial(sr.translate_keys_structure_hook, sr.converter${\n this.apiRef\n })\n${this.hooks.join('\\n')}\n`;\n\n sdkFileName(baseFileName: string) {\n return this.fileName(`sdk/api${this.apiRef}/${baseFileName}`);\n }\n\n argGroup(_indent: string, args: Arg[]) {\n if (!args || args.length === 0) return this.nullStr;\n const hash: string[] = [];\n for (const arg of args) {\n hash.push(`\"${arg}\": ${arg}`);\n }\n return `{${hash.join(this.dataStructureDelimiter)}}`;\n }\n\n beginRegion(indent: string, description: string): string {\n // Sadly, Black reformats this to \"# region\" and IntelliJ doesn't recognize it either way\n return `${indent}#region ${description}`;\n }\n\n endRegion(indent: string, _description: string): string {\n // Sadly, Black reformats this to \"# endregion\" and IntelliJ doesn't recognize it either way\n return `${indent}#endregion`;\n }\n\n declareProperty(indent: string, property: IProperty, annotations = false) {\n const mappedType = this.typeMapModels(property.type);\n let propName = property.name;\n if (this.pythonKeywords.has(propName)) {\n propName = propName + '_';\n }\n let propType = mappedType.name;\n if (!property.required) {\n propType = `Optional[${mappedType.name}]`;\n }\n\n let propDef;\n if (annotations) {\n let annotation = propType;\n if (this.isBareForwardRef(property)) {\n annotation = `ForwardRef(${propType})`;\n }\n propDef = `${this.bumper(indent)}\"${propName}\": ${annotation}`;\n } else {\n if (!property.required) {\n propType += ` = ${this.nullStr}`;\n }\n propDef = `${indent}${propName}: ${propType}`;\n }\n return propDef;\n }\n\n private methodReturnType(method: IMethod) {\n const type = this.typeMapMethods(method.type);\n let returnType = type.name;\n if (method.responseIsBoth()) {\n returnType = `Union[${returnType}, bytes]`;\n } else if (method.responseIsBinary()) {\n returnType = 'bytes';\n }\n return returnType;\n }\n\n // because Python has named default parameters, Request types are not required like\n // they are for TypeScript\n methodSignature(indent: string, method: IMethod) {\n const returnType = this.methodReturnType(method);\n const bump = this.bumper(indent);\n const params: string[] = [];\n const args = method.allParams;\n if (args && args.length > 0) {\n method.allParams.forEach(p =>\n params.push(this.declareParameter(bump, method, p))\n );\n }\n let head = method.description?.trim();\n head =\n (head ? `${head}\\n\\n` : '') +\n `${method.httpMethod} ${method.endpoint} -> ${returnType}`;\n params.push(\n `${bump}transport_options: Optional[transport.TransportOptions] = None,`\n );\n return (\n this.commentHeader(indent, head) +\n `${indent}def ${method.name}(\\n` +\n `${bump}self${params.length > 0 ? ',\\n' : ''}` +\n `${params.join(this.paramDelimiter)}\\n` +\n `${indent}) -> ${returnType}:\\n`\n );\n }\n\n declareParameter(indent: string, method: IMethod, param: IParameter) {\n let type: IType;\n if (param.location === strBody) {\n type = this.writeableType(param.type, method) || param.type;\n } else {\n type = param.type;\n }\n const mapped = this.typeMapMethods(type);\n const paramType = param.required ? mapped.name : `Optional[${mapped.name}]`;\n return (\n this.commentHeader(indent, describeParam(param)) +\n `${indent}${param.name}: ${paramType}` +\n (param.required ? '' : ` = ${mapped.default}`)\n );\n }\n\n makeTheCall(method: IMethod, inputs: ArgValues): string {\n const origDelim = this.argDelimiter;\n this.argDelimiter = `,\\n${this.indentStr}`;\n let resp = `response = sdk.${method.name}(`;\n const args = this.assignParams(method, inputs);\n if (args.match(/\\bmdls\\b/)) {\n resp = 'from looker_sdk import models as mdls\\n\\n' + resp;\n }\n this.argDelimiter = origDelim;\n return `${resp}${args})`;\n }\n\n initArg(indent: string, property: IProperty) {\n let propName = property.name;\n if (this.pythonKeywords.has(propName)) {\n propName = propName + '_';\n }\n return `${indent}self.${propName} = ${propName}`;\n }\n\n declareType(indent: string, type: IType) {\n let decl = super.declareType(indent, type);\n if (type instanceof EnumType) {\n const invalid =\n 'invalid_api_enum_value = \"invalid_api_enum_value\"' +\n '\\n\\n\\n# https://github.com/python/mypy/issues/2427' +\n `\\n${type.name}.__new__ = model.safe_enum__new__ # type: ignore`;\n decl += `\\n${this.bumper(indent)}${invalid}`;\n }\n return decl;\n }\n\n typeProperties(type: IType) {\n return Object.values(type.requiredProperties).concat(\n Object.values(type.optionalProperties)\n );\n }\n\n private isBareForwardRef = (prop: IProperty) => {\n // contains a \"bare\" forward reference e.g. `result_format: \"ResultFormat\"`\n // so we need to emit the `__annotations__` property\n return (\n prop.required &&\n (prop.type.customType || prop.type instanceof EnumType) &&\n !['ArrayType', 'HashType', 'DelimArrayType'].includes(prop.type.className)\n );\n };\n\n /**\n * Ideally we'd rely on @attr.s to generate the constructor for us\n * However, neither Jedi (https://github.com/davidhalter/jedi-vim/issues/816)\n * nor microsoft/python-language-server\n * (https://github.com/microsoft/python-language-server/issues/399)\n * display good tooltips for these auto-generated __init__ methods. So for\n * now we'll generate them ourselves following the functionality of\n * @attr.s(kw_only=True) we'll only allow kw_args.\n */\n construct(indent: string, type: IType) {\n if (type instanceof EnumType) return '';\n indent = this.bumper(indent);\n const bump = this.bumper(indent);\n const annotations: string[] = [];\n const args: string[] = [];\n const inits: string[] = [];\n this.typeProperties(type).forEach(prop => {\n annotations.push(this.declareProperty(indent, prop, true));\n args.push(this.declareConstructorArg('', prop));\n inits.push(this.initArg(bump, prop));\n });\n let result = '';\n if (Object.values(type.properties).some(this.isBareForwardRef)) {\n result =\n `\\n${indent}__annotations__ = {\\n` +\n `${annotations.join(',\\n')}` +\n `\\n${indent}}`;\n }\n result +=\n `\\n\\n${indent}def __init__(self, *${this.argDelimiter}` +\n `${args.join(this.argDelimiter)}):\\n` +\n inits.join('\\n');\n return result;\n }\n\n declareConstructorArg(indent: string, property: IProperty) {\n const mappedType = this.typeMapModels(property.type);\n let propType: string;\n if (property.required) {\n propType = mappedType.name;\n } else {\n propType = `Optional[${mappedType.name}] = ${this.nullStr}`;\n }\n let propName = property.name;\n if (this.pythonKeywords.has(propName)) {\n propName = propName + '_';\n }\n return `${indent}${propName}: ${propType}`;\n }\n\n // this is a builder function to produce arguments with optional null place holders but no extra required optional arguments\n argFill(current: string, args: string): string {\n if (!current && args.trim() === this.nullStr) {\n // Don't append trailing optional arguments if none have been set yet\n return '';\n }\n let delimiter = ',\\n';\n if (!current) {\n delimiter = '';\n // Caller manually inserted delimiter followed by inline comment\n } else if (args.match(/, {2}#/)) {\n delimiter = delimiter.replace(',', '');\n }\n return `${args}${delimiter}${current}`;\n }\n\n httpArgs(callerIndent: string, method: IMethod): string {\n const currIndent = this.bumper(callerIndent);\n let args = '';\n args = this.argFill(\n args,\n `${currIndent}transport_options=transport_options`\n );\n if (method.bodyArg) {\n args = this.argFill(args, `${currIndent}body=${method.bodyArg}`);\n }\n if (method.queryArgs.length) {\n const queryParams = this.argGroup('', method.queryArgs);\n args = this.argFill(args, `${currIndent}query_params=${queryParams}`);\n }\n let returnType = this.methodReturnType(method);\n if (method.responseIsBoth()) {\n // cattrs needs the python object Union[<rt>, bytes] in order\n // to properly deserialize the response. However, this argument\n // is passed as a value so we get a mypy error that the argument\n // has type \"object\" instead of TStructure. Hence the # type: ignore\n returnType += ', # type: ignore';\n }\n args = this.argFill(args, `${currIndent}structure=${returnType}`);\n let endpoint = `\"${method.endpoint}\"`;\n if (/\\{\\w+\\}/.test(endpoint)) {\n // avoid flake8: f-string is missing placeholders\n endpoint = `f${endpoint}`;\n }\n args = this.argFill(args, `${currIndent}path=${endpoint}`);\n return args;\n }\n\n httpCall(callerIndent: string, method: IMethod): string {\n // callOpener itself is nested inside a cast()\n const currIndent = this.bumper(callerIndent);\n let deprecation = '';\n if (method.name === 'login_user') {\n deprecation =\n `${callerIndent}warnings.warn(\"login_user behavior changed significantly ` +\n `in 21.4.0. See https://git.io/JOtH1\")\\n`;\n }\n const callOpener =\n `${callerIndent}response = cast(\\n` +\n `${currIndent}${this.methodReturnType(method)},\\n` +\n `${currIndent}${this.it(method.httpMethod.toLowerCase())}(\\n`;\n const callArgs = `${this.httpArgs(currIndent, method)}\\n`;\n const callCloser = `${currIndent})\\n${callerIndent})\\n`;\n const returnStmt = `${callerIndent}return response`;\n return deprecation + callOpener + callArgs + callCloser + returnStmt;\n }\n\n encodePathParams(indent: string, method: IMethod) {\n let encodings = '';\n const pathParams = method.pathParams;\n if (pathParams.length > 0) {\n for (const param of pathParams) {\n if (param.doEncode()) {\n encodings += `${indent}${param.name} = self.encode_path_param(${param.name})\\n`;\n }\n }\n }\n return encodings;\n }\n\n declareMethod(indent: string, method: IMethod) {\n const bump = this.bumper(indent);\n\n return (\n this.methodSignature(indent, method) +\n this.summary(bump, method.summary) +\n this.encodePathParams(bump, method) +\n this.httpCall(bump, method)\n );\n }\n\n typeSignature(indent: string, type: IType) {\n const bump = this.bumper(indent);\n const b2 = this.bumper(bump);\n const attrs: string[] = [];\n const isEnum = type instanceof EnumType;\n const baseClass = isEnum ? 'enum.Enum' : 'model.Model';\n let usesReservedPythonKeyword = false;\n\n if (!isEnum) {\n for (const prop of this.typeProperties(type)) {\n let propName = prop.name;\n if (this.pythonKeywords.has(propName)) {\n propName = propName + '_';\n usesReservedPythonKeyword = true;\n }\n let attr = `${b2}${propName}:`;\n if (prop.description) {\n attr += ` ${prop.description}`;\n }\n attrs.push(attr);\n }\n }\n\n if (usesReservedPythonKeyword) {\n this.hooks.push(\n `sr.converter${this.apiRef}.register_structure_hook(\\n${bump}${type.name}, # type: ignore\\n${bump}${this.structureHookTK} # type:ignore\\n)`\n );\n }\n\n let result =\n `\\n` +\n (isEnum ? '' : `${indent}@attr.s(auto_attribs=True, init=False)\\n`) +\n `${indent}class ${type.name}(${baseClass}):\\n` +\n `${bump}\"\"\"\\n` +\n (type.description ? `${bump}${type.description}\\n\\n` : '');\n\n if (attrs.length > 0) {\n result += `${bump}Attributes:\\n` + `${attrs.join('\\n')}\\n`;\n }\n\n return result + `${bump}\"\"\"\\n`;\n }\n\n summary(indent: string, text: string | undefined) {\n return text ? `${indent}\"\"\"${text}\"\"\"\\n` : '';\n }\n\n // when format is \"methods\" that means we're in the methods.py module\n // and we need to reference the type by the `mdls.` package name\n prefixModelsNamespace(\n name: string,\n format: 'models' | 'methods',\n forwardRef = false\n ): string {\n if (format === 'models') {\n // need to quote this forwardRef\n name = forwardRef ? `\"${name}\"` : name;\n } else if (format === 'methods') {\n name = `mdls.${name}`;\n }\n return name;\n }\n\n // hack default format to 'methods' so that argValue() calls the right thing\n typeMap(type: IType, format: 'models' | 'methods' = 'methods'): IMappedType {\n const asString: CodeAssignment = (_, v) => `\"${v}\"`;\n const pythonTypes: Record<string, IMappedType> = {\n any: { default: this.nullStr, name: 'Any' },\n boolean: { default: this.nullStr, name: 'bool' },\n byte: { default: this.nullStr, name: 'bytes' },\n datetime: { default: this.nullStr, name: 'datetime.datetime' },\n double: { default: this.nullStr, name: 'float' },\n float: { default: this.nullStr, name: 'float' },\n int32: { default: this.nullStr, name: 'int' },\n int64: { default: this.nullStr, name: 'int' },\n integer: { default: this.nullStr, name: 'int' },\n number: { default: this.nullStr, name: 'float' },\n password: { default: this.nullStr, name: 'str', asVal: asString },\n string: { default: this.nullStr, name: 'str', asVal: asString },\n object: { default: this.nullStr, name: 'str', asVal: asString },\n uri: { default: this.nullStr, name: 'str', asVal: asString },\n void: { default: this.nullStr, name: 'None' },\n };\n\n super.typeMap(type);\n if (type.elementType) {\n const map = this.typeMap(type.elementType, format);\n let typeName: string;\n let name: string;\n const defaultValue = this.nullStr;\n let asVal: CodeAssignment | undefined;\n switch (type.className) {\n case 'ArrayType':\n typeName = 'Sequence';\n name = `${typeName}[${map.name}]`;\n break;\n case 'HashType':\n typeName = 'MutableMapping';\n // TODO fix bad API spec, like MergeQuery vis_config\n name =\n typeName +\n '[str, ' +\n (type.elementType.name === 'string' ? 'Any' : map.name) +\n ']';\n break;\n case 'DelimArrayType':\n typeName = this.prefixModelsNamespace('DelimSequence', format);\n name = `${typeName}[${map.name}]`;\n asVal = (_, v) => `${typeName}([${v}])`;\n break;\n case 'EnumType':\n name = typeName = this.prefixModelsNamespace(type.name, format, true);\n asVal = (_, v) => `${typeName}.${v}`;\n break;\n default:\n throw new Error(`Don't know how to handle: ${JSON.stringify(type)}`);\n }\n const mt: IMappedType = { default: defaultValue, name };\n if (asVal) {\n mt.asVal = asVal;\n }\n return mt;\n }\n if (!type.name) {\n throw new Error('Cannot output a nameless type.');\n }\n const name = this.prefixModelsNamespace(\n type.name,\n format,\n !!type.customType\n );\n const result = pythonTypes[type.name];\n return result || { default: this.nullStr, name };\n }\n\n typeMapMethods(type: IType) {\n return this.typeMap(type, 'methods');\n }\n\n typeMapModels(type: IType) {\n return this.typeMap(type, 'models');\n }\n}\n"],"mappings":"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"}
@@ -13,6 +13,7 @@ export declare enum TypeOfType {
13
13
  Enum = 4,
14
14
  Complex = 5
15
15
  }
16
+ export declare const parseFields: (fields: FieldsSpec) => ArgValues;
16
17
  export declare const typeOfType: (type: IType) => TypeOfType;
17
18
  export declare const isSpecialName: (name: string) => boolean;
18
19
  export type ArgValues = {
@@ -99,6 +100,12 @@ export declare enum MetaType {
99
100
  Request = "Request",
100
101
  Enumerated = "Enumerated"
101
102
  }
103
+ export interface ITypeMock {
104
+ fields?: FieldsSpec;
105
+ override?: string | ArgValues | ((response: any, mocked: any) => any);
106
+ httpCode?: number;
107
+ empty?: boolean;
108
+ }
102
109
  export interface IType extends ISymbol {
103
110
  properties: PropertyList;
104
111
  requiredProperties: PropertyList;
@@ -121,6 +128,8 @@ export interface IType extends ISymbol {
121
128
  className: string;
122
129
  intrinsic: boolean;
123
130
  metaType: MetaType;
131
+ mock(options?: ITypeMock): any | undefined;
132
+ mockType<T>(options?: ITypeMock): T;
124
133
  instanceOf(className: string): boolean;
125
134
  asHashString(): string;
126
135
  isRecursive(): boolean;
@@ -140,7 +149,8 @@ export interface IMethodResponse {
140
149
  search(rx: RegExp, criteria: SearchCriteria): boolean;
141
150
  searchString(criteria: SearchCriteria): string;
142
151
  }
143
- export declare const tagTypes: (api: ApiModel, types: TypeList) => any;
152
+ export declare const tagTypes: (api: ApiModel, types: TypeList) => ArgValues;
153
+ export type FieldsSpec = string | string[] | ArgValues;
144
154
  export interface IProperty extends ITypedSymbol {
145
155
  required: boolean;
146
156
  nullable: boolean;
@@ -148,6 +158,9 @@ export interface IProperty extends ITypedSymbol {
148
158
  readOnly: boolean;
149
159
  writeOnly: boolean;
150
160
  deprecated: boolean;
161
+ schema: OAS.SchemaObject;
162
+ owner: string;
163
+ mock(options?: ITypeMock): any | undefined;
151
164
  searchString(include: SearchCriteria): string;
152
165
  search(rx: RegExp, include: SearchCriteria): boolean;
153
166
  summary(): string;
@@ -190,6 +203,7 @@ export declare class Property extends SchemadSymbol implements IProperty {
190
203
  asHashString(): string;
191
204
  searchString(criteria: SearchCriteria): string;
192
205
  search(rx: RegExp, criteria: SearchCriteria): boolean;
206
+ mock(options?: ITypeMock): any | undefined;
193
207
  }
194
208
  export declare class Parameter extends SchemadSymbol implements IParameter {
195
209
  description: string;
@@ -333,6 +347,8 @@ export declare class Type implements IType {
333
347
  get requiredProperties(): PropertyList;
334
348
  get optionalProperties(): PropertyList;
335
349
  get hasSpecialNeeds(): boolean;
350
+ mock(options?: ITypeMock): any | undefined;
351
+ mockType<T>(options?: ITypeMock): T;
336
352
  load(api: ApiModel): void;
337
353
  instanceOf(className: string): boolean;
338
354
  asHashString(): string;
@@ -346,12 +362,14 @@ export declare class ArrayType extends Type {
346
362
  constructor(elementType: IType, schema: OAS.SchemaObject);
347
363
  get className(): string;
348
364
  get readOnly(): boolean;
365
+ mock(options?: ITypeMock): any | undefined;
349
366
  }
350
367
  export declare class EnumType extends Type implements IEnumType {
351
368
  elementType: IType;
352
369
  readonly values: EnumValueType[];
353
370
  constructor(elementType: IType, schema: OAS.SchemaObject, api: ApiModel, typeName?: string, methodName?: string);
354
371
  private findName;
372
+ mock(_options?: ITypeMock): any | undefined;
355
373
  searchString(criteria: SearchCriteria): string;
356
374
  get className(): string;
357
375
  get readOnly(): boolean;
@@ -373,6 +391,7 @@ export declare class IntrinsicType extends Type {
373
391
  static stringTypes: string[];
374
392
  isString: boolean;
375
393
  constructor(name: string);
394
+ mock(options?: ITypeMock): any;
376
395
  get className(): string;
377
396
  get intrinsic(): boolean;
378
397
  get readOnly(): boolean;
@@ -384,6 +403,7 @@ export declare class WriteType extends Type {
384
403
  constructor(api: IApiModel, type: IType);
385
404
  private static readonlyProps;
386
405
  }
406
+ export declare const specToModel: (spec: any) => ApiModel;
387
407
  export interface IApiModel extends IModel {
388
408
  version: string;
389
409
  description: string;