input: Write a python function to parse command-line arguments using argparse and return them as a dictionary.
  ```python
  def parse_args():
      parser = argparse.ArgumentParser(description='Configure an MML file with datasource settings')
      parser.add_argument('--host', default='localhost')
      parser.add_argument('--port', default='5432')
      parser.add_argument('--dbname', default='abs')
      parser.add_argument('--user', default='abs')
      parser.add_argument('--password', default='abs')
      parser.add_argument('--srs', default='+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over')
      parser.add_argument('--shapedir', default='./layers/')
      parser.add_argument('--extent', default='12570320.00,-5403474.50,17711958.00,-1636391.88')
      parser.add_argument('--mml', required=True)
      args = parser.parse_args()
      return vars(args)
  
  # Testing with some example arguments
  import sys
  sys.argv = ['script_name', '--mml', 'example_mml']
  assert parse_args() == {
      'host': 'localhost',
      'port': '5432',
      'dbname': 'abs',
      'user': 'abs',
      'password': 'abs',
      'srs': '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over',
      'shapedir': './layers/',
      'extent': '12570320.00,-5403474.50,17711958.00,-1636391.88',
      'mml': 'example_mml'
  }
  
  sys.argv = ['script_name', '--mml', 'test_mml', '--host', '127.0.0.1', '--port', '1234']
  assert parse_args() == {
      'host': '127.0.0.1',
      'port': '1234',
      'dbname': 'abs',
      'user': 'abs',
      'password': 'abs',
      'srs': '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over',
      'shapedir': './layers/',
      'extent': '12570320.00,-5403474.50,17711958.00,-1636391.88',
      'mml': 'test_mml'
  }
output: def parse_args():
      import argparse
      parser = argparse.ArgumentParser(description='Configure an MML file with datasource settings')
      parser.add_argument('--host', default='localhost')
      parser.add_argument('--port', default='5432')
      parser.add_argument('--dbname', default='abs')
      parser.add_argument('--user', default='abs')
      parser.add_argument('--password', default='abs')
      parser.add_argument('--srs', default='+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over')
      parser.add_argument('--shapedir', default='./layers/')
      parser.add_argument('--extent', default='12570320.00,-5403474.50,17711958.00,-1636391.88')
      parser.add_argument('--mml', required=True)
      args = parser.parse_args()
      return vars(args)