GithubHelp home page GithubHelp logo

Async support about mixpanel-python HOT 7 OPEN

mixpanel avatar mixpanel commented on August 15, 2024 8
Async support

from mixpanel-python.

Comments (7)

Kylmakalle avatar Kylmakalle commented on August 15, 2024 6

I've forked the repo and re-implemented it with aiohttp
https://github.com/Kylmakalle/mixpanel-python-asyncio. Available for Python 3.7+.

I've rewritten the tests to asyncio as well, so It should be safe enough to install.

Release 1.0.0

Install

pip install https://github.com/Kylmakalle/mixpanel-python-asyncio/archive/1.0.0.zip

Code

from mixpanel_asyncio import Mixpanel

mp = Mixpanel(YOUR_TOKEN)

# tracks an event with certain properties
await mp.track(DISTINCT_ID, 'button clicked', {'color' : 'blue', 'size': 'large'})

# sends an update to a user profile
await mp.people_set(DISTINCT_ID, {'$first_name' : 'Ilya', 'favorite pizza': 'margherita'})

from mixpanel-python.

MrEarle avatar MrEarle commented on August 15, 2024 6

I believe this is an important improvement. Since requests is sync, it blocks the event loop while waiting for a response.

This can impact frameworks such as FastAPI (or other asyncio based http frameworks). Blocking the event loop would make it so that the worker might not be able to process a request.

from mixpanel-python.

ramnes avatar ramnes commented on August 15, 2024 2

Yep, I've seen that you switched to requests recently. That's a missed opportunity because supporting async definitely means using another library. Ideally you want to use a single library for both the sync and async HTTP requests, like encode/httpx.

The codebase here is quite small and I've written multiple sync/async HTTP clients already (most notably notion-sdk-py); I could probably tackle this myself someday if you're interested in such a PR. Are you?

from mixpanel-python.

ramnes avatar ramnes commented on August 15, 2024 1

What's the roadmap exactly? I could bring Python 3 idiomatic features as well if you wish. Is there anything in particular that you want to achieve before?

from mixpanel-python.

seizethedave avatar seizethedave commented on August 15, 2024

Hello @ramnes - no, I haven't spent any time thinking about that. It sounds useful as an alternative backend, and if you end up with ideas about how this might look, I'd be happy to work with you on it. As it stands, the test suite for this project is heavily tied to requests which I understand would not be used under an async variant of this library/class. I do have plans to open the design up a bit in the next major version to allow more flexibility - perhaps an async mode could influence that a bit.

from mixpanel-python.

seizethedave avatar seizethedave commented on August 15, 2024

@ramnes Let's come back to this once we've nixed Py2 support. Next major vers., which is cooking slowly.

from mixpanel-python.

DimaDDM avatar DimaDDM commented on August 15, 2024

Hello. I will support this issue. i want to see async support for this library. I have been using it for many years and in connection with the transfer of projects to the asynchronous stack it would be very appreciated

from mixpanel-python.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.