txtorcon

Twisted-based asynchronous Tor control protocol implementation. Includes unit-tests, examples, state-tracking code and configuration abstraction.

MIT License

Downloads
19.2K
Stars
247
Committers
28
txtorcon - v0.17.0

Published by meejah about 8 years ago

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm pleased to announce txtorcon 0.17.0, largely to fix a bug with
Unix-socket control-ports:

 * issue 187: fix unix-socket control endpoints
 * sometimes mapping streams to hostnames wasn't working properly
 * backwards-compatibility API for `socks_hostname` was incorrectly named

You can download the release from PyPI or GitHub (or of
course "pip install txtorcon"):

   https://pypi.python.org/pypi/txtorcon/0.17.0
   https://github.com/meejah/txtorcon/releases/tag/v0.17.0

Releases are also available from the hidden service:

   http://timaq4ygg2iegci7.onion/txtorcon-0.17.0.tar.gz
   http://timaq4ygg2iegci7.onion/txtorcon-0.17.0.tar.gz.asc

You can verify the sha256sum of both by running the following 4 lines
in a shell wherever you have the files downloaded:

cat <<EOF | sha256sum --check
5e321387ab56f22d184b18d91a60c30dd1f72575d9e32ff3614ef911bce49daa  txtorcon-0.17.0.tar.gz
e1da13cc43328e040335d091e2ef15717a2b836b48fbede31fc6a7e332b699b4  txtorcon-0.17.0-py2-none-any.whl
EOF

thanks,
meejah
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJX9B8gAAoJEMJgKAMSgGmnCLoH/jZNzTG4QRRKk54XkFCbSmBh
Qg0YAmWVa4iFMkjidawyfZ8Cocje+yROMiuvH2VWNCcI809q96TB06caNJS0w5c3
I10i9N9xY2S13/yVzW/izW3HMPR+Sdi0Hod9UGTQ0F2Vpcs+g8bpPyKvMK+mPm+L
P0QwyejOAO/FzTndA73T5o2bVKdR3NkK1EfY0FRTjQsD71UZlVJa4AK828v1EMi3
0oNXDny+H9xzJu/i03zFX3zSL1jb69KCxkLyUBIuj5Vg+3by8FwbBa1G3Ehcs70C
RV6ew6WLa0Ty7fnUBy18Z3gFx9+4Ew/Eq/t7weVgRiW0VCAHwgOKx0D4wqSMeH8=
=nyB6
-----END PGP SIGNATURE-----
txtorcon - v0.16.1

Published by meejah about 8 years ago

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm very happy to announce txtorcon 0.16.1 which adds a couple minor
features to help support using Foolscap and Tahoe-LAFS over Tor.

 * issue 172: give TorProcessProtocol a .quit method
 * issue 181: enable SOCKS5-over-unix-sockets for TorClientEndpoint
   (thanks to "dawuud"). Also adds TLS support over SOCKS5.

You can download the release from PyPI or GitHub (or of
course "pip install txtorcon"):

   https://pypi.python.org/pypi/txtorcon/0.16.1
   https://github.com/meejah/txtorcon/releases/tag/v0.16.1

Releases are also available from the hidden service:

   http://timaq4ygg2iegci7.onion/txtorcon-0.16.1.tar.gz
   http://timaq4ygg2iegci7.onion/txtorcon-0.16.1.tar.gz.asc

You can verify the sha256sum of both by running the following 4 lines
in a shell wherever you have the files downloaded:

cat <<EOF | sha256sum --check
d551837025bb9f4fdded58cd11025c6e42924b6eb20dcb2a49f182b3fd85f377  dist/txtorcon-0.16.1.tar.gz
e89a785f64f3544b19f7b1e6cebdbd6914475e0c60f508d9f0b6ce4a840769a7  dist/txtorcon-0.16.1-py2-none-any.whl
EOF

thanks,
meejah


p.s. There is no 0.16.0 because I tagged the wrong thing and noticed
     when pushing to PyPI.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJXx3TOAAoJEMJgKAMSgGmn7AEIAN5BQNqisxefMyKnHA8BCSZW
