- MixpanelQuery.profile_by_email raises a custom exception called
MultipleProfilesFoundException
when multiple profiles are found for a given email. The exception contains the email and all profiles found so that clients can handle the exception as needed. [karantan]
- Overhauled testing support for more readable asserts. This is a breaking change for existing test cases. [zupo]
- Support for skipping arbitrary track/profile_set calls to Customer.io. [zupo]
- Customer.io expects the main "sign up" timestamp to be sent as
created_at
. [zupo]
- Fix another brownbag release by re-applying fixes from 0.9.1. [zupo]
- Support different date formatting between Mixpanel and Customer.io. [zupo]
- Fix brownbag release by fixing definition of extras. [zupo]
- Add optional support for Customer.io. [zupo]
-
Make structlog optional. [am-on]
-
Support setting event props from HTTP headers. [am-on]
-
Added support for
people_union()
. [am-on] -
Added
sayanarijit/typecov
. [sayanarijit]
- Added support for configuring a custom Consumer. [zupo]
- Require that all Consumers implement a
flush()
method. [zupo]
- Include py.typed in the package, third time is the charm? [zupo]
- Include py.typed in the package, now for real. [zupo]
- Include py.typed in the package. [zupo]
-
Prepare for PYPI release of the rewrite. [zupo]
-
Small performance optimization. [zupo]
-
Add guards that make sure parameters sent to MixpanelTrack are valid. [zupo]
-
Don't flood logs with "mixpanel configured" messages. [zupo]
-
Support for the
people_append
method. [suryasr007] -
Lots of cleanup of legacy assumptions:
profile_sync
method was removed- request.user no longer required
- MixpanelTrack init now accepts
distinct_id
instead ofuser
state
ProfileProperty no longer required [zupo]
- Not all consumers have a .flush() method. [zupo]
- Rewrite based on 5 years of Mixpanel usage in production at Niteo. [@zupo, @vanclevstik, @dz0ny, @karantan, @am-on, @rokcarl]
- Legacy version developed by @hadrien.