mirror of
https://github.com/Infinidat/infi.clickhouse_orm.git
synced 2025-08-02 19:20:14 +03:00
Replacing httpx as the underlying request library
This commit is contained in:
parent
ef2e6e166e
commit
b62c08747f
|
@ -15,12 +15,12 @@ classifiers = [
|
|||
"Topic :: Database"
|
||||
]
|
||||
dependencies = [
|
||||
"requests",
|
||||
"httpx >= 0.18.0",
|
||||
"pytz",
|
||||
"iso8601 >= 0.1.12",
|
||||
"setuptools"
|
||||
]
|
||||
version = "0.0.3"
|
||||
version = "0.0.4"
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
where = ["src"]
|
||||
|
|
|
@ -8,7 +8,7 @@ from collections import namedtuple
|
|||
from typing import Type, Optional, Generator, Union, Any
|
||||
|
||||
import pytz
|
||||
import requests
|
||||
import httpx
|
||||
|
||||
from .models import ModelBase, MODEL
|
||||
from .utils import parse_tsv, import_submodules
|
||||
|
@ -88,7 +88,7 @@ class Database(object):
|
|||
inserting data and other operations.
|
||||
"""
|
||||
|
||||
def __init__(self, db_name, db_url='http://localhost:8123/',
|
||||
def __init__(self, db_name, db_url='http://localhost:18123/',
|
||||
username=None, password=None, readonly=False, autocreate=True,
|
||||
timeout=60, verify_ssl_cert=True, log_statements=False):
|
||||
"""
|
||||
|
@ -109,8 +109,7 @@ class Database(object):
|
|||
self.db_url = db_url
|
||||
self.readonly = False
|
||||
self.timeout = timeout
|
||||
self.request_session = requests.Session()
|
||||
self.request_session.verify = verify_ssl_cert
|
||||
self.request_session = httpx.Client(verify=verify_ssl_cert)
|
||||
if username:
|
||||
self.request_session.auth = (username, password or '')
|
||||
self.log_statements = log_statements
|
||||
|
@ -295,6 +294,7 @@ class Database(object):
|
|||
query += ' FORMAT TabSeparatedWithNamesAndTypes'
|
||||
query = self._substitute(query, model_class)
|
||||
r = self._send(query, settings, True)
|
||||
try:
|
||||
lines = r.iter_lines()
|
||||
field_names = parse_tsv(next(lines))
|
||||
field_types = parse_tsv(next(lines))
|
||||
|
@ -303,6 +303,8 @@ class Database(object):
|
|||
# skip blank line left by WITH TOTALS modifier
|
||||
if line:
|
||||
yield model_class.from_tsv(line, field_names, self.server_timezone, self)
|
||||
finally:
|
||||
r.close()
|
||||
|
||||
def raw(self, query: str, settings: Optional[dict] = None, stream: bool = False) -> str:
|
||||
"""
|
||||
|
@ -409,10 +411,11 @@ class Database(object):
|
|||
if self.log_statements:
|
||||
logger.info(data)
|
||||
params = self._build_params(settings)
|
||||
r = self.request_session.post(
|
||||
self.db_url, params=params, data=data, stream=stream, timeout=self.timeout
|
||||
request = self.request_session.build_request(
|
||||
method='POST', url=self.db_url, data=data, params=params
|
||||
)
|
||||
if r.status_code != 200:
|
||||
r = self.request_session.send(request, stream=stream)
|
||||
if isinstance(r, httpx.Response) and r.status_code != 200:
|
||||
raise ServerError(r.text)
|
||||
return r
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import unittest
|
||||
|
||||
from infi.clickhouse_orm import *
|
||||
from .base_test_with_data import Person
|
||||
from clickhouse_orm import *
|
||||
from tests.base_test_with_data import Person
|
||||
|
||||
|
||||
class ConstraintsTest(unittest.TestCase):
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import unittest
|
||||
import logging
|
||||
|
||||
from infi.clickhouse_orm import *
|
||||
from clickhouse_orm import *
|
||||
|
||||
|
||||
class DictionaryTestMixin:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import unittest
|
||||
import datetime
|
||||
|
||||
from infi.clickhouse_orm import *
|
||||
from clickhouse_orm import *
|
||||
|
||||
import logging
|
||||
logging.getLogger("requests").setLevel(logging.WARNING)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import unittest
|
||||
|
||||
from infi.clickhouse_orm import *
|
||||
from clickhouse_orm import *
|
||||
|
||||
|
||||
class IndexesTest(unittest.TestCase):
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
import unittest
|
||||
import json
|
||||
|
||||
from infi.clickhouse_orm import database, engines, fields, models
|
||||
from clickhouse_orm import database, engines, fields, models
|
||||
|
||||
|
||||
class JoinTest(unittest.TestCase):
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import unittest
|
||||
from infi.clickhouse_orm import F
|
||||
from clickhouse_orm import F
|
||||
from .base_test_with_data import *
|
||||
from time import sleep
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user