[tor-commits] [ooni-probe/master] Support CPython with patch from lunar https://trac.torproject.org/projects/tor/ticket/8507

art at torproject.org art at torproject.org
Wed Mar 20 17:49:11 UTC 2013


commit f5ccc326fa9715422bf0029a3f334643e247a9e8
Author: Arturo Filastò <art at fuffa.org>
Date:   Tue Mar 19 13:39:18 2013 -0400

    Support CPython with patch from lunar https://trac.torproject.org/projects/tor/ticket/8507
---
 ooni/utils/geodata.py |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/ooni/utils/geodata.py b/ooni/utils/geodata.py
index d9883ba..5bc55a7 100644
--- a/ooni/utils/geodata.py
+++ b/ooni/utils/geodata.py
@@ -8,9 +8,14 @@ from ooni.utils import log, net
 from ooni import config
 
 try:
-    import pygeoip
+    from pygeoip import GeoIP
 except ImportError:
-    log.err("Unable to import pygeoip. We will not be able to run geo IP related measurements")
+    try:
+        import GeoIP as CGeoIP
+        def GeoIP(database_path, *args, **kwargs):
+            return CGeoIP.open(database_path)
+    except ImportError:
+        log.err("Unable to import pygeoip or GeoIP. We will not be able to run geo IP related measurements")
 
 class GeoIPDataFilesNotFound(Exception):
     pass
@@ -22,13 +27,13 @@ def IPToLocation(ipaddr):
 
     location = {'city': None, 'countrycode': None, 'asn': None}
     try:
-        city_dat = pygeoip.GeoIP(city_file)
+        city_dat = GeoIP(city_file)
         location['city'] = city_dat.record_by_addr(ipaddr)['city']
 
-        country_dat = pygeoip.GeoIP(country_file)
+        country_dat = GeoIP(country_file)
         location['countrycode'] = country_dat.country_code_by_addr(ipaddr)
 
-        asn_dat = pygeoip.GeoIP(asn_file)
+        asn_dat = GeoIP(asn_file)
         location['asn'] = asn_dat.org_by_addr(ipaddr)
 
     except IOError:





More information about the tor-commits mailing list