mirror of
https://github.com/Infinidat/infi.clickhouse_orm.git
synced 2025-08-03 19:50:09 +03:00
Chore: remove intermediate dirs
This commit is contained in:
parent
7e78582e74
commit
e3953bded7
|
@ -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):
|
||||||
|
|
||||||
|
|
68
buildout.cfg
68
buildout.cfg
|
@ -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}
|
|
||||||
|
|
13
clickhouse_orm/__init__.py
Normal file
13
clickhouse_orm/__init__.py
Normal 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)]
|
|
@ -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:
|
|
@ -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/")
|
|
@ -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):
|
|
@ -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)
|
|
@ -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)
|
|
@ -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):
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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()
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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):
|
||||||
|
|
||||||
|
|
|
@ -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):
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
10
docs/ref.md
10
docs/ref.md
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
12
docs/toc.md
12
docs/toc.md
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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).
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
infi.clickhouse_orm
|
clickhouse_orm
|
||||||
psutil
|
psutil
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from infi.clickhouse_orm import *
|
from clickhouse_orm import *
|
||||||
|
|
||||||
|
|
||||||
class Fragment(Model):
|
class Fragment(Model):
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
infi.clickhouse_orm
|
clickhouse_orm
|
||||||
nltk
|
nltk
|
||||||
requests
|
requests
|
||||||
colorama
|
colorama
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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('===============')
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
__import__("pkg_resources").declare_namespace(__name__)
|
|
|
@ -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)]
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
]
|
]
|
||||||
|
|
|
@ -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)
|
||||||
]
|
]
|
||||||
|
|
|
@ -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)
|
||||||
]
|
]
|
||||||
|
|
|
@ -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)
|
||||||
]
|
]
|
||||||
|
|
|
@ -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)
|
||||||
]
|
]
|
||||||
|
|
|
@ -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)
|
||||||
]
|
]
|
||||||
|
|
|
@ -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)
|
||||||
]
|
]
|
||||||
|
|
|
@ -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)
|
||||||
]
|
]
|
||||||
|
|
|
@ -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)
|
||||||
]
|
]
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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') "),
|
||||||
|
|
|
@ -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)
|
||||||
]
|
]
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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", "", "!"])
|
||||||
|
|
|
@ -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 *
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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'))
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 *
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user