title: How to read a python tuple using PyYAML?
body: <p>I have the following YAML file named <code>input.yaml</code>:</p>
  
  <pre class="lang-yaml prettyprint-override"><code>cities:
    1: [0,0]
    2: [4,0]
    3: [0,4]
    4: [4,4]
    5: [2,2]
    6: [6,2]
  highways:
    - [1,2]
    - [1,3]
    - [1,5]
    - [2,4]
    - [3,4]
    - [5,4]
  start: 1
  end: 4
  </code></pre>
  
  <p>I'm loading it using PyYAML and printing the result as follows:</p>
  
  <pre class="lang-py prettyprint-override"><code>import yaml
  
  f = open("input.yaml", "r")
  data = yaml.load(f)
  f.close()
  
  print(data)
  </code></pre>
  
  <p>The result is the following data structure:</p>
  
  <pre class="lang-py prettyprint-override"><code>{ 'cities': { 1: [0, 0]
              , 2: [4, 0]
              , 3: [0, 4]
              , 4: [4, 4]
              , 5: [2, 2]
              , 6: [6, 2]
              }
  , 'highways': [ [1, 2]
                , [1, 3]
                , [1, 5]
                , [2, 4]
                , [3, 4]
                , [5, 4]
                ]
  , 'start': 1
  , 'end': 4
  }
  </code></pre>
  
  <p>As you can see, each city and highway is represented as a list. However, I want them to be represented as a tuple. Hence, I manually convert them into tuples using comprehensions:</p>
  
  <pre class="lang-py prettyprint-override"><code>import yaml
  
  f = open("input.yaml", "r")
  data = yaml.load(f)
  f.close()
  
  data["cities"] = {k: tuple(v) for k, v in data["cities"].items()}
  data["highways"] = [tuple(v) for v in data["highways"]]
  
  print(data)
  </code></pre>
  
  <p>However, this seems like a hack. Is there some way to instruct PyYAML to directly read them as tuples instead of lists?</p>