{"id":20710430,"url":"https://github.com/mobiletelesystems/ambrosia","last_synced_at":"2025-04-05T14:08:57.408Z","repository":{"id":60726819,"uuid":"544850211","full_name":"MobileTeleSystems/Ambrosia","owner":"MobileTeleSystems","description":"Ambrosia is a Python library for A/B tests design, split and result measurement","archived":false,"fork":false,"pushed_at":"2023-10-24T13:29:20.000Z","size":10898,"stargazers_count":229,"open_issues_count":18,"forks_count":17,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-29T13:11:11.710Z","etag":null,"topics":["ab-testing","experiment-design","split-testing","statistical-inference","statistics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MobileTeleSystems.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.rst","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-03T10:42:48.000Z","updated_at":"2025-03-15T12:54:03.000Z","dependencies_parsed_at":"2024-11-17T02:12:01.585Z","dependency_job_id":"e4f27c73-b804-40a1-8d2f-a7a477fe92fa","html_url":"https://github.com/MobileTeleSystems/Ambrosia","commit_stats":{"total_commits":23,"total_committers":4,"mean_commits":5.75,"dds":0.6086956521739131,"last_synced_commit":"8e8c64f21c918f1c98aeec76d373cbefe547d564"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobileTeleSystems%2FAmbrosia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobileTeleSystems%2FAmbrosia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobileTeleSystems%2FAmbrosia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MobileTeleSystems%2FAmbrosia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MobileTeleSystems","download_url":"https://codeload.github.com/MobileTeleSystems/Ambrosia/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247345854,"owners_count":20924102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ab-testing","experiment-design","split-testing","statistical-inference","statistics"],"created_at":"2024-11-17T02:11:56.034Z","updated_at":"2025-04-05T14:08:57.389Z","avatar_url":"https://github.com/MobileTeleSystems.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. shields start\n\nAmbrosia\n========\n\n|PyPI| |PyPI License| |ReadTheDocs| |Tests| |Coverage| |Black| |Python Versions| |Telegram Channel|\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/ambrosia\n    :target: https://pypi.org/project/ambrosia\n.. |PyPI License| image:: https://img.shields.io/pypi/l/ambrosia.svg\n    :target: https://github.com/MobileTeleSystems/Ambrosia/blob/main/LICENSE\n.. |ReadTheDocs| image:: https://img.shields.io/readthedocs/ambrosia.svg\n    :target: https://ambrosia.readthedocs.io\n.. |Tests| image:: https://img.shields.io/github/actions/workflow/status/MobileTeleSystems/Ambrosia/test.yaml?branch=main\n    :target: https://github.com/MobileTeleSystems/Ambrosia/actions/workflows/test.yaml?query=branch%3Amain+\n.. |Coverage| image:: https://codecov.io/gh/MobileTeleSystems/Ambrosia/branch/main/graph/badge.svg\n    :target: https://codecov.io/gh/MobileTeleSystems/Ambrosia\n.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :target: https://github.com/psf/black\n.. |Python Versions| image:: https://img.shields.io/pypi/pyversions/ambrosia.svg\n    :target: https://pypi.org/project/ambrosia  \n.. |Telegram Channel| image:: https://img.shields.io/badge/telegram-Ambrosia-blueviolet.svg?logo=telegram\n    :target: https://t.me/+Tkt43TNUUSAxNWNi\n\n.. shields end\n\n.. image:: https://raw.githubusercontent.com/MobileTeleSystems/Ambrosia/main/docs/source/_static/ambrosia.png\n   :height: 320 px\n   :width: 320 px\n   :align: center\n\n.. title\n\n*Ambrosia* is a Python library for A/B tests design, split and effect measurement. \nIt provides rich set of methods for conducting full A/B testing pipeline. \n\nThe project is intended for use in research and production environments \nbased on data in pandas and Spark format.\n\n.. functional\n\nKey functionality\n-----------------\n\n* Pilots design 🛫\n* Multi-group split 🎳\n* Matching of new control group to the existing pilot 🎏\n* Experiments result evaluation as p-value, point estimate of effect and confidence interval 🎞\n* Data preprocessing ✂️\n* Experiments acceleration 🎢\n\n.. documentation\n\nDocumentation\n-------------\n\nFor more details, see the `Documentation \u003chttps://ambrosia.readthedocs.io/\u003e`_ \nand `Tutorials \u003chttps://github.com/MobileTeleSystems/Ambrosia/tree/main/examples\u003e`_.\n\n.. install\n\nInstallation\n------------\n\nYou can always get the newest *Ambrosia* release using ``pip``.\nStable version is released on every tag to ``main`` branch. \n\n.. code:: bash\n    \n    pip install ambrosia \n\nStarting from version ``0.4.0``, the ability to process PySpark data is optional and can be enabled \nusing ``pip`` extras during the installation.\n\n.. code:: bash\n    \n    pip install ambrosia[spark]\n\n.. usage\n\nUsage\n-----\n\nThe main functionality of *Ambrosia* is contained in several core classes and methods, \nwhich are autonomic for each stage of an experiment and have very intuitive interface. \n\n|\n\nBelow is a brief overview example of using a set of three classes to conduct some simple experiment.\n\n**Designer**\n\n.. code:: python\n\n    from ambrosia.designer import Designer\n    designer = Designer(dataframe=df, effects=1.2, metrics='portfel_clc') # 20% effect, and loaded data frame df\n    designer.run('size') \n\n\n**Splitter**\n\n.. code:: python\n\n    from ambrosia.splitter import Splitter\n    splitter = Splitter(dataframe=df, id_column='id') # loaded data frame df with column with id - 'id'\n    splitter.run(groups_size=500, method='simple') \n\n\n**Tester**\n\n.. code:: python\n\n    from ambrosia.tester import Tester\n    tester = Tester(dataframe=df, column_groups='group') # loaded data frame df with groups info 'group'\n    tester.run(metrics='retention', method='theory', criterion='ttest')\n\n.. develop\n\nDevelopment\n-----------\n\nTo install all requirements run\n\n.. code:: bash\n\n    make install\n\nYou must have ``python3`` and ``poetry`` installed.\n\nFor autoformatting run\n\n.. code:: bash\n\n    make autoformat\n\nFor linters check run\n\n.. code:: bash\n\n    make lint\n\nFor tests run\n\n.. code:: bash\n\n    make test\n\nFor coverage run\n\n.. code:: bash\n\n    make coverage\n\nTo remove virtual environment run\n\n.. code:: bash\n\n    make clean\n\n.. contributors\n\nAuthors\n-------\n\n**Developers and evangelists**:\n\n* `Bayramkulov Aslan \u003chttps://github.com/aslanbm\u003e`_\n* `Khakimov Artem \u003chttps://github.com/xandaau\u003e`_\n* `Vasin Artem \u003chttps://github.com/VictorFromChoback\u003e`_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmobiletelesystems%2Fambrosia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmobiletelesystems%2Fambrosia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmobiletelesystems%2Fambrosia/lists"}