Skip to content

Commit 4369521

Browse files
committed
Tested self argument in EventHandler
1 parent eaec9e7 commit 4369521

11 files changed

+85
-25
lines changed

bali/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from bali.decorators import event_handler, init_handler
66
from bali.resources import Resource, ModelResource
77

8-
__version__ = '3.2.2'
8+
__version__ = '3.2.1'
99

1010

1111
class Schema(BaseModel):

bali/application.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,13 @@ def serve():
143143

144144
def _launch_event(self):
145145
from .events import handle
146-
from bali import init_handler
146+
from bali import init_handler, __version__
147+
147148
event_handler = self.kwargs.get('event_handler')
148149
if not event_handler:
149150
raise Exception('event_handler not provided')
150151
init_handler(event_handler)
152+
logger.info('Bali v%s Event started.', __version__)
151153
while True:
152154
handle()
153155

examples/legacy/config.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66

77
class Settings(BaseSettings):
8-
SERVER_NAME: str = 'bali-test'
8+
SERVER_NAME: str = 'legacy'
99

1010
DATABASE_SERVER: str = '127.0.0.1'
1111
DATABASE_USER: str = 'root'
@@ -25,6 +25,15 @@ def assemble_db_connection(cls, v: Optional[str], values: Dict[str, Any]) -> Any
2525
CACHE_ADDRESS: str = '127.0.0.1'
2626
CACHE_PASSWORD: str = '123456'
2727

28+
AMQP_SERVER_ADDRESS: str = 'amqp://127.0.0.1:5672'
29+
30+
AMQP_CONFIGS = {
31+
'default': {
32+
'AMQP_SERVER_ADDRESS': AMQP_SERVER_ADDRESS,
33+
'EXCHANGE_TYPE': 'fanout',
34+
}
35+
}
36+
2837

2938
settings = Settings()
3039

examples/legacy/event_handler.py

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
from bali.decorators import event_handler
22

33

4-
@event_handler('hello')
5-
def hello_handle(event):
6-
pass
4+
class EventHandler:
5+
@event_handler('HelloSaid')
6+
def handle_hello_said(self, event):
7+
self.prepare(event)
8+
print('handle event: ', event)
9+
10+
@event_handler('HiSaid')
11+
def handle_hi_said(self, event):
12+
self.prepare(event)
13+
print('handle event: ', event)
14+
15+
def prepare(self, event):
16+
print('prepare event: ', event)

examples/legacy/event_trigger.py

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import os
2+
3+
from bali.core import _settings
4+
from bali.events import Event, dispatch
5+
6+
amqp_uri = os.getenv('AMQP_SERVER_ADDRESS', default='amqp://127.0.0.1:5672')
7+
8+
9+
_settings.AMQP_CONFIGS = {
10+
'default': {
11+
'AMQP_SERVER_ADDRESS': amqp_uri,
12+
'EXCHANGE_NAME': 'ms.events',
13+
'EXCHANGE_TYPE': 'fanout',
14+
}
15+
}
16+
17+
18+
class HelloSaidEvent(Event):
19+
"""Hello said event"""
20+
type: str = 'HelloSaid'
21+
name: str = ''
22+
23+
24+
class HiSaidEvent(Event):
25+
"""Hi said event"""
26+
type: str = 'HiSaid'
27+
name: str = ''
28+
29+
30+
def run():
31+
event = HelloSaidEvent(name='Jack')
32+
dispatch(event)
33+
print('Dispatched event: ', event)
34+
35+
event = HiSaidEvent(name='Jerry')
36+
dispatch(event)
37+
print('Dispatched event: ', event)
38+
39+
40+
if __name__ == '__main__':
41+
run()

examples/legacy/main.py

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
# noinspection PyUnresolvedReferences
22
import config
3-
# import grpc_server
43
import grpc_server_async
54
from bali.core import Bali
6-
import event_handler
5+
from event_handler import EventHandler
76
from v1.app import router
8-
from fastapi_pagination import LimitOffsetPage, add_pagination, paginate
9-
107

118
app = Bali(
129
base_settings=None,
@@ -16,9 +13,9 @@
1613
}],
1714
backend_cors_origins=['http://127.0.0.1'],
1815
rpc_service=grpc_server_async,
19-
event_handler=event_handler
16+
event_handler=EventHandler
2017
)
21-
app.settings(title='Bali Example')
18+
app.settings(title='legacy')
2219

2320
if __name__ == "__main__":
2421
app.start()

examples/legacy/resources/async_greeter.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from bali.decorators import action
55
from bali.resources import Resource
66
from bali.schemas import GetRequest, ListRequest
7-
from ..permissions import IsAuthenticated
7+
from permissions import IsAuthenticated
88

99
GREETERS = [{'id': i, 'content': 'Hi, number %s' % i} for i in range(10)]
1010

examples/legacy/resources/greeter.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from bali.decorators import action
55
from bali.resources import Resource
66
from bali.schemas import GetRequest, ListRequest
7-
from ..permissions import IsAuthenticated
7+
from permissions import IsAuthenticated
88

99
GREETERS = [{'id': i, 'content': 'Hi, number %s' % i} for i in range(10)]
1010

examples/legacy/resources/item.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,13 @@
99
from bali.decorators import action
1010
from bali.resources import Resource
1111
from bali.schemas import ListRequest
12-
from ..models import Item
13-
from ..permissions import IsAuthenticated
14-
from ..schemas import ItemModel
12+
from models import Item
13+
from permissions import IsAuthenticated
14+
from schemas import ItemModel
1515

1616
from sqlalchemy.future import select
1717

1818

19-
2019
class QFilter(BaseModel):
2120
name: str
2221

@@ -38,7 +37,9 @@ def get(self, pk=None):
3837
@action()
3938
def list(self, schema_in: ListRequest = None):
4039
time.sleep(2)
41-
return Item.query().filter(*get_filters_expr(Item, **schema_in.filters))
40+
return Item.query().filter(
41+
*get_filters_expr(Item, **schema_in.filters)
42+
)
4243

4344
@action()
4445
async def list_async(self, schema_in: ListRequest = None):

examples/legacy/resources/item_model_resource.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
from pydantic import BaseModel
44

55
from bali.resources import ModelResource
6-
from ..models import Item
7-
from ..permissions import IsAuthenticated
8-
from ..schemas import ItemModel
6+
from models import Item
7+
from permissions import IsAuthenticated
8+
from schemas import ItemModel
99

1010

1111
class QFilter(BaseModel):

examples/legacy/v1/app.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
from fastapi_pagination import LimitOffsetPage, paginate
22

33
from bali.core import APIRouter, cache_memoize
4-
from ..models import Item
5-
from ..resources import (
4+
from models import Item
5+
from resources import (
66
GreeterResource,
77
AsyncGreeterResource,
88
ItemResource,
99
ItemModelResource,
1010
)
11-
from ..schemas import ItemModel
11+
from schemas import ItemModel
1212

1313
router = APIRouter()
1414

0 commit comments

Comments
 (0)