old_contents: """Example app to login to GitHub using the StatefulBrowser class."""
  
  from __future__ import print_function
  import argparse
  import mechanicalsoup
  from getpass import getpass
  
  parser = argparse.ArgumentParser(description="Login to GitHub.")
  parser.add_argument("username")
  args = parser.parse_args()
  
  args.password = getpass("Please enter your GitHub password: ")
  
  browser = mechanicalsoup.StatefulBrowser(soup_config={'features': 'lxml'})
  # Uncomment for a more verbose output:
  # browser.set_verbose(2)
  
  browser.open("https://github.com")
  browser.follow_link("login")
  browser.select_form('#login form')
  browser["login"] = args.username
  browser["password"] = args.password
  resp = browser.submit_selected()
  
  # Uncomment to launch a web browser on the current page:
  # browser.launch_browser()
  
  # verify we are now logged in
  page = browser.get_current_page()
  messages = page.find("div", class_="flash-messages")
  if messages:
      print(messages.text)
  assert page.select(".logout-form")
  
  print(page.title.text)
  
  # verify we remain logged in (thanks to cookies) as we browse the rest of
  # the site
  page3 = browser.open("https://github.com/hickford/MechanicalSoup")
  assert page3.soup.select(".logout-form")
  
new_contents: """Example app to login to GitHub using the StatefulBrowser class."""
  
  from __future__ import print_function
  import argparse
  import mechanicalsoup
  from getpass import getpass
  
  parser = argparse.ArgumentParser(description="Login to GitHub.")
  parser.add_argument("username")
  args = parser.parse_args()
  
  args.password = getpass("Please enter your GitHub password: ")
  
  browser = mechanicalsoup.StatefulBrowser(soup_config={'features': 'lxml'}, raise_on_404=True)
  # Uncomment for a more verbose output:
  # browser.set_verbose(2)
  
  browser.open("https://github.com")
  browser.follow_link("login")
  browser.select_form('#login form')
  browser["login"] = args.username
  browser["password"] = args.password
  resp = browser.submit_selected()
  
  # Uncomment to launch a web browser on the current page:
  # browser.launch_browser()
  
  # verify we are now logged in
  page = browser.get_current_page()
  messages = page.find("div", class_="flash-messages")
  if messages:
      print(messages.text)
  assert page.select(".logout-form")
  
  print(page.title.text)
  
  # verify we remain logged in (thanks to cookies) as we browse the rest of
  # the site
  page3 = browser.open("https://github.com/hickford/MechanicalSoup")
  assert page3.soup.select(".logout-form")
  
subject: use raise_on_404 in example.py