{ "diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/tmp.5amBx62f0x/b1/txtorcon_19.0.0-1_armhf.changes", "source2": "/srv/reproducible-results/rbuild-debian/tmp.5amBx62f0x/b2/txtorcon_19.0.0-1_armhf.changes", "unified_diff": null, "details": [ { "source1": "Files", "source2": "Files", "unified_diff": "@@ -1,3 +1,3 @@\n \n- 819bef58479f4fb0e9b59aebb053c4b6 180868 doc optional python-txtorcon-doc_19.0.0-1_all.deb\n+ dcd78fd54a17161baef81f99c6a7f6a8 180884 doc optional python-txtorcon-doc_19.0.0-1_all.deb\n 4fee8e4d19f6ebcdc5478064c72755fe 111240 python optional python3-txtorcon_19.0.0-1_all.deb\n" }, { "source1": "python-txtorcon-doc_19.0.0-1_all.deb", "source2": "python-txtorcon-doc_19.0.0-1_all.deb", "unified_diff": null, "details": [ { "source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2019-06-13 21:23:49.000000 debian-binary\n--rw-r--r-- 0 0 0 3140 2019-06-13 21:23:49.000000 control.tar.xz\n--rw-r--r-- 0 0 0 177536 2019-06-13 21:23:49.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 3144 2019-06-13 21:23:49.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 177548 2019-06-13 21:23:49.000000 data.tar.xz\n" }, { "source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [ { "source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [ { "source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [ { "source1": "./md5sums", "source2": "./md5sums", "comments": [ "Files differ" ], "unified_diff": null }, { "source1": "line order", "source2": "line order", "unified_diff": "@@ -1,21 +1,21 @@\n usr/share/doc/python-txtorcon-doc/changelog.Debian.gz\n usr/share/doc/python-txtorcon-doc/copyright\n-usr/share/doc/python-txtorcon-doc/html/_downloads/181b12173a975b6d978d03083037a150/txtorcon.tac\n-usr/share/doc/python-txtorcon-doc/html/_downloads/1e8f7a82a687301ebdea9713f3114b35/stream_circuit_logger.py\n-usr/share/doc/python-txtorcon-doc/html/_downloads/25359749aa910d0a7619f335575c39b9/web_client_custom_circuit.py\n-usr/share/doc/python-txtorcon-doc/html/_downloads/2a2bb0e4c3044bf4327852c1969c546f/disallow_streams_by_port.py\n-usr/share/doc/python-txtorcon-doc/html/_downloads/4085dc3e0de8dab0d9b74e9506651b90/launch_tor.py\n-usr/share/doc/python-txtorcon-doc/html/_downloads/475daa2663c75f05204e4a046aa905a3/meejah.asc\n-usr/share/doc/python-txtorcon-doc/html/_downloads/85997f7c459485291411b20a1b9d267c/web_client.py\n-usr/share/doc/python-txtorcon-doc/html/_downloads/9b59e71dba38b8d6fe88b004defe2368/monitor.py\n-usr/share/doc/python-txtorcon-doc/html/_downloads/b34ebecd89d1f7ff94dce6b8fdf836af/launch_tor_endpoint.py\n-usr/share/doc/python-txtorcon-doc/html/_downloads/c51b803f6b4c3c38c3e4272a08f251cf/web_client_treq.py\n-usr/share/doc/python-txtorcon-doc/html/_downloads/d32d9c810639aeab7672a568388f5b7a/stem_relay_descriptor.py\n-usr/share/doc/python-txtorcon-doc/html/_downloads/d66dcb10ccdeba7d72e1ba5add16ce2f/web_onion_service_aiohttp.py\n+usr/share/doc/python-txtorcon-doc/html/_downloads/32140c46b71ee4464b0e793a3b0e0c9e/web_client_custom_circuit.py\n+usr/share/doc/python-txtorcon-doc/html/_downloads/48ee660330bf674d0f08cf0d03d8e22e/web_onion_service_aiohttp.py\n+usr/share/doc/python-txtorcon-doc/html/_downloads/507ae57f4a78e92f69707f13d2f53757/launch_tor_endpoint.py\n+usr/share/doc/python-txtorcon-doc/html/_downloads/79480c5d5801236f233bfa1e76110669/disallow_streams_by_port.py\n+usr/share/doc/python-txtorcon-doc/html/_downloads/90a193104a8aae5f369410fbf3a4711a/web_client.py\n+usr/share/doc/python-txtorcon-doc/html/_downloads/919f41e24f68b74bbaa54468f6633737/stem_relay_descriptor.py\n+usr/share/doc/python-txtorcon-doc/html/_downloads/9ceefaed7ac5a67888847e1cad587a1e/launch_tor.py\n+usr/share/doc/python-txtorcon-doc/html/_downloads/9d3f5a50a77bb165bbb5703f517631b5/txtorcon.tac\n+usr/share/doc/python-txtorcon-doc/html/_downloads/afbf1d6676d3526497180a438defbdff/web_client_treq.py\n+usr/share/doc/python-txtorcon-doc/html/_downloads/cbb24ada7f072c926056c7c5e6f483d8/meejah.asc\n+usr/share/doc/python-txtorcon-doc/html/_downloads/d4fb0b6b10cc160d3e1c9e5041f80c77/monitor.py\n+usr/share/doc/python-txtorcon-doc/html/_downloads/d52f269ed131e68d2f58f2a9dc7f45b5/stream_circuit_logger.py\n usr/share/doc/python-txtorcon-doc/html/_sources/examples.rst.txt\n usr/share/doc/python-txtorcon-doc/html/_sources/guide.rst.txt\n usr/share/doc/python-txtorcon-doc/html/_sources/hacking.rst.txt\n usr/share/doc/python-txtorcon-doc/html/_sources/index.rst.txt\n usr/share/doc/python-txtorcon-doc/html/_sources/installing.rst.txt\n usr/share/doc/python-txtorcon-doc/html/_sources/interop_asyncio.rst.txt\n usr/share/doc/python-txtorcon-doc/html/_sources/introduction.rst.txt\n" } ] } ] } ] }, { "source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [ { "source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [ { "source1": "file list", "source2": "file list", "unified_diff": "@@ -3,38 +3,38 @@\n drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/\n drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/\n drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/\n -rw-r--r-- 0 root (0) root (0) 1964 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 3142 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/copyright\n drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/\n drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/181b12173a975b6d978d03083037a150/\n--rw-r--r-- 0 root (0) root (0) 1636 2016-08-11 01:05:54.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/181b12173a975b6d978d03083037a150/txtorcon.tac\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/1e8f7a82a687301ebdea9713f3114b35/\n--rw-r--r-- 0 root (0) root (0) 2626 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/1e8f7a82a687301ebdea9713f3114b35/stream_circuit_logger.py\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/25359749aa910d0a7619f335575c39b9/\n--rw-r--r-- 0 root (0) root (0) 3057 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/25359749aa910d0a7619f335575c39b9/web_client_custom_circuit.py\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/2a2bb0e4c3044bf4327852c1969c546f/\n--rw-r--r-- 0 root (0) root (0) 2034 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/2a2bb0e4c3044bf4327852c1969c546f/disallow_streams_by_port.py\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/4085dc3e0de8dab0d9b74e9506651b90/\n--rw-r--r-- 0 root (0) root (0) 1985 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/4085dc3e0de8dab0d9b74e9506651b90/launch_tor.py\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/475daa2663c75f05204e4a046aa905a3/\n--rw-r--r-- 0 root (0) root (0) 1688 2014-03-21 06:39:01.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/475daa2663c75f05204e4a046aa905a3/meejah.asc\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/85997f7c459485291411b20a1b9d267c/\n--rw-r--r-- 0 root (0) root (0) 1562 2017-11-26 23:56:26.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/85997f7c459485291411b20a1b9d267c/web_client.py\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/9b59e71dba38b8d6fe88b004defe2368/\n--rw-r--r-- 0 root (0) root (0) 919 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/9b59e71dba38b8d6fe88b004defe2368/monitor.py\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/b34ebecd89d1f7ff94dce6b8fdf836af/\n--rw-r--r-- 0 root (0) root (0) 3524 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/b34ebecd89d1f7ff94dce6b8fdf836af/launch_tor_endpoint.py\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/c51b803f6b4c3c38c3e4272a08f251cf/\n--rw-r--r-- 0 root (0) root (0) 1085 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/c51b803f6b4c3c38c3e4272a08f251cf/web_client_treq.py\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/d32d9c810639aeab7672a568388f5b7a/\n--rw-r--r-- 0 root (0) root (0) 1922 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/d32d9c810639aeab7672a568388f5b7a/stem_relay_descriptor.py\n-drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/d66dcb10ccdeba7d72e1ba5add16ce2f/\n--rw-r--r-- 0 root (0) root (0) 3967 2018-07-18 05:53:09.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/d66dcb10ccdeba7d72e1ba5add16ce2f/web_onion_service_aiohttp.py\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/32140c46b71ee4464b0e793a3b0e0c9e/\n+-rw-r--r-- 0 root (0) root (0) 3057 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/32140c46b71ee4464b0e793a3b0e0c9e/web_client_custom_circuit.py\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/48ee660330bf674d0f08cf0d03d8e22e/\n+-rw-r--r-- 0 root (0) root (0) 3967 2018-07-18 05:53:09.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/48ee660330bf674d0f08cf0d03d8e22e/web_onion_service_aiohttp.py\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/507ae57f4a78e92f69707f13d2f53757/\n+-rw-r--r-- 0 root (0) root (0) 3524 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/507ae57f4a78e92f69707f13d2f53757/launch_tor_endpoint.py\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/79480c5d5801236f233bfa1e76110669/\n+-rw-r--r-- 0 root (0) root (0) 2034 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/79480c5d5801236f233bfa1e76110669/disallow_streams_by_port.py\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/90a193104a8aae5f369410fbf3a4711a/\n+-rw-r--r-- 0 root (0) root (0) 1562 2017-11-26 23:56:26.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/90a193104a8aae5f369410fbf3a4711a/web_client.py\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/919f41e24f68b74bbaa54468f6633737/\n+-rw-r--r-- 0 root (0) root (0) 1922 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/919f41e24f68b74bbaa54468f6633737/stem_relay_descriptor.py\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/9ceefaed7ac5a67888847e1cad587a1e/\n+-rw-r--r-- 0 root (0) root (0) 1985 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/9ceefaed7ac5a67888847e1cad587a1e/launch_tor.py\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/9d3f5a50a77bb165bbb5703f517631b5/\n+-rw-r--r-- 0 root (0) root (0) 1636 2016-08-11 01:05:54.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/9d3f5a50a77bb165bbb5703f517631b5/txtorcon.tac\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/afbf1d6676d3526497180a438defbdff/\n+-rw-r--r-- 0 root (0) root (0) 1085 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/afbf1d6676d3526497180a438defbdff/web_client_treq.py\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/cbb24ada7f072c926056c7c5e6f483d8/\n+-rw-r--r-- 0 root (0) root (0) 1688 2014-03-21 06:39:01.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/cbb24ada7f072c926056c7c5e6f483d8/meejah.asc\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/d4fb0b6b10cc160d3e1c9e5041f80c77/\n+-rw-r--r-- 0 root (0) root (0) 919 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/d4fb0b6b10cc160d3e1c9e5041f80c77/monitor.py\n+drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/d52f269ed131e68d2f58f2a9dc7f45b5/\n+-rw-r--r-- 0 root (0) root (0) 2626 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_downloads/d52f269ed131e68d2f58f2a9dc7f45b5/stream_circuit_logger.py\n drwxr-xr-x 0 root (0) root (0) 0 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_sources/\n -rw-r--r-- 0 root (0) root (0) 4793 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_sources/examples.rst.txt\n -rw-r--r-- 0 root (0) root (0) 32836 2018-12-11 16:15:06.000000 ./usr/share/doc/python-txtorcon-doc/html/_sources/guide.rst.txt\n -rw-r--r-- 0 root (0) root (0) 2527 2017-05-16 18:55:59.000000 ./usr/share/doc/python-txtorcon-doc/html/_sources/hacking.rst.txt\n -rw-r--r-- 0 root (0) root (0) 2390 2019-06-13 21:23:49.000000 ./usr/share/doc/python-txtorcon-doc/html/_sources/index.rst.txt\n -rw-r--r-- 0 root (0) root (0) 7625 2018-03-14 04:22:41.000000 ./usr/share/doc/python-txtorcon-doc/html/_sources/installing.rst.txt\n -rw-r--r-- 0 root (0) root (0) 1045 2018-07-18 05:53:09.000000 ./usr/share/doc/python-txtorcon-doc/html/_sources/interop_asyncio.rst.txt\n" }, { "source1": "./usr/share/doc/python-txtorcon-doc/html/examples.html", "source2": "./usr/share/doc/python-txtorcon-doc/html/examples.html", "unified_diff": "@@ -99,15 +99,15 @@\n \n \n \n
\n

Web: clients\u00b6

\n
\n

web_client.py\u00b6

\n-

Download the example.

\n+

Download the example.

\n

Uses twisted.web.client\n to download a Web page using a twisted.web.client.Agent, via any\n circuit Tor chooses.

\n
# this example shows how to use Twisted's web client with Tor via\n # txtorcon\n \n from __future__ import print_function\n@@ -150,15 +150,15 @@\n     print("received body ({} bytes)".format(len(body)))\n     print("{}\\n[...]\\n{}\\n".format(body[:200], body[-200:]))\n 
\n
\n
\n
\n

web_client_treq.py\u00b6

\n-

Download the example.

\n+

Download the example.

\n

Uses treq to download a\n Web page via Tor.

\n
# just copying over most of "carml checkpypi" because it's a good\n # example of "I want a stream over *this* circuit".\n \n from __future__ import print_function\n \n@@ -198,15 +198,15 @@\n         data[-120:],\n     ))\n 
\n
\n
\n
\n

web_client_custom_circuit.py\u00b6

\n-

Download the example.

\n+

Download the example.

\n

Builds a custom circuit, and then uses twisted.web.client\n to download a Web page using the circuit created.

\n
# this example shows how to use specific circuits over Tor (with\n # Twisted's web client or with a custom protocol)\n #\n # NOTE WELL: this functionality is for advanced use-cases and if you\n # do anything "special" to select your circuit hops you risk making it\n@@ -293,15 +293,15 @@\n 
\n
\n
\n
\n

Starting Tor\u00b6

\n
\n

launch_tor.py\u00b6

\n-

Download the example. Launch\n+

Download the example. Launch\n a new Tor instance. This takes care of setting Tor\u2019s notion ownership\n so that when the control connection goes away the running Tor exits.

\n
from __future__ import print_function\n \n """\n Launch a private Tor instance.\n """\n@@ -361,15 +361,15 @@\n     socksport = yield tor.protocol.get_conf("SOCKSPort")\n     print("SOCKSPort", socksport)\n 
\n
\n
\n
\n

launch_tor_endpoint.py\u00b6

\n-

Download the example. Using the\n+

Download the example. Using the\n txtorcon.TCP4HiddenServiceEndpoint class to start up a Tor\n with a hidden service pointed to an\n IStreamServerEndpoint.

\n
from __future__ import print_function\n \n # Here we set up a Twisted Web server and then launch our own tor with\n # a configured hidden service directed at the Web server we set\n@@ -464,15 +464,15 @@\n 
\n
\n
\n
\n

Circuits and Streams\u00b6

\n
\n

disallow_streams_by_port.py\u00b6

\n-

Download the example.\n+

Download the example.\n An example using IStreamAttacher which is\n very simple and does just what it sounds like: never attaches Streams\n exiting to a port in the \u201cdisallowed\u201d list (it also explicitly closes\n them). Note that Tor already has this feature; this is just to\n illustrate how to use IStreamAttacher and that you may close streams.

\n

XXX keep this one?

\n
from __future__ import print_function\n@@ -546,15 +546,15 @@\n         print("  ", s)\n     yield Deferred()\n 
\n
\n
\n
\n

stream_circuit_logger.py\u00b6

\n-

Download the example.\n+

Download the example.\n For listening to changes in the Circuit and State objects, this\n example is the easiest to understand as it just prints out (some of)\n the events that happen. Run this, then visit some Web sites via Tor to\n see what\u2019s going on.

\n
#!/usr/bin/env python\n \n # This uses an IStreamListener and an ICircuitListener to log all\n@@ -643,15 +643,15 @@\n 
\n
\n
\n
\n

Events\u00b6

\n
\n

monitor.py\u00b6

\n-

Download the example.

\n+

Download the example.

\n

Use a plain txtorcon.TorControlProtocol instance to listen\n for some simple events \u2013 in this case marginally useful, as it\n listens for logging at level INFO, NOTICE, WARN and ERR.

\n
#!/usr/bin/env python\n \n # Just listens for a few EVENTs from Tor (INFO NOTICE WARN ERR) and\n # prints out the contents, so functions like a log monitor.\n@@ -682,15 +682,15 @@\n 
\n
\n
\n
\n

Miscellaneous\u00b6

\n
\n

stem_relay_descriptor.py\u00b6

\n-

Download the example.

\n+

Download the example.

\n

Get information about a relay descriptor with the help of Stem\u2019s Relay Descriptor class.\n We need to specify the nickname or the fingerprint to get back\n the details.

\n
#!/usr/bin/env python\n \n # This shows how to get the detailed information about a\n # relay descriptor and parse it into Stem's RelayDescriptor\n@@ -741,15 +741,15 @@\n     print("The relay's fingerprint is: {}".format(relay_info.fingerprint))\n     print("Time in UTC when the descriptor was made: {}".format(relay_info.published))\n 
\n
\n
\n
\n

txtorcon.tac\u00b6

\n-

Download the example

\n+

Download the example

\n

Create your own twisted Service for deploying using twistd.

\n
import functools\n from os.path import dirname\n import sys\n from tempfile import mkdtemp\n \n import txtorcon\n"
                },
                {
                  "source1": "./usr/share/doc/python-txtorcon-doc/html/hacking.html",
                  "source2": "./usr/share/doc/python-txtorcon-doc/html/hacking.html",
                  "unified_diff": "@@ -78,15 +78,15 @@\n 
  • @txtorcon on Twitter (announcements only)
  • \n \n
    \n
    \n
    \n

    Public Key\u00b6

    \n

    You can download my key from a keyserver (0xC2602803128069A7)\n-or see meejah.asc in the repository. The fingerprint\n+or see meejah.asc in the repository. The fingerprint\n is 9D5A 2BD5 688E CB88 9DEB CD3F C260 2803 1280 69A7.

    \n

    Also available at https://meejah.ca/meejah.asc.\n For convenience: curl https://meejah.ca/meejah.asc | gpg --import

    \n
    \n
    \n

    Pull Requests\u00b6

    \n

    Yes, please!

    \n" }, { "source1": "./usr/share/doc/python-txtorcon-doc/html/installing.html", "source2": "./usr/share/doc/python-txtorcon-doc/html/installing.html", "unified_diff": "@@ -130,15 +130,15 @@\n
    \n
    \n
    \n
    \n

    Source Code\u00b6

    \n

    Most people will use the code from https://github.com/meejah/txtorcon\n The canonical URI is http://timaq4ygg2iegci7.onion\n-I sign tags with my public key (meejah.asc)

    \n+I sign tags with my public key (meejah.asc)

    \n
      \n
    • git clone https://github.com/meejah/txtorcon.git
    • \n
    • torsocks git clone git://timaq4ygg2iegci7.onion/meejah/txtorcon.git
    • \n
    \n

    Rendered documentation for the latest release is at txtorcon.readthedocs.org.

    \n

    See Contributions if you wish to contribute back to txtorcon :)

    \n
    \n" }, { "source1": "./usr/share/doc/python-txtorcon-doc/html/interop_asyncio.html", "source2": "./usr/share/doc/python-txtorcon-doc/html/interop_asyncio.html", "unified_diff": "@@ -72,15 +72,15 @@\n

    Here is an example using the aiohttp library as a Web server\n behind an Onion service that txtorcon has set up (in a newly-launched\n Tor process):

    \n

    wanted: I can\u2019t get this example to work properly with a Unix\n socket.

    \n
    \n

    web_onion_service_aiohttp.py\u00b6

    \n-

    Download the example.

    \n+

    Download the example.

    \n
    # This launches Tor and starts an Onion service using Twisted and\n # txtorcon, and then starts a Web server using the aiohttp library.\n #\n # This style of interop between asyncio and Twisted requires twisted\n # to use the "asyncioreactor" and for code to convert Futures/Tasks to\n # Deferreds (most of which is already in Deferred)\n #\n"
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/181b12173a975b6d978d03083037a150/txtorcon.tac",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/9d3f5a50a77bb165bbb5703f517631b5/txtorcon.tac",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/1e8f7a82a687301ebdea9713f3114b35/stream_circuit_logger.py",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/d52f269ed131e68d2f58f2a9dc7f45b5/stream_circuit_logger.py",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/25359749aa910d0a7619f335575c39b9/web_client_custom_circuit.py",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/32140c46b71ee4464b0e793a3b0e0c9e/web_client_custom_circuit.py",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/2a2bb0e4c3044bf4327852c1969c546f/disallow_streams_by_port.py",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/79480c5d5801236f233bfa1e76110669/disallow_streams_by_port.py",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/4085dc3e0de8dab0d9b74e9506651b90/launch_tor.py",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/9ceefaed7ac5a67888847e1cad587a1e/launch_tor.py",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/475daa2663c75f05204e4a046aa905a3/meejah.asc",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/cbb24ada7f072c926056c7c5e6f483d8/meejah.asc",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/85997f7c459485291411b20a1b9d267c/web_client.py",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/90a193104a8aae5f369410fbf3a4711a/web_client.py",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/9b59e71dba38b8d6fe88b004defe2368/monitor.py",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/d4fb0b6b10cc160d3e1c9e5041f80c77/monitor.py",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/b34ebecd89d1f7ff94dce6b8fdf836af/launch_tor_endpoint.py",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/507ae57f4a78e92f69707f13d2f53757/launch_tor_endpoint.py",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/c51b803f6b4c3c38c3e4272a08f251cf/web_client_treq.py",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/afbf1d6676d3526497180a438defbdff/web_client_treq.py",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/d32d9c810639aeab7672a568388f5b7a/stem_relay_descriptor.py",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/919f41e24f68b74bbaa54468f6633737/stem_relay_descriptor.py",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    },
                    {
                      "source1": "./usr/share/doc/python-txtorcon-doc/html/_downloads/d66dcb10ccdeba7d72e1ba5add16ce2f/web_onion_service_aiohttp.py",
                      "source2": "./usr/share/doc/python-txtorcon-doc/html/_downloads/48ee660330bf674d0f08cf0d03d8e22e/web_onion_service_aiohttp.py",
                      "comments": [
                        "Files identical despite different names"
                      ],
                      "unified_diff": null
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }