Skip to content

Commit

Permalink
Merge pull request #71 from LaurentTreguier/develop
Browse files Browse the repository at this point in the history
Update requirements
  • Loading branch information
Xowap committed Apr 4, 2022
2 parents 9c55703 + 0cc3a20 commit 5fe7fba
Show file tree
Hide file tree
Showing 9 changed files with 91 additions and 80 deletions.
1 change: 1 addition & 0 deletions requirements.in
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ facepy

# For Google import
google-api-python-client
oauth2client

# For dev
pytest
Expand Down
84 changes: 50 additions & 34 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,55 @@
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile --output-file requirements.txt requirements.in
# pip-compile requirements.in
#
aiohttp==2.1.0
aionotify==0.2.0
aioredis==0.3.1
async-timeout==1.2.1 # via aiohttp
babel==2.4.0
certifi==2018.4.16 # via requests
aiohttp==3.6.2 # via -r requirements.in, raven-aiohttp
aionotify==0.2.0 # via -r requirements.in
aioredis==1.3.1 # via -r requirements.in
async-timeout==3.0.1 # via aiohttp, aioredis
attrs==19.3.0 # via aiohttp, pytest
babel==2.8.0 # via -r requirements.in
cachetools==4.1.0 # via google-auth
certifi==2020.4.5.1 # via requests
chardet==3.0.4 # via aiohttp, requests
contextlib2==0.5.5 # via raven
facepy==1.0.9
google-api-python-client==1.6.2
hiredis==0.2.0 # via aioredis
httplib2==0.10.3 # via google-api-python-client, oauth2client
idna==2.6 # via requests
isort==4.3.4
multidict==2.1.6 # via aiohttp, yarl
oauth2client==4.1.1 # via google-api-python-client
py==1.4.34 # via pytest
pyasn1-modules==0.0.9 # via oauth2client
pyasn1==0.2.3 # via oauth2client, pyasn1-modules, rsa
pyjwt==1.5.0
pytest==3.1.2
python-dateutil==2.6.0
pytz==2017.2
raven-aiohttp==0.5.0
raven==6.1.0
requests==2.18.4 # via facepy
rsa==3.4.2 # via oauth2client
six==1.10.0 # via facepy, google-api-python-client, oauth2client, python-dateutil
ujson==1.35
unidecode==0.4.20
uritemplate==3.0.0 # via google-api-python-client
urllib3==1.22 # via requests
uvloop==0.8.0
yarl==0.10.2 # via aiohttp
facepy==1.0.12 # via -r requirements.in
google-api-core==1.17.0 # via google-api-python-client
google-api-python-client==1.8.2 # via -r requirements.in
google-auth-httplib2==0.0.3 # via google-api-python-client
google-auth==1.14.1 # via google-api-core, google-api-python-client, google-auth-httplib2
googleapis-common-protos==1.51.0 # via google-api-core
hiredis==1.0.1 # via aioredis
httplib2==0.17.3 # via google-api-python-client, google-auth-httplib2, oauth2client
idna==2.9 # via requests, yarl
importlib-metadata==1.6.0 # via pluggy, pytest
isort==4.3.21 # via -r requirements.in
more-itertools==8.2.0 # via pytest
multidict==4.7.5 # via aiohttp, yarl
oauth2client==4.1.3 # via -r requirements.in
packaging==20.3 # via pytest
pluggy==0.13.1 # via pytest
protobuf==3.11.3 # via google-api-core, googleapis-common-protos
py==1.8.1 # via pytest
pyasn1-modules==0.2.8 # via google-auth, oauth2client
pyasn1==0.4.8 # via oauth2client, pyasn1-modules, rsa
pyjwt==1.7.1 # via -r requirements.in
pyparsing==2.4.7 # via packaging
pytest==5.4.1 # via -r requirements.in
python-dateutil==2.8.1 # via -r requirements.in
pytz==2019.3 # via -r requirements.in, babel, google-api-core
raven-aiohttp==0.7.0 # via -r requirements.in
raven==6.10.0 # via -r requirements.in, raven-aiohttp
requests==2.23.0 # via facepy, google-api-core
rsa==4.0 # via google-auth, oauth2client
six==1.14.0 # via facepy, google-api-core, google-api-python-client, google-auth, oauth2client, packaging, protobuf, python-dateutil
ujson==2.0.3 # via -r requirements.in
unidecode==1.1.1 # via -r requirements.in
uritemplate==3.0.1 # via google-api-python-client
urllib3==1.25.9 # via requests
uvloop==0.14.0 # via -r requirements.in
wcwidth==0.1.9 # via pytest
yarl==1.4.2 # via aiohttp
zipp==3.1.0 # via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# setuptools
22 changes: 11 additions & 11 deletions requirements_as_lib.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
aiohttp>=2.1,<2.2
aiohttp>=3.6,<3.7
aionotify>=0.2,<0.3
aioredis>=0.3,<0.4
babel>=2.4,<2.5
pyjwt>=1.5,<1.6
python-dateutil>=2.6,<2.7
aioredis>=1.3,<1.4
babel>=2.8,<2.9
pyjwt>=1.7,<1.8
python-dateutil>=2.8,<2.9
pytz
ujson>=1.0,<2.0
unidecode>=0.4,<0.5
uvloop>=0.8,<0.9
raven-aiohttp>=0.5.0,<0.6
raven>=6.1.0,<6.2
facepy>=1.0.9,<1.1
ujson>=2.0,<2.1
unidecode>=1.0,<1.1
uvloop>=0.14,<0.15
raven-aiohttp>=0.7,<0.8
raven>=6.10,<6.11
facepy>=1.0.10,<1.1
16 changes: 8 additions & 8 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@

