title: Tor's stem module (python) failing
body: <p>Bear with me. This is my first post...</p>
  
  <p>The Tor project has recently introduced Stem as a loadable python module. I've been playing around with it to see if it's a viable tool. My results have been mixed.</p>
  
  <p>I try to enable a configuration for a hidden service within the controller (which is supposed to act as though it came directly from the torrc file. It always fails on me. Here's a quick example of what I try:</p>
  
  <pre><code>    #!/usr/bin/env python
      from stem.control import Controller
      controller = Controller.from_port(port = 9051)
      controller.authenticate()
      controller.set_options({'HIDDENSERVICEDIR':'/tmp/hiddenservice/','HIDDENSERVICEPORT':'1234 127.0.0.1:1234'})
  </code></pre>
  
  <p>...which returns an error:</p>
  
  <pre><code>    InvalidRequest                            Traceback (most recent call last)
      /home/user/my/folder/&lt;ipython-input-5-3921e9b46181&gt; in &lt;module&gt;()
      /usr/local/lib/python2.7/dist-packages/stem/control.pyc in set_options(self, params, reset)
         1618         raise stem.InvalidRequest(response.code, response.message)
         1619       elif response.code in ("513", "553"):
      -&gt; 1620         raise stem.InvalidRequest(response.code, response.message)
         1621       else:
         1622         raise stem.ProtocolError("Returned unexpected status code: %s" % response.code)
  
      InvalidRequest: Unacceptable option value: Failed to configure rendezvous options. See logs 
  </code></pre>
  
  <p>...and the following in /var/log/tor/log:</p>
  
  <pre><code>    Aug 1 10:10:05.000 [warn] HiddenServicePort with no preceding HiddenServiceDir directive
      Aug 1 10:10:05.000 [warn] Controller gave us config lines that didn't validate: Failed to configure rendezvous options. See logs for details.
  </code></pre>
  
  <p>I've tried this with Stem's "set_options" as seen above and in two separate commands with "set_conf". With "set_conf", I can set the HiddenServiceDir but it still fails the same when setting the port, making me think I have a fundamental misunderstanding of Tor.</p>
  
  <p>I checked my circuits and it doesn't seem to matter if I have one with a hidden service rendezvous point; it keeps failing. I'd prefer to keep things pythonic, temporal and clean and not have a hacked up bash script that rewrites the torrc before restarting tor. (In a perfect world, I'd rather not write to a hidden service directory, but tor hasn't implemented that yet.)</p>
  
  <p>I try to be as cross-platform as possible, but I'm running Linux with Tor 2.3.25...</p>
  
  <p>So who has ideas of why Stem won't let me make a hidden service?</p>