d6tcollect

d6tcollect: collects anonymous usage statistics for python libraries


Keywords
d6tcollect, usage, tracking, engagement
License
MIT
Install
pip install d6tcollect==1.0.1

Documentation

d6tcollect

What it does?

Much like websites, this library collects anonymous usage statistics for python libraries.

Why collect?

We have put a lot of effort into making the libraries useful to you. Users typically run into problems but a lot of people don't report issues. We also don't know which features users find valuable. Without this information we wouldn't know what bugs to fix and what features to develop. We want to make the libraries better but we want to make data-driven decisions.

What it collects?

It ONLY collects select function call events and exceptions. It does NOT collect any of your data.

Example of data collected {'package': 'module', 'module': 'module.utils', 'classModule': 'module.utils.MyClass', 'class': 'MyClass', 'function': 'MyClass0.myfunction_1', 'functionModule': 'module.utils.MyClass.myfunction_1', 'event': 'call', 'params': {'args': 1, 'kwargs': 'another'}}

Data transfer is minimal and run asynchronous so it doesn't impact your code in any way.

If you don't trust our word, just look at the code!

How to disable?

To disable collection run the below before importing libraries which use d6tcollect

import d6tcollect
d6tcollect.submit = False

Privacy Notice

See https://www.databolt.tech/index-terms.html#privacy

Installation

Install with pip install d6tcollect. To update, run pip install d6tcollect -U --no-deps.

You can also clone the repo and run pip install .

To enable engagement tracking do pip install d6tcollect[track] or pip install .[track].

Email engagement tracking

With a d6tcollect server you can track email engagement ie read receipts and link clicks. Allows for on-prem internal deployment. Request demo

    import d6tcollect, d6tcollect.track
    d6tcollect.submit = True
    d6tcollect.ignore_errors = False
    d6tcollect.host = 'http://d6tcollect.yourcompany.com'
    d6tcollect.endpoint = '/v1/api/content/'
    
    htmltext = '''
    <html>
    <body>
    Hello world!
    <a href="https://www.deepmind.com">click here</a>
    <img src="#">
    </body>
    </html>
    '''

    tracker = d6tcollect.track.TrackAppUserEmail(htmltext,"app-utest","utest-event1")
    cfg_receiver = ['a@b.com','c@d.com']
    user_content = tracker.process_all(cfg_receiver)
    for receiver,email_html in user_content.items():
        send_email([receiver],'yourname@company.com','Email tracking',email_html)