{ "info": { "author": "Camptocamp", "author_email": "info@camptocamp.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2 :: Only", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: Implementation :: CPython" ], "description": "========================================\nAnthem: make your Odoo scripts sing \ud83d\udc1c\ud83c\udfb5\n========================================\n\n.. image:: https://travis-ci.org/camptocamp/anthem.svg?branch=master\n :target: https://travis-ci.org/camptocamp/anthem\n\nAnthem is a tool to help scripting Odoo instances for automated setup,\nupgrades, testing and more.\n\nIt should be an alternative to the other tools like ``oerpscenario``.\n\n\nMake your own songs\n===================\n\nWriting your songs is as easy as creating a Python Package. The\nsongs functions called by anthem must have a positional ``ctx``\nargument.\n\n``ctx`` is essentially the execution context - you can access ``ctx.env`` from\nit, which is an Odoo environment instance that you should be pretty much familiar with.\n\n::\n\n ## songs/install.py\n\n def setup_company(ctx):\n \"\"\" Setup company \"\"\"\n company = ctx.env.ref('base.main_company')\n company.name = 'My Company'\n\n\n def main(ctx):\n setup_company(ctx)\n\n\nLogs\n====\n\nA song can display some logs when executed with ``@anthem.log``,\n``Context.log`` and ``Context.log_line``.\n\n.. code:: python\n\n import anthem\n\n @anthem.log\n def setup_company(ctx):\n \"\"\" Setting up company \"\"\"\n company = ctx.env.ref('base.main_company')\n with ctx.log('Changing name'):\n company.name = 'My Company'\n ctx.log_line('Name changed')\n with ctx.log('Loading a logo'):\n company.logo = b64encode(LOGO_CONTENT)\n ctx.log_line('Logo changed')\n\n\nThe decorator on the function will display the first line of the docstring.\nBoth the decorator and the context manager will show the timing of the\nexecution. The upper example gives:\n\n.. code\n\n Setting up company...\n Changing name...\n Name changed\n Changing name: 0.0150s\n Loading a logo...\n Logo changed\n Loading a logo: 0.100s\n Setting up company: 0.300s\n\n\nExecute your songs\n==================\n\nUse the command line ``anthem``. Provided your songs and ``openerp`` are in the\n``PYTHONPATH``:\n\n.. code\n\n anthem songs.install::main -c path/to/openerp.cfg\n\nAnthem will execute the function ``main`` of the module ``songs.install`` with\na ``ctx`` initialized with an Odoo ``env``.\n\nInstead of using ``-c`` for the command line, you can export the environment\nvariable ``OPENERP_SERVER`` with the path of the configuration file.\n\n.. code\n\n export OPENERP_SERVER=path/to/openerp.cfg\n anthem songs.install::main\n\nIn order to have ``openerp`` in the ``PYTHONPATH``, you might install it as a\npackage with ``pip install -e`` or directly modify the ``PYTHONPATH``.\n\nIn order to have your ``songs`` in the ``PYTHONPATH``, the better is to make a\nPython package out of them.\n\nTesting\n=======\n\nDependencies\n------------\n\nTo run the tests, you must have Postgresql running, with accesses for your user\n(or you will have to modify ``tests/config/odoo.cfg`` with your database\nusername and password).\n\nRun the tests\n-------------\n\nTo run ``anthem``'s tests, it is a good idea to do an *editable* install of it\nin a virtualenv. You must also prepare the environment by installing odoo packages.\n\nOdoo 9.0 (Python 2):\n\n.. code\n\n $ git clone https://github.com/camptocamp/anthem.git\n Cloning into 'anthem'...\n $ cd anthem\n $ virtualenv -p python2 env-9.0\n $ source env-9.0/bin/activate\n $ pip install -e .\n $ pip install pytest invoke\n $ invoke tests.prepare-version 9.0\n $ OPENERP_SERVER=/tmp/test-anthem-config-9.0.cfg py.test -s tests\n\nOdoo 10.0 (Python 2):\n\n.. code\n\n $ git clone https://github.com/camptocamp/anthem.git\n Cloning into 'anthem'...\n $ cd anthem\n $ virtualenv -p python2 env-10.0\n $ source env-10.0/bin/activate\n $ pip install -e .\n $ pip install pytest invoke\n $ invoke tests.prepare-version 10.0\n $ OPENERP_SERVER=/tmp/test-anthem-config-10.0.cfg py.test -s tests\n\nOdoo 11.0 (Python 3):\n\n.. code\n\n $ git clone https://github.com/camptocamp/anthem.git\n Cloning into 'anthem'...\n $ cd anthem\n $ virtualenv -p python3 anthem-env-11.0\n $ source anthem-env-11.0/bin/activate\n $ pip install -e .\n $ pip install pytest invoke\n $ invoke tests.prepare-version 11.0\n $ OPENERP_SERVER=/tmp/test-anthem-config-11.0.cfg py.test -s tests\n\nIf need be, you can drop the test database with (adapt the version):\n\n.. code\n\n $ invoke tests.dropdb 9.0\n\nThese steps will download the nightly release of Odoo install it as a package\nthen install a database, so tests can be run against it (and that's also why it\nis important to use a virtualenv!)\n\nWhen calling ``pytest``, you have to define the ``OPENERP_SERVER`` environment\nvariable with the configuration file for the Odoo database that will be used\nfor the tests.\n\nLyrics\n======\n\nLyrics are predefined snippets written for the most commonly used cases, like:\n\n* `Loading data`_: read (load) a data file (CSV format is supported at the moment)\n* `Provide XMLIDs for records`_\n* `Upserting a record`_: essentially search for the record and update it with\n given values, or create it in case it isn't there yet\n* `Uninstalling a module(s)`_\n* `Updating module configuration`_: pre-defining a set of settings for a particular\n module (or set of modules)\n\n.. _loading-data:\n\nLoading data\n------------\n\nThere's an ability to supply data in a handy CSV format - Anthem is just able to\nparse and load those. ``load_csv`` method is meant to be the main entrypoint for\ndoing so:\n\n+--------------------+----------------------------------------------------------+\n| Param | Description |\n+====================+==========================================================+\n| ``ctx`` | Anthem context instance |\n+--------------------+----------------------------------------------------------+\n| ``model`` | Odoo model name or model klass from ``ctx.env`` |\n+--------------------+----------------------------------------------------------+\n| ``path`` | absolute or relative path to CSV file. |\n| | If a relative path is given you must provide a value for |\n| | ``ODOO_DATA_PATH`` in your environment |\n| | or set ``--odoo-data-path`` option. |\n+--------------------+----------------------------------------------------------+\n| ``header`` | whitelist of CSV columns to load |\n+--------------------+----------------------------------------------------------+\n| ``header_exclude`` | blacklist of CSV columns to ignore |\n+--------------------+----------------------------------------------------------+\n| ``fmtparams`` | keyword params for ``csv_unireader`` |\n+--------------------+----------------------------------------------------------+\n\nCSV format is similar to that of an Odoo export format, namely:\n* it should contain a set of field names in a header\n* each consecutive row defines a set of values to use to create records on a given model\n\nRecords\n-------\n\nThis section is dedicated to methods that operate on records.\n\nProvide XMLIDs for records\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThis is as simple as calling ``anthem.records.add_xmlid`` with a record as a\nfirst parameter and a desired XMLID as a second.\n\nE.g., you have a very special ``res.partner`` record ``foo``:\n\n.. code:: python\n\n from anthem.records import add_xmlid\n\n [...]\n @anthem.log\n def add_xmlid_to_foo(ctx):\n \"\"\"Make Jhony Foo great again.\"\"\"\n foo = ctx.env['res.partner'].create({\n 'name': 'Jhony',\n 'lastname': 'Foo',\n })\n add_xmlid(foo, '__setup__.res_partner_foo_jhony')\n\nFrom now on, Jhony could be referred to as\n``ctx.env.ref('__setup__.res_partner_foo_jhony')``.\n\nUpserting a record\n^^^^^^^^^^^^^^^^^^\n\n**\"Upsert\"** is a commonly used term that basically stands for UPDATE or INSERT.\nAnthem features a facility that is capable of executing that kind of operations\non Odoo databases. There is a method called ``anthem.records.create_or_update``\nthat relies on the model, a set of values and a record XMLID.\n\nIf your goal is to create the record in the first place as well as provide an\nXMLID, as was shown in a previous section, ``create_or_update`` does just what\nyou need.\n\nExample\n+++++++\n\n.. code:: python\n\n from anthem.records import create_or_update\n\n [...]\n @anthem.log\n def create_partner_foo(ctx):\n \"\"\"Ensure that Jhony Foo is known to our Company.\"\"\"\n create_or_update(\n ctx,\n model='res.partner',\n xmlid='__setup__.res_partner_foo_jhony',\n values={\n 'name': 'Jhony',\n 'lastname': 'Foo',\n }\n )\n\n\nUpon calling, it would:\n\n* Try to fetch the record by a given XMLID\n* If the record was found:\n * Update it with the given values (call ``record.update(values)`` on it)\n* Otherwise:\n * Create a record with given values (call ``model.create(values)``)\n * Provide an XMLID to it (using ``anthem.records.add_xmlid``)\n* In any case: return that record back\n\nModules\n-------\n\nThis section is dedicated to methods that operate on modules.\n\nUninstalling a module(s)\n^^^^^^^^^^^^^^^^^^^^^^^^\n\nSometimes you just need some particular module to be gone from your instance(s)\nand you'd like it done programmatically, without having to reach for each\ninstance, search for it and hit the **\"Uninstall\"** button. Anthem can do the\njob for you: you can simply call an ``anthem.lyrics.modules.uninstall`` with a\nlist of module names that you won't use anymore.\n\nExample (given that there are modules ``foo`` and ``bar`` that you want gone):\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n.. code:: python\n\n from anthem.lyrics.modules import uninstall\n\n [...]\n @anthem.log\n def uninstall_foo(ctx):\n \"\"\"Get rid of legacy `foo` and `bar`.\"\"\"\n uninstall(['foo', 'bar'])\n\nUpdating translations on module(s)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nIn a similar fashion, sometimes you need to update translations on a set of\nmodules - ``anthem.lyrics.modules.update_translations`` is there for you :wink:\n\nExample is similar to the previous case - just call the different method instead.\n\nUpdating module configuration\n=============================\n\nBy using this feature, you're able to preconfigure your module setup via Anthem\nsong: you'll just need a straight idea what needs to be done, an instance of a\nconfiguration settings model for your module (model name will do as well) and a\nmapping (in a form of Python dictionary) of technical configuration names with\ndesired values.\n\nHere's a brief example of ``sale`` module configuration:\n\n.. code:: python\n\n from anthem.lyrics import settings\n\n [...]\n @anthem.log\n def define_sale_settings(ctx):\n \"\"\"Configure `sale` module.\"\"\"\n model = ctx.env['sale.config.settings']\n # it's okay to use 'sale.config.settings' as a string though\n model = 'sale.config.settings'\n settings(ctx, model, {\n 'default_invoice_policy': 'delivery',\n ...: ...,\n 'et': 'cetera',\n })\n\nBe advised: settings onchange are not triggered by this function.\n\nUsage within Marabunta\n======================\n\nAnthem and `Marabunta `_ are powerful\nwhen combined: you can call a set of songs inside Marabunta's migration steps\nusing following syntax:\n\n.. code:: yaml\n\n ...\n - version: 10.0.1.0.0\n operations:\n pre:\n - anthem songs.upgrade.your_pre_song::main\n post:\n - anthem songs.upgrade.your_post_song::main\n\nBy using this approach, you possess the power of full-pledged Odoo\n``Environment`` instance initialized on a live database while performing a\nregular upgrade powered by Marabunta.\n\nLet's say that you have to enable multicompany with inter-company transactions\non a migration to next version, lets say, 10.0.1.1.0. In this case, you'll need\na song to back this up on a Python side first:\n\n.. code:: python\n\n # songs.upgrade.upgrade_10_0_1_1_0.py\n from anthem.lyrics import settings\n\n [...]\n @anthem.log\n def enable_multicompany(ctx):\n \"\"\"Set up multicompany.\"\"\"\n settings(ctx, 'base.config.settings', {\n # enable multicompany as it is\n 'group_light_multi_company': True,\n # enable inter-company transactions\n 'module_inter_company_rules': True,\n })\n\n [...]\n @anthem.log\n def main(ctx):\n enable_multicompany(ctx)\n\nAnd then you'll need to call it on a migration step:\n\n.. code:: yaml\n\n ...\n - version: 10.0.1.1.0\n operations:\n post:\n - anthem songs.upgrade.upgrade_10_0_1_1_0::main\n\nBoom! Enjoy your new multicompany settings.\n\nThat's all, folks!\n==================\n\nThanks for reading. Happy hacking and enjoy your songwriting skills!\n\n\n.. :changelog:\n\nRelease History\n===============\n\nUnreleased\n----------\n\n**Features**\n\n**Bugfixes**\n\n**Improvements**\n\n**Documentation**\n\n**Build**\n\n0.13.0 (2019-08-29)\n-------------------\n\n**Features**\n\n- BREAKING: Change default `overwrite` value for\n ``lyrics.modules.update_translations`` to False\n\n- Support odoo saas versions\n\n**Bugfixes**\n\n- Make ``lyrics.modules.update_translations`` Odoo >= 11.0 compatible\n\n0.12.2 (2019-06-21)\n-------------------\n\n**Improvements**\n\n- Add 'tracking_disable=True' as default context to load CSVs\n (avoid creating 'mail.message' records and speed up the import process)\n\n**Build**\n\n- Packaging: build universal wheels\n\n0.12.1 (2018-11-09)\n-------------------\n\n**Documentation**\n\n- Improve API docs\n\n**Build**\n\n- The lib is now automaticaly published to Pypi by Travis when a tag is added\n\n0.12.0 (2018-03-19)\n-------------------\n\n**Features**\n\n- Add a new option ``--odoo-data-path`` or env. variable ``ODOO_DATA_PATH``.\n- The ``lyrics.loaders.load_csv`` method now accepts a relative path appended to the\n new option \"odoo data path\". Absolute paths are still allowed.\n\n**Bugfixes**\n\n- ``lyrics.loaders.update_translations`` is now deprecated as it was a duplicate from\n ``lyrics.modules.update_translations``\n\n0.11.0 (2017-12-22)\n-------------------\n\n**Features**\n\n - Make it Python 3 and Odoo 11 compatible\n\n**Build**\n\n - Switch to unicodecsv instead of custom code to handle that\n - Fix the flapping tests setup. Removed tox which was provoking that for some reason.\n - Add a lint check in build\n\n\n0.10.0 (2017-09-19)\n-------------------\n\n**Bugfixes**\n\n* Disable Odoo's xmlrpc port\n\n**Build**\n\n- Add 'build-release.sh' script with commands to build and upload the dist files\n\n0.9.0 (2017-08-21)\n------------------\n\n**Features**\n\n- New lyrics: modules.update_translations to update translations from po files\n- Lyrics 'uninstall' has been moved from uninstaller.uninstall to modules.uninstall,\n previous path is still working for backward compatibility\n- New lyrics context manager 'records.switch_company'\n\n\n0.8.0 (2017-07-24)\n------------------\n\n**Features**\n\n- New lyrics: Define settings like being in the interface\n- Add CSV Loading columns control (columns whitelist and blacklist)\n\n**Bugfixes**\n\n- Fix error when loading CSV with no rows\n\n\n0.7.0 (2017-04-28)\n------------------\n\n**Improvements**\n\n- Split CSV loaders in functions to be able to get rows from a CSV or to load\n rows, enabling to modify the rows before loading them for instance\n- create_or_update lyrics accepts now a model so we can change its env (user,\n context, ...)\n- New lyrics to uninstall module\n\n\n0.6.0 (2017-01-18)\n------------------\n\n**Features**\n\n- CSV loaders can be used with a model in order to pass a context\n\n**Bugfixes**\n\n- Fix tests by installing eggs from odoo/requirements.txt\n\n\n0.5.0 (2016-10-12)\n------------------\n\n**Features**\n\n- Support Odoo 10\n- Allow to specify the encoding of an imported file, default is utf8\n\n**Bugfixes**\n\n- 'records.add_xmlid' lyrics do no longer fail when it already exists\n\n\n0.4.0 (2016-08-19)\n------------------\n\n**Features**\n\n- New lyrics: CSV loaders from path or stream\n- New ``ctx.log_line`` to print a line respecting the current indentation\n\n**Improvements**\n\n- Add tests for the existing lyrics\n\n**Build**\n\n- Finally green builds!\n\n\n0.3.0 (2016-07-26)\n------------------\n\n**Features**\n\n- Add --quiet mode\n\n**Fixes**\n\n- Encode the logged strings to the default encoding or utf8\n- Allow to use Ctrl-c to stop anthem.\n- Set openerp's loglevel to ERROR, its logs clutter anthem's own outputs\n\n0.2.0 (2016-07-22)\n------------------\n\n**Features**\n\n* Ability to log descriptions and timings in songs with the\n context manager ``Context.log`` and the decorator ``anthem.log``.\n\n ::\n\n from anthem import log\n\n @log\n def setup_company(ctx):\n \"\"\" Setup company \"\"\"\n # do stuff\n with ctx.log('other stuff'):\n # do other stuff\n\n @log\n def load_data(ctx):\n \"\"\" Load data \"\"\"\n # load\n\n @log\n def main(ctx):\n setup_company(ctx)\n load_data(ctx)\n\n If we run anthem on ``main``, we will get:\n\n ::\n\n running... main\n running... Setup company\n running... other stuff\n other stuff: 0.850s\n Setup company: 1.100s\n running... Load data\n Load data: 2.900s\n main: 4.000s\n\n0.1.3 (2016-07-07)\n------------------\n\n**Fixes**\n\n- Correct lyric to create or update a record\n\n0.1.2 (2016-07-07)\n------------------\n\n- Add a lyric to create a xmlid\n- Add a lyric to create or update a record\n\n0.1.1 (2016-06-23)\n------------------\n\n- Fixed crash on non-editable install.\n\n0.1.0 (2016-06-23)\n------------------\n\nInitial release.\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/camptocamp/anthem", "keywords": "", "license": "LGPLv3+", "maintainer": "", "maintainer_email": "", "name": "anthem", "package_url": "https://pypi.org/project/anthem/", "platform": "", "project_url": "https://pypi.org/project/anthem/", "project_urls": { "Homepage": "https://github.com/camptocamp/anthem" }, "release_url": "https://pypi.org/project/anthem/0.13.0/", "requires_dist": [ "future", "unicodecsv" ], "requires_python": "", "summary": "Make your Odoo scripts sing.", "version": "0.13.0", "yanked": false, "yanked_reason": null }, "last_serial": 11759188, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "67b4e27f1d8f11652af01a1e33ea1435", "sha256": "d48794087dce3bbacdaf190401f79c57066c5fa3182e5ab659cd834f461481f2" }, "downloads": -1, "filename": "anthem-0.1.0.tar.gz", "has_sig": false, "md5_digest": "67b4e27f1d8f11652af01a1e33ea1435", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3228, "upload_time": "2016-06-23T14:33:52", "upload_time_iso_8601": "2016-06-23T14:33:52.666450Z", "url": "https://files.pythonhosted.org/packages/70/d7/8e69ed0c7276de17936978f32bc64c6e78923a174ffc19241778ed0aba48/anthem-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "17672d92f9272c9baf63025ec816988f", "sha256": "068620009b10b6767bdd564e2f41261839a3e6823a036f40fd0f413f1320e243" }, "downloads": -1, "filename": "anthem-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "17672d92f9272c9baf63025ec816988f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5654, "upload_time": "2016-06-23T19:15:35", "upload_time_iso_8601": "2016-06-23T19:15:35.511954Z", "url": "https://files.pythonhosted.org/packages/63/22/840aa63a5dd1c0aef2d8a877ac79fefdb11b613c4bd510dafee599ff5aa2/anthem-0.1.1-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c6c0e40bab66243716b2258b184dc274", "sha256": "a3cc944a9aa7e6ec912182734c8ca66064bd039c3530fe7bdab89b71a9894f5f" }, "downloads": -1, "filename": "anthem-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c6c0e40bab66243716b2258b184dc274", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5975, "upload_time": "2016-06-23T19:15:59", "upload_time_iso_8601": "2016-06-23T19:15:59.562473Z", "url": "https://files.pythonhosted.org/packages/f6/18/02e7071d44a8640faabbc5693d3a8d324860adf8ecf5bbcb4724a18e1a50/anthem-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a90148c6756a9f95f7fd43d9ac7cb50b", "sha256": "748800e48bd77e951ba1f89b140e4caf8147d0cc91908012c52fe101fe68f86d" }, "downloads": -1, "filename": "anthem-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "a90148c6756a9f95f7fd43d9ac7cb50b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7960, "upload_time": "2016-07-07T06:47:56", "upload_time_iso_8601": "2016-07-07T06:47:56.182933Z", "url": "https://files.pythonhosted.org/packages/20/65/a52999cefa85834fab0318d484776ef085ad3074c7b4dc0931c443514444/anthem-0.1.2-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fd582779685c54cb6844fbe3f347b098", "sha256": "54c45b50d4cb9daf8e9030c93ba28c4d633752e5e8811a1e72cac43ccf560815" }, "downloads": -1, "filename": "anthem-0.1.2.tar.gz", "has_sig": false, "md5_digest": "fd582779685c54cb6844fbe3f347b098", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7192, "upload_time": "2016-07-07T06:46:40", "upload_time_iso_8601": "2016-07-07T06:46:40.397548Z", "url": "https://files.pythonhosted.org/packages/7a/3b/77340dd74b7809704834e9de47e66250cd544b8dc30ee6579098164ff477/anthem-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "7767bb79c41ae739e41b878a38159b27", "sha256": "a677d77cf46afc052b4649b7f78e06e61154143f9e72e4d906c0dbd184a8a263" }, "downloads": -1, "filename": "anthem-0.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "7767bb79c41ae739e41b878a38159b27", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8007, "upload_time": "2016-07-07T07:48:13", "upload_time_iso_8601": "2016-07-07T07:48:13.893177Z", "url": "https://files.pythonhosted.org/packages/87/c0/2f1160a21b983e7bd60767df5506f09b5c1254a4cf35fef5816bbbc39b49/anthem-0.1.3-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1fc1fea3b917a06e26f8454a0aee9441", "sha256": "2b8184b779587b2aae49287675b3bfeed464111fc4886682f0451831109d14ce" }, "downloads": -1, "filename": "anthem-0.1.3.tar.gz", "has_sig": false, "md5_digest": "1fc1fea3b917a06e26f8454a0aee9441", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7228, "upload_time": "2016-07-07T07:47:51", "upload_time_iso_8601": "2016-07-07T07:47:51.672308Z", "url": "https://files.pythonhosted.org/packages/41/18/b18a08504b13c1c35365bfa165a3b128612bc2c2dc6cbc3669ce7b63b1fb/anthem-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "1dc9d40ce44c72c3adb960b167298a1d", "sha256": "f5db04f072e576d960bb4b4acab0daea508ff1bc0afb42abcbf207f9d045b06c" }, "downloads": -1, "filename": "anthem-0.10.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "1dc9d40ce44c72c3adb960b167298a1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16272, "upload_time": "2017-09-19T11:02:34", "upload_time_iso_8601": "2017-09-19T11:02:34.305171Z", "url": "https://files.pythonhosted.org/packages/6f/7e/efbc0bddd7fffb9de2467f7d15158d43b20a751cece9e27531c2519be0f0/anthem-0.10.0.linux-x86_64.tar.gz", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "052e6fc7760783ff79f4651a7697dc1b", "sha256": "dab18215ea255575c9cddcfd772d6eeeb04e789cd5cad2211cb36982c4dd3f96" }, "downloads": -1, "filename": "anthem-0.10.0-py2-none-any.whl", "has_sig": false, "md5_digest": "052e6fc7760783ff79f4651a7697dc1b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16408, "upload_time": "2017-09-19T11:02:32", "upload_time_iso_8601": "2017-09-19T11:02:32.638705Z", "url": "https://files.pythonhosted.org/packages/aa/5d/66f6bdd8465e92a38e221892ce926db6197ec7e1b20f10891ed00fc46d5f/anthem-0.10.0-py2-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "0c8fc33f83f777cb8c5acc996467dc09", "sha256": "a4cc4d2194604d76a2948613bad5890f09f90bcf07f344d49f5f222ad8f09771" }, "downloads": -1, "filename": "anthem-0.11.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "0c8fc33f83f777cb8c5acc996467dc09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15371, "upload_time": "2017-12-22T09:50:30", "upload_time_iso_8601": "2017-12-22T09:50:30.032832Z", "url": "https://files.pythonhosted.org/packages/c6/f6/20435c8b56718a35d362a6125c079ea050a46ea965d5c5580632f663cf6d/anthem-0.11.0.linux-x86_64.tar.gz", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "218eaaeea74f1048fb243fea2ff3a234", "sha256": "3dadee171c4acc789d87b115eb373b902890ad6fd5674116a38ed149ba4da298" }, "downloads": -1, "filename": "anthem-0.11.0-py2-none-any.whl", "has_sig": false, "md5_digest": "218eaaeea74f1048fb243fea2ff3a234", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16742, "upload_time": "2017-12-22T09:50:22", "upload_time_iso_8601": "2017-12-22T09:50:22.171676Z", "url": "https://files.pythonhosted.org/packages/03/f5/dd825c6509d48c6b27d465fab0e442e683b1b8db1fd4ea9eea4d7f475248/anthem-0.11.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "93d56c7acc61413137fb674b59e1955f", "sha256": "e5c7744e09714fc5d65da1b8ae51e2a442f82854c24a7ded853d426aca4c328e" }, "downloads": -1, "filename": "anthem-0.11.0-py3-none-any.whl", "has_sig": false, "md5_digest": "93d56c7acc61413137fb674b59e1955f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16744, "upload_time": "2017-12-22T09:50:24", "upload_time_iso_8601": "2017-12-22T09:50:24.903554Z", "url": "https://files.pythonhosted.org/packages/12/13/474bc69aa9f2dcd9fade70c8b36a1b088ca226183cdd0c2a8fad17202e42/anthem-0.11.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "f5e43327d5602cd65dd2baf9c45b5970", "sha256": "da7f1a266a8cfa20809f4d1fd6aafedb3dcb95e4781674c3a044c79d71a041d6" }, "downloads": -1, "filename": "anthem-0.12.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "f5e43327d5602cd65dd2baf9c45b5970", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16156, "upload_time": "2018-03-19T14:05:23", "upload_time_iso_8601": "2018-03-19T14:05:23.974964Z", "url": "https://files.pythonhosted.org/packages/14/c0/ce36967cd7899f167f20d66512155e577072a41f0ae4944a17d164e6d546/anthem-0.12.0.linux-x86_64.tar.gz", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5c9559826b4b67a0290769b1b2e54a05", "sha256": "2c343404480cc21e3dceb61fee32042348c3d7c88f298a212008f8427bdff5bb" }, "downloads": -1, "filename": "anthem-0.12.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5c9559826b4b67a0290769b1b2e54a05", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17513, "upload_time": "2018-03-19T14:05:20", "upload_time_iso_8601": "2018-03-19T14:05:20.885217Z", "url": "https://files.pythonhosted.org/packages/64/2d/a87aae9a144b8660c6bb394a58f612f4597b078b62a81cde4bbcf0772c07/anthem-0.12.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "87c172b2453b1d69645ef5615d2e305a", "sha256": "3abe189314c029c2a847e3fbd1fbf894ee24cc4fe0a432bd1af18944f8b75e44" }, "downloads": -1, "filename": "anthem-0.12.0-py3-none-any.whl", "has_sig": false, "md5_digest": "87c172b2453b1d69645ef5615d2e305a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17514, "upload_time": "2018-03-19T14:05:22", "upload_time_iso_8601": "2018-03-19T14:05:22.483219Z", "url": "https://files.pythonhosted.org/packages/55/4a/815b1abb73c814afafc138876eb53868d19775110d83d39389bf6608ba53/anthem-0.12.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.12.1": [ { "comment_text": "", "digests": { "md5": "60d412b83f77893b99feff2d9abfe7ef", "sha256": "b40f83122cf38400c1683422fe23092a1f67ad154de850aa915036a2eadba0cc" }, "downloads": -1, "filename": "anthem-0.12.1-py2-none-any.whl", "has_sig": false, "md5_digest": "60d412b83f77893b99feff2d9abfe7ef", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18961, "upload_time": "2018-11-09T15:05:31", "upload_time_iso_8601": "2018-11-09T15:05:31.226711Z", "url": "https://files.pythonhosted.org/packages/e3/bd/d40a8be3f78539ea38f32f56df346d6e735cf242d8102f13eba3bddf2b5e/anthem-0.12.1-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d01290c40c895c3aaa34e501bc9cacfc", "sha256": "b6198036ad81065de1aafffb8435d95d85524f1fe1b0174643065965dfd2cedd" }, "downloads": -1, "filename": "anthem-0.12.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d01290c40c895c3aaa34e501bc9cacfc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18962, "upload_time": "2018-11-09T15:04:34", "upload_time_iso_8601": "2018-11-09T15:04:34.800855Z", "url": "https://files.pythonhosted.org/packages/4b/66/7d8bf42505fdc52d8e90d5a5b272f5a9d3421b6af10f5db154051324c2a1/anthem-0.12.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "14ce7f297f61a80d35b0a2128e2dbb63", "sha256": "ce140da6527b8308ea4f90d262554bdf9b02df26d0c6e7cc103748096e8d48ec" }, "downloads": -1, "filename": "anthem-0.12.1.tar.gz", "has_sig": false, "md5_digest": "14ce7f297f61a80d35b0a2128e2dbb63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24235, "upload_time": "2018-11-09T15:04:36", "upload_time_iso_8601": "2018-11-09T15:04:36.162045Z", "url": "https://files.pythonhosted.org/packages/82/49/7616bee8adfe5a61fe6807cbafd13e759c1ba8ab0f5dff82581d40380ad1/anthem-0.12.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.12.2": [ { "comment_text": "", "digests": { "md5": "4a518f423ef063c84cf4b2f1b07e889d", "sha256": "dfb0c91eccff2e21619315d8c3c603c5e7d719efb5e1c4fe918398b734bdcabc" }, "downloads": -1, "filename": "anthem-0.12.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4a518f423ef063c84cf4b2f1b07e889d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19111, "upload_time": "2019-06-21T12:49:45", "upload_time_iso_8601": "2019-06-21T12:49:45.184263Z", "url": "https://files.pythonhosted.org/packages/cc/f5/e81dc45654610efb8fcaee87fe2f55a7adaf3b0bdc777195cc342e3e7880/anthem-0.12.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "71349a12c45b6fe9825988d3734253c6", "sha256": "ca55e2084b9ea0c4b2c73f603f27fc2ac531a78b32873834f04e124713e1054b" }, "downloads": -1, "filename": "anthem-0.12.2.tar.gz", "has_sig": false, "md5_digest": "71349a12c45b6fe9825988d3734253c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24315, "upload_time": "2019-06-21T12:49:47", "upload_time_iso_8601": "2019-06-21T12:49:47.187961Z", "url": "https://files.pythonhosted.org/packages/5f/83/6c49a4dab7f85343e03838d6676d15ad34d61646668815245501ae577bce/anthem-0.12.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "a074330b2d27c85bda60bf0d84132d96", "sha256": "01b3e83d77a022ff28af2a3e364e2f17a248070d9a5ce86b88cb6680fca8cfac" }, "downloads": -1, "filename": "anthem-0.13.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a074330b2d27c85bda60bf0d84132d96", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19464, "upload_time": "2019-10-29T14:06:30", "upload_time_iso_8601": "2019-10-29T14:06:30.303905Z", "url": "https://files.pythonhosted.org/packages/09/9e/76b890f4d126160e3134a536c67984491e4a3f0293cac556becd8c7447f7/anthem-0.13.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "49b72cf27b091d75e9a8b804bf4e7706", "sha256": "0cbeded3145e78c869b919d1a6c0d1dadb67c12f04a23804528dd7191f672577" }, "downloads": -1, "filename": "anthem-0.13.0.tar.gz", "has_sig": false, "md5_digest": "49b72cf27b091d75e9a8b804bf4e7706", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24431, "upload_time": "2019-10-29T14:06:32", "upload_time_iso_8601": "2019-10-29T14:06:32.282974Z", "url": "https://files.pythonhosted.org/packages/72/04/2ed89fea87e4a188bf6a58b66ea70bd5474f6b16327876f40458da94537e/anthem-0.13.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b4a87b274cc7af3300281cec8f4806a2", "sha256": "e9399fbfa6dd6b49fac258058dbb9d037bda13e47b25c56dfdfb22b893c403bf" }, "downloads": -1, "filename": "anthem-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b4a87b274cc7af3300281cec8f4806a2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9402, "upload_time": "2016-07-22T13:37:39", "upload_time_iso_8601": "2016-07-22T13:37:39.925487Z", "url": "https://files.pythonhosted.org/packages/2d/3a/8a3ffbd8ac012e791061e68e303d497bfc4f3c19f5b3c3c6289a29ba862a/anthem-0.2.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f5efa7374ab8ff6dca228ca9dc86bf3d", "sha256": "14cb571bfad300e68be98a7df74fb41a0e9aa69f4334bebf91c544858e6295d5" }, "downloads": -1, "filename": "anthem-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f5efa7374ab8ff6dca228ca9dc86bf3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8182, "upload_time": "2016-07-22T13:36:04", "upload_time_iso_8601": "2016-07-22T13:36:04.663559Z", "url": "https://files.pythonhosted.org/packages/bf/24/e89c17d58e8b8e4568081c7b36d9dc3158bdca5210682c123f1b3aac86ec/anthem-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "f0628e21189cde696e065e20310951fc", "sha256": "f42391178ec4e7a85bcf71a405e619c059dfb4721bd08601e00f5069d476c494" }, "downloads": -1, "filename": "anthem-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f0628e21189cde696e065e20310951fc", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10290, "upload_time": "2016-07-26T13:54:36", "upload_time_iso_8601": "2016-07-26T13:54:36.814794Z", "url": "https://files.pythonhosted.org/packages/d9/69/95de3e8e06a175164be1e6c5315bcc573e9b690434644ad1746914040b5f/anthem-0.3.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d7c42ebbd4f550fde0a236251e83b698", "sha256": "3ef15a1b74b27d9d8b998d8e2f9f63468ecd5e92c1fb0fdb41a17e0c8aaac6e8" }, "downloads": -1, "filename": "anthem-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d7c42ebbd4f550fde0a236251e83b698", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8835, "upload_time": "2016-07-26T13:54:31", "upload_time_iso_8601": "2016-07-26T13:54:31.597122Z", "url": "https://files.pythonhosted.org/packages/77/c0/95bfbb0aeeeb2aaee29c2dca00da66f8b8675a49a658694a37c62fc4556f/anthem-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "31e177ba8b215e23a845769fe062e799", "sha256": "4c561b9f7cc7b90e7d9cf9c25f997e700dfd118e4295dc590c6a0e9efb6c7919" }, "downloads": -1, "filename": "anthem-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "31e177ba8b215e23a845769fe062e799", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12670, "upload_time": "2016-08-19T07:22:27", "upload_time_iso_8601": "2016-08-19T07:22:27.426488Z", "url": "https://files.pythonhosted.org/packages/e3/5b/635f8d13af3427beae16b87a26dfa31c05d2a4ccb9479d93ab91df47bf7c/anthem-0.4.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8fdec7d238d1d6705d2871b993038dde", "sha256": "2954e6513d8a8ead9e14a32fa83d734ee87a5e7351774d130a9102981c872cd1" }, "downloads": -1, "filename": "anthem-0.4.0.tar.gz", "has_sig": false, "md5_digest": "8fdec7d238d1d6705d2871b993038dde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10327, "upload_time": "2016-08-19T07:22:20", "upload_time_iso_8601": "2016-08-19T07:22:20.363968Z", "url": "https://files.pythonhosted.org/packages/fa/7d/df420be74f3a0d8e3d811238346c2d4cc6e646bf76ed52900c836f5fceb7/anthem-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "built for Linux-4.4.0-38-generic-x86_64-with-glibc2.7", "digests": { "md5": "388e29b91fc14fc97f883ed2941e00ef", "sha256": "f94f5c7f26d9c62fd2b45fd71a47658bcbecbc6df7df1405555a6cb6886e2326" }, "downloads": -1, "filename": "anthem-0.5.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "388e29b91fc14fc97f883ed2941e00ef", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 11624, "upload_time": "2016-10-12T09:47:41", "upload_time_iso_8601": "2016-10-12T09:47:41.982132Z", "url": "https://files.pythonhosted.org/packages/10/b2/2cfa41cb41f79dc2a9cb3eb8764085ad0ff15375e60c050c043e43927bd2/anthem-0.5.0.linux-x86_64.tar.gz", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1600be9654c7d71e2d88b38c52f8cf19", "sha256": "a4030c0a42de7f7b207f8d8d1dbee0f496c62a07827800142063030a53e8bd3a" }, "downloads": -1, "filename": "anthem-0.5.0-py2.7.egg", "has_sig": false, "md5_digest": "1600be9654c7d71e2d88b38c52f8cf19", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 16790, "upload_time": "2016-10-12T09:47:57", "upload_time_iso_8601": "2016-10-12T09:47:57.373847Z", "url": "https://files.pythonhosted.org/packages/2f/00/6b4080042362601d987bef445f23c4ba7be00c631f9e2282658e474daec2/anthem-0.5.0-py2.7.egg", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fffea2b362c30056fdb5b31e2ea361bb", "sha256": "1119652dff1fdcded62ea95de7b16700b69a00f9fe2720613edd3c404f499f78" }, "downloads": -1, "filename": "anthem-0.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "fffea2b362c30056fdb5b31e2ea361bb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12937, "upload_time": "2016-10-12T09:48:06", "upload_time_iso_8601": "2016-10-12T09:48:06.425007Z", "url": "https://files.pythonhosted.org/packages/ae/fa/3d7f6e8b240a53bab036319f64657f14d9f498697f4c51ef1ae33d399d96/anthem-0.5.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fa31e5a0ae3e5a8538f5bafade4ca020", "sha256": "2712b6d280b3d28d54f2cf5580cb7e6fb3e43ec20b7e0743e87252f0a41b38f6" }, "downloads": -1, "filename": "anthem-0.5.0.tar.gz", "has_sig": false, "md5_digest": "fa31e5a0ae3e5a8538f5bafade4ca020", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10543, "upload_time": "2016-10-12T09:47:27", "upload_time_iso_8601": "2016-10-12T09:47:27.579316Z", "url": "https://files.pythonhosted.org/packages/ce/84/841207330f10ae4df80657ded64bef8f6ffe0c6269d0efba3099e1b9a637/anthem-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "18844a90134ba572c967cf88768af9bc", "sha256": "8327b6fb13c2f38af1fb5d704a2e065239666fd7b819219fc133d7fb2090b740" }, "downloads": -1, "filename": "anthem-0.6.0-py2.7.egg", "has_sig": false, "md5_digest": "18844a90134ba572c967cf88768af9bc", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17073, "upload_time": "2017-01-18T15:55:03", "upload_time_iso_8601": "2017-01-18T15:55:03.096226Z", "url": "https://files.pythonhosted.org/packages/0b/9d/e64f9a4588e79fd1ef11992afc30364dfa08112a6c705e12d0791a26be72/anthem-0.6.0-py2.7.egg", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c97f2ad3abb47aca516b3b5765361a63", "sha256": "37edc32ce0860d898ad1fa67255eab6ec287d80c2d3a3da08abd257e36488337" }, "downloads": -1, "filename": "anthem-0.6.0-py2-none-any.whl", "has_sig": false, "md5_digest": "c97f2ad3abb47aca516b3b5765361a63", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13018, "upload_time": "2017-01-18T15:55:21", "upload_time_iso_8601": "2017-01-18T15:55:21.539668Z", "url": "https://files.pythonhosted.org/packages/47/4e/c03722d6be8ead465035d0d85579cc946fb5b78b0aa0a1b0003598d71394/anthem-0.6.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "884e597e61c73d726ad21ccf9e444197", "sha256": "7e8811f44a5d7cdb4a5c817451951ca2d90bc479a84e28db65142666a3152467" }, "downloads": -1, "filename": "anthem-0.6.0.tar.gz", "has_sig": false, "md5_digest": "884e597e61c73d726ad21ccf9e444197", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12951, "upload_time": "2017-01-18T15:55:35", "upload_time_iso_8601": "2017-01-18T15:55:35.542886Z", "url": "https://files.pythonhosted.org/packages/bb/d1/698ad7936846e1e2651d9599c6bf44737048b974ffd88d32979a23f58507/anthem-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "da38d85f981eebebbb727d3536b8ffb9", "sha256": "37122150887967d386f473c13c1b018b26c2e058c503b44c9a520c4a1af35960" }, "downloads": -1, "filename": "anthem-0.7.0-py2.7.egg", "has_sig": false, "md5_digest": "da38d85f981eebebbb727d3536b8ffb9", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18578, "upload_time": "2017-04-28T12:52:35", "upload_time_iso_8601": "2017-04-28T12:52:35.610748Z", "url": "https://files.pythonhosted.org/packages/a1/3e/219578927e8b3b4cf74ce5c32cb9b7c18cc4844d4eae755757f330b6af80/anthem-0.7.0-py2.7.egg", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "eb4255d788796c1e40b2c93be7130c06", "sha256": "662169dd823c1548fccad502270f2f772329e23f47c2e2e53f814c8149cc48c8" }, "downloads": -1, "filename": "anthem-0.7.0-py2-none-any.whl", "has_sig": false, "md5_digest": "eb4255d788796c1e40b2c93be7130c06", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14087, "upload_time": "2017-04-28T12:52:43", "upload_time_iso_8601": "2017-04-28T12:52:43.599334Z", "url": "https://files.pythonhosted.org/packages/45/5b/ee94e331e0d2cb3bd6ccc5a141103ca7bc33810242d6f15cb65ab24308a8/anthem-0.7.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e8b2391fb119258bdf424fb45132a146", "sha256": "50ebd8d4f25555daffb66cc1a31c5fd23378becedb1eb7e1b18fac05c16e4296" }, "downloads": -1, "filename": "anthem-0.7.0.tar.gz", "has_sig": false, "md5_digest": "e8b2391fb119258bdf424fb45132a146", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11094, "upload_time": "2017-04-28T12:52:24", "upload_time_iso_8601": "2017-04-28T12:52:24.376173Z", "url": "https://files.pythonhosted.org/packages/1c/26/9dc79635cffc0ca5462b421766ff8df7101b2ec7e03ba8619d6b8626051a/anthem-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "76faa9ca7441ab3b8c78b1924fa1601f", "sha256": "a8b009c4166118d79d37863c65241c4caede1be5ce7e3b0320796c519ec0135a" }, "downloads": -1, "filename": "anthem-0.8.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "76faa9ca7441ab3b8c78b1924fa1601f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14375, "upload_time": "2017-07-24T14:23:25", "upload_time_iso_8601": "2017-07-24T14:23:25.635001Z", "url": "https://files.pythonhosted.org/packages/f6/61/ff80399f1f7597e25caa2942757e6db17d73fa20337204ad9089404faa4b/anthem-0.8.0.linux-x86_64.tar.gz", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d6aa0053fc2fdb0d47df156c72bb5bbd", "sha256": "94598a09f52ea48014c936da3c1a48bee4cd807bf689000847424ae9e33eacfb" }, "downloads": -1, "filename": "anthem-0.8.0-py2.7.egg", "has_sig": false, "md5_digest": "d6aa0053fc2fdb0d47df156c72bb5bbd", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 20458, "upload_time": "2017-07-24T14:23:27", "upload_time_iso_8601": "2017-07-24T14:23:27.966842Z", "url": "https://files.pythonhosted.org/packages/df/bc/77c6b9d93e11deabee6fb43b534839cad575226c6fdc7f54124f22bd32ac/anthem-0.8.0-py2.7.egg", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1ebd97723574a2f3573ca5c5e695dea6", "sha256": "fb1a8d3b2f677cde7a06e3aa47afb0096a5caa7c84adff81c22958e386abef49" }, "downloads": -1, "filename": "anthem-0.8.0-py2-none-any.whl", "has_sig": false, "md5_digest": "1ebd97723574a2f3573ca5c5e695dea6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15187, "upload_time": "2017-07-24T14:23:24", "upload_time_iso_8601": "2017-07-24T14:23:24.312471Z", "url": "https://files.pythonhosted.org/packages/48/84/6383131107080400b0e749c83c4da395ea4b5ae9ff5da8d3033ea887d32a/anthem-0.8.0-py2-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "02227d52cfc0e69a34691a70c4d5e543", "sha256": "7238a4f9af9022e9a3ca5adba494bb68c0721dea311ab10b27ba812730d6cd44" }, "downloads": -1, "filename": "anthem-0.9.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "02227d52cfc0e69a34691a70c4d5e543", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15413, "upload_time": "2017-08-21T07:29:42", "upload_time_iso_8601": "2017-08-21T07:29:42.246223Z", "url": "https://files.pythonhosted.org/packages/54/cb/e648dffc28e400f7d0cbefb38f8eafc6231b487ff6c6127a1c910253befe/anthem-0.9.0.linux-x86_64.tar.gz", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e3b0c88780eceadb02f8edee2ed7f5b1", "sha256": "d4f416983c108e0430fd29e9e087d080b6d6cf4cb3ccf38b023b347afa246220" }, "downloads": -1, "filename": "anthem-0.9.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e3b0c88780eceadb02f8edee2ed7f5b1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16195, "upload_time": "2017-08-21T07:29:04", "upload_time_iso_8601": "2017-08-21T07:29:04.774020Z", "url": "https://files.pythonhosted.org/packages/f5/06/e58d49b3045c2edef787e4c4e0df3c5c60216a693dceb8e085bce25fb2d9/anthem-0.9.0-py2-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a074330b2d27c85bda60bf0d84132d96", "sha256": "01b3e83d77a022ff28af2a3e364e2f17a248070d9a5ce86b88cb6680fca8cfac" }, "downloads": -1, "filename": "anthem-0.13.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a074330b2d27c85bda60bf0d84132d96", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19464, "upload_time": "2019-10-29T14:06:30", "upload_time_iso_8601": "2019-10-29T14:06:30.303905Z", "url": "https://files.pythonhosted.org/packages/09/9e/76b890f4d126160e3134a536c67984491e4a3f0293cac556becd8c7447f7/anthem-0.13.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "49b72cf27b091d75e9a8b804bf4e7706", "sha256": "0cbeded3145e78c869b919d1a6c0d1dadb67c12f04a23804528dd7191f672577" }, "downloads": -1, "filename": "anthem-0.13.0.tar.gz", "has_sig": false, "md5_digest": "49b72cf27b091d75e9a8b804bf4e7706", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24431, "upload_time": "2019-10-29T14:06:32", "upload_time_iso_8601": "2019-10-29T14:06:32.282974Z", "url": "https://files.pythonhosted.org/packages/72/04/2ed89fea87e4a188bf6a58b66ea70bd5474f6b16327876f40458da94537e/anthem-0.13.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }