Generating with Autorest for Python
See here for Python-specific docs, and [here] for general docs
Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct.
For more information see the Code of Conduct FAQ or
contact opencode@microsoft.com with any additional questions or comments.
Autorest plugin configuration
Python code gen
black: true
version-tolerant: true
modelerfour:
group-parameters: true
flatten-models: true
flatten-payloads: true
pass-thru:
- model-deduplicator
- subset-reducer
version: ~3.8.1
use-extension:
"@autorest/modelerfour": ~4.23.5
modelerfour:
resolve-schema-name-collisons: true
always-create-content-type-parameter: true
multiple-request-parameter-flattening: false
naming:
parameter: snakecase
property: snakecase
operation: snakecase
operationGroup: pascalcase
choice: pascalcase
choiceValue: uppercase
constant: snakecase
constantParameter: snakecase
type: pascalcase
local: _ + snakecase
global: snakecase
preserve-uppercase-max-length: 6
override:
$host: $host
base64: base64
IncludeAPIs: include_apis
pipeline:
python:
pass-thru: true
input: modelerfour/identity
python/m2r:
input: python
python/m4reformatter:
input: python/m2r
python/preprocess:
input: python/m4reformatter
python/codegen:
input: python/preprocess
output-artifact: python-files
python/codegen/emitter:
input: codegen
scope: scope-codegen/emitter
scope-codegen/emitter:
input-artifact: python-files
output-uri-expr: $key
output-artifact: python-files
Black script pipeline
pipeline:
python/black:
scope: black
input: python/codegen
output-artifact: python-files
python/black/emitter:
input: black
scope: scope-black/emitter
scope-black/emitter:
input-artifact: python-files
output-uri-expr: $key
output-artifact: python-files
Multi Client pipeline
pipeline:
python/multiclientscript:
scope: multiclientscript
output-artifact: python-files
python/multiclientscript/emitter:
input: multiclientscript
scope: scope-multiclientscript/emitter
scope-multiclientscript/emitter:
input-artifact: python-files
output-uri-expr: $key
output-artifact: python-files
Help
help-content:
python:
activationScope: python
categoryFriendlyName: Python Generator
settings:
- key: python-sdks-folder
description: The path to the root directory of your azure-sdk-for-python clone. Be sure to note that we include `sdk` in the folder path.
- key: black
description: Runs black formatting on your generated files. Defaults to `false`.
type: string
- key: basic-setup-py
description: Whether to generate a build script for setuptools to package your SDK. Defaults to `false`, generally not suggested if you are going to wrap the generated code
type: bool
- key: no-namespace-folders
description: Specify if you don't want pkgutil-style namespace folders. Defaults to `false`.
type: bool
- key: credential-default-policy-type
description: Specify the default credential policy (authentication policy) for your client. Use in conjunction with `--add-credential`. Currently only supports `BearerTokenCredentialPolicy`, `ARMChallengeAuthenticationPolicy` and `AzureKeyCredentialPolicy`. Default value is `BearerTokenCredentialPolicy`(data-plan)/`ARMChallengeAuthenticationPolicy`(mgmt-plan). `--credential-scopes` is tied with `BearerTokenCredentialPolicy` and `ARMChallengeAuthenticationPolicy`, do not pass them in if you want `AzureKeyCredentialPolicy`.
type: string
- key: credential-key-header-name
description: The name of the header which will pass the credential. Use if you have `--credential-default-policy-type` set to `AzureKeyCredentialPolicy`. For example, if generating cognitive services code, you might use `--credential-key-header-name=Ocp-Apim-Subscription-Key`
type: string