Chore: remove intermediate dirs

This commit is contained in:
olliemath 2021-07-27 22:33:11 +01:00
parent 7e78582e74
commit e3953bded7
89 changed files with 223 additions and 1365 deletions

1073
.noseids

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ Let's jump right in with a simple example of monitoring CPU usage. First we need
connect to the database and create a table for the model: connect to the database and create a table for the model:
```python ```python
from infi.clickhouse_orm import Database, Model, DateTimeField, UInt16Field, Float32Field, Memory, F from clickhouse_orm import Database, Model, DateTimeField, UInt16Field, Float32Field, Memory, F
class CPUStats(Model): class CPUStats(Model):

View File

@ -1,68 +0,0 @@
[buildout]
prefer-final = false
newest = false
download-cache = .cache
develop = .
parts =
relative-paths = true
[project]
name = infi.clickhouse_orm
company = Infinidat
namespace_packages = ['infi']
install_requires = [
'iso8601 >= 0.1.12',
'pytz',
'requests',
'setuptools'
]
version_file = src/infi/clickhouse_orm/__version__.py
description = A Python library for working with the ClickHouse database
long_description = A Python library for working with the ClickHouse database
console_scripts = []
gui_scripts = []
package_data = []
upgrade_code = {58530fba-3932-11e6-a20e-7071bc32067f}
product_name = infi.clickhouse_orm
post_install_script_name = None
pre_uninstall_script_name = None
homepage = https://github.com/Infinidat/infi.clickhouse_orm
[isolated-python]
recipe = infi.recipe.python
version = v3.8.0.2
[setup.py]
recipe = infi.recipe.template.version
input = setup.in
output = setup.py
[__version__.py]
recipe = infi.recipe.template.version
output = ${project:version_file}
[development-scripts]
dependent-scripts = true
recipe = infi.recipe.console_scripts
eggs = ${project:name}
ipython<6
nose
coverage
enum-compat
infi.unittest
infi.traceback
memory_profiler
profilehooks
psutil
zc.buildout
scripts = ipython
nosetests
interpreter = python
[pack]
recipe = infi.recipe.application_packager
[sublime]
recipe = corneti.recipes.codeintel
eggs = ${development-scripts:eggs}

View File

@ -0,0 +1,13 @@
__import__("pkg_resources").declare_namespace(__name__)
from clickhouse_orm.database import *
from clickhouse_orm.engines import *
from clickhouse_orm.fields import *
from clickhouse_orm.funcs import *
from clickhouse_orm.migrations import *
from clickhouse_orm.models import *
from clickhouse_orm.query import *
from clickhouse_orm.system_models import *
from inspect import isclass
__all__ = [c.__name__ for c in locals().values() if isclass(c)]

View File

@ -249,7 +249,7 @@ class Database(object):
- `model_class`: the model to count. - `model_class`: the model to count.
- `conditions`: optional SQL conditions (contents of the WHERE clause). - `conditions`: optional SQL conditions (contents of the WHERE clause).
''' '''
from infi.clickhouse_orm.query import Q from clickhouse_orm.query import Q
query = 'SELECT count() FROM $table' query = 'SELECT count() FROM $table'
if conditions: if conditions:
if isinstance(conditions, Q): if isinstance(conditions, Q):
@ -306,7 +306,7 @@ class Database(object):
The result is a namedtuple containing `objects` (list), `number_of_objects`, The result is a namedtuple containing `objects` (list), `number_of_objects`,
`pages_total`, `number` (of the current page), and `page_size`. `pages_total`, `number` (of the current page), and `page_size`.
''' '''
from infi.clickhouse_orm.query import Q from clickhouse_orm.query import Q
count = self.count(model_class, conditions) count = self.count(model_class, conditions)
pages_total = int(ceil(count / float(page_size))) pages_total = int(ceil(count / float(page_size)))
if page_num == -1: if page_num == -1:

View File

@ -91,7 +91,7 @@ class MergeTree(Engine):
elif not self.date_col: elif not self.date_col:
# Can't import it globally due to circular import # Can't import it globally due to circular import
from infi.clickhouse_orm.database import DatabaseException from clickhouse_orm.database import DatabaseException
raise DatabaseException("Custom partitioning is not supported before ClickHouse 1.1.54310. " raise DatabaseException("Custom partitioning is not supported before ClickHouse 1.1.54310. "
"Please update your server or use date_col syntax." "Please update your server or use date_col syntax."
"https://clickhouse.tech/docs/en/table_engines/custom_partitioning_key/") "https://clickhouse.tech/docs/en/table_engines/custom_partitioning_key/")

View File

@ -97,7 +97,7 @@ class AlterTable(ModelOperation):
# Identify fields whose type was changed # Identify fields whose type was changed
# The order of class attributes can be changed any time, so we can't count on it # The order of class attributes can be changed any time, so we can't count on it
# Secondly, MATERIALIZED and ALIAS fields are always at the end of the DESC, so we can't expect them to save # Secondly, MATERIALIZED and ALIAS fields are always at the end of the DESC, so we can't expect them to save
# attribute position. Watch https://github.com/Infinidat/infi.clickhouse_orm/issues/47 # attribute position. Watch https://github.com/Infinidat/clickhouse_orm/issues/47
model_fields = {name: field.get_sql(with_default_expression=False, db=database) model_fields = {name: field.get_sql(with_default_expression=False, db=database)
for name, field in self.model_class.fields().items()} for name, field in self.model_class.fields().items()}
for field_name, field_sql in self._get_table_fields(database): for field_name, field_sql in self._get_table_fields(database):

