Skip to content

Feature/logger and redis and api improvements #16

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 239 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
239 commits
Select commit Hold shift + click to select a range
10d2b00
added ui examples
oleksii-symon-corva-ai Dec 23, 2020
e61af57
moved config params from Config class to Corva.__init__ in configurat…
oleksii-symon-corva-ai Dec 23, 2020
2658390
use user_job(event) instead of user_job.run(event)
oleksii-symon-corva-ai Dec 23, 2020
7c682cf
deleted unused files and dir
oleksii-symon-corva-ai Dec 24, 2020
df921d4
added proper BaseEvent class
oleksii-symon-corva-ai Dec 24, 2020
5c2a197
Added more parameters to BaseContext
oleksii-symon-corva-ai Dec 24, 2020
a3dbca2
Added UserCallableMiddleware
oleksii-symon-corva-ai Dec 24, 2020
88625ea
added new parameters to BaseContext
oleksii-symon-corva-ai Dec 24, 2020
c84d47f
added Middleware class
oleksii-symon-corva-ai Dec 24, 2020
27c6a22
added UserMiddleware class
oleksii-symon-corva-ai Dec 24, 2020
40182c5
fix duplicate path import
oleksii-symon-corva-ai Dec 24, 2020
ee2feba
added __init__.py to corva/middleware/
oleksii-symon-corva-ai Dec 24, 2020
1014a73
added Corva class
oleksii-symon-corva-ai Dec 24, 2020
71b8838
deleted return type annotation from Corva.__init__
oleksii-symon-corva-ai Dec 24, 2020
66059f5
fixed spelling error
oleksii-symon-corva-ai Dec 24, 2020
50a4460
added return to UserMiddleware.__call__
oleksii-symon-corva-ai Dec 24, 2020
b27015a
fixed import order
oleksii-symon-corva-ai Dec 24, 2020
7f3820f
fixed parameter ordering in UserCallableMiddleware.__init__
oleksii-symon-corva-ai Dec 24, 2020
72e48cc
fixed circular imports
oleksii-symon-corva-ai Dec 24, 2020
0dcc056
skipped not needed failing tests
oleksii-symon-corva-ai Dec 24, 2020
75ef5ed
fix lint
oleksii-symon-corva-ai Dec 24, 2020
1ea5f39
added loader middleware
oleksii-symon-corva-ai Dec 25, 2020
190c71b
reworked BaseLoader to be generic
oleksii-symon-corva-ai Dec 25, 2020
4f760e1
updated StreamLoader
oleksii-symon-corva-ai Dec 25, 2020
eecbaf4
reworked BaseLoader
oleksii-symon-corva-ai Dec 25, 2020
a6995e2
reworked StreamLoader
oleksii-symon-corva-ai Dec 25, 2020
b442de1
fixed return in StreamLoader.load
oleksii-symon-corva-ai Dec 25, 2020
deacb2d
reworked ScheduledLoader
oleksii-symon-corva-ai Dec 25, 2020
8826713
reworked TaskLoader
oleksii-symon-corva-ai Dec 25, 2020
606bf08
either skipped or deleted not needed tests
oleksii-symon-corva-ai Dec 25, 2020
127c759
fixed import
oleksii-symon-corva-ai Dec 25, 2020
63cfc4f
deleted not used type constants
oleksii-symon-corva-ai Dec 25, 2020
6204942
lint fix
oleksii-symon-corva-ai Dec 25, 2020
16f4911
changed timestamp to be int
oleksii-symon-corva-ai Dec 25, 2020
28ff2f6
renamed AppKeyData -> AppData
oleksii-symon-corva-ai Dec 25, 2020
fc51928
made BaseContext generic to parametrize event type
oleksii-symon-corva-ai Dec 25, 2020
a0768a3
updated all contexts to use generic one
oleksii-symon-corva-ai Dec 25, 2020
d9c0a61
added SplitterMiddleware
oleksii-symon-corva-ai Dec 25, 2020
1bd9cee
added InitStateMiddleware
oleksii-symon-corva-ai Dec 25, 2020
60ed73f
use middleware functions instead of classes in Corva app
oleksii-symon-corva-ai Dec 28, 2020
5c653a3
replaced UserCallableMiddleware with unpack_context
oleksii-symon-corva-ai Dec 28, 2020
7e8a5aa
deleted UserMiddleware
oleksii-symon-corva-ai Dec 28, 2020
6515461
Merge branch 'feature/DC-752_develop-corva-class' into feature/DC-756…
oleksii-symon-corva-ai Dec 28, 2020
22d0957
replaced LoaderMiddleware with loader func
oleksii-symon-corva-ai Dec 28, 2020
79e82a0
Merge branch 'feature/DC-756_migrate-loaders-logic-to-middlewares' in…
oleksii-symon-corva-ai Dec 28, 2020
ad511bd
added init_state.py middleware
oleksii-symon-corva-ai Dec 28, 2020
b22bd92
replaced SplitterMiddleware with splitter_factory
oleksii-symon-corva-ai Dec 28, 2020
6b03270
refactored types.py
oleksii-symon-corva-ai Dec 28, 2020
4a27ae1
replaced loader with loader_factory
oleksii-symon-corva-ai Dec 28, 2020
9b371d3
Merge branch 'feature/DC-756_migrate-loaders-logic-to-middlewares' in…
oleksii-symon-corva-ai Dec 28, 2020
2298898
added init_api.py middleware
oleksii-symon-corva-ai Dec 28, 2020
7b8969f
fixed hgetall return type
oleksii-symon-corva-ai Dec 28, 2020
6f055d2
added load_and_store_state middleware
oleksii-symon-corva-ai Dec 28, 2020
df5fcc4
added validate_assignment = True to BaseStateData and BaseContext
oleksii-symon-corva-ai Dec 28, 2020
934487d
added stream_filter.py middleware
oleksii-symon-corva-ai Dec 28, 2020
d3d86a8
added stream.py middleware
oleksii-symon-corva-ai Dec 28, 2020
18c03e7
deleted only keyword arguments from middleware with one param
oleksii-symon-corva-ai Dec 28, 2020
24f450f
added app_key to BaseContext
oleksii-symon-corva-ai Dec 28, 2020
a8afac3
modified init_state_factory
oleksii-symon-corva-ai Dec 28, 2020
2ae97a9
added stream decorator to Corva
oleksii-symon-corva-ai Dec 28, 2020
95e9442
fix not working generic contexts
oleksii-symon-corva-ai Dec 28, 2020
e8bab3e
expanded call comment
oleksii-symon-corva-ai Dec 29, 2020
ad2d142
Merge branch 'feature/DC-751_concept-of-simplified-ui' into feature/D…
oleksii-symon-corva-ai Dec 29, 2020
a28b97f
added module comment to unpack_context.py
oleksii-symon-corva-ai Dec 29, 2020
7ac2ae4
add: extend context with extra fields
oleksii-symon-corva-ai Dec 29, 2020
1dc2ffb
added default_middleware in get_middleware_stack
oleksii-symon-corva-ai Dec 29, 2020
657fd10
added comments to unpack_context.py
oleksii-symon-corva-ai Dec 29, 2020
6faa903
deleted MIDDLEWARE_TYPE and MIDDLEWARE_CALL_TYPE
oleksii-symon-corva-ai Dec 29, 2020
f7d0a71
got rid of keyword only arguments in Corva.__init__
oleksii-symon-corva-ai Dec 29, 2020
70442ea
updated comments in models/base.py
oleksii-symon-corva-ai Dec 30, 2020
54a353d
updated unpack_context.py
oleksii-symon-corva-ai Dec 30, 2020
3f3dfed
deleted default_middleware from get_middleware_stack as unpack_contex…
oleksii-symon-corva-ai Dec 30, 2020
0d43986
deleted skipped tests
oleksii-symon-corva-ai Dec 30, 2020
37e566c
Merge branch 'feature/DC-752_develop-corva-class' into feature/DC-756…
oleksii-symon-corva-ai Dec 30, 2020
c4e1c33
deleted skipped tests
oleksii-symon-corva-ai Dec 30, 2020
8ce9552
deleted keyword only arguments in loader_factory as it has only one a…
oleksii-symon-corva-ai Dec 30, 2020
9e8f046
unnested classes in models/stream.py
oleksii-symon-corva-ai Dec 30, 2020
051ecf7
fix potential exc in StreamEventData.is_completed
oleksii-symon-corva-ai Dec 30, 2020
4c64072
added from_raw_event to BaseEvent
oleksii-symon-corva-ai Dec 30, 2020
943aa70
deleted loaders
oleksii-symon-corva-ai Dec 30, 2020
9322119
changed loader_factory to use new loaders
oleksii-symon-corva-ai Dec 30, 2020
9cec45c
fixed old app classes
oleksii-symon-corva-ai Dec 30, 2020
c700db9
fixed loader tests
oleksii-symon-corva-ai Dec 30, 2020
4699640
fix app/test_stream.record_factory
oleksii-symon-corva-ai Dec 30, 2020
a687d1a
Merge branch 'feature/DC-756_migrate-loaders-logic-to-middlewares' in…
oleksii-symon-corva-ai Dec 30, 2020
ed76b3a
fix Corva.stream
oleksii-symon-corva-ai Dec 30, 2020
b46f97e
deleted unused import
oleksii-symon-corva-ai Dec 30, 2020
8469e01
use keyword only params in middleware with more than one param
oleksii-symon-corva-ai Dec 30, 2020
d899926
added BaseData as unified class instead of (BaseStateData and BaseEve…
oleksii-symon-corva-ai Dec 30, 2020
1be0c27
fixed tests
oleksii-symon-corva-ai Dec 30, 2020
a04da5e
moved event, api and state loading to properties of BaseContext
oleksii-symon-corva-ai Dec 30, 2020
0a73821
deleted corva/utils.py
oleksii-symon-corva-ai Dec 30, 2020
901edf3
got rid of PrivateAttrs in BaseContext
oleksii-symon-corva-ai Dec 30, 2020
571ff80
updated splitter.py
oleksii-symon-corva-ai Dec 30, 2020
1f2cbd7
deleted not used middleware
oleksii-symon-corva-ai Dec 30, 2020
65421d9
updated load_and_store_state.py
oleksii-symon-corva-ai Dec 30, 2020
26764ba
deleted context from unpack_context
oleksii-symon-corva-ai Dec 30, 2020
36d8260
deleted middleware decorator
oleksii-symon-corva-ai Dec 30, 2020
a715bf4
Merge branch 'feature/DC-752_develop-corva-class' into feature/DC-756…
oleksii-symon-corva-ai Dec 30, 2020
a303831
Merge branch 'feature/DC-756_migrate-loaders-logic-to-middlewares' in…
oleksii-symon-corva-ai Dec 30, 2020
d5f6988
fixes after merge
oleksii-symon-corva-ai Dec 30, 2020
e27d02e
moved stream event filtering to StreamContext
oleksii-symon-corva-ai Dec 30, 2020
f0bafc6
fixed circular import
oleksii-symon-corva-ai Dec 30, 2020
63a850c
deleted not needed test_utils.py
oleksii-symon-corva-ai Dec 30, 2020
1b755f3
fixed app/scheduled.py and app/stream.py
oleksii-symon-corva-ai Dec 30, 2020
2265614
added state_data getter and setter in BaseContext
oleksii-symon-corva-ai Dec 30, 2020
e1a38fa
deleted load_and_store_state.py
oleksii-symon-corva-ai Dec 30, 2020
73e0a02
updated middleware/stream.py
oleksii-symon-corva-ai Dec 30, 2020
9b743c0
changed type of BaseContext.cache_kwargs
oleksii-symon-corva-ai Dec 30, 2020
9b2d0e2
fixed Corva.stream decorator
oleksii-symon-corva-ai Dec 30, 2020
b73bbea
deleted default parameters from Api
oleksii-symon-corva-ai Dec 30, 2020
a35cfa1
deleted default params from RedisAdapter
oleksii-symon-corva-ai Dec 30, 2020
c83ae01
some adjustments in Corva
oleksii-symon-corva-ai Dec 30, 2020
427b446
added comment to splitter middleware
oleksii-symon-corva-ai Dec 30, 2020
942bcc4
added comment to stream middleware
oleksii-symon-corva-ai Dec 30, 2020
71b6905
updated tutorial files
oleksii-symon-corva-ai Jan 6, 2021
64accab
Merge branch 'feature/DC-751_concept-of-simplified-ui' into feature/D…
oleksii-symon-corva-ai Jan 6, 2021
133361a
Merge branch 'feature/DC-752_develop-corva-class' into feature/DC-756…
oleksii-symon-corva-ai Jan 6, 2021
a74c0d9
deleted type comment
oleksii-symon-corva-ai Jan 6, 2021
12b55ca
added comment to ScheduledEvent.from_raw_event
oleksii-symon-corva-ai Jan 6, 2021
caee0e8
small fix
oleksii-symon-corva-ai Jan 6, 2021
a716618
Merge branch 'feature/DC-756_migrate-loaders-logic-to-middlewares' in…
oleksii-symon-corva-ai Jan 6, 2021
aa2714a
deleted obsolete else
oleksii-symon-corva-ai Jan 6, 2021
6f28fc7
fixed if logic
oleksii-symon-corva-ai Jan 6, 2021
d0e4de8
replaced @property with @cached_property in BaseContext
oleksii-symon-corva-ai Jan 6, 2021
8b150f1
added store_state_data to BaseContext
oleksii-symon-corva-ai Jan 6, 2021
44cd270
use dict literal instead of dict in BaseContext.state
oleksii-symon-corva-ai Jan 6, 2021
d3abb7c
deleted StreamApp and its tests
oleksii-symon-corva-ai Jan 6, 2021
2f0edb6
moved default value setting in Corva.stream to wrapper
oleksii-symon-corva-ai Jan 8, 2021
c6be4ba
added event_cls to context
oleksii-symon-corva-ai Jan 8, 2021
f8c30ff
replaced deep context copy with shallow
oleksii-symon-corva-ai Jan 8, 2021
45c26ff
fix wrong kwarg name in BaseContext.api
oleksii-symon-corva-ai Jan 8, 2021
8181c3c
added Settings class
oleksii-symon-corva-ai Jan 8, 2021
d9593e4
added Settings to context
oleksii-symon-corva-ai Jan 8, 2021
7be6e2a
added Settings as parameter to Corva.stream
oleksii-symon-corva-ai Jan 8, 2021
5144108
deleted some comments
oleksii-symon-corva-ai Jan 8, 2021
6ba22ea
deleted loader/test_stream.py
oleksii-symon-corva-ai Jan 8, 2021
5ec11bf
added patch_settings fixture
oleksii-symon-corva-ai Jan 8, 2021
2e0ad1f
added usage of SETTINGS in Corva.stream
oleksii-symon-corva-ai Jan 8, 2021
c1cc075
added values to corva.__init__
oleksii-symon-corva-ai Jan 8, 2021
ef1c5d6
added test_tutorial_1.py
oleksii-symon-corva-ai Jan 8, 2021
81ebf23
added Settings to corva.__init__.py
oleksii-symon-corva-ai Jan 8, 2021
7dc4385
updated tutorial_2_configuration.py
oleksii-symon-corva-ai Jan 8, 2021
746a1c7
added test_tutorial_2.py
oleksii-symon-corva-ai Jan 8, 2021
d1f8f1b
flake8 fixes
oleksii-symon-corva-ai Jan 8, 2021
100a4db
deleted kwargs from from_raw_event
oleksii-symon-corva-ai Jan 8, 2021
394c559
fix store_state_data for empty mapping
oleksii-symon-corva-ai Jan 8, 2021
feaac30
added StreamEventMetadata.source_type field
oleksii-symon-corva-ai Jan 11, 2021
bbb42d0
formatted Corva code
oleksii-symon-corva-ai Jan 11, 2021
67198fd
transformed stream and scheduled events from list type
oleksii-symon-corva-ai Jan 11, 2021
33b59ec
fixed issues with new event type
oleksii-symon-corva-ai Jan 11, 2021
dc75794
deleted obsolete event_cls field in contexts
oleksii-symon-corva-ai Jan 11, 2021
6b36291
flake8 fix
oleksii-symon-corva-ai Jan 11, 2021
6a698ee
added test_stream_app.py
oleksii-symon-corva-ai Jan 11, 2021
348745d
used unified cache naming in context
oleksii-symon-corva-ai Jan 11, 2021
5693ef6
fixed default filter values in stream middleware
oleksii-symon-corva-ai Jan 11, 2021
aa41178
renamed loader_factory into get_loader_fn
oleksii-symon-corva-ai Jan 11, 2021
86224c8
Merge branch 'feature/DC-756_migrate-loaders-logic-to-middlewares' in…
oleksii-symon-corva-ai Jan 11, 2021
52e0d89
covered some corner cases
oleksii-symon-corva-ai Jan 11, 2021
f5a14ac
deleted empty file
oleksii-symon-corva-ai Jan 11, 2021
687b6eb
added validation that records are not empty in StreamEvent
oleksii-symon-corva-ai Jan 11, 2021
fc41693
moved logic from utils.py
oleksii-symon-corva-ai Jan 12, 2021
9bf60f6
documented and simplified stream decorator
oleksii-symon-corva-ai Jan 12, 2021
f907837
replaced cached_property with property for cache_data
oleksii-symon-corva-ai Jan 12, 2021
b0b3170
deleted Corva.get_middleware_stack
oleksii-symon-corva-ai Jan 12, 2021
0180685
added StreamContext.check_one_active_filter_at_most
oleksii-symon-corva-ai Jan 12, 2021
6f7322e
deleted event cached_property
oleksii-symon-corva-ai Jan 12, 2021
821c5dd
excluded defaults from raw event mixer
oleksii-symon-corva-ai Jan 12, 2021
3eb9a1a
added scheduled middleware
oleksii-symon-corva-ai Jan 12, 2021
458a866
added scheduled decorator to Corva
oleksii-symon-corva-ai Jan 12, 2021
032874b
added app_wrapper_factory
oleksii-symon-corva-ai Jan 13, 2021
1c2414d
simplified app_wrapper
oleksii-symon-corva-ai Jan 13, 2021
51a5746
added test_scheduled_app.py
oleksii-symon-corva-ai Jan 13, 2021
53bcf81
deleted useless test files
oleksii-symon-corva-ai Jan 13, 2021
971bdda
refactored test_stream_app.py
oleksii-symon-corva-ai Jan 13, 2021
97638df
added test_run to test_stream_app.py
oleksii-symon-corva-ai Jan 13, 2021
f876e6f
refactored test_tutorial_1.py and test_tutorial_2.py
oleksii-symon-corva-ai Jan 13, 2021
15e5c8f
deleted stream_event.json
oleksii-symon-corva-ai Jan 13, 2021
5a8f12f
Merge branch 'feature/DC-753_migrate-stream-app-into-middleware' into…
oleksii-symon-corva-ai Jan 13, 2021
37f8d7d
deteled scheduled_event.json
oleksii-symon-corva-ai Jan 13, 2021
bc3b396
refactored test_scheduled_app.py
oleksii-symon-corva-ai Jan 13, 2021
cf30738
refactored conftest.py
oleksii-symon-corva-ai Jan 13, 2021
1c830d6
refactored test_scheduled_app.py
oleksii-symon-corva-ai Jan 13, 2021
7f56632
deleted app/scheduled.py
oleksii-symon-corva-ai Jan 13, 2021
0e5c5d3
deleted types.py
oleksii-symon-corva-ai Jan 13, 2021
e5e2a5b
added app_version field to AppMetadata
oleksii-symon-corva-ai Jan 14, 2021
b2c3721
refactored imports
oleksii-symon-corva-ai Jan 14, 2021
89670b8
Merge branch 'feature/DC-756_migrate-loaders-logic-to-middlewares' in…
oleksii-symon-corva-ai Jan 14, 2021
2e88bb5
Merge branch 'feature/DC-753_migrate-stream-app-into-middleware' into…
oleksii-symon-corva-ai Jan 14, 2021
c7ca2bc
replaced cached_property with property in BaseContext
oleksii-symon-corva-ai Jan 14, 2021
8863df4
renamed State into Cache
oleksii-symon-corva-ai Jan 14, 2021
a699860
Merge branch 'feature/DC-753_migrate-stream-app-into-middleware' into…
oleksii-symon-corva-ai Jan 14, 2021
8edf845
deleted middlewares
oleksii-symon-corva-ai Jan 14, 2021
57f682d
Merge branch 'feature/DC-752_develop-corva-class' into feature/DC-756…
oleksii-symon-corva-ai Jan 14, 2021
7da1ab2
deleted loader middleware
oleksii-symon-corva-ai Jan 14, 2021
997e126
Merge branch 'feature/DC-756_migrate-loaders-logic-to-middlewares' in…
oleksii-symon-corva-ai Jan 14, 2021
c9e5029
deleted stream middleware
oleksii-symon-corva-ai Jan 14, 2021
3e55e24
added stream decorator
oleksii-symon-corva-ai Jan 14, 2021
3fb1bec
added api as required parameter in BaseContext
oleksii-symon-corva-ai Jan 14, 2021
61f9d18
added settings and stream to Corva
oleksii-symon-corva-ai Jan 14, 2021
1f03c81
fixed test_stream_app.py tests
oleksii-symon-corva-ai Jan 14, 2021
72cc2bc
use copy of global settings in Corva
oleksii-symon-corva-ai Jan 14, 2021
048c8d3
fixed tutorials
oleksii-symon-corva-ai Jan 14, 2021
367bc36
transformed stream decorator into simple function
oleksii-symon-corva-ai Jan 14, 2021
ec7c869
renamed stream into stream_runner
oleksii-symon-corva-ai Jan 14, 2021
c43668e
deleted cached_property from settings.py
oleksii-symon-corva-ai Jan 14, 2021
7164e90
Merge branch 'master' into feature/DC-756_migrate-loaders-logic-to-mi…
oleksii-symon-corva-ai Jan 14, 2021
8caf4d0
deleted outdated stream tests
oleksii-symon-corva-ai Jan 14, 2021
fb2e06c
flake8 refactor
oleksii-symon-corva-ai Jan 14, 2021
7ccc053
Merge branch 'feature/DC-756_migrate-loaders-logic-to-middlewares' in…
oleksii-symon-corva-ai Jan 14, 2021
424f9e4
Merge branch 'master' into feature/DC-753_migrate-stream-app-into-mid…
oleksii-symon-corva-ai Jan 15, 2021
12cb7f6
merge fixes
oleksii-symon-corva-ai Jan 15, 2021
fee4036
moved pydantic config to base classes
oleksii-symon-corva-ai Jan 15, 2021
26fe99d
reworked Settings.APP_NAME property
oleksii-symon-corva-ai Jan 15, 2021
4d94451
moved default init values to class object in Api
oleksii-symon-corva-ai Jan 15, 2021
f0a943b
renamed Settings -> CorvaSettings
oleksii-symon-corva-ai Jan 15, 2021
b0ce637
renamed Settings -> CorvaSettings
oleksii-symon-corva-ai Jan 15, 2021
24c8f4f
deleted CorvaSettings from corva.__init__.py
oleksii-symon-corva-ai Jan 15, 2021
8d38403
simplified Corva.__init__
oleksii-symon-corva-ai Jan 15, 2021
670e208
changed type of BaseContext.cache_kwargs from Optional[dict] to dict
oleksii-symon-corva-ai Jan 15, 2021
ebb23ed
simplified BaseContext.cache
oleksii-symon-corva-ai Jan 15, 2021
163468e
simplified BaseContext.store_cache_data
oleksii-symon-corva-ai Jan 15, 2021
e235c63
fixed imports
oleksii-symon-corva-ai Jan 15, 2021
4ef9755
set StreamStateData default values to None
oleksii-symon-corva-ai Jan 15, 2021
9a73a9d
added comment for FakeServer in conftest.patch_redis_adapter
oleksii-symon-corva-ai Jan 15, 2021
5750891
added comments to fixtures in conftest.py
oleksii-symon-corva-ai Jan 15, 2021
9113583
deleted app fixture from conftest.py
oleksii-symon-corva-ai Jan 15, 2021
7c05707
Merge branch 'feature/DC-753_migrate-stream-app-into-middleware' into…
oleksii-symon-corva-ai Jan 15, 2021
682afae
merge fixes
oleksii-symon-corva-ai Jan 15, 2021
4d80ba1
deleted logger.py
oleksii-symon-corva-ai Jan 15, 2021
ff547ac
Revert "deleted logger.py"
oleksii-symon-corva-ai Jan 15, 2021
278dab2
deleted logger.py
oleksii-symon-corva-ai Jan 15, 2021
2376003
refactored redis state with its tests
oleksii-symon-corva-ai Jan 15, 2021
ffbdd88
improved Api type hints
oleksii-symon-corva-ai Jan 15, 2021
a1abf87
improved Api type hints
oleksii-symon-corva-ai Jan 15, 2021
49418a2
deleted api and corva_settings fixtures from conftest.py
oleksii-symon-corva-ai Jan 15, 2021
39c3cfb
Merge remote-tracking branch 'origin/feature/minor-logger-and-redis-i…
oleksii-symon-corva-ai Jan 15, 2021
e700046
moved corva/scheduled.py and corva/stream.py to corva/runners package
oleksii-symon-corva-ai Jan 15, 2021
9042509
Merge branch 'feature/DC-754_migrate-scheduled-app-into-middleware' i…
oleksii-symon-corva-ai Jan 15, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions corva/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from .application import Corva # noqa: F401
from .models.stream import StreamEvent # noqa: F401
from .network.api import Api # noqa: F401
from .state.redis_state import RedisState as Cache # noqa: F401
19 changes: 6 additions & 13 deletions corva/app/base.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,23 @@
from abc import ABC, abstractmethod
from itertools import groupby
from logging import Logger, LoggerAdapter
from typing import List, Optional, Union
from typing import List, Optional

from corva import settings
from corva.event import Event
from corva.logger import DEFAULT_LOGGER
from corva.models.base import BaseContext
from corva.network.api import Api
from corva.settings import CORVA_SETTINGS


class BaseApp(ABC):
def __init__(
self,
app_key: str = settings.APP_KEY,
cache_url: str = settings.CACHE_URL,
api: Optional[Api] = None,
logger: Union[Logger, LoggerAdapter] = DEFAULT_LOGGER
app_key: str = CORVA_SETTINGS.APP_KEY,
cache_url: str = CORVA_SETTINGS.CACHE_URL,
api: Optional[Api] = None
):
self.app_key = app_key
self.cache_url = cache_url
self.api = api or Api()
self.logger = logger
self.api = api

@property
@abstractmethod
Expand All @@ -42,7 +38,6 @@ def run(self, event: str) -> None:
event = self.event_loader.load(event=event)
events = self._group_event(event=event)
except Exception:
self.logger.error('Could not prepare events for run.')
raise

for event in events:
Expand All @@ -52,15 +47,13 @@ def _run(self, event: Event) -> None:
try:
context = self.get_context(event=event)
except Exception:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These try/except blocks seem pointless now that we are just reraising.

self.logger.error('Could not get context.')
raise

try:
self.pre_process(context=context)
self.process(context=context)
self.post_process(context=context)
except Exception as exc:
self.logger.error('An error occurred in process pipeline.')
self.on_fail(context=context, exception=exc)
raise

Expand Down
35 changes: 0 additions & 35 deletions corva/app/scheduled.py

This file was deleted.

126 changes: 0 additions & 126 deletions corva/app/stream.py

This file was deleted.

83 changes: 82 additions & 1 deletion corva/application.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,83 @@
from typing import Any, Callable, List, Optional

from corva.models.scheduled import ScheduledContext, ScheduledEvent
from corva.models.stream import StreamContext, StreamEvent
from corva.network.api import Api
from corva.runners.scheduled import scheduled_runner
from corva.runners.stream import stream_runner
from corva.settings import CorvaSettings, CORVA_SETTINGS


class Corva:
pass
def __init__(
self,
api_url: Optional[str] = None,
data_api_url: Optional[str] = None,
cache_url: Optional[str] = None,
api_key: Optional[str] = None,
app_key: Optional[str] = None,
api_timeout: Optional[int] = None,
api_max_retries: Optional[int] = None,
cache_kwargs: Optional[dict] = None
):
self.cache_kwargs = cache_kwargs or {}

self.settings = CorvaSettings(
API_ROOT_URL=api_url or CORVA_SETTINGS.API_ROOT_URL,
DATA_API_ROOT_URL=data_api_url or CORVA_SETTINGS.DATA_API_ROOT_URL,
API_KEY=api_key or CORVA_SETTINGS.API_KEY,
CACHE_URL=cache_url or CORVA_SETTINGS.CACHE_URL,
APP_KEY=app_key or CORVA_SETTINGS.APP_KEY
)

self.api = Api(
api_url=self.settings.API_ROOT_URL,
data_api_url=self.settings.DATA_API_ROOT_URL,
api_key=self.settings.API_KEY,
app_name=self.settings.APP_NAME,
timeout=api_timeout,
max_retries=api_max_retries
)

def stream(
self,
fn: Callable,
event: str,
*,
filter_by_timestamp: bool = False,
filter_by_depth: bool = False
) -> List[Any]:
events = StreamEvent.from_raw_event(event=event, app_key=self.settings.APP_KEY)

results = []

for event in events:
ctx = StreamContext(
event=event,
settings=self.settings,
api=self.api,
cache_kwargs=self.cache_kwargs,
filter_by_timestamp=filter_by_timestamp,
filter_by_depth=filter_by_depth
)

results.append(stream_runner(fn=fn, context=ctx))

return results

def scheduled(self, fn: Callable, event: str):
events = ScheduledEvent.from_raw_event(event=event)

results = []

for event in events:
ctx = ScheduledContext(
event=event,
settings=self.settings,
api=self.api,
cache_kwargs=self.cache_kwargs
)

results.append(scheduled_runner(fn=fn, context=ctx))

return results
58 changes: 0 additions & 58 deletions corva/logger.py

This file was deleted.

Loading