[tor-commits] [stem/master] Minor improvements for connection examples

atagar at torproject.org atagar at torproject.org
Sun Sep 1 18:57:35 UTC 2013


commit ec0c7eb0c3b96fc50ddc117bd83f4f6477c13f4c
Author: Damian Johnson <atagar at torproject.org>
Date:   Sun Sep 1 11:52:21 2013 -0700

    Minor improvements for connection examples
    
    Changes include...
    
    * more conventional example using the 'with' keyword
    * disconnecting the controller afterward
    * corrected indentation
---
 docs/faq.rst                                   |  114 +++++++++++++-----------
 docs/tutorials/the_little_relay_that_could.rst |    5 +-
 2 files changed, 67 insertions(+), 52 deletions(-)

diff --git a/docs/faq.rst b/docs/faq.rst
index d942c0e..b5b3a2a 100644
--- a/docs/faq.rst
+++ b/docs/faq.rst
@@ -121,18 +121,19 @@ Once you have Tor running and `properly configured <tutorials/the_little_relay_t
           sys.exit(1)  # unable to get a connection
 
         print "Tor is running version %s" % controller.get_version()
+        controller.close()
 
    ::
 
-     % python example.py 
-     Tor is running version 0.2.4.10-alpha-dev (git-8be6058d8f31e578)
+      % python example.py 
+      Tor is running version 0.2.4.10-alpha-dev (git-8be6058d8f31e578)
 
    ... or if Tor isn't running...
 
    ::
 
-     % python example.py 
-     [Errno 111] Connection refused
+      % python example.py 
+      [Errno 111] Connection refused
 
 #. :func:`stem.control.Controller.from_port` and :func:`stem.control.Controller.from_socket_file`
 
@@ -144,36 +145,49 @@ Once you have Tor running and `properly configured <tutorials/the_little_relay_t
 
    ::
 
-     import getpass
-     import sys
+      import getpass
+      import sys
 
-     import stem
-     import stem.connection
+      import stem
+      import stem.connection
 
-     from stem.control import Controller
+      from stem.control import Controller
 
-     if __name__ == '__main__':
-       try:
-         controller = Controller.from_port()
-       except stem.SocketError as exc:
-         print "Unable to connect to tor on port 9051: %s" % exc
-         sys.exit(1)
+      if __name__ == '__main__':
+        try:
+          controller = Controller.from_port()
+        except stem.SocketError as exc:
+          print "Unable to connect to tor on port 9051: %s" % exc
+          sys.exit(1)
+
+        try:
+          controller.authenticate()
+        except stem.connection.MissingPassword:
+          pw = getpass.getpass("Controller password: ")
+
+          try:
+            controller.authenticate(password = pw)
+          except stem.connection.PasswordAuthFailed:
+            print "Unable to authenticate, password is incorrect"
+            sys.exit(1)
+        except stem.connection.AuthenticationFailure as exc:
+          print "Unable to authenticate: %s" % exc
+          sys.exit(1)
 
-       try:
-         controller.authenticate()
-       except stem.connection.MissingPassword:
-         pw = getpass.getpass("Controller password: ")
+        print "Tor is running version %s" % controller.get_version()
+        controller.close()
 
-         try:
-           controller.authenticate(password = pw)
-         except stem.connection.PasswordAuthFailed:
-           print "Unable to authenticate, password is incorrect"
-           sys.exit(1)
-       except stem.connection.AuthenticationFailure as exc:
-         print "Unable to authenticate: %s" % exc
-         sys.exit(1)
+   If you're fine with allowing your script to raise exceptions then this can be more nicely done as...
 
-       print "Tor is running version %s" % controller.get_version()
+   ::
+
+      from stem.control import Controller
+
+      if __name__ == '__main__':
+        with Controller.from_port() as controller:
+          controller.authenticate()
+
+          print "Tor is running version %s" % controller.get_version()
 
 #. `Socket Module <api/socket.html>`_
 
@@ -185,32 +199,32 @@ Once you have Tor running and `properly configured <tutorials/the_little_relay_t
 
    ::
 
-     import stem
-     import stem.connection
-     import stem.socket
-
-     if __name__ == '__main__':
-       try:
-         control_socket = stem.socket.ControlPort(port = 9051)
-         stem.connection.authenticate(control_socket)
-       except stem.SocketError as exc:
-         print "Unable to connect to tor on port 9051: %s" % exc
-         sys.exit(1)
-       except stem.connection.AuthenticationFailure as exc:
-         print "Unable to authenticate: %s" % exc
-         sys.exit(1)
-
-       print "Issuing 'GETINFO version' query...\n"
-       control_socket.send('GETINFO version')
-       print control_socket.recv()
+      import stem
+      import stem.connection
+      import stem.socket
+
+      if __name__ == '__main__':
+        try:
+          control_socket = stem.socket.ControlPort(port = 9051)
+          stem.connection.authenticate(control_socket)
+        except stem.SocketError as exc:
+          print "Unable to connect to tor on port 9051: %s" % exc
+          sys.exit(1)
+        except stem.connection.AuthenticationFailure as exc:
+          print "Unable to authenticate: %s" % exc
+          sys.exit(1)
+
+        print "Issuing 'GETINFO version' query...\n"
+        control_socket.send('GETINFO version')
+        print control_socket.recv()
 
    ::
 
-     % python example.py 
-     Issuing 'GETINFO version' query...
+      % python example.py 
+      Issuing 'GETINFO version' query...
 
-     version=0.2.4.10-alpha-dev (git-8be6058d8f31e578)
-     OK
+      version=0.2.4.10-alpha-dev (git-8be6058d8f31e578)
+      OK
 
 .. _how_do_i_request_a_new_identity_from_tor:
 
diff --git a/docs/tutorials/the_little_relay_that_could.rst b/docs/tutorials/the_little_relay_that_could.rst
index 751c216..0fb00c1 100644
--- a/docs/tutorials/the_little_relay_that_could.rst
+++ b/docs/tutorials/the_little_relay_that_could.rst
@@ -42,8 +42,9 @@ the following configuration options...
 
 When you change your torrc you'll need to either restart Tor is issue a SIGHUP
 for the new settings to take effect. Now let's write a script that tells us how
-many bytes Tor has sent and received since it started. Note that there are a `few ways to connect to Tor <../faq.html#how-do-i-connect-to-tor>`_. If you're unfamiliar
-with the '**with**' keyword then see `here
+many bytes Tor has sent and received since it started. Note that there are a
+`few ways to connect to Tor <../faq.html#how-do-i-connect-to-tor>`_. If you're
+unfamiliar with the '**with**' keyword then see `here
 <../faq.html#what-is-that-with-keyword-i-keep-seeing-in-the-tutorials>`_...
 
 ::



More information about the tor-commits mailing list