code: def main(args=None):
      """Normalize locations on a given designspace"""
      from fontTools import configLogger
      import argparse
  
      parser = argparse.ArgumentParser(
          "fonttools varLib.models",
          description=main.__doc__,
      )
      parser.add_argument(
          "--loglevel",
          metavar="LEVEL",
          default="INFO",
          help="Logging level (defaults to INFO)",
      )
  
      group = parser.add_mutually_exclusive_group(required=True)
      group.add_argument(
          "-d", "--designspace", metavar="DESIGNSPACE", type=str
      )
      group.add_argument(
          "-l",
          "--locations",
          metavar="LOCATION",
          nargs="+",
          help="Master locations as comma-separate coordinates. One must be all zeros.",
      )
  
      args = parser.parse_args(args)
  
      configLogger(level=args.loglevel)
      from pprint import pprint
  
      if args.designspace:
          from fontTools.designspaceLib import DesignSpaceDocument
  
          doc = DesignSpaceDocument()
          doc.read(args.designspace)
          locs = [s.location for s in doc.sources]
          print("Original locations:")
          pprint(locs)
          doc.normalize()
          print("Normalized locations:")
          locs = [s.location for s in doc.sources]
          pprint(locs)
      else:
          axes = [chr(c) for c in range(ord("A"), ord("Z") + 1)]
          locs = [
              dict(zip(axes, (float(v) for v in s.split(","))))
              for s in args.locations
          ]
  
      model = VariationModel(locs)
      print("Sorted locations:")
      pprint(model.locations)
      print("Supports:")
      pprint(model.supports)
  
imports: from fontTools.misc.roundTools import noRound
  from .errors import VariationModelError
label_desc: Use image node_id 10 for calling a global function with example usage: main(args) without return types