{ "info": { "author": "Zalando SE", "author_email": "octopus@zalando.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "==========================\nExpAn: Experiment Analysis\n==========================\n\n.. image:: https://img.shields.io/travis/zalando/expan.svg\n :target: https://travis-ci.org/zalando/expan\n :alt: Build status\n\n.. image:: https://coveralls.io/repos/github/zalando/expan/badge.svg\n :target: https://coveralls.io/github/zalando/expan\n :alt: Code coverage\n\n.. image:: https://img.shields.io/pypi/v/expan.svg\n :target: https://pypi.python.org/pypi/expan\n :alt: Latest PyPI version\n\n.. image:: https://img.shields.io/pypi/status/expan.svg\n :target: https://pypi.python.org/pypi/expan\n :alt: Development Status\n\n.. image:: https://img.shields.io/pypi/pyversions/expan.svg\n :target: https://pypi.python.org/pypi/expan\n :alt: Python Versions\n\n.. image:: https://img.shields.io/pypi/l/expan.svg\n :target: https://pypi.python.org/pypi/expan/\n :alt: License\n\n.. image:: https://readthedocs.org/projects/expan/badge/?version=latest\n :target: http://expan.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\nA/B tests (a.k.a. Randomized Controlled Trials or Experiments) have been widely\napplied in different industries to optimize business processes and user\nexperience. ExpAn (**Exp**\\ eriment **An**\\ alysis) is a Python library\ndeveloped for the statistical analysis of such experiments and to standardise\nthe data structures used.\n\nThe data structures and functionality of ExpAn are generic such that they can be\nused by both data scientists optimizing a user interface and biologists\nrunning wet-lab experiments. The library is also standalone and can be\nimported and used from within other projects and from the command line.\n\n\nDocumentation\n=============\n\nThe latest stable version is 1.4.0. Please check out our `tutorial and documentation `__.\n\nInstallation\n============\n\nStable release\n--------------\n\nTo install ExpAn, run this command in your terminal:\n\n.. code-block:: console\n\n $ pip install expan\n\nFrom sources\n------------\n\nThe sources for ExpAn can be downloaded from the `Github repo`_.\n\nYou can either clone the public repository:\n\n.. code-block:: console\n\n $ git clone git://github.com/zalando/expan\n\nOr download the `tarball`_:\n\n.. code-block:: console\n\n $ curl -OL https://github.com/zalando/expan/tarball/master\n\nOnce you have a copy of the source, you can install it with:\n\n.. code-block:: console\n\n $ python setup.py install\n\n\n.. _Github repo: https://github.com/zalando/expan\n.. _tarball: https://github.com/zalando/expan/tarball/master\n\n\nLicense\n=======\n\nThe MIT License (MIT)\n\nCopyright \u00a9 [2016] Zalando SE, https://tech.zalando.com\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the\n\u201cSoftware\u201d), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \u201cAS IS\u201d, WITHOUT WARRANTY OF ANY KIND, EXPRESS\nOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nChange Log\n==========\n\n`v1.4.0 `__ (2019-07-05)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Closed issues:**\n\n- Why features are iterated in a for loop?\n `#243 `__\n\n**Merged pull requests:**\n\n- Two-sided outlier filtering mode\n `#249 `__\n (`gbordyugov `__)\n- Create .zappr.yaml\n `#248 `__\n (`perploug `__)\n- Correct documentation\n `#245 `__\n (`shansfolder `__)\n\n`v1.3.9 `__ (2018-09-10)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n`v1.3.8 `__ (2018-09-10)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Changed chi-square test, removed frequencies computation\n `#240 `__\n (`daryadedik `__)\n\n`v1.3.7 `__ (2018-09-04)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Added observed and expected frequencies to chi-square statistics\n `#239 `__\n (`daryadedik `__)\n- Stop warning about NaNs\n `#238 `__\n (`aaron-mcdaid-zalando `__)\n- stop overriding the warning level\n `#237 `__\n (`aaron-mcdaid-zalando `__)\n\n`v1.3.6 `__ (2018-08-06)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- If the number of \\*finite\\* samples is too small, then the data isn\u2019t\n valid for analysis\n `#236 `__\n (`aaron-mcdaid-zalando `__)\n\n`v1.3.5 `__ (2018-08-02)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Re-wrote chi-square, removed dropping buckets.\n `#234 `__\n (`daryadedik `__)\n- check if there are no p values to correct\n `#233 `__\n (`gbordyugov `__)\n\n`v1.3.3 `__ (2018-07-26)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Chi-squared test for the variant split check\n `#228 `__\n (`daryadedik `__)\n\n`v1.3.2 `__ (2018-07-23)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Fix minor typos `#231 `__\n (`sdia `__)\n- custom deepcopy() method for \u2018StatisticalTest\u2019, to save some memory\n `#230 `__\n (`aaron-mcdaid-zalando `__)\n- Updated old multiple correction documentation\n `#229 `__\n (`daryadedik `__)\n- contributing.rst: Improve the release procedure to ensure that the\n up\u2026 `#226 `__\n (`aaron-mcdaid-zalando `__)\n\n`v1.3.1 `__ (2018-07-01)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n`v1.2.6 `__ (2018-07-01)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Ensure that outlier detection works if there is NaN in the data\n `#225 `__\n (`aaron-mcdaid-zalando `__)\n- More powerful derived kpis\n `#222 `__\n (`aaron-mcdaid-zalando `__)\n\n`v1.2.5 `__ (2018-06-22)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Counting bugfix and save memory\n `#224 `__\n (`aaron-mcdaid-zalando `__)\n- Fix for the possibility that both variances are zero\n `#221 `__\n (`aaron-mcdaid-zalando `__)\n\n`v1.2.4 `__ (2018-05-31)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Remove null analysis results from the analysis results files\n `#219 `__\n (`daryadedik `__)\n\n`v1.2.3 `__ (2018-05-30)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Removed deep copy of the data in statistical test construction\n `#218 `__\n (`daryadedik `__)\n\n`v1.2.2 `__ (2018-05-30)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Fixing bugs and adding more logging\n `#217 `__\n (`daryadedik `__)\n\n`v1.2.1 `__ (2018-05-29)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Added merge_with class method for merging two multiple test suite\n results and tests\n `#216 `__\n (`daryadedik `__)\n- List of filtered columns as filtered_columns metadata information\n `#215 `__\n (`daryadedik `__)\n\n`v1.2.0 `__ (2018-05-25)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Update outlier filter on derived kpis\n `#214 `__\n (`shansfolder `__)\n\n`v1.1.0 `__ (2018-05-24)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Experiment data restructure\n `#213 `__\n (`daryadedik `__)\n- Original corrected results\n `#212 `__\n (`daryadedik `__)\n\n`v1.0.1 `__ (2018-04-23)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Fixed docstring `#211 `__\n (`daryadedik `__)\n- raise ValueError on zero pooled std for power calculations\n `#210 `__\n (`gbordyugov `__)\n- Changed structure for statistics without correction\n `#209 `__\n (`daryadedik `__)\n\n`v1.0.0 `__ (2018-03-22)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Finish Documentation\n `#204 `__\n (`shansfolder `__)\n- Fix logging sga error logging\n `#203 `__\n (`igusher `__)\n- Project Headache `#194 `__\n (`shansfolder `__)\n\n`v0.6.13 `__ (2018-03-15)\n------------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Implemented enhancements:**\n\n- Applying bins to data frames\n `#165 `__\n\n**Fixed bugs:**\n\n- Sample size with an unequal split ratio\n `#187 `__\n- SGA Percentile Issue\n `#178 `__\n\n**Merged pull requests:**\n\n- Wrap sga in try catch\n `#202 `__\n (`igusher `__)\n- Multiple correction method module\n `#201 `__\n (`shansfolder `__)\n- Adapted util module and util unit tests\n `#199 `__\n (`daryadedik `__)\n- Adapt early stopping\n `#198 `__\n (`daryadedik `__)\n- Adapt statistics.py\n `#197 `__\n (`shansfolder `__)\n- Adapt experiment module\n `#196 `__\n (`shansfolder `__)\n- Make result classes JSON serializable\n `#195 `__\n (`shansfolder `__)\n- Results data structure\n `#193 `__\n (`shansfolder `__)\n- fixed small typos in percentiles and doc text\n `#191 `__\n (`daryadedik `__)\n- fixing sample size estimation\n `#188 `__\n (`gbordyugov `__)\n\n`v0.6.12 `__ (2018-01-24)\n------------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Doc update `#186 `__\n (`shansfolder `__)\n- AXO-103 include variance in delta / group-sequential reports\n `#185 `__\n (`gbordyugov `__)\n\n`v0.6.11 `__ (2018-01-23)\n------------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Axo-91 bug fix sga\n `#184 `__\n (`shansfolder `__)\n- added code coverage badge and reformatted README.rst a bit\n `#183 `__\n (`mkolarek `__)\n\n`v0.6.10 `__ (2018-01-12)\n------------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n`v0.6.9 `__ (2018-01-12)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Update deployment flow\n `#182 `__\n (`shansfolder `__)\n\n`v0.6.8 `__ (2018-01-12)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n`v0.6.7 `__ (2018-01-10)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Closed issues:**\n\n- Group Sequential - Percentile Issue\n `#176 `__\n\n**Merged pull requests:**\n\n- Increase version to 0.6.7\n `#181 `__\n (`shansfolder `__)\n- fixed last command in \u201cDeploying to PyPI\u201d part of contributing.rst\n `#180 `__\n (`mkolarek `__)\n- Extended multiple correction for group sequential, added doc for\n multiple correction.\n `#179 `__\n (`daryadedik `__)\n- Fix information fraction calculation\n `#177 `__\n (`shansfolder `__)\n\n`v0.6.6 `__ (2017-11-27)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Closed issues:**\n\n- Infinitely large confidence intervals produced by\n group_sequential_delta()\n `#172 `__\n\n**Merged pull requests:**\n\n- Merging dev to master for new release\n `#175 `__\n (`mkolarek `__)\n- AXO-35 implemented estimate_sample_size() for estimating sample size\n \u2026 `#174 `__\n (`mkolarek `__)\n- Fix two-sided alpha value in power analysis\n `#173 `__\n (`shansfolder `__)\n- Docs/update contrib doc\n `#171 `__\n (`mkolarek `__)\n- Add some parameter checks\n `#170 `__\n (`shansfolder `__)\n- Make applying bins to data frames more agreeable\n `#169 `__\n (`gbordyugov `__)\n- OCTO-2181: Implement over time analysis. Time-based SGA\n `#164 `__\n (`daryadedik `__)\n\n`v0.6.5 `__ (2017-10-24)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- updated version `#168 `__\n (`mkolarek `__)\n- Bump version: 0.6.3 \u2192 0.6.4\n `#167 `__\n (`mkolarek `__)\n- bump version to v0.6.3\n `#166 `__\n (`mkolarek `__)\n\n`v0.6.3 `__ (2017-10-24)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- OCTO-2214 Bugfix: Capping information fraction\n `#163 `__\n (`shansfolder `__)\n- OCTO-2088: Implement multiple testing correction in ExpAn\n `#161 `__\n (`daryadedik `__)\n- OCTO-1044 Improve readthedoc\n `#160 `__\n (`shansfolder `__)\n- OCTO-1933 Subgroup analysis\n `#159 `__\n (`shansfolder `__)\n- release 0.6.2 `#156 `__\n (`mkolarek `__)\n- OCTO-1920, OCTO-1968, OCTO-1969 Refactor binning\n `#155 `__\n (`shansfolder `__)\n\n`v0.6.2 `__ (2017-08-29)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Fixed bugs:**\n\n- Result statistics in Baeysian methods\n `#142 `__\n\n**Closed issues:**\n\n- Default Parameters of Constructor of Experiment class\n `#151 `__\n- Update to ExpAn-Intro.ipynb\n `#141 `__\n\n**Merged pull requests:**\n\n- make development requirements open ended\n `#154 `__\n (`mkolarek `__)\n- Octo 1930 implement quantile filtering\n `#153 `__\n (`mkolarek `__)\n- Not use empty list for method parameter\n `#152 `__\n (`shansfolder `__)\n- OCTO-1971 Add variational inference for early stopping\n `#150 `__\n (`shansfolder `__)\n- Updated intro documentation covering delta methods.\n `#149 `__\n (`daryadedik `__)\n- Release v0.6.1 `#148 `__\n (`shansfolder `__)\n- Merge pull request #137 from zalando/dev\n `#147 `__\n (`shansfolder `__)\n- Add static html file from intro doc for v0.6.1\n `#146 `__\n (`shansfolder `__)\n\n`v0.6.1 `__ (2017-08-08)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Implemented enhancements:**\n\n- Optimizing the control flow from ``Experiment`` to ``Results``\n `#82 `__\n- more meaningful dict keys for results\n `#139 `__\n (`gbordyugov `__)\n\n**Fixed bugs:**\n\n- reenable means and bounds functions on Results object\n `#9 `__\n\n**Closed issues:**\n\n- Results.to_json() implementation not flexible\n `#65 `__\n- Results.to_json() doesn\u2019t support trend() results\n `#64 `__\n\n**Merged pull requests:**\n\n- Documentation updates for Expan 0.6.x. Covers OCTO-1961, OCTO-1970\n `#145 `__\n (`daryadedik `__)\n- Fix delta/alpha model para inconsistency\n `#144 `__\n (`shansfolder `__)\n- Small improvement on default type of report_kpi_names\n `#140 `__\n (`shansfolder `__)\n- slightly different json structure for results\n `#138 `__\n (`gbordyugov `__)\n- merging dev to master\n `#137 `__\n (`gbordyugov `__)\n\n`v0.6.0 `__ (2017-07-26)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Closed issues:**\n\n- Improve binning performance\n `#135 `__\n- Missing unit tests for to_json() on early stopping algos\n `#128 `__\n\n**Merged pull requests:**\n\n- Octo 1616 no experimentdata\n `#134 `__\n (`gbordyugov `__)\n- Attempt to fix pickling bug\n `#133 `__\n (`shansfolder `__)\n- Stan models compilation, exceptions catch, unit tests adaptation.\n `#131 `__\n (`daryadedik `__)\n- Added try-finally block for the compulsory clean-up of .pkl compiled\n models `#130 `__\n (`daryadedik `__)\n- OCTO-1837 fixed to_json()\n `#129 `__\n (`gbordyugov `__)\n\n`v0.5.3 `__ (2017-06-26)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Implemented enhancements:**\n\n- Weighted KPIs is only implemented in regular delta\n `#114 `__\n\n**Fixed bugs:**\n\n- Assumption of nan when computing weighted KPIs\n `#119 `__\n- Weighted KPIs is only implemented in regular delta\n `#114 `__\n- Percentiles value is lost during computing group_sequential_delta\n `#108 `__\n\n**Closed issues:**\n\n- Failing early stopping unit tests\n `#85 `__\n\n**Merged pull requests:**\n\n- Release new version 0.5.3\n `#127 `__\n (`mkolarek `__)\n- OCTO-1804: Optimize the loading of .stan model in expan.\n `#126 `__\n (`daryadedik `__)\n- Test travis python version\n `#125 `__\n (`shansfolder `__)\n- OCTO-1619 Cleanup ExpAn code\n `#124 `__\n (`shansfolder `__)\n- OCTO-1748: Make number of iterations as a method argument in\n \\_bayes_sampling `#123 `__\n (`daryadedik `__)\n- OCTO-1615 Use Python builtin logging instead of our own debugging.py\n `#122 `__\n (`shansfolder `__)\n- OCTO-1711 Support weighted KPIs in early stopping\n `#121 `__\n (`shansfolder `__)\n- Fixed a few bugs `#120 `__\n (`shansfolder `__)\n- OCTO-1614 cleanup module structure\n `#115 `__\n (`shansfolder `__)\n- OCTO-1677 : fix missing .stan files\n `#113 `__\n (`gbordyugov `__)\n- Bump version 0.5.1 -> 0.5.2\n `#112 `__\n (`mkolarek `__)\n\n`v0.5.2 `__ (2017-05-11)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Implemented enhancements:**\n\n- OCTO-1502: cleanup of call chains\n `#110 `__\n (`gbordyugov `__)\n\n**Merged pull requests:**\n\n- OCTO-1502 support \\**kwargs for four delta functions\n `#111 `__\n (`shansfolder `__)\n- new version 0.5.1\n `#107 `__\n (`mkolarek `__)\n\n`v0.5.1 `__ (2017-04-20)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Implemented enhancements:**\n\n- Derived KPIs are passed to Experiment.fixed_horizon_delta() but never\n used in there `#96 `__\n\n**Merged pull requests:**\n\n- updated CONTRIBUTING.rst with deployment flow\n `#106 `__\n (`mkolarek `__)\n- OCTO-1501: bugfix in Results.to_json()\n `#105 `__\n (`gbordyugov `__)\n- OCTO-1502 removed variant_subset parameter\u2026\n `#104 `__\n (`gbordyugov `__)\n- OCTO-1540 cleanup handling of derived kpis\n `#102 `__\n (`shansfolder `__)\n- OCTO-1540: cleanup of derived kpi handling in Experiment.delta() and\n \u2026 `#97 `__\n (`gbordyugov `__)\n- Small refactoring `#95 `__\n (`shansfolder `__)\n- Merge dev to master for v0.5.0\n `#94 `__\n (`mkolarek `__)\n\n`v0.5.0 `__ (2017-04-05)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Implemented enhancements:**\n\n- Bad code duplication in experiment.py\n `#81 `__\n- pip == 8.1.0 requirement\n `#76 `__\n\n**Fixed bugs:**\n\n- Experiment.sga() assumes features and KPIs are merged in self.metrics\n `#87 `__\n- pctile can be undefined in ``Results.to\\_json\\(\\)``\n `#78 `__\n\n**Closed issues:**\n\n- Results.to_json() => TypeError: Object of type \u2018UserWarning\u2019 is not\n JSON serializable\n `#77 `__\n- Rethink Results structure\n `#66 `__\n\n**Merged pull requests:**\n\n- new dataframe tree traverser in to_json()\n `#92 `__\n (`gbordyugov `__)\n- updated requirements.txt to have \u2018greater than\u2019 dependencies instead\n \u2026 `#89 `__\n (`mkolarek `__)\n- pip version requirement\n `#88 `__\n (`gbordyugov `__)\n- Test `#86 `__\n (`s4826 `__)\n- merging in categorical binning\n `#84 `__\n (`gbordyugov `__)\n- Add documentation of the weighting logic\n `#83 `__\n (`jbao `__)\n- Early stopping `#80 `__\n (`jbao `__)\n- a couple of minor cleanups\n `#79 `__\n (`gbordyugov `__)\n- Merge to_json() changes\n `#75 `__\n (`mkolarek `__)\n- Feature/early stopping\n `#73 `__\n (`jbao `__)\n\n`v0.4.5 `__ (2017-02-10)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Fixed bugs:**\n\n- Numbers cannot appear in variable names for derived metrics\n `#58 `__\n\n**Merged pull requests:**\n\n- Feature/results and to json refactor\n `#74 `__\n (`mkolarek `__)\n- Merge to_json() and prob_uplift_over_zero changes\n `#72 `__\n (`mkolarek `__)\n- regex fix, see https://github.com/zalando/expan/issues/58\n `#70 `__\n (`gbordyugov `__)\n\n`v0.4.4 `__ (2017-02-09)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Implemented enhancements:**\n\n- Add argument assume_normal and treatment_cost to\n calculate_prob_uplift_over_zero() and\n prob_uplift_over_zero_single_metric()\n `#26 `__\n- host intro slides (from the ipython notebook) somewhere for public\n viewing `#10 `__\n\n**Closed issues:**\n\n- migrate issues from github enterprise\n `#20 `__\n\n**Merged pull requests:**\n\n- Feature/results and to json refactor\n `#71 `__\n (`mkolarek `__)\n- new to_json() functionality and improved vim support\n `#67 `__\n (`mkolarek `__)\n\n`v0.4.3 `__ (2017-02-07)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Closed issues:**\n\n- coverage % is misleading\n `#23 `__\n\n**Merged pull requests:**\n\n- Vim modelines `#63 `__\n (`gbordyugov `__)\n- Feature/octo 1253 expan results in json\n `#62 `__\n (`mkolarek `__)\n- 0.4.2 release `#60 `__\n (`mkolarek `__)\n\n`v0.4.2 `__ (2016-12-08)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Fixed bugs:**\n\n- frequency table in the chi square test doesn\u2019t respect the order of\n categories `#56 `__\n\n**Merged pull requests:**\n\n- OCTO-1143 Review outlier filtering\n `#59 `__\n (`domheger `__)\n- Workaround to fix #56\n `#57 `__\n (`jbao `__)\n\n`v0.4.1 `__ (2016-10-18)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- small doc cleanup `#55 `__\n (`jbao `__)\n- Add comments to cli.py\n `#54 `__\n (`igusher `__)\n- Feature/octo 545 add consolidate documentation\n `#53 `__\n (`mkolarek `__)\n- added os.path.join instead of manual string concatenations with \u2018/\u2019\n `#52 `__\n (`mkolarek `__)\n- Feature/octo 958 outlier filtering\n `#50 `__\n (`mkolarek `__)\n- Sort KPIs in reverse order before matching them in the formula\n `#49 `__\n (`jbao `__)\n\n`v0.4.0 `__ (2016-08-19)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Closed issues:**\n\n- Support \u2018overall ratio\u2019 metrics (e.g.\u00a0conversion rate/return rate) as\n opposed to per-entity ratios\n `#44 `__\n\n**Merged pull requests:**\n\n- merging dev to master\n `#48 `__\n (`jbao `__)\n- OCTO-825 overall metric\n `#47 `__\n (`jbao `__)\n- Bump version: 0.3.2 \u2192 0.3.4\n `#46 `__\n (`mkolarek `__)\n- Bug/fix dependencies\n `#45 `__\n (`mkolarek `__)\n\n`v0.3.4 `__ (2016-08-08)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Closed issues:**\n\n- perform trend analysis cumulatively\n `#31 `__\n- Python3 `#21 `__\n\n**Merged pull requests:**\n\n- Feature/2to3 `#43 `__\n (`mkolarek `__)\n\n`v0.3.3 `__ (2016-08-02)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Merge pull request #41 from zalando/master\n `#42 `__\n (`jbao `__)\n- master to dev `#41 `__\n (`mkolarek `__)\n- Bump version: 0.3.1 \u2192 0.3.2\n `#40 `__\n (`mkolarek `__)\n- Revert \u201cMerge pull request #35 from zalando/dev\u201d\n `#39 `__\n (`mkolarek `__)\n- Merge pull request #35 from zalando/dev\n `#38 `__\n (`mkolarek `__)\n\n`v0.3.2 `__ (2016-08-02)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Bugfix/trend analysis bin label\n `#37 `__\n (`jbao `__)\n- Added cumulative trends analysis OCTO-814\n `#36 `__\n (`domheger `__)\n- Merging 0.3.1 to master\n `#35 `__\n (`domheger `__)\n\n`v0.3.1 `__ (2016-07-15)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Merged pull requests:**\n\n- Bugfix/prob uplift over 0\n `#34 `__\n (`jbao `__)\n- Master `#30 `__\n (`mkolarek `__)\n\n`v0.3.0 `__ (2016-06-23)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Implemented enhancements:**\n\n- Add P(uplift>0) as a statistic\n `#2 `__\n- Added function to calculate P(uplift>0)\n `#24 `__\n (`jbao `__)\n\n**Merged pull requests:**\n\n- updated travis.yml `#29 `__\n (`mkolarek `__)\n- Master `#28 `__\n (`mkolarek `__)\n- Master `#27 `__\n (`mkolarek `__)\n- only store the p-value in the chi-square test result object\n `#22 `__\n (`jbao `__)\n\n`v0.2.5 `__ (2016-05-30)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Implemented enhancements:**\n\n- Implement \\__version_\\_\n `#14 `__\n\n**Closed issues:**\n\n- upload full documentation!\n `#1 `__\n\n**Merged pull requests:**\n\n- implement expan.__version_\\_\n `#19 `__\n (`pangeran-bottor `__)\n- Mainly documentation changes, as well as travis config updates\n `#17 `__\n (`robertmuil `__)\n- Update README.rst `#16 `__\n (`pangeran-bottor `__)\n- added cli module `#11 `__\n (`mkolarek `__)\n- new travis config specifying that only master and dev should be built\n `#4 `__\n (`mkolarek `__)\n\n`v0.2.4 `__ (2016-05-16)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n**Closed issues:**\n\n- No module named experiment and test_data\n `#13 `__\n\n**Merged pull requests:**\n\n- new travis config specifying that only master and dev should be built\n `#5 `__\n (`mkolarek `__)\n\n`v0.2.3 `__ (2016-05-06)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n`v0.2.2 `__ (2016-05-06)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n`v0.2.1 `__ (2016-05-06)\n----------------------------------------------------------------------\n\n`Full\nChangelog `__\n\n`v0.2.0 `__ (2016-05-06)\n----------------------------------------------------------------------\n\n**Merged pull requests:**\n\n- Added detailed documentation with data formats\n `#3 `__\n (`robertmuil `__)\n\n\\* *This Change Log was automatically generated\nby*\\ `github_changelog_generator `__", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/zalando/expan", "keywords": "expan", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "expan", "package_url": "https://pypi.org/project/expan/", "platform": "", "project_url": "https://pypi.org/project/expan/", "project_urls": { "Homepage": "https://github.com/zalando/expan" }, "release_url": "https://pypi.org/project/expan/1.4.0/", "requires_dist": null, "requires_python": "", "summary": "Experiment Analysis Library", "version": "1.4.0" }, "last_serial": 5491396, "releases": { "0.2.0": [], "0.2.1": [ { "comment_text": "", "digests": { "md5": "69e21c4895d584e9b11bb5cac99e590c", "sha256": "60d162bdfc1571ff28a8df91ff08cf26811c934ef367bc943593b20cb89b251c" }, "downloads": -1, "filename": "expan-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "69e21c4895d584e9b11bb5cac99e590c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 72188, "upload_time": "2016-05-06T12:14:18", "url": "https://files.pythonhosted.org/packages/46/26/420b6e17e0233e95eab3bcb6abf11f3e6cf12faf6f121ed522e1799129f1/expan-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9447195b77acc770ceacf5b70b9cb514", "sha256": "d80f3c47ee64d0f30f71b7bdcc21beb39d8ff9e212287d5adbc4a3663e7d6556" }, "downloads": -1, "filename": "expan-0.2.1.tar.gz", "has_sig": false, "md5_digest": "9447195b77acc770ceacf5b70b9cb514", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66125, "upload_time": "2016-05-06T12:14:27", "url": "https://files.pythonhosted.org/packages/08/a1/61b87f8007b2db703121621837e9e76e5edd318c70dd71c1a207dda65308/expan-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "f6581ccef73f52ab74ac0ce8c948b4d4", "sha256": "5ef5fe09f4d117f16af624b3c259ae1f80656436c47fdab23b996e42b8860a39" }, "downloads": -1, "filename": "expan-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f6581ccef73f52ab74ac0ce8c948b4d4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 72184, "upload_time": "2016-05-06T13:26:52", "url": "https://files.pythonhosted.org/packages/35/c7/135ff1806ffbc4b079882c83ba828f3481813fcfe43cba3fbee0d0c004ac/expan-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "697e51d58f1cd67bef6c5f6c248f5b4c", "sha256": "d8f1c0e7c9d35a7806c088a72497d49ac083fe98ffd8154869f52ec46e02df8b" }, "downloads": -1, "filename": "expan-0.2.2.tar.gz", "has_sig": false, "md5_digest": "697e51d58f1cd67bef6c5f6c248f5b4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66128, "upload_time": "2016-05-06T13:27:08", "url": "https://files.pythonhosted.org/packages/c2/69/37508b7b2d339b7bc102d12e6732ff263f284b6294d81a21f7243b2a02a6/expan-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "08322774c0ab4cc7e36cbddcdfb5f0bd", "sha256": "54cddf97ad71a6216e0c61ce813780722a0b577ff233cc73de43e31d53cbcbdd" }, "downloads": -1, "filename": "expan-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "08322774c0ab4cc7e36cbddcdfb5f0bd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 72185, "upload_time": "2016-05-06T13:47:00", "url": "https://files.pythonhosted.org/packages/7f/e5/57d79e5ee2e05d3de11142b100cbf10ff794fedbaa6775565af9ede8959d/expan-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d61e95093c84972d25e3217573ded4a", "sha256": "86f2f8af82646a92df2f27184b541eeedf2586317956d609f91b5faa39fc83cf" }, "downloads": -1, "filename": "expan-0.2.3.tar.gz", "has_sig": false, "md5_digest": "4d61e95093c84972d25e3217573ded4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66129, "upload_time": "2016-05-06T13:47:06", "url": "https://files.pythonhosted.org/packages/1f/fb/aac183ae0fb9cc91a9a3c005c967005394e2f8a3652ae754ebbdb5d18105/expan-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "19848e482abf71114775d5ea13e5cbda", "sha256": "13c6c5c5d8772fc66bc8c9712dd50a4c3006f2fd937ffa82b490354cdd343c0e" }, "downloads": -1, "filename": "expan-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19848e482abf71114775d5ea13e5cbda", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 73582, "upload_time": "2016-05-16T14:08:22", "url": "https://files.pythonhosted.org/packages/b4/85/e705f0cc30e6fa905ee8394ba28f260a71e9e2f0c2c0cf3035002ec527bf/expan-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7edab9df29081865bafc07a4d8c3f70a", "sha256": "ff0ffa33a75caaef1402199aa6370e328bcaa857e9e9b25100cd5906235f7dff" }, "downloads": -1, "filename": "expan-0.2.4.tar.gz", "has_sig": false, "md5_digest": "7edab9df29081865bafc07a4d8c3f70a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67711, "upload_time": "2016-05-16T14:08:43", "url": "https://files.pythonhosted.org/packages/59/de/2fabf97996fdc5029284a761d0aac13016c1415439f6bf5ce00caedfa2db/expan-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "72e699eda93591d9268c3697a67b9850", "sha256": "31f1a455856031bf2a3f70e70fc73761895e54a55767d563f0528c22f6175d76" }, "downloads": -1, "filename": "expan-0.3.0.tar.gz", "has_sig": false, "md5_digest": "72e699eda93591d9268c3697a67b9850", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70148, "upload_time": "2016-06-23T13:58:36", "url": "https://files.pythonhosted.org/packages/da/d3/e50de98e5288843c308ef6102613b5a7d09e80d5775377a0847c6d1d5456/expan-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "aa22bb79de09c1f17508924cf3c11b78", "sha256": "87a4ff0240f96963141380657fef25ef2800d9e156f16247425572eeffc65d72" }, "downloads": -1, "filename": "expan-0.3.1.tar.gz", "has_sig": false, "md5_digest": "aa22bb79de09c1f17508924cf3c11b78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70087, "upload_time": "2016-07-15T15:25:07", "url": "https://files.pythonhosted.org/packages/c9/c9/9c4691dba30b8c912a4f37240f50ba8331642d86e0a58784b8d205a9a13d/expan-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "8e9b8c0cec76bc11bbf119a1f256ac1c", "sha256": "c9a60899b57bfe4f1a906d1f659ac1a0c7bbf29c18faf3a0a0d0180397f010a9" }, "downloads": -1, "filename": "expan-0.3.2.tar.gz", "has_sig": false, "md5_digest": "8e9b8c0cec76bc11bbf119a1f256ac1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70087, "upload_time": "2016-08-02T08:01:39", "url": "https://files.pythonhosted.org/packages/99/1a/67378e0c53b8032b73a111e289d9c79aa11d29e9023126fd3271f49e7899/expan-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "d21293c695205cc6df20d2aead059785", "sha256": "44bb081a659941a08a4434d5d38012ab819cb17e8e1d0c06372c5540db39342a" }, "downloads": -1, "filename": "expan-0.3.3.tar.gz", "has_sig": false, "md5_digest": "d21293c695205cc6df20d2aead059785", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71287, "upload_time": "2016-08-02T15:25:41", "url": "https://files.pythonhosted.org/packages/03/1c/cf5ac7a95e6fb4120c6c25b13b8225f24bcfeef47815f92055ca02378140/expan-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "566d191ca4049edb76bfbe83d330b48a", "sha256": "d0eb92950b099f6866e9d5141a5af6104344f7b663d8052506a2bc9018c3fe63" }, "downloads": -1, "filename": "expan-0.3.4.tar.gz", "has_sig": false, "md5_digest": "566d191ca4049edb76bfbe83d330b48a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 71625, "upload_time": "2016-08-08T15:33:52", "url": "https://files.pythonhosted.org/packages/8d/03/a6f4675c97e8eb4495f4e751fc43b5eeaf72911a05a95483bb6e52c93e9b/expan-0.3.4.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "3cad01fb0f485f620e8ef159edfcc894", "sha256": "0d9fb04319dfb1652f64fd40d6643e10e81eeb9a6cac36f87a75d8bab85d8de5" }, "downloads": -1, "filename": "expan-0.4.0.tar.gz", "has_sig": false, "md5_digest": "3cad01fb0f485f620e8ef159edfcc894", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72523, "upload_time": "2016-08-19T11:06:38", "url": "https://files.pythonhosted.org/packages/cc/13/2a2b45d919678cadc5c48ed4812b0f07f4c5efc449a9ee020ea9bc7cab7b/expan-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "6d6f318698f3f73cc1aa01b70a485097", "sha256": "992f671c10dece3599c1fd93a9d687f0e3286e037578e96b4761e40d1e8bb65b" }, "downloads": -1, "filename": "expan-0.4.1.tar.gz", "has_sig": false, "md5_digest": "6d6f318698f3f73cc1aa01b70a485097", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83506, "upload_time": "2016-10-18T16:37:55", "url": "https://files.pythonhosted.org/packages/7f/e2/b65750286a4d8d7b43900edfefe33e700fb9facc18d246bbb9fcb66325a6/expan-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "b88c66bd8d5dff800c00c127c56658fa", "sha256": "426615b304e6880f6b0d4f9f8752bb610c8bc3d8c0430b672c202317848c862a" }, "downloads": -1, "filename": "expan-0.4.2.tar.gz", "has_sig": false, "md5_digest": "b88c66bd8d5dff800c00c127c56658fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84016, "upload_time": "2016-12-08T15:41:51", "url": "https://files.pythonhosted.org/packages/68/90/648438fa9a04b6673760782a78efdf155051d6f01cb39a40878ecc8d5e29/expan-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "215e02997d4e8530fdf7ebf06ead5996", "sha256": "e59b3acdd07204eb49dad71ea0adfa5f0c986683060c53d1a5b83d90a6c91c83" }, "downloads": -1, "filename": "expan-0.4.3.tar.gz", "has_sig": false, "md5_digest": "215e02997d4e8530fdf7ebf06ead5996", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84970, "upload_time": "2017-02-07T11:28:43", "url": "https://files.pythonhosted.org/packages/7d/a4/3556c08db39f56b635498132809bb75bb26cdf3abc769803d0534c139080/expan-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "4028b3b248dcb5ccca4368699289499a", "sha256": "7f7ae85f0ff8636009e7e840d97c4ee89bd6a64348579342525a6edbceb7d13c" }, "downloads": -1, "filename": "expan-0.4.4.tar.gz", "has_sig": false, "md5_digest": "4028b3b248dcb5ccca4368699289499a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86400, "upload_time": "2017-02-09T10:13:15", "url": "https://files.pythonhosted.org/packages/97/b3/64146f7229dac7473e76fd75d936d5941894f0a7449d4f451ccba7d0dc67/expan-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "3b5f63263f7fb61465e0798cd15e2d57", "sha256": "5430af00034746834bc92f3f1cf75d97e7fef6184a3db5c01dd8ebc30c712d69" }, "downloads": -1, "filename": "expan-0.4.5.tar.gz", "has_sig": false, "md5_digest": "3b5f63263f7fb61465e0798cd15e2d57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87333, "upload_time": "2017-02-10T14:05:29", "url": "https://files.pythonhosted.org/packages/22/56/4e9d262e58e9f6f0ef64e23892b09b8a0ef58b6277d61839e57061f17d15/expan-0.4.5.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "1f846ca180cc241de6c7bc270607ef8c", "sha256": "e3c29b8449f3078c3d2fcc008fb3d4da4bcb9ea3a2a2d49984c03b6039f7005a" }, "downloads": -1, "filename": "expan-0.5.0.tar.gz", "has_sig": false, "md5_digest": "1f846ca180cc241de6c7bc270607ef8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91141, "upload_time": "2017-04-05T14:03:29", "url": "https://files.pythonhosted.org/packages/b2/55/13c633ce46b398d1c486cde36b521b831632b6f4e92ee3d2f893f626b1a9/expan-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "4a32c78965975e5c810de2ce9836791c", "sha256": "e08e39287ae7648d648c71ca8b1c2e02a10f9644e5a95d4dce9777afcad2e9d7" }, "downloads": -1, "filename": "expan-0.5.1.tar.gz", "has_sig": false, "md5_digest": "4a32c78965975e5c810de2ce9836791c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 95406, "upload_time": "2017-04-20T14:53:10", "url": "https://files.pythonhosted.org/packages/86/4d/5606a2f611f602613adc53c4aba9267c5e539401e6085aa95ad45b4384ca/expan-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "475150de1fe878f624ef38d7b4353e19", "sha256": "473d7a666fd899f2f3e955272606affedada6c33fc9caac9c4f8dad2b53fd77c" }, "downloads": -1, "filename": "expan-0.5.2.tar.gz", "has_sig": false, "md5_digest": "475150de1fe878f624ef38d7b4353e19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93328, "upload_time": "2017-05-11T16:09:13", "url": "https://files.pythonhosted.org/packages/c3/60/07c4152bc32c4fb1664abfd8e30012fda82438fd9a533f1f7d584bb4569b/expan-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "c1cf921f67ce8eac6ee8398db719a345", "sha256": "0226f2d402c89c114ca5daae800454c885b7a835b2010e41660cbae7c22cb123" }, "downloads": -1, "filename": "expan-0.5.3.tar.gz", "has_sig": false, "md5_digest": "c1cf921f67ce8eac6ee8398db719a345", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91823, "upload_time": "2017-06-26T15:34:49", "url": "https://files.pythonhosted.org/packages/5d/e0/7409ed9fb401775283309d76017cc64a385d37b52a2cd17d9ecb315b8c3e/expan-0.5.3.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "33c204711e5afa8b875e09ce91f78216", "sha256": "a6431acb8b0c507a9836c04c1cf01d6da06165a799f476773cf5574a01ab3d2f" }, "downloads": -1, "filename": "expan-0.6.0.tar.gz", "has_sig": false, "md5_digest": "33c204711e5afa8b875e09ce91f78216", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70854, "upload_time": "2017-07-26T14:14:51", "url": "https://files.pythonhosted.org/packages/35/0f/7af60e908e695d1c3b1c6b48e4b839cb5adf9a0bcc368d5d90587491c180/expan-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "f275afbbc9f190f4f959befc86560352", "sha256": "ade39c3eb3ae374495e3e69b8a84ac356a4a80115cb3fa9841d5f3b505a7a971" }, "downloads": -1, "filename": "expan-0.6.1.tar.gz", "has_sig": false, "md5_digest": "f275afbbc9f190f4f959befc86560352", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76143, "upload_time": "2017-08-08T13:26:31", "url": "https://files.pythonhosted.org/packages/e4/18/f7c481673f3d1ed198d2687a349604d5023cc59cf2f73aea7e4d36791bf3/expan-0.6.1.tar.gz" } ], "0.6.10": [ { "comment_text": "", "digests": { "md5": "766c738841156fdfb174fe790a12de82", "sha256": "ca6a2d7c0c6f86fc015edb967f59bfcc2f4630eafb5949978f9de5ef1e8dd4e9" }, "downloads": -1, "filename": "expan-0.6.10.tar.gz", "has_sig": false, "md5_digest": "766c738841156fdfb174fe790a12de82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87262, "upload_time": "2018-01-12T19:05:20", "url": "https://files.pythonhosted.org/packages/67/c5/2ca7eeeee0102f4973845e0021835d180e93bdced2d38df4ad734f665613/expan-0.6.10.tar.gz" } ], "0.6.11": [ { "comment_text": "", "digests": { "md5": "b244e447d2e8cd66be188fef43a17aa1", "sha256": "3eece91591bd008a827a2a09e65501b3d6427c93f101f6ca4ff27178a639675b" }, "downloads": -1, "filename": "expan-0.6.11.tar.gz", "has_sig": false, "md5_digest": "b244e447d2e8cd66be188fef43a17aa1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87894, "upload_time": "2018-01-23T17:03:49", "url": "https://files.pythonhosted.org/packages/a4/28/53fcf442881dd0a33a49cdf2358b1668c98fb544104b000b8f67929e5a85/expan-0.6.11.tar.gz" } ], "0.6.12": [ { "comment_text": "", "digests": { "md5": "17f363e08235c1f7c90eb4a691a17851", "sha256": "224cf751d973352105294ef8a1f3ddc6c1cbf3db6d9bf1b9e7e227a2fde6bd1e" }, "downloads": -1, "filename": "expan-0.6.12.tar.gz", "has_sig": false, "md5_digest": "17f363e08235c1f7c90eb4a691a17851", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88439, "upload_time": "2018-01-24T16:44:22", "url": "https://files.pythonhosted.org/packages/65/7f/f425ee5b5189f4e11ffc5a2445b5008842b7894ccce65c1268aa303ab4ae/expan-0.6.12.tar.gz" } ], "0.6.13": [ { "comment_text": "", "digests": { "md5": "47567ba0c9b8ed94638970ab9c452f9c", "sha256": "fccf8f8ea95413bef51b84b0cb756094d71725d28eac29e887e28aa6c3204e33" }, "downloads": -1, "filename": "expan-0.6.13.tar.gz", "has_sig": false, "md5_digest": "47567ba0c9b8ed94638970ab9c452f9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88645, "upload_time": "2018-03-15T11:34:09", "url": "https://files.pythonhosted.org/packages/e3/ef/7a30d68f5b229bde0f8d25c4abe1299fce42833ddfb2fec870d24a142c2c/expan-0.6.13.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "b911284ebfd7ced4cd37e384980e331c", "sha256": "503d865283c080e97440d0fb615755c15f56f3b1f5bde44c97b481a5fe25fe6d" }, "downloads": -1, "filename": "expan-0.6.2.tar.gz", "has_sig": false, "md5_digest": "b911284ebfd7ced4cd37e384980e331c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78684, "upload_time": "2017-08-29T16:47:13", "url": "https://files.pythonhosted.org/packages/d1/34/71d8eadb8638e43bcb5930a0b55be483b91ce729431dddc535a7e126d84b/expan-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "68df5acad936dd1fc53c5dac33933c83", "sha256": "66c28eaea195715bfe9f170328de3541c5adeaf5a6a01d7ce75e13e709e5f312" }, "downloads": -1, "filename": "expan-0.6.3.tar.gz", "has_sig": false, "md5_digest": "68df5acad936dd1fc53c5dac33933c83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83271, "upload_time": "2017-10-24T10:34:38", "url": "https://files.pythonhosted.org/packages/f9/ef/265359e4cb184237fb0dc164aedab21c638eff55a94090d07e1b6f6699c8/expan-0.6.3.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "b8608f86193076e6818a4095da88bc52", "sha256": "5be39f75d23511152a52e816e71b7f8d138e9db5dca66bc237407853b0422797" }, "downloads": -1, "filename": "expan-0.6.5.tar.gz", "has_sig": false, "md5_digest": "b8608f86193076e6818a4095da88bc52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83895, "upload_time": "2017-10-24T13:05:53", "url": "https://files.pythonhosted.org/packages/c4/16/451e612c471bdb18683a0f440be97fa9e0f6eb3dc608fe0a3d3b43db3c16/expan-0.6.5.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "a818758bb14415d075b8223cbf88b126", "sha256": "621fc34a3c83295dfb374fa3ff511e4035b4513f2cbf7f21d0f0947996bd1ad0" }, "downloads": -1, "filename": "expan-0.6.6.tar.gz", "has_sig": false, "md5_digest": "a818758bb14415d075b8223cbf88b126", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85201, "upload_time": "2017-11-27T11:13:48", "url": "https://files.pythonhosted.org/packages/6d/7e/dd8f6ab77aa9b0b31d0250a2b0092fd63d2e89eee40317e366b8d9e5bddd/expan-0.6.6.tar.gz" } ], "0.6.8": [ { "comment_text": "", "digests": { "md5": "8eb077cf1738d5320bf906d97c31cffe", "sha256": "7451de92b9411eb7564db59c21daedc0bfad88b1cac22525cc7a1cc382ad76a9" }, "downloads": -1, "filename": "expan-0.6.8.tar.gz", "has_sig": false, "md5_digest": "8eb077cf1738d5320bf906d97c31cffe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87530, "upload_time": "2018-01-12T15:28:51", "url": "https://files.pythonhosted.org/packages/91/26/cb2ae1520f64d6f0ea93828ddc5db465b6923a43752217ec959c83827a97/expan-0.6.8.tar.gz" } ], "0.6.9": [ { "comment_text": "", "digests": { "md5": "e4b2f2dae2e6b917f383d867609bb951", "sha256": "e8d2ba9cedd978d3ef9ec63e26b3b1a6bd0cb545b9b19ecb91567e9b048ee3c9" }, "downloads": -1, "filename": "expan-0.6.9.tar.gz", "has_sig": false, "md5_digest": "e4b2f2dae2e6b917f383d867609bb951", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87076, "upload_time": "2018-01-12T19:09:12", "url": "https://files.pythonhosted.org/packages/55/e4/e4501096088becf597bcf21aae37e8343f2cb18c0c4a5d1fdd0565048f6f/expan-0.6.9.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "07e9674fbb645a1ee748a303d4a6fdfd", "sha256": "68bb87e5d679e2dd1e369fda31c1714230eb2d58df87ae7d0098e2bc48d98d56" }, "downloads": -1, "filename": "expan-1.0.0.tar.gz", "has_sig": false, "md5_digest": "07e9674fbb645a1ee748a303d4a6fdfd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87678, "upload_time": "2018-03-22T17:33:46", "url": "https://files.pythonhosted.org/packages/41/00/ae9fef111eb9640b8ce5e37878c7441e6512d8b587042828345e5487f18c/expan-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "aa961f9a67f5fc544208d794f5131a51", "sha256": "f84a5eb9becaf0b3a3dfa5c935f437059b2677fbccf89ca4dd2e98799453aa0a" }, "downloads": -1, "filename": "expan-1.0.1.tar.gz", "has_sig": false, "md5_digest": "aa961f9a67f5fc544208d794f5131a51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88012, "upload_time": "2018-04-23T15:59:23", "url": "https://files.pythonhosted.org/packages/37/20/0ece0c7c9707b792906dcc9a76500ff2965fcd584c22071d79fbc48f077f/expan-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "6adf6ecbef394a3399692568b034188b", "sha256": "0b669c9a30ce1f3d52805f66a3b0345b26d76f9a073b9cc678affcb343cc324d" }, "downloads": -1, "filename": "expan-1.1.0.tar.gz", "has_sig": false, "md5_digest": "6adf6ecbef394a3399692568b034188b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88910, "upload_time": "2018-05-24T14:55:17", "url": "https://files.pythonhosted.org/packages/c1/73/83ef331e52d70c571a11376697a661b5185dc1bab9b64671547e5edb3586/expan-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "07aa112b13c38aba241b1fd02484f5c4", "sha256": "6eeda3309fcdf9ca3a490e58b79dac35ff0121b17a72a56c3e43b126701c6b23" }, "downloads": -1, "filename": "expan-1.2.0.tar.gz", "has_sig": false, "md5_digest": "07aa112b13c38aba241b1fd02484f5c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89204, "upload_time": "2018-05-25T14:59:01", "url": "https://files.pythonhosted.org/packages/db/98/aa1521902cd6edd36fd02c6460e4fa5749736425a74a7b3fecf762ec7da2/expan-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "2f33053a18cdef2ece39fd1506421a8b", "sha256": "168c7a9b22e9b6abc63ed73604eb4c44f2d19279e3ce8753c6fd201fbf49cab6" }, "downloads": -1, "filename": "expan-1.2.1.tar.gz", "has_sig": false, "md5_digest": "2f33053a18cdef2ece39fd1506421a8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89782, "upload_time": "2018-05-29T10:18:14", "url": "https://files.pythonhosted.org/packages/7a/77/0269ea6e09b8386503d7b91857e55c11bccac03c89a024f5f18cd253952d/expan-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "bbd5a4c7aaaf0b4d772a75682cf8889a", "sha256": "ad34e2ff5e8471c5d1b7de21ca68c346868806366423304a96c34886269c142f" }, "downloads": -1, "filename": "expan-1.2.2.tar.gz", "has_sig": false, "md5_digest": "bbd5a4c7aaaf0b4d772a75682cf8889a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90550, "upload_time": "2018-05-30T14:12:26", "url": "https://files.pythonhosted.org/packages/b6/42/6b0628facba003606786e67b0eb6f39e17696ac3a7104e551444e6f9758d/expan-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "d87219318f1f8341b6f3d210c4435d74", "sha256": "ba908085441a38ea5738dad7bb94988bd1248cd1ccdd58f759bac375ac8bdcec" }, "downloads": -1, "filename": "expan-1.2.3.tar.gz", "has_sig": false, "md5_digest": "d87219318f1f8341b6f3d210c4435d74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90642, "upload_time": "2018-05-30T16:16:50", "url": "https://files.pythonhosted.org/packages/d4/4d/d0cde561f1e15a01552b003f0f4434f46f3ec135722ca11d978f065c503b/expan-1.2.3.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "11d87b196349620ab52ad50adaa4234f", "sha256": "fb017b8dcc83b6397d4de8157819ef6702860967c638b813c3da4b50cff86546" }, "downloads": -1, "filename": "expan-1.2.4.tar.gz", "has_sig": false, "md5_digest": "11d87b196349620ab52ad50adaa4234f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90715, "upload_time": "2018-05-31T14:03:56", "url": "https://files.pythonhosted.org/packages/96/0a/7380f802c479df926a70fdfee6f9ed4bd935d81a07dde46ca42f785e145b/expan-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "505ba091a4d564c2583d098f867570cc", "sha256": "edd9abd4fc9aab17e272726877fe52cc08cff35b15654648902e69e550fe79de" }, "downloads": -1, "filename": "expan-1.2.5.tar.gz", "has_sig": false, "md5_digest": "505ba091a4d564c2583d098f867570cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90880, "upload_time": "2018-06-22T13:41:48", "url": "https://files.pythonhosted.org/packages/68/a2/2cd1d824e8f8162ae5f3bf3dbeff3252e7ad4302d9624e9bfd683212f432/expan-1.2.5.tar.gz" } ], "1.2.6": [ { "comment_text": "", "digests": { "md5": "2f82d932fe73fe83078d43f25d02e171", "sha256": "66b9cb68e4d78b3874adfc696b11ad3d32942d17fab57113eeb133b7bc832c5c" }, "downloads": -1, "filename": "expan-1.2.6.tar.gz", "has_sig": false, "md5_digest": "2f82d932fe73fe83078d43f25d02e171", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 95810, "upload_time": "2018-07-01T15:49:58", "url": "https://files.pythonhosted.org/packages/21/96/025e844dcfd1211b38e203ad6aec81dc8f152c1d895a99037c2fb19f9bad/expan-1.2.6.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "8b8fced21b42599f84a27ac1a4996613", "sha256": "aad01f858f744f78c5d6f7cd8e589ff3f6968dcae9fd818fa41419650eb3054e" }, "downloads": -1, "filename": "expan-1.3.0.tar.gz", "has_sig": false, "md5_digest": "8b8fced21b42599f84a27ac1a4996613", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 95829, "upload_time": "2018-06-29T10:03:05", "url": "https://files.pythonhosted.org/packages/d3/98/27a09e59ea8f2bbf036cd546307c479bee4500c955e482404b6167661485/expan-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "21de4c430c70d5f45384cb630985b631", "sha256": "7afca4b2d6b3752485bf8f22c70e531246ef369d76d05ff40e4139fcd474cf62" }, "downloads": -1, "filename": "expan-1.3.1.tar.gz", "has_sig": false, "md5_digest": "21de4c430c70d5f45384cb630985b631", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 95823, "upload_time": "2018-07-01T16:26:52", "url": "https://files.pythonhosted.org/packages/ae/66/2d2bc4911cc640b166b78ceb30f8562acde91cc2e3aba7b377e30087d855/expan-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "1e2279a8d9028c2c2ac9235fc7e820b7", "sha256": "31b1c4dd5c982c69fd7430bef9753f93415c053456a32af1cebdbf0575431bdd" }, "downloads": -1, "filename": "expan-1.3.2.tar.gz", "has_sig": false, "md5_digest": "1e2279a8d9028c2c2ac9235fc7e820b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 96980, "upload_time": "2018-07-23T12:49:43", "url": "https://files.pythonhosted.org/packages/7b/53/29193bc68e31a008e257b8c46b781485ec31cd9915eec3c85616b92bd8ed/expan-1.3.2.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "ad0d4fe718feda2ce92186f1d7f84d5c", "sha256": "3aaeea844243d2d8100abf4cb779a2b215eb3b9b1e8d2e4125709f1dbd400182" }, "downloads": -1, "filename": "expan-1.3.3.tar.gz", "has_sig": false, "md5_digest": "ad0d4fe718feda2ce92186f1d7f84d5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99586, "upload_time": "2018-07-26T07:57:11", "url": "https://files.pythonhosted.org/packages/b5/39/f7439defd7421051d9466dbecf2e0e90b33ea54f5e191a3599d12fd8b258/expan-1.3.3.tar.gz" } ], "1.3.5": [ { "comment_text": "", "digests": { "md5": "09f32faa60597b1411944986c2912543", "sha256": "5fc51dd9efb32863b33830a832bc3f6b7b23faf0cb120a2be9d83beeb1b5a630" }, "downloads": -1, "filename": "expan-1.3.5.tar.gz", "has_sig": false, "md5_digest": "09f32faa60597b1411944986c2912543", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100145, "upload_time": "2018-08-02T09:03:06", "url": "https://files.pythonhosted.org/packages/f8/ba/9994beeb8a6531d4e7a12afdfee8c1e058dc8ffa56a0ab7a03a3097244b8/expan-1.3.5.tar.gz" } ], "1.3.6": [ { "comment_text": "", "digests": { "md5": "f0309fd515c09aa7604612131c21550f", "sha256": "9077b745e7f7e1905ec04d5b385c074517ed3f6f215d137a8e0cee5a6430c581" }, "downloads": -1, "filename": "expan-1.3.6.tar.gz", "has_sig": false, "md5_digest": "f0309fd515c09aa7604612131c21550f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100451, "upload_time": "2018-08-06T12:48:09", "url": "https://files.pythonhosted.org/packages/81/42/bbe7263f2e6004f5935d75579c9fdf401232b570814b8f09e88d7a062f74/expan-1.3.6.tar.gz" } ], "1.3.7": [ { "comment_text": "", "digests": { "md5": "54deb7979a34dc94dbd2f01d835ffb10", "sha256": "86c5deb6fe91ad8c631ae84af9cdcac1186bb591c0bf974152321447ac46dedd" }, "downloads": -1, "filename": "expan-1.3.7.tar.gz", "has_sig": false, "md5_digest": "54deb7979a34dc94dbd2f01d835ffb10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100749, "upload_time": "2018-09-04T14:10:50", "url": "https://files.pythonhosted.org/packages/45/0d/fffb4ee4bb1ac1ca4aa40ef7b831abcb0a6c4a2fa24ba095b135d17e6f38/expan-1.3.7.tar.gz" } ], "1.3.8": [ { "comment_text": "", "digests": { "md5": "5b2798afc2c4c547a1510c875567ad3b", "sha256": "f2231251e5c0c24388758b398657d100af61cc500de399eebf500a0db7a2aee3" }, "downloads": -1, "filename": "expan-1.3.8.tar.gz", "has_sig": false, "md5_digest": "5b2798afc2c4c547a1510c875567ad3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100743, "upload_time": "2018-09-10T12:11:17", "url": "https://files.pythonhosted.org/packages/5a/88/13964dcb9fa66081d45bb3b8352ba49d341ba13ff65f7b2437e24821ba0a/expan-1.3.8.tar.gz" } ], "1.3.9": [ { "comment_text": "", "digests": { "md5": "010f46a808e9e25ac767fd29b661cbea", "sha256": "bee8686776dd2ce5779ef73544aac2a63c35a908cd89248da162a98cfbc7fde3" }, "downloads": -1, "filename": "expan-1.3.9.tar.gz", "has_sig": false, "md5_digest": "010f46a808e9e25ac767fd29b661cbea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100614, "upload_time": "2018-09-10T12:04:28", "url": "https://files.pythonhosted.org/packages/a9/55/49b1ad3c8f27eab334b7266164f2b224a124de282a8160e2888ab8f69f13/expan-1.3.9.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "33dfd2fece159cb2e1b42c3a14d7c7ad", "sha256": "421a51a9a43c0b5fb11c54ab1cd759dc1c755d4a1e7ca126bbb74644d0b51c92" }, "downloads": -1, "filename": "expan-1.4.0.tar.gz", "has_sig": false, "md5_digest": "33dfd2fece159cb2e1b42c3a14d7c7ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 104463, "upload_time": "2019-07-05T13:17:56", "url": "https://files.pythonhosted.org/packages/c4/f7/9407b289e2267f011e4ee645aa7cf639c5c5ac59f70b071b48dcb173bbb5/expan-1.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "33dfd2fece159cb2e1b42c3a14d7c7ad", "sha256": "421a51a9a43c0b5fb11c54ab1cd759dc1c755d4a1e7ca126bbb74644d0b51c92" }, "downloads": -1, "filename": "expan-1.4.0.tar.gz", "has_sig": false, "md5_digest": "33dfd2fece159cb2e1b42c3a14d7c7ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 104463, "upload_time": "2019-07-05T13:17:56", "url": "https://files.pythonhosted.org/packages/c4/f7/9407b289e2267f011e4ee645aa7cf639c5c5ac59f70b071b48dcb173bbb5/expan-1.4.0.tar.gz" } ] }