UJpXPagnftg33HF2v4ZG/2yQUh8sYMqEn/OI99g8yA++bZmG9H0lJixg0zs6V2XV
bX63zJ7d9lr+uu3D+crQNnmofcoUbLRX+Z7n5SWhgGtlsVqemIJton/cuedtnrXm
1E5VdjhxYIZ/2Qv0gTz7ZBYw0Hmkr24qwVufdblQHDov2SdM0kknInWqxFqVMLQd
/p0+PTEF6SMdemHFkOJ73sCbINg6qLB4cErKaFY14U2cnS3Y1pZLhlEKFTzbd8TU
SWtg1b9pn5s4Euq5ruYhNNIqVtQz/lrq0/ZQ+NKiLZ/L2rtw9xFY0nF1KhFTgLc=
=IMj2
-----END PGP SIGNATURE-----

txtorcon -

Published by meejah about 8 years ago

I'm happy to announce txtorcon 0.15.0:

  • added support for NULL control-port-authentication which is often
    appropriate when used with a UNIX domain socket
  • switched to https://docs.python.org/3/library/ipaddress.html instead of
    Google's ipaddr; the API should be the same from a user
    perspective but packagers and tutorials will want to change
    their instructions slightly (pip install ipaddress or apt-get install python-ipaddress are the new ways).
  • support the new ADD_ONION and DEL_ONION "ephemeral hidden services"
    commands in TorConfig
  • a first stealth-authentication implementation (for "normal" hidden
    services, not ephemeral)
  • bug-fix from https://github.com/david415 to raise
    ConnectionRefusedError instead of StopIteration when running out of
    SOCKS ports.
  • new feature from https://github.com/david415 adding a
    build_timeout_circuit method which provides a Deferred that
    callbacks only when the circuit is completely built and errbacks if
    the provided timeout expires. This is useful because
    :doc:TorState.build_circuit callbacks as soon as a Circuit
    instance can be provided (and then you'd use
    :doc:Circuit.when_built to find out when it's done building).
  • new feature from https://github.com/coffeemakr
    falling back to password authentication if cookie authentication
    isn't available (or fails, e.g. because the file isn't readable).
  • both TorState and TorConfig now have a .from_protocol class-method.
  • spec-compliant string-un-escaping from https://github.com/coffeemakr
  • fix https://github.com/meejah/txtorcon/issues/176

You can download the release from PyPI or GitHub (or of
course "pip install txtorcon"):

https://pypi.python.org/pypi/txtorcon/0.15.0
https://github.com/meejah/txtorcon/releases/tag/v0.15.0

Releases are also available from the hidden service:

http://timaq4ygg2iegci7.onion/txtorcon-0.15.0.tar.gz
http://timaq4ygg2iegci7.onion/txtorcon-0.15.0.tar.gz.asc

You can verify the sha256sum of both by running the following 4 lines
in a shell wherever you have the files downloaded:

cat <<EOF | sha256sum --check
f2e8cdb130aa48d63c39603c2404d9496c669fa8b4c724497ca6bfa7752a9475 dist/txtorcon-0.15.0.tar.gz
a359fb5e560263499400018262494378b3d347cd04a361adb08939df95ecedf6 dist/txtorcon-0.15.0-py2-none-any.whl
EOF

thanks,
meejah

txtorcon - v0.13.0

Published by meejah over 9 years ago

I'm pleased to announce txtorcon 0.13.0. This adds several amazing
features, including levitation. Full list of improvements:

  • support basic and stealth hidden service authorization, and parse client_keys files.
  • 2x speedup for TorState parsing (mostly by lazy-parsing timestamps)
  • can now parse ~75000 microdescriptors/second per core of 3.4GHz Xeon E3
  • launch_tor now doesn't use a temporary torrc (command-line options instead)
  • tons of pep8 cleanups
  • several improvements to hidden-service configuration from sambuddhabasu1
  • populate valid signals from GETINFO signals/names from sambuddhabasu1

You can download the release from PyPI or GitHub (or of course "pip
install txtorcon"):

https://pypi.python.org/pypi/txtorcon/0.13.0
https://github.com/meejah/txtorcon/releases/tag/v0.13.0

Releases are also available from the hidden service:

http://timaq4ygg2iegci7.onion/txtorcon-0.13.0.tar.gz
http://timaq4ygg2iegci7.onion/txtorcon-0.13.0.tar.gz.asc

You can verify the sha256sum of both by running the following 4 lines
in a shell wherever you have the files downloaded:

cat <<EOF | sha256sum --check
3218d0fa0c22f49eee9324a5862b2d53ef77d5cb8e555e2bcffc24070aaeca7d txtorcon-0.13.0.tar.gz
de266cd1b35cc2d9f4600e510d9d3a5645771d36ce36a5888a2828594feb1ef0 txtorcon-0.13.0-py2-none-any.whl
EOF

thanks,
meejah

txtorcon - v0.12.0

Published by meejah over 9 years ago

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm pleased to announce txtorcon 0.12.0. Full list of improvements:

  • doc, code and import cleanups from Kali Kaneko
  • HiddenServiceDirGroupReadable support
  • Issue #80: honour "ControlPort 0" in incoming TorConfig
    instance. The caller owns both pieces: you have to figure out when
    it's bootstraped, and are responsible for killing it off.
  • Issue #88: clarify documentation and fix appending to some config lists
  • If GeoIP data isn't loaded in Tor, it sends protocol errors; if
    txtorcon also hasn't got GeoIP data, the queries for country-code
    fail; this error is now ignored.
  • 100% unit-test coverage!
  • PyPy support (as in: all tests pass)
  • TCP4HiddenServiceEndpoint now waits for descriptor upload before
    the listen() call does its callback (this means when using "onion:"
    endpoint strings, or any of the endpoints APIs your hidden service
    is 100% ready for action when you receive the callback)
  • "TorControlProtocol now has an ".all_routers" member, which is a set() of all Routers
  • TimeIntervalCommaList from Tor config supported
  • documentation fix from "sammyshj"

You can download the release from PyPI or GitHub (or of
course "pip install txtorcon"):

https://pypi.python.org/pypi/txtorcon/0.12.0
https://github.com/meejah/txtorcon/releases/tag/v0.12.0

Releases are also available from the hidden service:

http://timaq4ygg2iegci7.onion/txtorcon-0.12.0.tar.gz
http://timaq4ygg2iegci7.onion/txtorcon-0.12.0.tar.gz.asc

You can verify the sha256sum of both by running the following 4 lines
in a shell wherever you have the files downloaded:

cat <<EOF | sha256sum --check
206b1bd8a840119c12d9b85d638ab9defec5b376436fa36be9139ab1ebc8cd78 txtorcon-0.12.0.tar.gz
4e4f6aa2ec677f6c27bff41d17888d31a979f6b831a20501101b39ca93ede9da txtorcon-0.12.0-py2-none-any.whl
EOF

thanks,
meejah
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQEcBAEBAgAGBQJU0TWHAAoJEMJgKAMSgGmnDEoH/AriLbAyImmcfmRy5C2YcVth
eJyXRhHTXc6WBh0tBgryt88o5n55XAwiqNoAwslLvS4RS6w9NEzA9zusimuVYEZs
CV10NeC5PiXHJ6qDlcJ+FPsHhWk4zt49wGtaqyfGK/8aZm9enQwiMH6j9Iwx6il0
rLFwm7RoukPTW8dn3oR67QFYwdpHD7cCQW8e6uajpQuBCeNr2nljRpVLFM/6hueh
shIAAmPGfBQ2vR16QOQDyJMCLk7oKj0xtzok8O4fWBof1+h3JvMQqphEYlgtE5Lh
9W0XgG/ugrrhjIIoKc29+4Io5vaqKjHcGfqEyJyEimppgGB/6YTX2fJNw2R3Op4=
=vaqH
-----END PGP SIGNATURE-----

txtorcon - v0.11.0

Published by meejah about 10 years ago

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

txtorcon 0.11.0 is now released. This adds a few API improvements:

  • launch_tor() allows access to stdout, stderr in real-time
    and control whether we kill Tor on and stderr output. See issue #79.
  • Warning about build_circuit being called without a guard first
    is now optional (default is still warn) (from arlolra)
  • available_tcp_port() now in util (from arlolra)
  • TorState now has a .routers_by_hash member (from arlolra)

You can download the release from PyPI or GitHub (or of course "pip
install txtorcon"):

https://pypi.python.org/pypi/txtorcon/0.11.0
https://github.com/meejah/txtorcon/releases/tag/v0.11.0

sha256sum reports:

5efb7ba4faf698e68daea3d8711ce0ecfd8b95501cbec00b2093dd99f72dc8cc txtorcon-0.11.0-py2-none-any.whl
aa206ab8a31053fd34798659c3d4cd7354a3e6872a86065c55098866df3dcaca txtorcon-0.11.0-py2-none-any.whl.asc
ecb7cc8ee002ead5481c17fd62576521862e93081c58d7118f53cf3c8817f857 txtorcon-0.11.0.tar.gz
76ee6983269347d475ff4df9aefb7c43ddd25d24dd67c4e3293f5c8557377652 txtorcon-0.11.0.tar.gz.asc

txtorcon 0.10.1 is in Debian, and no doubt this release will migrate
there quickly as usual (thanks to Lunar^)

thanks,
meejah
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQEcBAEBAgAGBQJT7vo4AAoJEMJgKAMSgGmnzjsH/36wtSA2Cb1coSuK+5hGNIGa
flmGETgEOo4mHRCnSLQdO5JrXAKR9zeEt9tT9IfCTO1kRy4Q5cqzE569RhPsciBn
1g3fMlgXewjJuXx1atefO1sbqQgK74TsIqxkGnK85LEUOcqIcW71JT8lI6CDn3xg
LymqLLhbC28uYLot+Y0/KPAME7MAlgugny5Me2sGzey1aKfjZhPXQ6gRJsGVlPjQ
qhMD6ck9Xe+QZNkE4udzEzNkvA7Og/HJdwwi3yC/ENKcWKit/9PeKvmttVjyQ9Aj
KGeN2CMA5jTHHznvohvAKgeUnkDDR4tqpcoKdJZjCVg9yAaaiNoPw2wj/3O3tTw=
=elqw
-----END PGP SIGNATURE-----

txtorcon - 0.10.1

Published by meejah over 10 years ago

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

A new minor release of txtorcon exists, fixing a couple bugs
introduced along with the endpoints feature in 0.10.0:

  • issue #78: Add tox tests and fix for Twisted 12.0.0 (and prior), as
    this is what Debian squeeze ships
  • issue #77: properly expand relative and tilde paths for
    hiddenServiceDir via endpoints
  • fix bug incorrectly issuing RuntimeError in brief window of time on
    event-listeners

You can download the release from PyPI or GitHub (or of course "pip
install txtorcon"):

https://pypi.python.org/pypi/txtorcon/0.10.1
https://github.com/meejah/txtorcon/releases/tag/v0.10.1

sha256sum reports:

33f04523329b14accb2054b81c5da887c28b402c797ba895dc1ee58824e107f1 txtorcon-0.10.1-py2-none-any.whl
7a6e8fab71fd05c223d866b60b998cf308661ef1fc87d94e06c3b51f4ada4a6a txtorcon-0.10.1.tar.gz

thanks,
meejah
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQEbBAEBAgAGBQJTzD25AAoJEMJgKAMSgGmnB8IH+MnRyCCKMgPJ2GjV01K+PVaU
UgvUXhaqLdQUbViKeYy7KNst9d8Dm3ejHr21kedE8oeY/ztHlLdvtJtgWWvTOrTI
qqh4wWfBVHeibSgsEzwNVdeJ3MtERPWuCrIkIWnathbVjfnkRW+cLPOtJUWtSi/d
pdN4ZC+K1jBvSeHPCDhf8sXSqdzsOxXOWn/9SUaa70c7kMrbxjMxO1Jw/miqftMq
/wo0vyXn4EeEdURa9hYFpUqgUbUFl6C1KiELNeHWtwGbGWku17bNgQn5HH7uY4/6
RODYBaAT327062m81ig7zQ6MmxKcngIG4Ic3qvJYeLerO/EnnNvzSs3Q+EGQeg==
=nsEx
-----END PGP SIGNATURE-----

txtorcon - txtorcon 0.10.0

Published by meejah over 10 years ago

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm excited to announce txtorcon 0.10.0 which adds support for
Twisted's endpoint strings.

This means that ANY Twisted program that uses endpoints can accept
"onion:" strings to bring up a hidden services easily (by launching a
new Tor instance). Typically, no code changes to the application
should be needed (just "pip install txtorcon").

"twistd" supports endpoints, so for example to serve some Web content
from ~/public_html as a hidden-serivce, we can do this (with txtorcon
installed):

twistd web --port onion:80 --path ~/public_html

Some examples of other valid "onion:" endpoint strings:

onion:80:hiddenServiceDir=/dev/shm/hidsrv
onion:80:controlPort=9050:hiddenServiceDir=/srv/hidden

The first allows specifying existing hidden service keys and the
second says to connect to an already-running Tor instance.

Thanks to David Stainton (dawuud) for the initial pull-request (and
continued collaboration) that made this happen. There is a complete
demonstration of the power of this Fully Operational endpoint-station
here:

https://txtorcon.readthedocs.org/en/latest/howtos.html#endpoints-enable-tor-with-any-twisted-service

You can download the release from PyPI or GitHub (or of course use
"pip install txtorcon"):

https://pypi.python.org/pypi/txtorcon/0.10.0
https://github.com/meejah/txtorcon/releases/tag/v0.10.0

sha256sum reports:

910ff3216035de0a779cfc167c0545266ff1f26687b163fc4655f298aca52d74 txtorcon-0.10.0-py2-none-any.whl
c93f3d0f21d53c6b4c1521fc8d9dc2c9aff4a9f60497becea207d1738fa78279 txtorcon-0.10.0.tar.gz

thanks,
meejah
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQEcBAEBAgAGBQJTnTM5AAoJEMJgKAMSgGmnB5EIAIJACHhd7PEWYfCZmB8lL1pr
J4rrhUuXD1iI7zJJL/rmS/SZLL+34JoKke6iQsBRGYzU0GRK2JQkFAeMq++AMdMu
QvoTg745OhnMSbZyCyS6buN/NhAVcmD3GYI9h8TK60jfUPEFn7+sDstMG4OePdgq
X0QQHBuJq9XtDwEmRWFHq2Aht//7J2DUliPPjtwT3C4FhPT5pXxasvfQA4jOYxsO
jTja6UE4/4TnonV5gB/chijp60cKvVxFQi86mKuNnVaKTZu+QCZFJtXkr/DbRSxv
CJ+z7jJ9s8xhfQ5Nkv9pkVAreH6w9bemc/iijKlZmQGYvLBTsvISPATyWGtn1f4=
=wIVZ
-----END PGP SIGNATURE-----

txtorcon - txtorcon 0.9.2

Published by meejah over 10 years ago

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I am happy to announce that txtorcon v0.9.2 is now available.

This release adds a few minor bug-fixes and a few API
enhancements. Full details:

  • add on_disconnect callback for TorControlProtocol (no more monkey-patching Protocol API)
  • add age() method to Circuit
  • add time_created property to Circuit
  • don't incorrectly listen for NEWDESC events in TorState
  • add .flags dict to track flags in Circuit, Stream
  • build_circuit() can now take hex IDs (as well as Router instances)
  • add unique_name property to Router (returns the hex id, unless Named then return name)
  • add location property to Router
  • TorState.close_circuit now takes either a Circuit ID or Circuit instance
  • TorState.close_stream now takes either a Stream ID or Stream instance
  • support both GeoIP API versions
  • more test-coverage
  • small patch from enriquefynn improving tor binary locating
  • strip OK lines in TorControlProtocol (https://github.com/meejah/txtorcon/issues/8)
  • use TERM not KILL when Tor launch times out (https://github.com/meejah/txtorcon/pull/68>) from hellais
  • Unit-test coverage now at 98%

sha256 sums for the distribution files:

93e934f83e3fc6fcf40e76f7c9c28459af04205fb912d384aaacb7ac5269bb8f dist/txtorcon-0.9.2-py2-none-any.whl
fe90743cdc453002ad046aa6556b611b4e85b813ff92865769d3d27712c2ca47 dist/txtorcon-0.9.2.tar.gz

There are also signatures on github and txtorcon.readthedocs.org
You may download from github or the hidden service:

https://github.com/meejah/txtorcon/releases/tag/v0.9.2
https://github.com/meejah/txtorcon/releases/download/v0.9.2/txtorcon-0.9.2-py2-none-any.whl
https://github.com/meejah/txtorcon/releases/download/v0.9.2/txtorcon-0.9.2-py2-none-any.whl.asc
https://github.com/meejah/txtorcon/releases/download/v0.9.2/txtorcon-0.9.2.tar.gz
https://github.com/meejah/txtorcon/releases/download/v0.9.2/txtorcon-0.9.2.tar.gz.asc

http://timaq4ygg2iegci7.onion/txtorcon-0.9.2.tar.gz
http://timaq4ygg2iegci7.onion/txtorcon-0.9.2.tar.gz.asc

Source code:

https://github.com/meejah/txtorcon/archive/v0.9.2.tar.gz

Thanks,
meejah
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQEcBAEBAgAGBQJTWVf5AAoJEMJgKAMSgGmn07kIAKSwjBck76dyN1lWJj0fRl/f
BevLpnp+rb+ge5hBAeKfsVTYciDBZeSo8/fE44wTNh5Qj9HEhFopVC4WF61rIFU+
4IkpnFvfmVEd8Iu1vqQ/hFmP1jrvT8T+nTbaTGkcoCSPI+GyXkbxLqcl0Fncq51M
M0OIRphyWA7EK3YoZ2Q1BOEIwsN0pwERYUhU0CGS45L7OZmyw86RXTMBZpBnNXrD
5VjQdpx8fvrV2iCRXi/k/e2Jy/xqs8o0I2+o9M6WrBiGCs5S9YbjsAKzRb7dsaBZ
RlRAdKUjyzkquPl4K8E5ocDToB1hIGvqCSp7s11a5rq5T/jUiDMYrjkxIXH1Yg4=
=W7+f
-----END PGP SIGNATURE-----

txtorcon - v0.9.1

Published by meejah almost 11 years ago

I am pleased to announce that txtorcon v0.9.1 is now available.

This release adds quite a few minor bug-fixes, simplifies GeoIP
handling (with support for both pre- and post 0.3 pygeoip APIs), a
tutorial-style walkthrough, the availability of a "wheel" distribution
and uses "twine" to do the uploads (allowing me to actually test the
signed tarball and whl files before uploading).

Full list of improvements:

  • put test/ directory at the top level
  • using http://nedbatchelder.com/code/coverage tool instead of custom script
  • using coveralls.io and travis-ci.org for test coverage and continuous integration
  • issue #56: added Circuit.close() and Stream.close() starting from aagbsn's patch
  • parsing issues with multi-line keyword discovered and resolved
  • preserve router nicks from long-names if consensus lacks an entry (e.g. bridges)
  • using https://github.com/dstufft/twine for releases
  • "Wheel" release now also available
  • issue #57: "python setup.py develop" now supported
  • issue #59: if tor_launch() times out, Tor is properly killed (starting with pull-request from Ryman)
  • experimental docker.io-based tests (for HS listening, and tor_launch() timeouts)
  • issue #55: pubkey link on readthedocs
  • issue #63
  • clean up GeoIP handling, and support pygeoip both pre and post 0.3
  • slightly improve unit-test coverage (now at 97%, 61 lines out of 2031 missing)
  • added a walkthrough to the documentation

sha256 sums for the distribution files:

68e21f719f6541448c0ec8e4a95787a0fe13452dd4086631ffdce79b47134e37 txtorcon-0.9.1.tar.gz
b92fb5a767eeb3c3d1ec7626fb992d76c73f068e00e69bda51cdbbfc8868eba7 txtorcon-0.9.1-py27-none-any.whl

Note that there are cryptographic signatures in the github repository,
linked and hosted on readthedocs as well as via the hidden
service.

Also note that you did not miss out on 0.9.0; I screwed up the tarball
upload to PyPI resulting in a signature mismatch and pypi doesn't let
you re-upload a tarball.

Thanks,
meejah

txtorcon - 0.8.1

Published by meejah over 11 years ago

Fix import in setup.py preventing 0.8.0 installs and a couple small fixes from Lukas Lueg and Isis Lovecruft

Package Rankings
Top 31.83% on Conda-forge.org
Top 2.57% on Pypi.org
Top 6.67% on Proxy.golang.org