docs: def authenticate(self):
          """
          *setup a Flickr API key to access a Flickr user account so picaxe can work on private images*
  
          **Return:**
              - ``None``
  
          **Usage:**
  
              To authenicate pixace against a Flickr account run the following (note this is interactive so a human needs to be present to respond to prompts!)
  
              .. code-block:: python
  
                  from picaxe import picaxe
                  flickrClient = picaxe(
                      log=log,
                      settings=settings
                  )
                  flickrClient.authenticate()
          """
          self.log.info('starting the ``authenticate`` method')
  
          if not self.settings["flickr"] or "consumer_key" not in self.settings["flickr"] or "consumer_secret" not in self.settings["flickr"]:
              print "Navigate here <https://www.flickr.com/services/apps/create/apply/> and request a 'non-commerial key'"
              time.sleep(2)
              # open in webbrowser
              webbrowser.open_new_tab(
                  "https://www.flickr.com/services/apps/create/apply/")
  
              consumer_key = raw_input("What is your new API key value? \n  >  ")
              consumer_secret = raw_input(
                  "What is your new API secret value? \n  >  ")
  
          else:
              consumer_key = str(self.settings["flickr"]["consumer_key"])
              consumer_secret = str(self.settings["flickr"]["consumer_secret"])
  
          auth = OAuth1(consumer_key, consumer_secret)
  
          try:
              response = requests.get(
                  url="http://www.flickr.com/services/oauth/request_token",
                  params={
                      "oauth_callback": "http://www.thespacedoctor.co.uk",
                  },
                  auth=auth
              )
          except requests.exceptions.RequestException:
              print('HTTP Request failed')
  
          oauthList = response.content.split("&")
          oauth_token = str(oauthList[1].split("=")[1])
          oauth_token_secret = str(oauthList[2].split("=")[1])
  
          print "Now to authorize picaxe against your personal flickr account"
          print "Navigate to https://www.flickr.com/services/oauth/authorize?perms=write&oauth_token=" + oauth_token + " and click on 'OK, I'LL AUTHOURIZE IT'"
          time.sleep(1)
          webbrowser.open_new_tab(
              "https://www.flickr.com/services/oauth/authorize?perms=write&oauth_token=" + oauth_token)
  
          oauth_verifier = raw_input(
              "What is the oauth_verifier value in URL you where redirected to? \n  >  ")
          oauth_verifier = str(oauth_verifier.strip())
  
          auth = OAuth1(consumer_key, consumer_secret,
                        oauth_token, oauth_token_secret)
  
          try:
              response = requests.get(
                  url="https://www.flickr.com/services/oauth/access_token",
                  params={
                      "oauth_verifier": oauth_verifier,
                      "oauth_callback": "http://www.thespacedoctor.co.uk"
                  },
                  auth=auth
              )
          except requests.exceptions.RequestException:
              print('HTTP Request failed')
  
          oauthList = response.content.split("&")
          oauth_token = oauthList[1].split("=")[1]
          oauth_token_secret = oauthList[2].split("=")[1]
          user_nsid = oauthList[3].split("=")[1]
          username = oauthList[4].split("=")[1]
  
          if not self.pathToSettingsFile:
              self.pathToSettingsFile = expanduser(
                  "~") + "/.config/picaxe/picaxe.yaml"
  
          stream = file(self.pathToSettingsFile, 'r')
          yamlContent = yaml.load(stream)
          stream.close()
  
          yamlContent["flickr"] = {}
          yamlContent["flickr"]["consumer_key"] = consumer_key
          yamlContent["flickr"]["consumer_secret"] = consumer_secret
          yamlContent["flickr"]["oauth_token"] = oauth_token
          yamlContent["flickr"]["oauth_token_secret"] = oauth_token_secret
          yamlContent["flickr"]["user_nsid"] = user_nsid
          yamlContent["flickr"]["username"] = username
  
          stream = file(self.pathToSettingsFile, 'w')
          yaml.dump(yamlContent, stream, default_flow_style=False)
          stream.close()
  
          self.log.info('completed the ``authenticate`` method')
          return None