All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Documentation 404 at GitHub pages
- Upgrade a bunch of outdated core dependencies + test & lint dependencies
- Add app logic for meaningful error when mismatched app type is used either declared at
manifest.json
or according to used event payload passed to app
- Unset the
CORVA_LOGGER.propagate = False
, so the OTel handler will be able to collect and send those logs as well refs https://github.com/corva-ai/otel/pull/37
- Now "version" field represents not schema version but rather the version of rerun and can be any integer.
- Filter out records with
None
data from stream time records.
- Most of the fields in partial merge events should be optional.
- Fields
partition
andrerun_partition
are not expected in partial merge event payload. - Data structure under
data
key of partial merge event payload can accept additional fields.
- Optional merge_events parameter to @stream and @scheduled decorators. Default is False, if True - merge all incoming events into one.
- Added functionality to make retries for the failed HTTP requests.
- New handler to process partial rerun merge events
- issue with
insert_data
method not working when trying to insert data into any dataset.
- Limit number of available Cache connections to 1
urllib3
v2 not supported by AWS Lambda.
log_identifier
field to stream depth events.
- Reraise exceptions in
task
apps instead of suppressing them.
id
field to rerun data.
insert_data
method toApi
. SeeInsert data
section in docs.- Example usage for followable apps.
See
Followable apps
section in docs.
produce_messages
method toApi
. SeeProduce messages
section in docs.- Documentation on followable apps.
See
Followable apps
section in docs.
cache
parameter toapp_runner
to reuse the cache object.
- Set status as completed for failed scheduled natural time apps.
- GitHub Pages
- GitHub Pages
- Rerun support.
StreamTimeEvent
,StreamDepthEvent
,ScheduledDataTimeEvent
,ScheduledDepthEvent
andScheduledNaturalTimeEvent
got newrerun
field which stores rerun metadata.
Cache
methods:set_many
get_many
get_all
delete_many
delete_all
- Wrong log formatting in Dev Center: multiline Python logs (like stack traces) being split into multiple CloudWatch log entries.
- Log internal SDK errors using
warning
level instead ofexception
.
get
,set
and new signature fordelete
methods toCache
. See docs for more info.
Cache
methods:- old
delete
signature store
load
load_all
delete_all
ttl
pttl
exists
- old
Cache
unable to set unique expiry for each key.
- Wrong log formatting in Dev Center: multiline Python logs (like stack traces) being split into multiple CloudWatch log entries.
- Secrets support. See corresponding section in docs.
- Successful task app failing to update task status.
- Returning dict result from task app to get it stored in task payload. Send the request to update the payload explicitly in your app.
- Subtypes of scheduled event:
ScheduledDataTimeEvent
,ScheduledDepthEvent
andScheduledNaturalTimeEvent
ScheduledEvent
usage
- Ability to pass custom logging handlers
to app decorators using
handler
keyword argument. - Natural time event (single dict) parsing in
scheduled
apps.
- Multiple logging of the same exception in stream and scheduled apps.
- Log message truncation for low
LOG_THRESHOLD_MESSAGE_SIZE
values.
- Logging of internal errors.
- AWS Lambda context parsing.
corva.stream
,corva.scheduled
andcorva.task
app decorators. See readme for usage examples.ScheduledEvent.company_id
field.
corva.Corva
class.
- Events are allowed to have extra fields.
corva.Logger
object, that should be used for app logging.LOG_THRESHOLD_MESSAGE_SIZE
andLOG_THRESHOLD_MESSAGE_COUNT
env variables, that should be used to configure logging.
app_runner
fixture for testing apps.
StreamEvent
was split intoStreamTimeEvent
andStreamDepthEvent
, which have correspondingStreamTimeRecord
andStreamDepthRecord
records.- Deleted all unsued fields from
ScheduledEvent
,TaskEvent
,StreamTimeEvent
andStreamDepthEvent
.
filter_mode
parameter fromCorva.stream
. Filtering is now automatic.
Corva.task
decorator for task apps.
Testing
section toREADME.md
.Api.get_dataset
method.
ScheduledEvent.schedule_end
field is now optional.ScheduledEvent.schedule_end
andScheduledEvent.schedule_start
field types fromdatetime
toint
.
- Tools for testing apps.
TaskEvent
queue event parsing.
###Changed
StreamEvent
must have at least one record.StreamEvent
andScheduledEvent
:- Added descriptions to fields.
- Simplified event structures.
ScheduledEvent
queue event parsing.
Api
class:- Deleted retries.
- Responses do not use
raise_for_status
anymore. - Lowered
default_timeout
to 30 seconds. - Fixed url build exceptions on Windows.
- Obsolete
StreamEvent
fields:app_version
. - Obsolete
ScheduledEvent
fields:app_version
.
api_key
extraction fromcontext
.
StreamEvent
queue event parsing.
- Required
context
parameter toCorva
. - Documentation in
README.md
.
Corva
class, which containsstream
andscheduled
decorators for stream and scheduled apps.
StreamApp
andScheduledApp
classes.
- Deployment to PyPI.
###Added
StreamApp
to build stream apps.ScheduledApp
to build scheduled apps.TaskApp
to build task apps.Api
class to access Platform and Data Corva APIs.Cache
class to share data between app invokes.- Event classes:
StreamEvent
,ScheduledEvent
andTaskEvent
.
[Unreleased] https://github.com/corva-ai/python-sdk/compare/v1.13.0...master [1.13.0] https://github.com/corva-ai/python-sdk/compare/v1.12.1...v1.13.0 [1.12.1] https://github.com/corva-ai/python-sdk/compare/v1.12.0...v1.12.1 [1.12.0] https://github.com/corva-ai/python-sdk/compare/v1.11.4...v1.12.0 [1.11.4] https://github.com/corva-ai/python-sdk/compare/v1.11.3...v1.11.2 [1.11.3] https://github.com/corva-ai/python-sdk/compare/v1.11.2...v1.11.3 [1.11.2] https://github.com/corva-ai/python-sdk/compare/v1.11.1...v1.11.2 [1.11.1] https://github.com/corva-ai/python-sdk/compare/v1.11.0...v1.11.1 [1.11.0] https://github.com/corva-ai/python-sdk/compare/v1.10.0...v1.11.0 [1.10.0] https://github.com/corva-ai/python-sdk/compare/v1.9.2...v1.10.0 [1.9.2] https://github.com/corva-ai/python-sdk/compare/v1.9.1...v1.9.2 [1.9.1] https://github.com/corva-ai/python-sdk/compare/v1.9.0...v1.9.1 [1.9.0] https://github.com/corva-ai/python-sdk/compare/v1.8.1...v1.9.0 [1.8.1] https://github.com/corva-ai/python-sdk/compare/v1.8.0...v1.8.1 [1.8.0] https://github.com/corva-ai/python-sdk/compare/v1.7.0...v1.8.0 [1.7.0] https://github.com/corva-ai/python-sdk/compare/v1.6.0...v1.7.0 [1.6.0] https://github.com/corva-ai/python-sdk/compare/v1.5.3...v1.6.0 [1.5.3] https://github.com/corva-ai/python-sdk/compare/v1.5.2...v1.5.3 [1.5.2] https://github.com/corva-ai/python-sdk/compare/v1.5.1...v1.5.2 [1.5.1] https://github.com/corva-ai/python-sdk/compare/v1.5.0...v1.5.1 [1.5.0] https://github.com/corva-ai/python-sdk/compare/v1.4.0...v1.5.0 [1.4.0] https://github.com/corva-ai/python-sdk/compare/v1.4.0-rc.1...v1.4.0 [1.4.0-rc.1] https://github.com/corva-ai/python-sdk/compare/v1.3.1...v1.4.0-rc.1 [1.3.1] https://github.com/corva-ai/python-sdk/compare/v1.3.0...v1.3.1 [1.3.0] https://github.com/corva-ai/python-sdk/compare/v1.2.2...v1.3.0 [1.2.2] https://github.com/corva-ai/python-sdk/compare/v1.2.1...v1.2.2 [1.2.1] https://github.com/corva-ai/python-sdk/compare/v1.2.0...v1.2.1 [1.2.0] https://github.com/corva-ai/python-sdk/compare/v1.1.0...v1.2.0 [1.1.0] https://github.com/corva-ai/python-sdk/compare/v1.0.3...v1.1.0 [1.0.3] https://github.com/corva-ai/python-sdk/compare/v1.0.2...v1.0.3 [1.0.2] https://github.com/corva-ai/python-sdk/compare/v1.0.1...v1.0.2 [1.0.1]: https://github.com/corva-ai/python-sdk/compare/v1.0.0...v1.0.1 [1.0.0]: https://github.com/corva-ai/python-sdk/compare/v0.0.18...v1.0.0 [0.0.18]: https://github.com/corva-ai/python-sdk/compare/v0.0.17...v0.0.18 [0.0.17]: https://github.com/corva-ai/python-sdk/compare/v0.0.16...v0.0.17 [0.0.16]: https://github.com/corva-ai/python-sdk/compare/v0.0.15...v0.0.16 [0.0.15]: https://github.com/corva-ai/python-sdk/compare/v0.0.14...v0.0.15 [0.0.14]: https://github.com/corva-ai/python-sdk/compare/v0.0.13...v0.0.14 [0.0.13]: https://github.com/corva-ai/python-sdk/compare/v0.0.12...v0.0.13 [0.0.12]: https://github.com/corva-ai/python-sdk/compare/v0.0.11...v0.0.12 [0.0.11]: https://github.com/corva-ai/python-sdk/compare/v0.0.10...v0.0.11 [0.0.10]: https://github.com/corva-ai/python-sdk/compare/v0.0.9...v0.0.10 [0.0.9]: https://github.com/corva-ai/python-sdk/compare/v0.0.8...v0.0.9 [0.0.8]: https://github.com/corva-ai/python-sdk/compare/v0.0.7...v0.0.8 [0.0.7]: https://github.com/corva-ai/python-sdk/compare/v0.0.5...v0.0.7 [0.0.5]: https://github.com/corva-ai/python-sdk/compare/v0.0.4...v0.0.5 [0.0.4]: https://github.com/corva-ai/python-sdk/compare/v0.0.3...v0.0.4 [0.0.3]: https://github.com/corva-ai/python-sdk/compare/v0.0.2...v0.0.3 [0.0.2]: https://github.com/corva-ai/python-sdk/releases/tag/v0.0.2