-
  state: Welcome
  Bot: 
    - I'm going to ask you a few questions about python to set a baseline on your python knowledge.
    - This way you can see how much you learn over time.
    - So don't worry if you don't know the answers, you will soon!
    - Ready?
  next: Q0
  Player:
    # certain words like 'yes', 'no' etc need to be quoted to avoid py yaml converting them to 'yes'
    - 'Yes'
    - OK
    - Sure
    - NP
    - Definitely!
    - Roger
    - Wilco
-
  state: Q0
  tags:
      - python
  Bot: 
    - Rate your `python` skill from 0 to 5. 
    - 0 if you've never heard of it as a programming language. 
    - You'd be a 5 if you are an internationally recognized expert who regularly writes blog posts.
    - You could also be a 5 if you have written a book about Python.
    - Another example of a 5 would be someone who has been the lead developer on a production python app for more than 1000 users.
    - You'd be a 3 if you have created a github or gitlab repository with some python code that you've written from scratch yourself.
    - You'd also be a 3 if you have a reputation of 1000 or more on Stack Exchange.
    - You'd also be a 3 if you've ever given a lightning talk about anything python-related.
  next: Q1
  Player: 
      - 3
-
  state: Q1
  tags:
      - python
  Bot:
    - Name one of your Python heros?
  Player:
    - Guido Van Rossum
  next: Q2
-
  state: Q2
  tags:
      - python
  Bot:
    - What is your favorite thing about python?
  Player: readability
-
  state: Q3
  tags:
      - prosocial
  Bot:
    - Who are your social impact heros?
  Player:
    - John Lewis
    - Martin Luther King
    - Linus Torvalds
    - Guido Van Rossum
    - Richard Stallman
    - Steve Wozniak (Woz)
    - Jimmy Wales
-
  state: Q4
  tags:
      - prosocial
  Bot:
    - Who invented Wikipedia?
  Player:
    - Jimmy Wales
    - Richard Stallman (GNU) started a similar site in December 2000, 3 years before Wikipedia became more popular
-
  state: Q5
  tags:
      - python
  Bot:
    - Name the two fundamental numerical data types in python?
    - Your answer should be a valid python expression.
    - Bonus points for the shortest possible python expression that produces a tuple that contains the two types with the most general type first.
  Player: 
    - float, int
    - (float, int)
-
  state: Q6
  tags:
      - python
  Bot:
    - What are the two fundamental data types used to store a sequence of characters?
    - Your answer should be a valid python expression.
    - Bonus points for the shortest possible python expression that produces a tuple that contains the two types with the most general and flexible type first.
  Player: str, bytes
-
  state: Q7
  tags:
      - python
      - data
  Bot:
    - What are the two python container types used to store arrays, vectors or ordered sequences of objects?
    - Your answer should be a valid python expression.
    - Bonus points for the shortest possible python expression that produces a tuple that contains the two types with the most general and flexible container type first.
  Player:
    - list, tuple
-
  state: Q8
  tags:
      - python
  Bot:
    - Give me a valid python expression that produces a `list` of the letters of the alphabet from a to t.
    - Bonus points for the shortest possible python expression.
  Player:
    - "list('abcdefghijklmnopqrst')"
    - "['a', 'b', 'c', 'd', 'e', ... 't']"
    - "[chr(i) for i in range(ord('a'), ord('t') + 1)]"

# MORE IDEAS:
#
# This is a "take home" test. It's OK to use your browser or any other tools on your PC to answer these questions. You can even use `qary.ai`. Are you ready to start?:
#   - ans.lower().strip()[0] == 'y'
#   - ans.lower().strip() in 'yes sure ok yep yup will do ready' + min(len(ans.strip()), 40) / 40

# What is your GitHub username (None is OK)?:
#   - re.match(r'[-_0-9a-zA-Z]+') + 20/(len(ans.strip())+6)
#   - ('none' in ans.lower()) + 'None' in ans.lower()

# What is your GitLab username (None is OK)?:
#   - -1 * ('none' in ans.lower()) + re.match(r'[-_0-9a-zA-Z]+') + 20/(len(ans.strip()) + 6)
#   - re.match(r'[-_0-9a-zA-Z]+') + 20/(len(ans.strip())+6)

# What is your StackExchange username?:
#   - -1 * ('none' in ans.lower()) + re.match(r'[-_0-9a-zA-Z]+') + 20/(len(ans.strip()) + 6)
#   - re.match(r'[-_0-9a-zA-Z]+') + 20/(len(ans.strip())+6)

# What is your StackExchange reputation score?:
#   - int(ans) >= 0
#   - int(ans) >= 1 + int(int(ans) > 20) + int(int(ans) > 200)

# What is your favorite Python coding practice website?:
#   - rouge(ans, 'python.org rosettacode.org') > 0
#   - rouge(ans, ) > 0

# What is your favorite command line (terminal) text editor?:
#   - ans.lower().strip() in 'nano vi vim emacs'
#   - 2 * ('sublime' in ans.strip().lower()) + .5 * (ans.strip().lower() in 'vscode pycharm atom')

# What is your favorite GUI text editor?:
#   - ans.lower().strip() in 'vscode pycharm spider spyder anaconda jupyter notebook visual studio'
#   - 2 * ('sublime' in ans.strip().lower()) + .5 * (ans.strip().lower() in 'vscode pycharm atom')

# In pure python what is the bag of words representation of this question ?:
#   - IOU(sorted(dict('In pure python what is the bag of words representation of this question ?'.split()).keys()),

# What is the shell command (bash) to change working directories?: ""

# What operating system are you using right now?: ""

# What is your favorite operating system?: ""

# What browser do you use?: ""

# What is the URL for this application form that you are completing?: ""

# What is the URL for the Wikipedia page about the Python programming language (it's OK to guess or to cheat by searching for it online)?: ""

# What is your favorite search engine?: ""

# Launch a terminal on your PC, change to your user directory, enter the `pwd` command, and paste the output here: ""

# What is the shell command to install a python package?: ""


