From 170c9e7ea4b097e307a1b0572dba2ed4be8104f3 Mon Sep 17 00:00:00 2001 From: gotlium Date: Wed, 13 Nov 2013 17:23:16 +0400 Subject: [PATCH] fixed problem with import --- TODO | 3 ++- docs/conf.py | 4 ++-- docs/dev_install.rst | 2 +- docs/usage.rst | 2 +- geoip/__init__.py | 8 -------- geoip/models.py | 20 ++++++++++++++++++-- geoip/tasks.py | 4 ++-- geoip/test_settings.py | 2 +- setup.py | 2 +- 9 files changed, 28 insertions(+), 19 deletions(-) diff --git a/TODO b/TODO index 45855a4..dd528c5 100644 --- a/TODO +++ b/TODO @@ -1 +1,2 @@ -Add backend for ipgeobase. Now supported own db with providers & ISP. \ No newline at end of file +Add backend for ipgeobase. Now supported own db with providers & ISP. +Py3.2 support diff --git a/docs/conf.py b/docs/conf.py index dd22a2d..04e71cf 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -50,9 +50,9 @@ # built documents. # # The short X.Y version. -version = '1.2' +version = '1.2.1' # The full version, including alpha/beta/rc tags. -release = '1.2' +release = '1.2.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/dev_install.rst b/docs/dev_install.rst index 640b983..f2b568c 100644 --- a/docs/dev_install.rst +++ b/docs/dev_install.rst @@ -19,7 +19,7 @@ Installation for development .. code-block:: python - >>> from geoip import record_by_ip_as_dict + >>> from geoip.geo import record_by_ip_as_dict >>> print (record_by_ip_as_dict('91.195.136.52')) diff --git a/docs/usage.rst b/docs/usage.rst index 41e779e..341db95 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -17,7 +17,7 @@ and provider. Here is a basic example:: - from geoip import record_by_ip_as_dict + from geoip.geo import record_by_ip_as_dict ip = '91.195.136.52' diff --git a/geoip/__init__.py b/geoip/__init__.py index 3e0b363..e69de29 100644 --- a/geoip/__init__.py +++ b/geoip/__init__.py @@ -1,8 +0,0 @@ -__all__ = ["record_by_ip_as_dict", "record_by_request_as_dict", - "record_by_ip", "record_by_request", "get_ip"] - -from .geo import ( - record_by_ip_as_dict, record_by_request_as_dict, - record_by_ip, record_by_request, get_ip, -) -from .signals import * diff --git a/geoip/models.py b/geoip/models.py index 2180cca..81827d7 100644 --- a/geoip/models.py +++ b/geoip/models.py @@ -1,9 +1,13 @@ # -*- coding: utf-8 -*- +from django.db.models.signals import post_save, m2m_changed from django.utils.translation import ugettext as _ +from django.dispatch import receiver from django.db import models from geoip.redis_wrapper import RedisSync +from geoip.tasks import link_provider_task +from geoip.defaults import BACKEND class Country(models.Model): @@ -58,8 +62,8 @@ def __unicode__(self): return self.name class Meta: - verbose_name = u'ISP' - verbose_name_plural = u"ISP's" + verbose_name = _('ISP') + verbose_name_plural = _("ISP's") unique_together = (('country', 'name'), ) @@ -112,3 +116,15 @@ def set_provider(self, provider): class Meta: verbose_name = _('IP range') verbose_name_plural = _("IP ranges") + + +@receiver(post_save, sender=Range, dispatch_uid="range") +def save_to_redis(sender, instance, *args, **kwargs): + if BACKEND == 'redis': + RedisSync().sync_instance(instance) + + +@receiver(m2m_changed, sender=Provider.isp.through, dispatch_uid="provider") +def save_provider(sender, instance, action, *args, **kwargs): + if action == 'post_clear': + link_provider_task(instance) diff --git a/geoip/tasks.py b/geoip/tasks.py index 9cf06f8..47b5d22 100644 --- a/geoip/tasks.py +++ b/geoip/tasks.py @@ -5,18 +5,18 @@ from celery.task import Task from geoip.defaults import USE_CELERY, REDIS_SYNC_LOCK -from geoip.provider import LinkIspWithProvider -from geoip.models import Range class LinkIspWithProviderTask(Task): def run(self, *args, **kwargs): + from geoip.provider import LinkIspWithProvider LinkIspWithProvider().run(*args, **kwargs) class SyncRedisTask(Task): def run(self, *args, **kwargs): try: + from geoip.models import Range if not os.path.exists(REDIS_SYNC_LOCK): open(REDIS_SYNC_LOCK, 'w').close() Range.sync_with_redis() diff --git a/geoip/test_settings.py b/geoip/test_settings.py index 5e71fc7..1ec80e7 100644 --- a/geoip/test_settings.py +++ b/geoip/test_settings.py @@ -37,4 +37,4 @@ TEST_RUNNER = 'discover_runner.DiscoverRunner' GEO_REDIS_TYPE = 'pk' -GEO_REDIS_DB = 5 +GEO_REDIS_DB = 6 diff --git a/setup.py b/setup.py index 7ef8b2f..c4653d3 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ setup( name='django-geoip-redis', - version="1.2", + version="1.2.1", description='Django GeoIP. Based on default DB or Redis.', keywords='django geoip mysql redis', long_description=open('README.rst').read(),