View File

@ -200,7 +200,7 @@ class ModelBase(type):
@classmethod @classmethod
def create_ad_hoc_field(cls, db_type): def create_ad_hoc_field(cls, db_type):
import infi.clickhouse_orm.fields as orm_fields import clickhouse_orm.fields as orm_fields
# Enums # Enums
if db_type.startswith('Enum'): if db_type.startswith('Enum'):
return orm_fields.BaseEnumField.create_ad_hoc_field(db_type) return orm_fields.BaseEnumField.create_ad_hoc_field(db_type)

View File

@ -23,7 +23,7 @@ class Operator(object):
raise NotImplementedError # pragma: no cover raise NotImplementedError # pragma: no cover
def _value_to_sql(self, field, value, quote=True): def _value_to_sql(self, field, value, quote=True):
from infi.clickhouse_orm.funcs import F from clickhouse_orm.funcs import F
if isinstance(value, F): if isinstance(value, F):
return value.to_sql() return value.to_sql()
return field.to_db_string(field.to_python(value, pytz.utc), quote) return field.to_db_string(field.to_python(value, pytz.utc), quote)

View File

@ -48,7 +48,7 @@ def arg_to_sql(arg):
Supports functions, model fields, strings, dates, datetimes, timedeltas, booleans, Supports functions, model fields, strings, dates, datetimes, timedeltas, booleans,
None, numbers, timezones, arrays/iterables. None, numbers, timezones, arrays/iterables.
""" """
from infi.clickhouse_orm import Field, StringField, DateTimeField, DateField, F, QuerySet from clickhouse_orm import Field, StringField, DateTimeField, DateField, F, QuerySet
if isinstance(arg, F): if isinstance(arg, F):
return arg.to_sql() return arg.to_sql()
if isinstance(arg, Field): if isinstance(arg, Field):

View File

@ -1,7 +1,7 @@
Class Reference Class Reference
=============== ===============
infi.clickhouse_orm.database clickhouse_orm.database
---------------------------- ----------------------------
### Database ### Database
@ -152,7 +152,7 @@ Extends Exception
Raised when a database operation fails. Raised when a database operation fails.
infi.clickhouse_orm.models clickhouse_orm.models
-------------------------- --------------------------
### Model ### Model
@ -811,7 +811,7 @@ separated by non-alphanumeric characters.
- `random_seed` — The seed for Bloom filter hash functions. - `random_seed` — The seed for Bloom filter hash functions.
infi.clickhouse_orm.fields clickhouse_orm.fields
-------------------------- --------------------------
### ArrayField ### ArrayField
@ -1046,7 +1046,7 @@ Extends Field
#### UUIDField(default=None, alias=None, materialized=None, readonly=None, codec=None) #### UUIDField(default=None, alias=None, materialized=None, readonly=None, codec=None)
infi.clickhouse_orm.engines clickhouse_orm.engines
--------------------------- ---------------------------
### Engine ### Engine
@ -1140,7 +1140,7 @@ Extends MergeTree
#### ReplacingMergeTree(date_col=None, order_by=(), ver_col=None, sampling_expr=None, index_granularity=8192, replica_table_path=None, replica_name=None, partition_key=None, primary_key=None) #### ReplacingMergeTree(date_col=None, order_by=(), ver_col=None, sampling_expr=None, index_granularity=8192, replica_table_path=None, replica_name=None, partition_key=None, primary_key=None)
infi.clickhouse_orm.query clickhouse_orm.query
------------------------- -------------------------
### QuerySet ### QuerySet
@ -1443,7 +1443,7 @@ https://clickhouse.tech/docs/en/query_language/select/#with-totals-modifier
#### to_sql(model_cls) #### to_sql(model_cls)
infi.clickhouse_orm.funcs clickhouse_orm.funcs
------------------------- -------------------------
### F ### F

View File

@ -1,7 +1,7 @@
Contributing Contributing
============ ============
This project is hosted on GitHub - [https://github.com/Infinidat/infi.clickhouse_orm/](https://github.com/Infinidat/infi.clickhouse_orm/). This project is hosted on GitHub - [https://github.com/Infinidat/clickhouse_orm/](https://github.com/Infinidat/clickhouse_orm/).
Please open an issue there if you encounter a bug or want to request a feature. Please open an issue there if you encounter a bug or want to request a feature.
Pull requests are also welcome. Pull requests are also welcome.
@ -12,7 +12,7 @@ Building
After cloning the project, run the following commands: After cloning the project, run the following commands:
easy_install -U infi.projector easy_install -U infi.projector
cd infi.clickhouse_orm cd clickhouse_orm
projector devenv build projector devenv build
A `setup.py` file will be generated, which you can use to install the development version of the package: A `setup.py` file will be generated, which you can use to install the development version of the package:
@ -28,7 +28,7 @@ To run the tests, ensure that the ClickHouse server is running on <http://localh
To see test coverage information run: To see test coverage information run:
bin/nosetests --with-coverage --cover-package=infi.clickhouse_orm bin/nosetests --with-coverage --cover-package=clickhouse_orm
To test with tox, ensure that the setup.py is present (otherwise run `bin/buildout buildout:develop= setup.py`) and run: To test with tox, ensure that the setup.py is present (otherwise run `bin/buildout buildout:develop= setup.py`) and run:
@ -37,4 +37,4 @@ To test with tox, ensure that the setup.py is present (otherwise run `bin/buildo
--- ---
[<< System Models](system_models.md) | [Table of Contents](toc.md) | [Class Reference >>](class_reference.md) [<< System Models](system_models.md) | [Table of Contents](toc.md) | [Class Reference >>](class_reference.md)

View File

@ -13,7 +13,7 @@ Using Expressions
Expressions usually include ClickHouse database functions, which are made available by the `F` class. Here's a simple function: Expressions usually include ClickHouse database functions, which are made available by the `F` class. Here's a simple function:
```python ```python
from infi.clickhouse_orm import F from clickhouse_orm import F
expr = F.today() expr = F.today()
``` ```

View File

@ -25,7 +25,7 @@ class Event(Model):
engine = Memory() engine = Memory()
... ...
``` ```
When creating a model instance, any fields you do not specify get their default value. Fields that use a default expression are assigned a sentinel value of `infi.clickhouse_orm.utils.NO_VALUE` instead. For example: When creating a model instance, any fields you do not specify get their default value. Fields that use a default expression are assigned a sentinel value of `clickhouse_orm.utils.NO_VALUE` instead. For example:
```python ```python
>>> event = Event() >>> event = Event()
>>> print(event.to_dict()) >>> print(event.to_dict())
@ -63,7 +63,7 @@ db.select('SELECT created, created_date, username, name FROM $db.event', model_c
# created_date and username will contain a default value # created_date and username will contain a default value
db.select('SELECT * FROM $db.event', model_class=Event) db.select('SELECT * FROM $db.event', model_class=Event)
``` ```
When creating a model instance, any alias or materialized fields are assigned a sentinel value of `infi.clickhouse_orm.utils.NO_VALUE` since their real values can only be known after insertion to the database. When creating a model instance, any alias or materialized fields are assigned a sentinel value of `clickhouse_orm.utils.NO_VALUE` since their real values can only be known after insertion to the database.
## codec ## codec
@ -109,4 +109,4 @@ This attribute is set automatically for fields with `alias` or `materialized` at
--- ---
[<< Querysets](querysets.md) | [Table of Contents](toc.md) | [Field Types >>](field_types.md) [<< Querysets](querysets.md) | [Table of Contents](toc.md) | [Field Types >>](field_types.md)

View File

@ -166,7 +166,7 @@ For example, we can create a BooleanField which will hold `True` and `False` val
Here's the full implementation: Here's the full implementation:
```python ```python
from infi.clickhouse_orm import Field from clickhouse_orm import Field
class BooleanField(Field): class BooleanField(Field):

View File

@ -7,24 +7,24 @@ The ORM supports different styles of importing and referring to its classes, so
Importing Everything Importing Everything
-------------------- --------------------
It is safe to use `import *` from `infi.clickhouse_orm` or its submodules. Only classes that are needed by users of the ORM will get imported, and nothing else: It is safe to use `import *` from `clickhouse_orm` or its submodules. Only classes that are needed by users of the ORM will get imported, and nothing else:
```python ```python
from infi.clickhouse_orm import * from clickhouse_orm import *
``` ```
This is exactly equivalent to the following import statements: This is exactly equivalent to the following import statements:
```python ```python
from infi.clickhouse_orm.database import * from clickhouse_orm.database import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.funcs import * from clickhouse_orm.funcs import *
from infi.clickhouse_orm.migrations import * from clickhouse_orm.migrations import *
from infi.clickhouse_orm.models import * from clickhouse_orm.models import *
from infi.clickhouse_orm.query import * from clickhouse_orm.query import *
from infi.clickhouse_orm.system_models import * from clickhouse_orm.system_models import *
``` ```
By importing everything, all of the ORM's public classes can be used directly. For example: By importing everything, all of the ORM's public classes can be used directly. For example:
```python ```python
from infi.clickhouse_orm import * from clickhouse_orm import *
class Event(Model): class Event(Model):
@ -40,8 +40,8 @@ Importing Everything into a Namespace
To prevent potential name clashes and to make the code more readable, you can import the ORM's classes into a namespace of your choosing, e.g. `orm`. For brevity, it is recommended to import the `F` class explicitly: To prevent potential name clashes and to make the code more readable, you can import the ORM's classes into a namespace of your choosing, e.g. `orm`. For brevity, it is recommended to import the `F` class explicitly:
```python ```python
import infi.clickhouse_orm as orm import clickhouse_orm as orm
from infi.clickhouse_orm import F from clickhouse_orm import F
class Event(orm.Model): class Event(orm.Model):
@ -57,7 +57,7 @@ Importing Specific Submodules
It is possible to import only the submodules you need, and use their names to qualify the ORM's class names. This option is more verbose, but makes it clear where each class comes from. For example: It is possible to import only the submodules you need, and use their names to qualify the ORM's class names. This option is more verbose, but makes it clear where each class comes from. For example:
```python ```python
from infi.clickhouse_orm import models, fields, engines, F from clickhouse_orm import models, fields, engines, F
class Event(models.Model): class Event(models.Model):
@ -71,9 +71,9 @@ class Event(models.Model):
Importing Specific Classes Importing Specific Classes
-------------------------- --------------------------
If you prefer, you can import only the specific ORM classes that you need directly from `infi.clickhouse_orm`: If you prefer, you can import only the specific ORM classes that you need directly from `clickhouse_orm`:
```python ```python
from infi.clickhouse_orm import Model, StringField, UInt32Field, DateTimeField, F, Memory from clickhouse_orm import Model, StringField, UInt32Field, DateTimeField, F, Memory
class Event(Model): class Event(Model):

View File

@ -8,10 +8,10 @@ Version 1.x supports Python 2.7 and 3.5+. Version 2.x dropped support for Python
Installation Installation
------------ ------------
To install infi.clickhouse_orm: To install clickhouse_orm:
pip install infi.clickhouse_orm pip install clickhouse_orm
--- ---
[Table of Contents](toc.md) | [Models and Databases >>](models_and_databases.md) [Table of Contents](toc.md) | [Models and Databases >>](models_and_databases.md)

View File

@ -10,7 +10,7 @@ Defining Models
Models are defined in a way reminiscent of Django's ORM, by subclassing `Model`: Models are defined in a way reminiscent of Django's ORM, by subclassing `Model`:
```python ```python
from infi.clickhouse_orm import Model, StringField, DateField, Float32Field, MergeTree from clickhouse_orm import Model, StringField, DateField, Float32Field, MergeTree
class Person(Model): class Person(Model):
@ -133,7 +133,7 @@ Inserting to the Database
To write your instances to ClickHouse, you need a `Database` instance: To write your instances to ClickHouse, you need a `Database` instance:
from infi.clickhouse_orm import Database from clickhouse_orm import Database
db = Database('my_test_db') db = Database('my_test_db')
@ -247,4 +247,4 @@ Note that `order_by` must be chosen so that the ordering is unique, otherwise th
--- ---
[<< Overview](index.md) | [Table of Contents](toc.md) | [Expressions >>](expressions.md) [<< Overview](index.md) | [Table of Contents](toc.md) | [Expressions >>](expressions.md)

View File

@ -1,7 +1,7 @@
Class Reference Class Reference
=============== ===============
infi.clickhouse_orm.database clickhouse_orm.database
---------------------------- ----------------------------
### Database ### Database
@ -104,7 +104,7 @@ Extends Exception
Raised when a database operation fails. Raised when a database operation fails.
infi.clickhouse_orm.models clickhouse_orm.models
-------------------------- --------------------------
### Model ### Model
@ -263,7 +263,7 @@ Returns the instance's column values as a tab-separated line. A newline is not i
- `include_readonly`: if false, returns only fields that can be inserted into database. - `include_readonly`: if false, returns only fields that can be inserted into database.
infi.clickhouse_orm.fields clickhouse_orm.fields
-------------------------- --------------------------
### Field ### Field
@ -419,7 +419,7 @@ Extends BaseEnumField
#### Enum16Field(enum_cls, default=None, alias=None, materialized=None) #### Enum16Field(enum_cls, default=None, alias=None, materialized=None)
infi.clickhouse_orm.engines clickhouse_orm.engines
--------------------------- ---------------------------
### Engine ### Engine
@ -474,7 +474,7 @@ Extends MergeTree
#### ReplacingMergeTree(date_col, key_cols, ver_col=None, sampling_expr=None, index_granularity=8192, replica_table_path=None, replica_name=None) #### ReplacingMergeTree(date_col, key_cols, ver_col=None, sampling_expr=None, index_granularity=8192, replica_table_path=None, replica_name=None)
infi.clickhouse_orm.query clickhouse_orm.query
------------------------- -------------------------
### QuerySet ### QuerySet

View File

@ -22,7 +22,7 @@ To write migrations, create a Python package. Then create a python file for the
Each migration file is expected to contain a list of `operations`, for example: Each migration file is expected to contain a list of `operations`, for example:
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from analytics import models from analytics import models
operations = [ operations = [
@ -109,4 +109,4 @@ Note that you may have more than one migrations package.
--- ---
[<< Table Engines](table_engines.md) | [Table of Contents](toc.md) | [System Models >>](system_models.md) [<< Table Engines](table_engines.md) | [Table of Contents](toc.md) | [System Models >>](system_models.md)

View File

@ -30,7 +30,7 @@ A partition in a table is data for a single calendar month. Table "system.parts"
Usage example: Usage example:
from infi.clickhouse_orm import Database, SystemPart from clickhouse_orm import Database, SystemPart
db = Database('my_test_db', db_url='http://192.168.1.1:8050', username='scott', password='tiger') db = Database('my_test_db', db_url='http://192.168.1.1:8050', username='scott', password='tiger')
partitions = SystemPart.get_active(db, conditions='') # Getting all active partitions of the database partitions = SystemPart.get_active(db, conditions='') # Getting all active partitions of the database
if len(partitions) > 0: if len(partitions) > 0:
@ -43,4 +43,4 @@ Usage example:
--- ---
[<< Schema Migrations](schema_migrations.md) | [Table of Contents](toc.md) | [Contributing >>](contributing.md) [<< Schema Migrations](schema_migrations.md) | [Table of Contents](toc.md) | [Contributing >>](contributing.md)

View File

@ -78,17 +78,17 @@
* [Tests](contributing.md#tests) * [Tests](contributing.md#tests)
* [Class Reference](class_reference.md#class-reference) * [Class Reference](class_reference.md#class-reference)
* [infi.clickhouse_orm.database](class_reference.md#inficlickhouse_ormdatabase) * [clickhouse_orm.database](class_reference.md#inficlickhouse_ormdatabase)
* [Database](class_reference.md#database) * [Database](class_reference.md#database)
* [DatabaseException](class_reference.md#databaseexception) * [DatabaseException](class_reference.md#databaseexception)
* [infi.clickhouse_orm.models](class_reference.md#inficlickhouse_ormmodels) * [clickhouse_orm.models](class_reference.md#inficlickhouse_ormmodels)
* [Model](class_reference.md#model) * [Model](class_reference.md#model)
* [BufferModel](class_reference.md#buffermodel) * [BufferModel](class_reference.md#buffermodel)
* [MergeModel](class_reference.md#mergemodel) * [MergeModel](class_reference.md#mergemodel)
* [DistributedModel](class_reference.md#distributedmodel) * [DistributedModel](class_reference.md#distributedmodel)
* [Constraint](class_reference.md#constraint) * [Constraint](class_reference.md#constraint)
* [Index](class_reference.md#index) * [Index](class_reference.md#index)
* [infi.clickhouse_orm.fields](class_reference.md#inficlickhouse_ormfields) * [clickhouse_orm.fields](class_reference.md#inficlickhouse_ormfields)
* [ArrayField](class_reference.md#arrayfield) * [ArrayField](class_reference.md#arrayfield)
* [BaseEnumField](class_reference.md#baseenumfield) * [BaseEnumField](class_reference.md#baseenumfield)
* [BaseFloatField](class_reference.md#basefloatfield) * [BaseFloatField](class_reference.md#basefloatfield)
@ -120,7 +120,7 @@
* [UInt64Field](class_reference.md#uint64field) * [UInt64Field](class_reference.md#uint64field)
* [UInt8Field](class_reference.md#uint8field) * [UInt8Field](class_reference.md#uint8field)
* [UUIDField](class_reference.md#uuidfield) * [UUIDField](class_reference.md#uuidfield)
* [infi.clickhouse_orm.engines](class_reference.md#inficlickhouse_ormengines) * [clickhouse_orm.engines](class_reference.md#inficlickhouse_ormengines)
* [Engine](class_reference.md#engine) * [Engine](class_reference.md#engine)
* [TinyLog](class_reference.md#tinylog) * [TinyLog](class_reference.md#tinylog)
* [Log](class_reference.md#log) * [Log](class_reference.md#log)
@ -132,10 +132,10 @@
* [CollapsingMergeTree](class_reference.md#collapsingmergetree) * [CollapsingMergeTree](class_reference.md#collapsingmergetree)
* [SummingMergeTree](class_reference.md#summingmergetree) * [SummingMergeTree](class_reference.md#summingmergetree)
* [ReplacingMergeTree](class_reference.md#replacingmergetree) * [ReplacingMergeTree](class_reference.md#replacingmergetree)
* [infi.clickhouse_orm.query](class_reference.md#inficlickhouse_ormquery) * [clickhouse_orm.query](class_reference.md#inficlickhouse_ormquery)
* [QuerySet](class_reference.md#queryset) * [QuerySet](class_reference.md#queryset)
* [AggregateQuerySet](class_reference.md#aggregatequeryset) * [AggregateQuerySet](class_reference.md#aggregatequeryset)
* [Q](class_reference.md#q) * [Q](class_reference.md#q)
* [infi.clickhouse_orm.funcs](class_reference.md#inficlickhouse_ormfuncs) * [clickhouse_orm.funcs](class_reference.md#inficlickhouse_ormfuncs)
* [F](class_reference.md#f) * [F](class_reference.md#f)

View File

@ -50,9 +50,9 @@ for row in QueryLog.objects_in(db).filter(QueryLog.query_duration_ms > 10000):
## Convenient ways to import ORM classes ## Convenient ways to import ORM classes
You can now import all ORM classes directly from `infi.clickhouse_orm`, without worrying about sub-modules. For example: You can now import all ORM classes directly from `clickhouse_orm`, without worrying about sub-modules. For example:
```python ```python
from infi.clickhouse_orm import Database, Model, StringField, DateTimeField, MergeTree from clickhouse_orm import Database, Model, StringField, DateTimeField, MergeTree
``` ```
See [Importing ORM Classes](importing_orm_classes.md). See [Importing ORM Classes](importing_orm_classes.md).

View File

@ -1,5 +1,5 @@
import psutil, time, datetime import psutil, time, datetime
from infi.clickhouse_orm import Database from clickhouse_orm import Database
from models import CPUStats from models import CPUStats

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import Model, DateTimeField, UInt16Field, Float32Field, Memory from clickhouse_orm import Model, DateTimeField, UInt16Field, Float32Field, Memory
class CPUStats(Model): class CPUStats(Model):

View File

@ -1,2 +1,2 @@
infi.clickhouse_orm clickhouse_orm
psutil psutil

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import Database, F from clickhouse_orm import Database, F
from models import CPUStats from models import CPUStats

View File

@ -3,7 +3,7 @@ chardet==3.0.4
click==7.1.2 click==7.1.2
Flask==1.1.2 Flask==1.1.2
idna==2.9 idna==2.9
infi.clickhouse-orm==2.0.1 clickhouse-orm==2.0.1
iso8601==0.1.12 iso8601==0.1.12
itsdangerous==1.1.0 itsdangerous==1.1.0
Jinja2==2.11.2 Jinja2==2.11.2

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import Database, F from clickhouse_orm import Database, F
from charts import tables_piechart, columns_piechart, number_formatter, bytes_formatter from charts import tables_piechart, columns_piechart, number_formatter, bytes_formatter
from flask import Flask from flask import Flask
from flask import render_template from flask import render_template

View File

@ -2,7 +2,7 @@ import sys
import nltk import nltk
from nltk.stem.porter import PorterStemmer from nltk.stem.porter import PorterStemmer
from glob import glob from glob import glob
from infi.clickhouse_orm import Database from clickhouse_orm import Database
from models import Fragment from models import Fragment

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import * from clickhouse_orm import *
class Fragment(Model): class Fragment(Model):

View File

@ -1,4 +1,4 @@
infi.clickhouse_orm clickhouse_orm
nltk nltk
requests requests
colorama colorama

View File

@ -1,7 +1,7 @@
import sys import sys
from colorama import init, Fore, Back, Style from colorama import init, Fore, Back, Style
from nltk.stem.porter import PorterStemmer from nltk.stem.porter import PorterStemmer
from infi.clickhouse_orm import Database, F from clickhouse_orm import Database, F
from models import Fragment from models import Fragment
from load import trim_punctuation from load import trim_punctuation

View File

@ -120,13 +120,13 @@ def all_subclasses(cls):
if __name__ == '__main__': if __name__ == '__main__':
from infi.clickhouse_orm import database from clickhouse_orm import database
from infi.clickhouse_orm import fields from clickhouse_orm import fields
from infi.clickhouse_orm import engines from clickhouse_orm import engines
from infi.clickhouse_orm import models from clickhouse_orm import models
from infi.clickhouse_orm import query from clickhouse_orm import query
from infi.clickhouse_orm import funcs from clickhouse_orm import funcs
from infi.clickhouse_orm import system_models from clickhouse_orm import system_models
print('Class Reference') print('Class Reference')
print('===============') print('===============')

View File

@ -5,7 +5,7 @@ virtualenv -p python3 /tmp/orm_env
cd /tmp/orm_env cd /tmp/orm_env
source bin/activate source bin/activate
pip install infi.projector pip install infi.projector
git clone https://github.com/Infinidat/infi.clickhouse_orm.git git clone https://github.com/Infinidat/clickhouse_orm.git
cd infi.clickhouse_orm cd clickhouse_orm
projector devenv build projector devenv build
bin/nosetests bin/nosetests

View File

@ -1 +0,0 @@
__import__("pkg_resources").declare_namespace(__name__)

View File

@ -1,13 +0,0 @@
__import__("pkg_resources").declare_namespace(__name__)
from infi.clickhouse_orm.database import *
from infi.clickhouse_orm.engines import *
from infi.clickhouse_orm.fields import *
from infi.clickhouse_orm.funcs import *
from infi.clickhouse_orm.migrations import *
from infi.clickhouse_orm.models import *
from infi.clickhouse_orm.query import *
from infi.clickhouse_orm.system_models import *
from inspect import isclass
__all__ = [c.__name__ for c in locals().values() if isclass(c)]

View File

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import unittest import unittest
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
import logging import logging
logging.getLogger("requests").setLevel(logging.WARNING) logging.getLogger("requests").setLevel(logging.WARNING)

View File

@ -1,6 +1,6 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [
migrations.CreateTable(Model1) migrations.CreateTable(Model1)
] ]

View File

@ -1,6 +1,6 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [
migrations.DropTable(Model1) migrations.DropTable(Model1)
] ]

View File

@ -1,6 +1,6 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [
migrations.CreateTable(Model1) migrations.CreateTable(Model1)
] ]

View File

@ -1,6 +1,6 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [
migrations.AlterTable(Model2) migrations.AlterTable(Model2)
] ]

View File

@ -1,6 +1,6 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [
migrations.AlterTable(Model3) migrations.AlterTable(Model3)
] ]

View File

@ -1,6 +1,6 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [
migrations.CreateTable(EnumModel1) migrations.CreateTable(EnumModel1)
] ]

View File

@ -1,6 +1,6 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [
migrations.AlterTable(EnumModel2) migrations.AlterTable(EnumModel2)
] ]

View File

@ -1,6 +1,6 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [
migrations.CreateTable(MaterializedModel) migrations.CreateTable(MaterializedModel)
] ]

View File

@ -1,6 +1,6 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [
migrations.CreateTable(AliasModel) migrations.CreateTable(AliasModel)
] ]

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
operations = [ operations = [
migrations.RunSQL("INSERT INTO `mig` (date, f1, f3, f4) VALUES ('2016-01-01', 1, 1, 'test') "), migrations.RunSQL("INSERT INTO `mig` (date, f1, f3, f4) VALUES ('2016-01-01', 1, 1, 'test') "),

View File

@ -1,6 +1,6 @@
import datetime import datetime
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from test_migrations import Model3 from test_migrations import Model3
@ -12,4 +12,4 @@ def forward(database):
operations = [ operations = [
migrations.RunPython(forward) migrations.RunPython(forward)
] ]

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [

View File

@ -1,4 +1,4 @@
from infi.clickhouse_orm import migrations from clickhouse_orm import migrations
from ..test_migrations import * from ..test_migrations import *
operations = [ operations = [

View File

@ -1,11 +1,11 @@
import unittest import unittest
from datetime import date from datetime import date
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.models import Model, NO_VALUE from clickhouse_orm.models import Model, NO_VALUE
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
from infi.clickhouse_orm.funcs import F from clickhouse_orm.funcs import F
class AliasFieldsTest(unittest.TestCase): class AliasFieldsTest(unittest.TestCase):

View File

@ -1,10 +1,10 @@
import unittest import unittest
from datetime import date from datetime import date
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
class ArrayFieldsTest(unittest.TestCase): class ArrayFieldsTest(unittest.TestCase):
@ -47,7 +47,7 @@ class ArrayFieldsTest(unittest.TestCase):
instance.arr_int = value instance.arr_int = value
def test_parse_array(self): def test_parse_array(self):
from infi.clickhouse_orm.utils import parse_array, unescape from clickhouse_orm.utils import parse_array, unescape
self.assertEqual(parse_array("[]"), []) self.assertEqual(parse_array("[]"), [])
self.assertEqual(parse_array("[1, 2, 395, -44]"), ["1", "2", "395", "-44"]) self.assertEqual(parse_array("[1, 2, 395, -44]"), ["1", "2", "395", "-44"])
self.assertEqual(parse_array("['big','mouse','','!']"), ["big", "mouse", "", "!"]) self.assertEqual(parse_array("['big','mouse','','!']"), ["big", "mouse", "", "!"])

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import unittest import unittest
from infi.clickhouse_orm.models import BufferModel from clickhouse_orm.models import BufferModel
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
from .base_test_with_data import * from .base_test_with_data import *

View File

@ -2,11 +2,11 @@ import unittest
import datetime import datetime
import pytz import pytz
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.models import Model, NO_VALUE from clickhouse_orm.models import Model, NO_VALUE
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
from infi.clickhouse_orm.utils import parse_tsv from clickhouse_orm.utils import parse_tsv
class CompressedFieldsTestCase(unittest.TestCase): class CompressedFieldsTestCase(unittest.TestCase):
@ -120,4 +120,4 @@ class CompressedModel(Model):
float_field = Float32Field(codec='NONE') float_field = Float32Field(codec='NONE')
alias_field = Float32Field(alias='float_field', codec='ZSTD(4)') alias_field = Float32Field(alias='float_field', codec='ZSTD(4)')
engine = MergeTree('datetime_field', ('uint64_field', 'datetime_field')) engine = MergeTree('datetime_field', ('uint64_field', 'datetime_field'))

View File

@ -1,6 +1,6 @@
import unittest import unittest
from infi.clickhouse_orm import * from clickhouse_orm import *
from .base_test_with_data import Person from .base_test_with_data import Person

View File

@ -1,8 +1,8 @@
import unittest import unittest
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.fields import Field, Int16Field from clickhouse_orm.fields import Field, Int16Field
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.engines import Memory from clickhouse_orm.engines import Memory
class CustomFieldsTest(unittest.TestCase): class CustomFieldsTest(unittest.TestCase):

View File

@ -2,12 +2,12 @@
import unittest import unittest
import datetime import datetime
from infi.clickhouse_orm.database import ServerError, DatabaseException from clickhouse_orm.database import ServerError, DatabaseException
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.engines import Memory from clickhouse_orm.engines import Memory
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.funcs import F from clickhouse_orm.funcs import F
from infi.clickhouse_orm.query import Q from clickhouse_orm.query import Q
from .base_test_with_data import * from .base_test_with_data import *
@ -248,7 +248,7 @@ class DatabaseTestCase(TestCaseWithData):
def test_create_ad_hoc_field(self): def test_create_ad_hoc_field(self):
# Tests that create_ad_hoc_field works for all column types in the database # Tests that create_ad_hoc_field works for all column types in the database
from infi.clickhouse_orm.models import ModelBase from clickhouse_orm.models import ModelBase
query = "SELECT DISTINCT type FROM system.columns" query = "SELECT DISTINCT type FROM system.columns"
for row in self.database.select(query): for row in self.database.select(query):
ModelBase.create_ad_hoc_field(row.type) ModelBase.create_ad_hoc_field(row.type)

View File

@ -2,10 +2,10 @@ import unittest
import datetime import datetime
import pytz import pytz
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
class DateFieldsTest(unittest.TestCase): class DateFieldsTest(unittest.TestCase):

View File

@ -2,10 +2,10 @@
import unittest import unittest
from decimal import Decimal from decimal import Decimal
from infi.clickhouse_orm.database import Database, ServerError from clickhouse_orm.database import Database, ServerError
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
class DecimalFieldsTest(unittest.TestCase): class DecimalFieldsTest(unittest.TestCase):

View File

@ -1,7 +1,7 @@
import unittest import unittest
import logging import logging
from infi.clickhouse_orm import * from clickhouse_orm import *
class DictionaryTestMixin: class DictionaryTestMixin:

View File

@ -1,7 +1,7 @@
import unittest import unittest
import datetime import datetime
from infi.clickhouse_orm import * from clickhouse_orm import *
import logging import logging
logging.getLogger("requests").setLevel(logging.WARNING) logging.getLogger("requests").setLevel(logging.WARNING)

View File

@ -1,9 +1,9 @@
import unittest import unittest
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
from enum import Enum from enum import Enum

View File

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import unittest import unittest
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
class FixedStringFieldsTest(unittest.TestCase): class FixedStringFieldsTest(unittest.TestCase):

View File

@ -7,9 +7,9 @@ from ipaddress import IPv4Address, IPv6Address
import logging import logging
from decimal import Decimal from decimal import Decimal
from infi.clickhouse_orm.database import ServerError from clickhouse_orm.database import ServerError
from infi.clickhouse_orm.utils import NO_VALUE from clickhouse_orm.utils import NO_VALUE
from infi.clickhouse_orm.funcs import F from clickhouse_orm.funcs import F
class FuncsTestCase(TestCaseWithData): class FuncsTestCase(TestCaseWithData):

View File

@ -1,6 +1,6 @@
import unittest import unittest
from infi.clickhouse_orm import * from clickhouse_orm import *
class IndexesTest(unittest.TestCase): class IndexesTest(unittest.TestCase):

View File

@ -2,10 +2,10 @@ import unittest
import datetime import datetime
import pytz import pytz
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
class InheritanceTestCase(unittest.TestCase): class InheritanceTestCase(unittest.TestCase):

View File

@ -1,9 +1,9 @@
import unittest import unittest
from ipaddress import IPv4Address, IPv6Address from ipaddress import IPv4Address, IPv6Address
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.fields import Int16Field, IPv4Field, IPv6Field from clickhouse_orm.fields import Int16Field, IPv4Field, IPv6Field
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.engines import Memory from clickhouse_orm.engines import Memory
class IPFieldsTest(unittest.TestCase): class IPFieldsTest(unittest.TestCase):

View File

@ -2,7 +2,7 @@
import unittest import unittest
import json import json
from infi.clickhouse_orm import database, engines, fields, models from clickhouse_orm import database, engines, fields, models
class JoinTest(unittest.TestCase): class JoinTest(unittest.TestCase):

View File

@ -1,11 +1,11 @@
import unittest import unittest
from datetime import date from datetime import date
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.models import Model, NO_VALUE from clickhouse_orm.models import Model, NO_VALUE
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
from infi.clickhouse_orm.funcs import F from clickhouse_orm.funcs import F
class MaterializedFieldsTest(unittest.TestCase): class MaterializedFieldsTest(unittest.TestCase):

View File

@ -1,10 +1,10 @@
import unittest import unittest
from infi.clickhouse_orm.database import Database, ServerError from clickhouse_orm.database import Database, ServerError
from infi.clickhouse_orm.models import Model, BufferModel, Constraint, Index from clickhouse_orm.models import Model, BufferModel, Constraint, Index
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
from infi.clickhouse_orm.migrations import MigrationHistory from clickhouse_orm.migrations import MigrationHistory
from enum import Enum from enum import Enum
# Add tests to path so that migrations will be importable # Add tests to path so that migrations will be importable

View File

@ -2,10 +2,10 @@ import unittest
import datetime import datetime
import pytz import pytz
from infi.clickhouse_orm.models import Model, NO_VALUE from clickhouse_orm.models import Model, NO_VALUE
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
from infi.clickhouse_orm.funcs import F from clickhouse_orm.funcs import F
class ModelTestCase(unittest.TestCase): class ModelTestCase(unittest.TestCase):

View File

@ -1,5 +1,5 @@
import unittest import unittest
from infi.clickhouse_orm import F from clickhouse_orm import F
from .base_test_with_data import * from .base_test_with_data import *
from time import sleep from time import sleep

View File

@ -1,11 +1,11 @@
import unittest import unittest
import pytz import pytz
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
from infi.clickhouse_orm.utils import comma_join from clickhouse_orm.utils import comma_join
from datetime import date, datetime from datetime import date, datetime

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import unittest import unittest
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.query import Q from clickhouse_orm.query import Q
from infi.clickhouse_orm.funcs import F from clickhouse_orm.funcs import F
from .base_test_with_data import * from .base_test_with_data import *
from datetime import date, datetime from datetime import date, datetime
from enum import Enum from enum import Enum

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from infi.clickhouse_orm.database import DatabaseException, ServerError from clickhouse_orm.database import DatabaseException, ServerError
from .base_test_with_data import * from .base_test_with_data import *

View File

@ -1,6 +1,6 @@
import unittest import unittest
from infi.clickhouse_orm.database import ServerError from clickhouse_orm.database import ServerError
class ServerErrorTest(unittest.TestCase): class ServerErrorTest(unittest.TestCase):

View File

@ -1,5 +1,5 @@
import unittest import unittest
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from datetime import date, datetime from datetime import date, datetime
import pytz import pytz

View File

@ -3,11 +3,11 @@ from datetime import date
import os import os
from infi.clickhouse_orm.database import Database, DatabaseException from clickhouse_orm.database import Database, DatabaseException
from infi.clickhouse_orm.engines import * from clickhouse_orm.engines import *
from infi.clickhouse_orm.fields import * from clickhouse_orm.fields import *
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.system_models import SystemPart from clickhouse_orm.system_models import SystemPart
class SystemTest(unittest.TestCase): class SystemTest(unittest.TestCase):

View File

@ -1,9 +1,9 @@
import unittest import unittest
from uuid import UUID from uuid import UUID
from infi.clickhouse_orm.database import Database from clickhouse_orm.database import Database
from infi.clickhouse_orm.fields import Int16Field, UUIDField from clickhouse_orm.fields import Int16Field, UUIDField
from infi.clickhouse_orm.models import Model from clickhouse_orm.models import Model
from infi.clickhouse_orm.engines import Memory from clickhouse_orm.engines import Memory
class UUIDFieldsTest(unittest.TestCase): class UUIDFieldsTest(unittest.TestCase):