Releases: QCaudron/pawprint
v2.1.1 - Release
Fixes two critical problems:
- Queries for events need an ORDER BY to ensure they are pulled in chronological order
- When checking if the time between events is greater than the specified window, we need to use
.total_seconds()
not, as previously.seconds
to get the desired behavior..seconds
was ignoring dates.
v2.1.0 - Release
This release refactors the sessions calculations to allow for events to be processed in batches. This should help save memory.
In order to implement the batching, sessions.py
needed some small changes.
Sessions.closed_sessions
now gets reset to an empty list whenever theSessions.write_to_db()
method is called. This avoids re-writing sessions that have already been written.Sessions.current_sessions
now gets reset to an empty dictionary whenever theSessions.close_open_sessions()
method is called. This was not strictly necessary for the new batching to work, but seems like the expected behavior.
Another change is that some methods have been renamed. CurrentUserSession.log()
and Sessions.track_event()
are both now .log_event()
This release also includes some new tests that use the batch_size parameter.
v2.0.0 - Release
pip install pawprint==2.0.0
This release includes a major rebuild of the way user sessions are calculated. It adds a sessions.py
module that contains the UserCurrentSession
and Sessions
classes. These classes help track sessions during calculation and prevent memory explosion.
The new sessions database table that is created will have two new fields:
last_timestamp
which represents the timestamp of the last event in that sessionevents
which is a string of comma-separated events that make up that session
v1.2.0 - Release
pip install pawprint==1.2.0
This release includes:
- A new "event_session_map" table to enable easy connection between events and sessions
- A major bug fix. The bug resulted in events being included in multiple sessions in some scenarios.
- Revisions and expansions of the testing suite to allow more use of
pytest.fixtures()
- A Docker development environment to enable easier onboarding for new contributors.