import os
import codecs
from typing import Text

from setuptools import setup, find_packages

try:
from pip.req import parse_requirements
from pip.download import PipSession
except ImportError:
from pip._internal.req import parse_requirements
from pip._internal.download import PipSession

def parse_requirements(req_file_path: Text):
with open(req_file_path, 'r') as req_file:
return req_file.readlines()


rf = codecs.open(os.path.join(os.path.dirname(__file__), 'README.txt'), 'r')
with rf as readme:
README = readme.read()

requirements = parse_requirements(
os.path.join(os.path.dirname(__file__), 'requirements_as_lib.txt'),
session=PipSession()
)

os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
Expand All @@ -40,7 +40,7 @@
url='https://github.com/BernardFW/bernard',
author='Rémy Sanchez',
author_email='remy.sanchez@hyperthese.net',
install_requires=[str(x.req) for x in requirements],
install_requires=requirements,
classifiers=[
'License :: OSI Approved :: GNU Affero General Public License v3 or '
'later (AGPLv3+)',
Expand Down
5 changes: 3 additions & 2 deletions src/bernard/i18n/loaders.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@
Union,
)

import aionotify

from bernard.conf import (
settings,
)

if settings.I18N_LIVE_RELOAD:
import aionotify

logger = logging.getLogger('bernard.i18n.loaders')


Expand Down
6 changes: 2 additions & 4 deletions src/bernard/storage/context/redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,9 @@ class RedisContextStore(BaseRedisStore, BaseContextStore):

async def _get(self, key: Text) -> Context:
try:
with await self.pool as r:
return ujson.loads(await r.get(key))
return ujson.loads(await self.redis.get(key))
except (ValueError, TypeError):
return {}

async def _set(self, key: Text, data: Context) -> None:
with await self.pool as r:
await r.set(key, ujson.dumps(data), expire=self.ttl)
await self.redis.set(key, ujson.dumps(data), expire=self.ttl)
4 changes: 2 additions & 2 deletions src/bernard/storage/redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ def __init__(self,
self.db_id = db_id
self.min_pool_size = min_pool_size
self.max_pool_size = max_pool_size
self.pool = None
self.redis = None

async def async_init(self):
"""
Handle here the asynchronous part of the init.
"""

self.pool = await aioredis.create_pool(
self.redis = await aioredis.create_redis_pool(
(self.host, self.port),
db=self.db_id,
minsize=self.min_pool_size,
Expand Down
26 changes: 11 additions & 15 deletions src/bernard/storage/register/redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,15 @@ async def _start(self, key: Text) -> None:
Here we use a SETNX-based algorithm. It's quite shitty, change it.
"""
for _ in range(0, 1000):
with await self.pool as r:
just_set = await r.set(
self.lock_key(key),
'',
expire=settings.REGISTER_LOCK_TIME,
exist=r.SET_IF_NOT_EXIST,
)
just_set = await self.redis.set(
self.lock_key(key),
'',
expire=settings.REGISTER_LOCK_TIME,
exist=self.redis.SET_IF_NOT_EXIST,
)

if just_set:
break
if just_set:
break

await asyncio.sleep(settings.REDIS_POLL_INTERVAL)

Expand All @@ -64,8 +63,7 @@ async def _finish(self, key: Text) -> None:
Remove the lock.
"""

with await self.pool as r:
await r.delete(self.lock_key(key))
await self.redis.delete(self.lock_key(key))

async def _get(self, key: Text) -> Dict[Text, Any]:
"""
Expand All @@ -74,8 +72,7 @@ async def _get(self, key: Text) -> Dict[Text, Any]:
"""

try:
with await self.pool as r:
return ujson.loads(await r.get(self.register_key(key)))
return ujson.loads(await self.redis.get(self.register_key(key)))
except (ValueError, TypeError):
return {}

Expand All @@ -84,5 +81,4 @@ async def _replace(self, key: Text, data: Dict[Text, Any]) -> None:
Replace the register with a new value.
"""

with await self.pool as r:
await r.set(self.register_key(key), ujson.dumps(data))
await self.redis.set(self.register_key(key), ujson.dumps(data))
7 changes: 3 additions & 4 deletions tests/issue_0001/test_storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ def redis_store():
yield store

async def shutdown():
store.pool.close()
await store.pool.wait_closed()
store.redis.close()
await store.redis.wait_closed()

run(shutdown())

Expand All @@ -129,8 +129,7 @@ def test_redis_register_store(redis_store):
assert redis_store.register_key(key) == register_key

async def test():
with await redis_store.pool as r:
await r.delete(register_key, lock_key)
await redis_store.redis.delete(register_key, lock_key)

async with redis_store.work_on_register(key) as reg:
assert reg == {}
Expand Down

0 comments on commit 5fe7fba

Please sign in to comment.