Package: cfn-flip
AWS CloudFormation Template FlipAboutAWS CloudFormation Template Flip is a tool that convertsAWS CloudFormationtemplates betweenJSONandYAMLformats, making use of the YAML format's short function syntax where possible.The term "Flip" is inspired by the well-known Unix command-line toolflipwhich converts text files between Unix, Mac, and MS-DOS formats.InstallationAWS CloudFormation Template Flip can be installed usingpip:pipinstallcfn-flipUsageAWS CloudFormation Template Flip is both a command line tool and a python library.Note that the command line tool is spelledcfn-flipwith a hyphen, while the python package iscfn_flipwith an underscore.Command line toolUsage: cfn-flip [OPTIONS] [INPUT] [OUTPUT]

  AWS CloudFormation Template Flip is a tool that converts AWS
  CloudFormation templates between JSON and YAML formats, making use of the
  YAML format's short function syntax where possible."

Options:
  -i, --input [json|yaml]   Specify the input format. Overrides -j and -y
                            flags.
  -o, --output [json|yaml]  Specify the output format. Overrides -j, -y, and
                            -n flags.
  -j, --json                Convert to JSON. Assume the input is YAML.
  -y, --yaml                Convert to YAML. Assume the input is JSON.
  -c, --clean               Performs some opinionated cleanup on your
                            template.
  -l, --long                Use long-form syntax for functions when converting
                            to YAML.
  -n, --no-flip             Perform other operations but do not flip the
                            output format.
  --version                 Show the version and exit.
  --help                    Show this message and exit.cfn-flip will detect the format of the input template and convert JSON to YAML and YAML to JSON, respectively.Examples:Reading fromstdinand outputting tostdout:catexamples/test.json|cfn-flipReading from a file and outputting tostdout:cfn-flipexamples/test.yamlReading from a file and outputting to another file:cfn-flipexamples/test.jsonoutput.yamlReading from a file and cleaning up the outputcfn-flip-cexamples/test.jsonPython packageTo use AWS CloudFormation Template Flip from your own python projects, import one of the functionsflip,to_yaml, orto_jsonas needed.fromcfn_flipimportflip,to_yaml,to_json"""All functions expect a string containing serialised dataand return a string containing serialised dataor raise an exception if there is a problem parsing the input"""# flip takes a best guess at the serialisation format# and returns the opposite, converting json into yaml and vice versasome_yaml_or_json=flip(some_json_or_yaml)# to_json expects serialised yaml as input, and returns serialised jsonsome_json=to_json(some_yaml)# to_yaml expects serialised json as input, and returns serialised yamlsome_yaml=to_yaml(some_json)# The clean_up flag performs some opinionated, CloudFormation-specific sanitation of the input# For example, converting uses of Fn::Join to Fn::Sub# flip, to_yaml, and to_json all support the clean_up flagclean_yaml=to_yaml(some_json,clean_up=True)Configuration paramtersYou can configure some parameters like:max_col_width: Maximum columns before breakline. Default value is 200
To change the configuration you can use:Environment VariableLinux/Unix:export CFN_MAX_COL_WIDTH=120Windows:SET CFN_MAX_COL_WIDTH=120Pythonfromcfn_tools._configimportconfigfromcfn_flipimportflip,to_yaml,to_json"""All functions expect a string containing serialised dataand return a string containing serialised dataor raise an exception if there is a problem parsing the input"""# Change the default number of columns to break line to 120config['max_col_width']="120"# flip takes a best guess at the serialisation format# and returns the opposite, converting json into yaml and vice versasome_yaml_or_json=flip(some_json_or_yaml)# to_json expects serialised yaml as input, and returns serialised jsonsome_json=to_json(some_yaml)# to_yaml expects serialised json as input, and returns serialised yamlsome_yaml=to_yaml(some_json)# The clean_up flag performs some opinionated, CloudFormation-specific sanitation of the input# For example, converting uses of Fn::Join to Fn::Sub# flip, to_yaml, and to_json all support the clean_up flagclean_yaml=to_yaml(some_json,clean_up=True)