#20389 closed Bug (fixed)
TypeError when executing example code of GeoIP
| Reported by: | anonymous | Owned by: | nobody |
|---|---|---|---|
| Component: | Python 3 | Version: | 1.5 |
| Severity: | Normal | Keywords: | geoip TypeError |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
I tried to execute example code from [1] and i found a TypeError on the line g.country('google.com').
You can see the traceback here in [2].
I'm using Python 3.2.3 and Django 1.5.1.
[1] https://docs.djangoproject.com/en/1.5/ref/contrib/gis/geoip/
[2] http://pastebin.com/KdUZ7cmv
Change History (6)
comment:1 by , 13 years ago
| Component: | Uncategorized → Python 3 |
|---|---|
| Triage Stage: | Unreviewed → Accepted |
| Type: | Uncategorized → Bug |
comment:2 by , 13 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
I just fixed this this morning: [7b00d90208e998debc60e51cadb352645c91e3fd]
comment:3 by , 12 years ago
| Resolution: | fixed |
|---|---|
| Status: | closed → new |
I'm the original reporter. The bug is still in django 1.5.2 as reported 3 months ago.
comment:4 by , 12 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
It's fixed in master and in 1.6.
comment:5 by , 12 years ago
aaugustin can you please point to the commit that fixes the problem so I can copy it?
I'm copying the paste here before it expires:
$ python3 manage.py shell Python 3.2.3 (default, May 6 2013, 01:46:35) [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from django.contrib.gis.geoip import GeoIP >>> g = GeoIP() >>> g.country('google.com') Traceback (most recent call last): File "<console>", line 1, in <module> File "/usr/local/lib/python3.2/dist-packages/django/contrib/gis/geoip/base.py", line 194, in country return {'country_code' : self.country_code(query), File "/usr/local/lib/python3.2/dist-packages/django/contrib/gis/geoip/base.py", line 169, in country_code if ipv4_re.match(query): TypeError: can't use a string pattern on a bytes-like objectThanks for the report. Most likely this feature isn't tested and it slipped through when we ported Django to Python 3.