code: def _parse_letter_version(letter, number):
      if letter:
          # We assume there is an implicit 0 in a pre-release if there is
          # no numeral associated with it.
          if number is None:
              number = 0
  
          # We normalize any letters to their lower-case form
          letter = letter.lower()
  
          # We consider some words to be alternate spellings of other words and
          # in those cases we want to normalize the spellings to our preferred
          # spelling.
          if letter == "alpha":
              letter = "a"
          elif letter == "beta":
              letter = "b"
          elif letter in ["c", "pre", "preview"]:
              letter = "rc"
          elif letter in ["rev", "r"]:
              letter = "post"
  
          return letter, int(number)
      if not letter and number:
          # We assume that if we are given a number but not given a letter,
          # then this is using the implicit post release syntax (e.g., 1.0-1)
          letter = "post"
  
          return letter, int(number)
  
imports: import collections
  import itertools
  import re
label_desc: Use image node_id 4 for calling a global function with example usage: _parse_letter_version(letter, number) and returns: letter,  int, letter,  int