mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-16 04:05:47 +00:00
Allow to use RapidJSON. Allow to disable uvloop, ujson or rapidjson by env. variables.
This commit is contained in:
parent
23211fc283
commit
afbe7bb458
3 changed files with 45 additions and 17 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import os
|
||||||
|
|
||||||
from .bot import Bot
|
from .bot import Bot
|
||||||
from .dispatcher import Dispatcher
|
from .dispatcher import Dispatcher
|
||||||
|
|
@ -8,7 +9,8 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
uvloop = None
|
uvloop = None
|
||||||
else:
|
else:
|
||||||
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
|
if 'DISABLE_UVLOOP' not in os.environ:
|
||||||
|
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
|
||||||
|
|
||||||
__version__ = '2.0.dev1'
|
__version__ = '2.0.dev1'
|
||||||
__api_version__ = '3.6'
|
__api_version__ = '3.6'
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,52 @@
|
||||||
import json
|
import os
|
||||||
|
|
||||||
|
JSON = 'json'
|
||||||
|
RAPIDJSON = 'rapidjson'
|
||||||
|
UJSON = 'ujson'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import ujson
|
if 'DISABLE_UJSON' not in os.environ:
|
||||||
|
import ujson as json
|
||||||
|
|
||||||
_UJSON_IS_AVAILABLE = True
|
mode = UJSON
|
||||||
|
|
||||||
|
|
||||||
|
def dumps(data):
|
||||||
|
return json.dumps(data, ensure_ascii=False)
|
||||||
|
|
||||||
|
else:
|
||||||
|
mode = JSON
|
||||||
except ImportError:
|
except ImportError:
|
||||||
_UJSON_IS_AVAILABLE = False
|
mode = JSON
|
||||||
|
|
||||||
_use_ujson = _UJSON_IS_AVAILABLE
|
try:
|
||||||
|
if 'DISABLE_RAPIDJSON' not in os.environ:
|
||||||
|
import rapidjson as json
|
||||||
|
|
||||||
|
mode = RAPIDJSON
|
||||||
|
|
||||||
|
|
||||||
def disable_ujson():
|
def dumps(data):
|
||||||
global _use_ujson
|
return json.dumps(data, ensure_ascii=False, number_mode=json.NM_NATIVE,
|
||||||
_use_ujson = False
|
datetime_mode=json.DM_ISO8601 | json.DM_NAIVE_IS_UTC)
|
||||||
|
|
||||||
|
|
||||||
def dumps(data):
|
def loads(data):
|
||||||
if _use_ujson:
|
return json.loads(data, number_mode=json.NM_NATIVE,
|
||||||
return ujson.dumps(data)
|
datetime_mode=json.DM_ISO8601 | json.DM_NAIVE_IS_UTC)
|
||||||
return json.dumps(data)
|
|
||||||
|
else:
|
||||||
|
mode = JSON
|
||||||
|
except ImportError:
|
||||||
|
mode = JSON
|
||||||
|
|
||||||
|
if mode == JSON:
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
def loads(data):
|
def dumps(data):
|
||||||
if _use_ujson:
|
return json.dumps(data, ensure_ascii=False)
|
||||||
return ujson.loads(data)
|
|
||||||
return json.loads(data)
|
|
||||||
|
def loads(data):
|
||||||
|
return json.loads(data)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
-r requirements.txt
|
-r requirements.txt
|
||||||
|
|
||||||
ujson>=1.35
|
ujson>=1.35
|
||||||
|
python-rapidjson>=0.6.3
|
||||||
emoji>=0.5.0
|
emoji>=0.5.0
|
||||||
pytest>=3.5.0
|
pytest>=3.5.0
|
||||||
pytest-asyncio>=0.8.0
|
pytest-asyncio>=0.8.0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue