{ "info": { "author": "UC San Diego", "author_email": "", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Topic :: Internet :: WWW/HTTP" ], "description": "*************************\nOpen edX Caliper Tracking\n*************************\n\nOpen edX Caliper Tracking can be used to transform the edX traditional event logs into `Caliper Analytics Specifications `_ provided by `IMS Global `_. Generated logs can be consumed by any analytics application which is compatible with Caliper Standard. All the transformed logs are `Caliper Certified `_.\n\n\nInstallation\n############\n\nTo install **openedx-caliper-tracking** in your Open edX instance, please add the following line to your ``requirements file``. (For most Open edX installations it should be located at ``edx-platform/requirements/edx/base.txt``).\n::\n\n openedx-caliper-tracking==0.14.3\n\nFor manual installation:\n::\n\n pip install openedx-caliper-tracking\n\nConfiguration\n#############\n\nTo enable and use `openedx-caliper-tracking`:\n\n1. Add ``ENABLE_EVENT_CALIPERIZATION`` flag under ``FEATURES`` in the following files:\n\n- ``lms.env.json``\n- ``cms.env.json``\n\nThese files should be located at ``/edx/app/edxapp/`` directory, see the example below:\n::\n\n \"FEATURES\": {\n ...\n\n \"ENABLE_EVENT_CALIPERIZATION\": true,\n\n ...\n }\n\n2. Add the following lines of code:\n::\n\n if FEATURES.get('ENABLE_EVENT_CALIPERIZATION'):\n INSTALLED_APPS.insert(\n INSTALLED_APPS.index('eventtracking.django.apps.EventTrackingConfig'),\n 'openedx_caliper_tracking'\n )\n\nin the following files:\n\n- ``lms/envs/production.py (aws.py for hawthorn release)``\n\n- ``cms/envs/production.py (aws.py for hawthorn release)``\n\n**Note:**\n\n Must make sure that after doing all the required changes in ``env`` (``lms.env.json`` and ``cms.env.json``) and ``auth`` (``lms.auth.json`` and ``cms.auth.json``) files you restart the server to reflect the changes that you have made.\n\nSending logs to external APIs (Optional)\n########################################\n\nThere are two ways we can send caliper transformed logs to any external API\n\n- Rest API\n- Kafka\n\nUsing REST API\n**************\n\nTo do this, we have to add the following configurations\n\n1. Add ``ENABLE_CALIPER_EVENTS_DELIVERY`` flag under ``FEATURES`` in the following files:\n\n- ``lms.env.json``\n\n- ``cms.env.json``\n\nThese files should be located at ``/edx/app/edxapp/`` directory, see the example below:\n::\n\n \"FEATURES\": {\n ...\n\n \"ENABLE_CALIPER_EVENTS_DELIVERY\": true,\n\n ...\n }\n\n2. Add the key ``CALIPER_DELIVERY_ENDPOINT`` and its value in the ``env`` files (``lms.env.json`` and ``cms.env.json``).\n3. Add the key ``CALIPER_DELIVERY_AUTH_TOKEN`` and its value in the ``auth`` files ( ``lms.auth.json`` and ``cms.auth.json``).\n4. Add the following lines of code:\n\n::\n\n if FEATURES.get('ENABLE_CALIPER_EVENTS_DELIVERY'):\n CALIPER_DELIVERY_ENDPOINT = ENV_TOKENS.get('CALIPER_DELIVERY_ENDPOINT')\n CALIPER_DELIVERY_AUTH_TOKEN = AUTH_TOKENS.get('CALIPER_DELIVERY_AUTH_TOKEN')\n\nin the following files:\n\n- ``lms/envs/production.py (aws.py for hawthorn release)``\n\n- ``cms/envs/production.py (aws.py for hawthorn release)``\n\nUsing Kafka Broker API\n**********************\n\nTo do this, we have to add the following configurations\n\n1. Add ``ENABLE_KAFKA_FOR_CALIPER`` flag under ``FEATURES`` in the following files:\n\n- ``lms.env.json``\n\n- ``cms.env.json``\n\nThese files should be located at ``/edx/app/edxapp/`` directory, see the example below:\n::\n\n \"FEATURES\": {\n ...\n\n \"ENABLE_KAFKA_FOR_CALIPER\": true,\n\n ...\n }\n\n2. Add the following keys and their values in the ``lms.env.json`` and ``cms.env.json`` files.\nPlease note that all parameters in the `PRODUCER_CONFIG` are unique to the broker instances. You\ncan set whatever parameters are required for your instance.\n\n::\n\n \"CALIPER_KAFKA_SETTINGS\": {\n \"PRODUCER_CONFIG\": {\n \"bootstrap_servers\": [\n \"\"\n ],\n ...\n },\n\n \"TOPIC_NAME\": \"\",\n\n \"ERROR_REPORT_EMAILS\": [\n \"\",\n \"\",\n ...\n ]\n \"MAXIMUM_RETRIES\": \n },\n\n+-------------------+------------------------------------------------------------------------------+\n|Keys | Description |\n+===================+==============================================================================+\n|MAXIMUM_RETRIES |Number of times the app will try to send the logs to Kafka in case of failure |\n+-------------------+------------------------------------------------------------------------------+\n|PRODUCER_CONFIG |Configurations for initializing the Kafka Producer |\n| | |\n| |Can further contain: |\n| | - \"bootstrap_servers\": |\n| | - List of Kafka Brokers URLs |\n| | - Any other supported paramter in the `Kafka-python docs`_ |\n| | - Please note that it's better to store the sensitive information in |\n| | the `*.auth.json` files |\n+-------------------+------------------------------------------------------------------------------+\n|TOPIC_NAME |Topic name for the Kafka broker |\n+-------------------+------------------------------------------------------------------------------+\n|ERROR_REPORT_EMAILS|Email Addresses to notify when number of failures exceeds the MAXIMUM_RETRIES |\n+-------------------+------------------------------------------------------------------------------+\n\n3. Add the following keys and their values in the ``lms.auth.json`` and ``cms.auth.json`` files.\nPlease note that all parameters in the `PRODUCER_CONFIG` are unique to the broker instances. You\ncan set whatever parameters are required for you.\n\n::\n\n \"CALIPER_KAFKA_AUTH_SETTINGS\": {\n \"PRODUCER_CONFIG\": {\n ...\n \"sasl_plain_username\": \"\",\n \"sasl_plain_password\": \"\",\n \"security_protocol\": \"\",\n \"ssl_cafile\": \"\",\n ...\n }\n }\n\n+------------------+------------------------------------------------------------------------------+\n|Keys | Description |\n+==================+==============================================================================+\n|PRODUCER_CONFIG |Configurations for initializing the Kafka Producer. Use this confiration to |\n| |store all sensitive configuration like authentication parameters. |\n| | |\n| |For example: |\n| | - Use this to configure paramters like: |\n| | - sasl_plain_username |\n| | - sasl_plain_password |\n| | - security_protocol |\n| | - sasl_mechanism |\n| | |\n| |It can further contain: |\n| | - Any other supported paramter in the `Kafka-python docs`_ |\n| | - Please note that it's better to store the insensitive information |\n| | in the `*.env.json` files |\n+------------------+------------------------------------------------------------------------------+\n\n.. _Kafka-python docs: https://kafka-python.readthedocs.io/en/2.0.1/apidoc/KafkaProducer.html#kafka.KafkaProducer\n\n4. Add the following lines of code:\n\n::\n\n if FEATURES.get('ENABLE_KAFKA_FOR_CALIPER'):\n CALIPER_KAFKA_SETTINGS = ENV_TOKENS.get('CALIPER_KAFKA_SETTINGS')\n CALIPER_KAFKA_AUTH_SETTINGS = AUTH_TOKENS.get('CALIPER_KAFKA_AUTH_SETTINGS')\n\nin the following files:\n\n- ``lms/envs/production.py (aws.py for hawthorn release)``\n\n- ``cms/envs/production.py (aws.py for hawthorn release)``\n\nLocation of Transformed Logs\n############################\n\n**Note:** This doesn't work locally.\n\nTransformed events are logged using ``'logging.handlers.SysLogHandler'`` with ``'facility: local2'``.\n\nWe need to create output files manually and set appropriate permissions for syslog user. To do so, please follow the steps below:\n\n1. Create a log file with read/write permissions given to ``syslog`` user (e.g: ``/edx/var/log/caliper-analytics/caliper.log``).\n::\n\n cd /edx/var/log\n mkdir -p caliper-analytics && cd caliper-analytics\n touch caliper.log\n chown syslog caliper.log\n\n2. Create a mapping for ``'local2'`` in the configuration files present in ``/etc/rsyslog.d/`` (e.g: in ``99-edx.conf``).\n\n::\n\n local2.* /edx/var/log/caliper-analytics/caliper.log;tracking\n\n3. Run the following command on server to restart the rsyslog daemon:\n\n::\n\n sudo service rsyslog restart\n\nLocation of Logs Whose Delivery to Kafka is failed\n##################################################\n\n\n**Note:**\n\n This doesn't work locally. Do this only if you are sending logs to external source using Kafka broker API.\n\nTransformed events are logged using ``'logging.handlers.SysLogHandler'`` with ``'facility: local3'``.\n\nWe need to create output files manually and set appropriate permissions for syslog user. To do so, please follow the steps below:\n\n1. Create a log file with read/write permissions given to ``syslog`` user (e.g: ``/edx/var/log/caliper-analytics/delivery_failure.log``).\n::\n\n cd /edx/var/log\n mkdir -p caliper-analytics && cd caliper-analytics\n touch delivery_failure.log\n chown syslog delivery_failure.log\n\n2. Create a mapping for ``'local3'`` in the configuration files present in ``/etc/rsyslog.d/`` (e.g: in ``99-edx.conf``).\n\n::\n\n local3.* /edx/var/log/caliper-analytics/delivery_failure.log;tracking\n\n3. Run the following command on server to restart the rsyslog daemon:\n\n::\n\n sudo service rsyslog restart\n\nRunning Tests Locally\n#####################\n\nTo run the unit tests of this app locally, follow the following steps:\n\n- Clone the repository\n\n::\n\n git clone git@github.com:ucsd-ets/openedx-caliper-tracking.git\n\n- Run the following command in the same directory in which you have cloned the repository\n\n::\n\n sudo ./openedx-caliper-tracking/openedx_caliper_tracking/tests/local_test_script.sh\n\nLicense\n#######\n\nThe code in this repository is licensed under the GPL v3.0 unless otherwise noted. Please see `LICENSE <./LICENSE>`_ for details.\n\n\nHow To Contribute\n#################\n\nTo contribute, please make a pull request in the `repository `_ on Github . If you have any questions or issues, please feel free to open an issue on Github: `Open edX Caliper Tracking `_.\n\n\nContributors\n############\n\n* `Muhammad Zeeshan `_\n* `Tasawer Nawaz `_\n* `Aroosha Arif `_\n* `Osama Arshad `_\n* `Danial Malik `_\n* `Hamza Farooq `_\n* `Hassan Tariq `_\n* `Muhammad Umar Khan `_\n* `Tehreem Sadat `_\n* `Muhammad Arslan `_\n* `Saad Ali `_\n* `Husnain Raza Ghaffar `_\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ucsd-ets/caliper-tracking", "keywords": "", "license": "GPL 3.0", "maintainer": "", "maintainer_email": "", "name": "openedx-caliper-tracking", "package_url": "https://pypi.org/project/openedx-caliper-tracking/", "platform": "", "project_url": "https://pypi.org/project/openedx-caliper-tracking/", "project_urls": { "Homepage": "https://github.com/ucsd-ets/caliper-tracking" }, "release_url": "https://pypi.org/project/openedx-caliper-tracking/0.14.3/", "requires_dist": [ "kafka-python (==2.0.1)" ], "requires_python": "", "summary": "Open edX Caliper Tracking app can be used to transform Open edX tracking events into Caliper standard compliant events.", "version": "0.14.3", "yanked": false, "yanked_reason": null }, "last_serial": 8393811, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "71a9b0e26b0128b9562188b9e3f3e658", "sha256": "7a3e49a2a68822812194b5ff8db11b8ef888725f5813ac73211fd3759f0e515b" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.10.0-py2-none-any.whl", "has_sig": false, "md5_digest": "71a9b0e26b0128b9562188b9e3f3e658", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 334556, "upload_time": "2019-03-26T12:15:56", "upload_time_iso_8601": "2019-03-26T12:15:56.525512Z", "url": "https://files.pythonhosted.org/packages/50/0b/c52ab156a74a333ed89a8172c248772fbdac1e5c17f975b650fe7f281e2c/openedx_caliper_tracking-0.10.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f927056c1423758962562c57b94f1255", "sha256": "d344e16386a140650f2a01d085c49f2dcbdde03ced24dd06a22434e95754e301" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.10.0.tar.gz", "has_sig": false, "md5_digest": "f927056c1423758962562c57b94f1255", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 123030, "upload_time": "2019-03-26T12:15:59", "upload_time_iso_8601": "2019-03-26T12:15:59.747371Z", "url": "https://files.pythonhosted.org/packages/02/54/3b084ec9b24131f86614580ff1d25d99cc72660765da86556b7a26796103/openedx-caliper-tracking-0.10.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.10.1": [ { "comment_text": "", "digests": { "md5": "a9b1590a714fa69c78ac80ad08936930", "sha256": "b50415dcee3cc430e7e7112ffcfd9fd5b09fe0b107650ba7c1cfdc14840159ed" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.10.1-py2-none-any.whl", "has_sig": false, "md5_digest": "a9b1590a714fa69c78ac80ad08936930", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 334553, "upload_time": "2019-03-27T07:31:54", "upload_time_iso_8601": "2019-03-27T07:31:54.539331Z", "url": "https://files.pythonhosted.org/packages/e0/51/41231c2ec45a86cbee14a1828ed3aa3c8879ac9868b5cd2612b4cc06ca0d/openedx_caliper_tracking-0.10.1-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bbc1352fb2b05e4e74defef994f381fc", "sha256": "962bec9a3579a5fe9f9644c713067cdb1f8261492243d2d3c621f96c64f6d5ac" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.10.1.tar.gz", "has_sig": false, "md5_digest": "bbc1352fb2b05e4e74defef994f381fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 123044, "upload_time": "2019-03-27T07:31:58", "upload_time_iso_8601": "2019-03-27T07:31:58.569273Z", "url": "https://files.pythonhosted.org/packages/d4/c4/806df7c216f7d935b1e20e73130e6834c755346c700747191dd2e39d3670/openedx-caliper-tracking-0.10.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "1170f12036116eac28784b7ad9cfc5c2", "sha256": "80fcb78fc1096c7c0bffd49999dcb65eecb2ebc99cd9d091ccd8f8b9ee3a9d6a" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.11.0-py2-none-any.whl", "has_sig": false, "md5_digest": "1170f12036116eac28784b7ad9cfc5c2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 336305, "upload_time": "2019-04-17T13:40:09", "upload_time_iso_8601": "2019-04-17T13:40:09.887596Z", "url": "https://files.pythonhosted.org/packages/2a/8d/9831f9aff611f5d4e8981909e3f0cb4d383160a6d78527d7d7ba5b484fa8/openedx_caliper_tracking-0.11.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "68ed20cddb22c1d8535c267c4830a94b", "sha256": "0d8d2178c01d6c5c95a18bcae26034f68f9bb2807b02193812557f49aeb207f1" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.11.0.tar.gz", "has_sig": false, "md5_digest": "68ed20cddb22c1d8535c267c4830a94b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121578, "upload_time": "2019-04-17T13:40:12", "upload_time_iso_8601": "2019-04-17T13:40:12.290233Z", "url": "https://files.pythonhosted.org/packages/c2/50/277541351afcc02c49fd94515d730e519238765ad3015928021c357f796e/openedx-caliper-tracking-0.11.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.1": [ { "comment_text": "", "digests": { "md5": "a619a77fad59ee394a068182e8b2c42f", "sha256": "5dffa8ebbaa669c27c66f9c872ff604b7c99b14593c28a73bbe8023399046946" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.11.1-py2-none-any.whl", "has_sig": false, "md5_digest": "a619a77fad59ee394a068182e8b2c42f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 326187, "upload_time": "2019-07-23T14:16:58", "upload_time_iso_8601": "2019-07-23T14:16:58.181583Z", "url": "https://files.pythonhosted.org/packages/e2/c2/916d669343978f26e1d45f5b562bda625d37a3fc0a200684a1c762d5a5b6/openedx_caliper_tracking-0.11.1-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fd743f35a23ed2b0a7bd64ce035ca439", "sha256": "123e0d12ae4941c6acb59c851905db71095e4476b351701f9dcc73e992306fd0" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.11.1.tar.gz", "has_sig": false, "md5_digest": "fd743f35a23ed2b0a7bd64ce035ca439", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 124547, "upload_time": "2019-07-23T14:17:01", "upload_time_iso_8601": "2019-07-23T14:17:01.319486Z", "url": "https://files.pythonhosted.org/packages/1c/4b/17c5405398db820a5543d86fe4e2671fa70a5f3f555362a97789429790a9/openedx-caliper-tracking-0.11.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.2": [ { "comment_text": "", "digests": { "md5": "6d3bd49b76f5e116a304edd0cb8e533b", "sha256": "6a656f1e140d06f3b8f0a128df167997f9430886e82e484184e3962592db2551" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.11.2.tar.gz", "has_sig": false, "md5_digest": "6d3bd49b76f5e116a304edd0cb8e533b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 123850, "upload_time": "2019-10-22T05:59:35", "upload_time_iso_8601": "2019-10-22T05:59:35.783841Z", "url": "https://files.pythonhosted.org/packages/f3/3e/e2b7091c1de860aab6b9b798a26627f7bfee2441fc7916f995e8bdb0ee7c/openedx-caliper-tracking-0.11.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.3": [ { "comment_text": "", "digests": { "md5": "d25c2e9dd2b26710b94ab049ed2fee41", "sha256": "c1f4ea03f97c623681aa09a2dde48d8cfa9888c84e8e2bf919172c7465a1560a" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.11.3.tar.gz", "has_sig": false, "md5_digest": "d25c2e9dd2b26710b94ab049ed2fee41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 125130, "upload_time": "2019-10-24T13:05:40", "upload_time_iso_8601": "2019-10-24T13:05:40.270427Z", "url": "https://files.pythonhosted.org/packages/1c/10/548fed69e13b14bac9ee2d195304a10aa0efac4f8675ea4e9ff170697a52/openedx-caliper-tracking-0.11.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.4": [ { "comment_text": "", "digests": { "md5": "a096485b16f379cf7ab297e4baf4aca6", "sha256": "f38c9527a71637f56134a3b9728b6812e829a96eedd9784e9167e27d696bfa6b" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.11.4.tar.gz", "has_sig": false, "md5_digest": "a096485b16f379cf7ab297e4baf4aca6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 125129, "upload_time": "2019-10-25T11:19:43", "upload_time_iso_8601": "2019-10-25T11:19:43.334616Z", "url": "https://files.pythonhosted.org/packages/f7/99/1d28e7229fb545c4b06022d0aaa11ec7e750b63393a2bddd3fc5f1a22164/openedx-caliper-tracking-0.11.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.5": [ { "comment_text": "", "digests": { "md5": "bc908a628956da3cd882f80060d20046", "sha256": "d224ff39e73ab9d191c3e39480a49d50b51e4595460383277f0bd33d76a1780f" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.11.5.tar.gz", "has_sig": false, "md5_digest": "bc908a628956da3cd882f80060d20046", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 126758, "upload_time": "2019-10-30T14:08:21", "upload_time_iso_8601": "2019-10-30T14:08:21.975643Z", "url": "https://files.pythonhosted.org/packages/25/31/dfd932ea242d18e4c60d82235d5969b539633d12b693d084f2cf14111719/openedx-caliper-tracking-0.11.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.6": [ { "comment_text": "", "digests": { "md5": "be0d8113ed01089ceb7b7661715c521a", "sha256": "10d04bb9f742e600018db536ab26640150aea3702bae7fb2db40f3d3c9d26ba5" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.11.6.tar.gz", "has_sig": false, "md5_digest": "be0d8113ed01089ceb7b7661715c521a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 127234, "upload_time": "2019-10-31T12:16:03", "upload_time_iso_8601": "2019-10-31T12:16:03.039005Z", "url": "https://files.pythonhosted.org/packages/f1/5b/c2ac2de06cf75845e1943632cd0ea26ae77fedc4a561de170557988c3820/openedx-caliper-tracking-0.11.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.7": [ { "comment_text": "", "digests": { "md5": "8f876c97f96d7b1a26d2d0fc277af5e6", "sha256": "69892512168ad4117458f89ba288cf477691a56e226862c9af3ae856af8c0dc1" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.11.7.tar.gz", "has_sig": false, "md5_digest": "8f876c97f96d7b1a26d2d0fc277af5e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 129805, "upload_time": "2019-11-29T12:17:56", "upload_time_iso_8601": "2019-11-29T12:17:56.909550Z", "url": "https://files.pythonhosted.org/packages/3f/9c/3b2e3675c9f3d8108cab69593e018aba316e171525f6bf90d0135b182d46/openedx-caliper-tracking-0.11.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.8": [ { "comment_text": "", "digests": { "md5": "d23f546b41a6c79a3586805bcce4eeb2", "sha256": "d770f5d0cfbed64e2e8836ee3e68364f497c4ce951fd43d253efb580e54b87d3" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.11.8.tar.gz", "has_sig": false, "md5_digest": "d23f546b41a6c79a3586805bcce4eeb2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 131121, "upload_time": "2020-02-11T12:58:29", "upload_time_iso_8601": "2020-02-11T12:58:29.142782Z", "url": "https://files.pythonhosted.org/packages/0d/7f/dc36e796ba460ba6896a81809361bd3903f908fac373f434a6cb6fbaf1b4/openedx-caliper-tracking-0.11.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "4489addc8bb555ddceef95401613b6d1", "sha256": "65e3cedf92926ccec4d43001f65b23102e09ed07a9e0fe39e1eb64e8305eb676" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.12.0-py2-none-any.whl", "has_sig": false, "md5_digest": "4489addc8bb555ddceef95401613b6d1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 350996, "upload_time": "2020-06-09T08:23:31", "upload_time_iso_8601": "2020-06-09T08:23:31.016220Z", "url": "https://files.pythonhosted.org/packages/f5/16/840c563388705994c5f5110887a49a475c84c2687e20ffd08bfe049761de/openedx_caliper_tracking-0.12.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2bd9bdc88bcfd430fee1755ce36a5c95", "sha256": "951490ae53e5d1cb8e0d4fb38a5e8dc3a5ea06be2cef31c8064c9df08b28b083" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.12.0.tar.gz", "has_sig": false, "md5_digest": "2bd9bdc88bcfd430fee1755ce36a5c95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 139189, "upload_time": "2020-06-09T08:23:32", "upload_time_iso_8601": "2020-06-09T08:23:32.886907Z", "url": "https://files.pythonhosted.org/packages/40/c0/79bd66a4ccd52c1b4243ed7206423fdcd9e8fb0009b785d725ffa6c4ff44/openedx-caliper-tracking-0.12.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.12.1": [ { "comment_text": "", "digests": { "md5": "f9cd7349a9c1370833c67fcc663df256", "sha256": "4f01cf357ace082aa484ede4f4709cdc5d184e54fa408059582effeafdbf079f" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.12.1-py2-none-any.whl", "has_sig": false, "md5_digest": "f9cd7349a9c1370833c67fcc663df256", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 350990, "upload_time": "2020-06-09T08:45:07", "upload_time_iso_8601": "2020-06-09T08:45:07.721849Z", "url": "https://files.pythonhosted.org/packages/e6/f3/8b051959f68eec8353716106e449c78ecdefe74abc1f70094040452f1a45/openedx_caliper_tracking-0.12.1-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6e68d052c2520c05a01ef7e4cc459237", "sha256": "abab1fdf3b0aeee18bc53b59a5ab17591c1778b5987db478f56e7dde04d9cb71" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.12.1.tar.gz", "has_sig": false, "md5_digest": "6e68d052c2520c05a01ef7e4cc459237", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 139186, "upload_time": "2020-06-09T08:45:09", "upload_time_iso_8601": "2020-06-09T08:45:09.521903Z", "url": "https://files.pythonhosted.org/packages/eb/d8/1e4a687e641b62558fa9256136363176cb2ecad76e1a9d3777fc1696dd82/openedx-caliper-tracking-0.12.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "e1fb6af040dc8255bddd391410a2a27e", "sha256": "7373ef481f4a19a1158ab681bb3cf8ced673d297b920a204ecfba4fa95975fcf" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.13.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e1fb6af040dc8255bddd391410a2a27e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 372229, "upload_time": "2020-07-20T11:29:49", "upload_time_iso_8601": "2020-07-20T11:29:49.094780Z", "url": "https://files.pythonhosted.org/packages/bb/42/67280ccbb97359ee3a9f3fb483698728a859e0d746e35e2f0132f55e59b9/openedx_caliper_tracking-0.13.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "55510b570bc89603b093b93cbd15e472", "sha256": "15e3a83c8ebad446c90c3bb7bf3ed2245dc06132e5822587a6e8a46d767a7d61" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.13.0.tar.gz", "has_sig": false, "md5_digest": "55510b570bc89603b093b93cbd15e472", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 146469, "upload_time": "2020-07-20T11:29:51", "upload_time_iso_8601": "2020-07-20T11:29:51.431052Z", "url": "https://files.pythonhosted.org/packages/7e/94/55c4991f6e9507f41fc68c28c966b33dc5d2e5da88a23060272a6d3602da/openedx-caliper-tracking-0.13.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.14.0": [ { "comment_text": "", "digests": { "md5": "f807ba50ca1cece16e1be9802e8f54e1", "sha256": "cae072ff7065e766707a7a57831f9c53f6fb73f070673d96ab1729cd38b0994c" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.14.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f807ba50ca1cece16e1be9802e8f54e1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 372265, "upload_time": "2020-07-28T09:17:24", "upload_time_iso_8601": "2020-07-28T09:17:24.542786Z", "url": "https://files.pythonhosted.org/packages/8a/a9/87cfc6db6ad4c7d8d77075eced6946860e212b03cc697cf649657f1a1c74/openedx_caliper_tracking-0.14.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "16e55dec2f9f458fb333fd4cbb3e588c", "sha256": "a56297b24d8bb312733b34324179f5857b47c4d9ad11eb552f5c57bca9b54a50" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.14.0.tar.gz", "has_sig": false, "md5_digest": "16e55dec2f9f458fb333fd4cbb3e588c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 146511, "upload_time": "2020-07-28T09:17:30", "upload_time_iso_8601": "2020-07-28T09:17:30.019766Z", "url": "https://files.pythonhosted.org/packages/f0/97/3bfd26bcfbdc53f13f1b42cb281b8d599a3b463d852161c7ff3c4016ec0f/openedx-caliper-tracking-0.14.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.14.1": [ { "comment_text": "", "digests": { "md5": "bfe2882e6bb1688b534c7f3b0cb4e2e9", "sha256": "8d09a60a3a82925dcd3937285579a1998e77e59c69a0f584292cea6c80feab38" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.14.1-py2-none-any.whl", "has_sig": false, "md5_digest": "bfe2882e6bb1688b534c7f3b0cb4e2e9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 372260, "upload_time": "2020-07-29T05:25:54", "upload_time_iso_8601": "2020-07-29T05:25:54.506838Z", "url": "https://files.pythonhosted.org/packages/2b/dd/376eee220a56f968406d90786c1fe661bcf400a7ddcc380d830d9dec409e/openedx_caliper_tracking-0.14.1-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e54a1235a8bd9b1919a3a55c45d4f438", "sha256": "399fb88721584d6d08ed04b2587639975e2a79b0d410519fe2a36e1b545f59e6" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.14.1.tar.gz", "has_sig": false, "md5_digest": "e54a1235a8bd9b1919a3a55c45d4f438", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 146518, "upload_time": "2020-07-29T05:25:56", "upload_time_iso_8601": "2020-07-29T05:25:56.696613Z", "url": "https://files.pythonhosted.org/packages/c9/96/3a33d4fba5171d96c9c2d8927d61c9423d351de607d5aa94726dbc8f1d11/openedx-caliper-tracking-0.14.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.14.2": [ { "comment_text": "", "digests": { "md5": "d7e183797ca5413b6160208127002c85", "sha256": "385ff0dc374b13b3befb4c486204845758db405547f310107f969be2e10b7dd4" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.14.2-py2-none-any.whl", "has_sig": false, "md5_digest": "d7e183797ca5413b6160208127002c85", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 372229, "upload_time": "2020-08-06T05:31:59", "upload_time_iso_8601": "2020-08-06T05:31:59.188066Z", "url": "https://files.pythonhosted.org/packages/c2/4f/5731e1f169a0effa35e58fb31ac606e324f36435db2854e978e3136cce58/openedx_caliper_tracking-0.14.2-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "79c81dbef8e99f0945f2aa2b3d8c156c", "sha256": "d5967ae87c57ebb9c8ac732ae2751752e4f25a48083729271fbc451ac72a46f3" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.14.2.tar.gz", "has_sig": false, "md5_digest": "79c81dbef8e99f0945f2aa2b3d8c156c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 144082, "upload_time": "2020-08-06T05:32:00", "upload_time_iso_8601": "2020-08-06T05:32:00.479800Z", "url": "https://files.pythonhosted.org/packages/58/f0/f108e6ecbcd420883c8638cd9586b37d53ca232c8a72a29617ef3937e5db/openedx-caliper-tracking-0.14.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.14.3": [ { "comment_text": "", "digests": { "md5": "c934514df62b2a0d14d80d8960d54f29", "sha256": "88dc3989cb8b31f16418159877379dc6e5d69384e2b5a24521b560e0b5e0535b" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.14.3-py2-none-any.whl", "has_sig": false, "md5_digest": "c934514df62b2a0d14d80d8960d54f29", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 372238, "upload_time": "2020-10-12T13:24:25", "upload_time_iso_8601": "2020-10-12T13:24:25.516356Z", "url": "https://files.pythonhosted.org/packages/90/54/8c11ea6ada5f38479d496b0894872a4624c2be35af663118a0e79d419b6a/openedx_caliper_tracking-0.14.3-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "790801fee7d3e9c8d8428cf4ed48ee94", "sha256": "fdf7fce91cf20b52f8841575144971c2de219167fde4d4ae9c011ae6caaa90b0" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.14.3.tar.gz", "has_sig": false, "md5_digest": "790801fee7d3e9c8d8428cf4ed48ee94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 145952, "upload_time": "2020-10-12T13:24:26", "upload_time_iso_8601": "2020-10-12T13:24:26.779032Z", "url": "https://files.pythonhosted.org/packages/01/eb/a863476e2800bd2c33263c131fdfaed3991d664ae93233f240780088ba3f/openedx-caliper-tracking-0.14.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "0ad7fb0962f72571fadc93eb4b753b92", "sha256": "6b595ae9810ca04b48682cec21a7c6407a8f36eb152a64408600b3cc2ff5eaf7" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.9.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0ad7fb0962f72571fadc93eb4b753b92", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 52081, "upload_time": "2019-03-08T14:24:52", "upload_time_iso_8601": "2019-03-08T14:24:52.532214Z", "url": "https://files.pythonhosted.org/packages/c6/e4/e12d540dcf72bd8cd8a7485b7bf4bdd1fd5721ab2a3ba05556b106acf395/openedx_caliper_tracking-0.9.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2cecf7e979e44cfbe6f90ac1a7be25a5", "sha256": "2c9284954fdf1c4989a42908d4b966eb19481d6ccd2ac1242d8df9537bd1876c" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.9.0.tar.gz", "has_sig": false, "md5_digest": "2cecf7e979e44cfbe6f90ac1a7be25a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36141, "upload_time": "2019-03-08T14:24:55", "upload_time_iso_8601": "2019-03-08T14:24:55.487245Z", "url": "https://files.pythonhosted.org/packages/2c/26/f0f1a1e9973bd72d8d86eadda4949c311b11ea45f47b7fa5aac769a3ee0e/openedx-caliper-tracking-0.9.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c934514df62b2a0d14d80d8960d54f29", "sha256": "88dc3989cb8b31f16418159877379dc6e5d69384e2b5a24521b560e0b5e0535b" }, "downloads": -1, "filename": "openedx_caliper_tracking-0.14.3-py2-none-any.whl", "has_sig": false, "md5_digest": "c934514df62b2a0d14d80d8960d54f29", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 372238, "upload_time": "2020-10-12T13:24:25", "upload_time_iso_8601": "2020-10-12T13:24:25.516356Z", "url": "https://files.pythonhosted.org/packages/90/54/8c11ea6ada5f38479d496b0894872a4624c2be35af663118a0e79d419b6a/openedx_caliper_tracking-0.14.3-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "790801fee7d3e9c8d8428cf4ed48ee94", "sha256": "fdf7fce91cf20b52f8841575144971c2de219167fde4d4ae9c011ae6caaa90b0" }, "downloads": -1, "filename": "openedx-caliper-tracking-0.14.3.tar.gz", "has_sig": false, "md5_digest": "790801fee7d3e9c8d8428cf4ed48ee94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 145952, "upload_time": "2020-10-12T13:24:26", "upload_time_iso_8601": "2020-10-12T13:24:26.779032Z", "url": "https://files.pythonhosted.org/packages/01/eb/a863476e2800bd2c33263c131fdfaed3991d664ae93233f240780088ba3f/openedx-caliper-tracking-0.14.3.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }