1. Removed six dependency

2. pytz and typing are installed for old python versions only
3. psycopg2-bynary is installed in test environment instead of psycopg2
This commit is contained in:
M1ha 2021-07-06 10:19:12 +05:00
parent 717c74cfd1
commit 893ffaf17c
11 changed files with 20 additions and 29 deletions

View File

@ -16,9 +16,8 @@ It is based on [infi.clickhouse-orm](https://github.com/Infinidat/infi.clickhous
* [Django](https://docs.djangoproject.com/) 1.7+
* [Yandex ClickHouse](https://clickhouse.yandex/)
* [infi.clickhouse-orm](https://github.com/Infinidat/infi.clickhouse_orm)
* [pytz](https://pypi.org/project/pytz/)
* [six](https://pypi.org/project/six/)
* [typing](https://pypi.org/project/typing/)
* [pytz](https://pypi.org/project/pytz/) for python before 3.3
* [typing](https://pypi.org/project/typing/) for python before 3.5
* [psycopg2](https://www.psycopg.org/)
* [celery](http://www.celeryproject.org/)
* [statsd](https://pypi.org/project/statsd/)

View File

@ -1,11 +1,11 @@
Django (>=1.7)
pytz
six
typing
psycopg2
infi.clickhouse-orm
celery
Django (>=1.7)
infi.clickhouse-orm
pytz; python_version < '3.3'
statsd
typing; python_version < '3.5'
psycopg2-binary
django-pg-returning
django-pg-bulk-update
redis

View File

@ -1,7 +1,6 @@
Django (>=1.7)
pytz
six
typing; python_version < "3.5"
infi.clickhouse-orm
celery
Django (>=1.7)
infi.clickhouse-orm
pytz; python_version < '3.3'
statsd
typing; python_version < '3.5'

View File

@ -13,7 +13,7 @@ with open('requirements.txt') as f:
setup(
name='django-clickhouse',
version='1.0.3',
version='1.0.4',
packages=['django_clickhouse'],
package_dir={'': 'src'},
url='https://github.com/carrotquest/django-clickhouse',

View File

@ -11,7 +11,6 @@ from typing import List, Tuple, Iterable, Set, Any, Optional
from django.db.models import Model as DjangoModel, QuerySet as DjangoQuerySet
from infi.clickhouse_orm.engines import CollapsingMergeTree
from infi.clickhouse_orm.models import Model as InfiModel, ModelBase as InfiModelBase
from six import with_metaclass
from statsd.defaults.django import statsd
from .compatibility import namedtuple
@ -41,7 +40,7 @@ class ClickHouseModelMeta(InfiModelBase):
return res
class ClickHouseModel(with_metaclass(ClickHouseModelMeta, InfiModel)):
class ClickHouseModel(InfiModel, metaclass=ClickHouseModelMeta):
"""
Base model for all other models
"""

View File

@ -3,7 +3,6 @@ from typing import Generator, Optional, Type, Iterable
from infi.clickhouse_orm.database import Database as InfiDatabase, DatabaseException
from infi.clickhouse_orm.utils import parse_tsv
from six import next
from io import BytesIO
from statsd.defaults.django import statsd

View File

@ -5,7 +5,6 @@ It saves all operations to storage in order to write them to ClickHouse later.
from typing import Optional, Any, Type, Set
import six
from django.db import transaction
from django.db.models import QuerySet as DjangoQuerySet, Model as DjangoModel, Manager as DjangoManager
from django.db.models.manager import BaseManager
@ -64,7 +63,7 @@ class ClickHouseSyncBulkUpdateQuerySetMixin(ClickHouseSyncRegisterMixin, BulkUpd
pk_name = self.model._meta.pk.name
if returning is None:
returning = pk_name
elif isinstance(returning, six.string_types):
elif isinstance(returning, str):
returning = [pk_name, returning]
else:
returning = list(returning) + [pk_name]

View File

@ -4,7 +4,6 @@ This file defines router to find appropriate database
from typing import Type
import random
import six
from infi.clickhouse_orm.migrations import Operation, DropTable, CreateTable
from .clickhouse_models import ClickHouseModel
@ -47,7 +46,7 @@ class DefaultRouter:
if hints.get('model'):
model = '%s.%s.%s' % (app_label, config.MODELS_MODULE, hints['model']) \
if isinstance(hints['model'], six.string_types) else hints['model']
if isinstance(hints['model'], str) else hints['model']
model = lazy_class_import(model)

View File

@ -11,7 +11,6 @@ import logging
from typing import Any, Optional, List, Tuple
import os
from six import with_metaclass
from statsd.defaults.django import statsd
from .configuration import config
@ -152,7 +151,7 @@ class Storage:
raise NotImplemented()
class RedisStorage(with_metaclass(SingletonMeta, Storage)):
class RedisStorage(Storage, metaclass=SingletonMeta):
"""
Fast in-memory storage made on bases of redis and redis-py library.
Requires:

View File

@ -7,7 +7,6 @@ from itertools import chain
from typing import Union, Any, Optional, TypeVar, Set, Dict, Iterable, Tuple, Iterator, Callable, List
import pytz
import six
from importlib import import_module
from importlib.util import find_spec
from django.db.models import Model as DjangoModel
@ -76,7 +75,7 @@ def lazy_class_import(obj: Union[str, Any]) -> Any:
:param obj: A string class path or object to return
:return: Imported object
"""
if isinstance(obj, six.string_types):
if isinstance(obj, str):
module_name, obj_name = obj.rsplit('.', 1)
module = import_module(module_name)

View File

@ -3,7 +3,6 @@ from queue import Queue
import pytz
from django.test import TestCase
from six import with_metaclass
from django_clickhouse.models import ClickHouseSyncModel
from django_clickhouse.utils import get_tz_offset, format_datetime, lazy_class_import, int_ranges, exec_in_parallel, \
@ -110,7 +109,7 @@ class TestExecInParallel(TestCase):
class TestSingletonMeta(TestCase):
def test_singleton(self):
class Single(with_metaclass(SingletonMeta)):
class Single(metaclass=SingletonMeta):
def __init__(self):
self.test = 1