{ "info": { "author": "Emailage Dev Team", "author_email": "dev@emailage.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "[logo]: https://www.emailage.com/wp-content/uploads/2018/01/logo-dark.svg \"Emailage Logo\"\n\n![alt text][logo](https://www.emailage.com)\n\nThe Python-language Emailage™ API client helps companies integrate with our highly efficient fraud risk and\nscoring system. By calling our API endpoints and simply passing us an email\nand/or IP Address, companies will be provided with real-time risk scoring\nassessments based around machine learning and proprietary algorithms that\nevolve with new fraud trends.\n\n# Quickstart guide\n\n## Requirements\n\n * Python 2.7+ or 3.3+\n\n## Installation\n\nThe Emailage client can be installed with pip:\n\n $ pip install emailage-official\n\nor directly from the source code:\n\n $ git clone https://github.com/emailage/Emailage_Python.git\n $ cd Emailage_Python\n $ python setup.py install\n\n## Typical usage\n\n### Instantiate a client\n\n#### Targeting the production servers\n\n from emailage.client import EmailageClient\n client = EmailageClient('My account SID', 'My auth token')\n\n#### Targeting the sandbox environment\n\n from emailage.client import EmailageClient\n client = EmailageClient('My account SID', 'My auth token', sandbox=True)\n\n### Query risk score information for the provided email address, IP address, or a combination\n\n* * *\n from emailage.client import EmailageClient\n client = EmailageClient('My account SID', 'My auth token', sandbox=True)\n # For an email address\n client.query('test@example.com')\n # For an IP address\n client.query('127.0.0.1')\n # For a combination. Please note the order\n client.query(('test@example.com', '127.0.0.1'))\n # Pass a User Defined Record ID (URID).\n # Can be used when you want to add an identifier for a query.\n # The identifier will be displayed in the result.\n client.query('test@example.com', urid='My record ID for test@example.com')\n\nExplicit methods produce the same request while validating format of the\narguments passed\n\n from emailage.client import EmailageClient\n client = EmailageClient('My account SID', 'My auth token', sandbox=True)\n # For an email address\n client.query_email('test@example.com')\n # For an IP address\n client.query_ip_address('127.0.0.1')\n # For a combination. Please note the order\n client.query_email_and_ip_address('test@example.com', '127.0.0.1')\n # Pass a User Defined Record ID\n client.query_email_and_ip_address('test@example.com', '127.0.0.1', urid='My record ID for test@example.com and 127.0.0.1')\n\n### Mark an email address as fraud, good, or neutral\n\n* * *\n\nYou may report that you have found that an email address is good, is\nassociated with fraud, or is neither (neutral).\n\nThe call to flag an email address as fraud _must_ be accompanied by one of the\nfraud reasons enumerated below:\n\n 1. Card Not Present Fraud\n 2. Customer Dispute (Chargeback)\n 3. First Party Fraud\n 4. First Payment Default\n 5. Identify Theft (Fraud Application)\n 6. Identify Theft (Account Take Over)\n 7. Suspected Fraud (Not Confirmed)\n 8. Synthetic ID\n 9. Other\n \n#### Mark an email address as fraud because of Synthetic ID\n\n from emailage.client import EmailageClient\n client = EmailageClient('My account SID', 'My auth token', sandbox=True)\n client.flag('fraud', 'test@example.com', 8)\n client.flag_as_fraud('test@example.com', 8)\n # Mark an email address as good\n client.flag('good', 'test@example.com')\n client.flag_as_good('test@example.com')\n # Unflag an email address that was previously marked as good or fraud\n client.flag('neutral', 'test@example.com')\n client.remove_flag('test@example.com')\n\n## Exceptions\n\nThis client can throw exceptions on any of the following issues:\n\n 1. When Requests has an issue, like not being able to connect from your server to the Emailage API,\n 2. When incorrectly-formatted JSON is received,\n 3. When an incorrectly-formatted email or IP address is passed to a flagging or explicit querying method.\n\n# Client API reference\n\n_class_ `client.TlsVersions`\n\n An enumeration of the TLS versions supported by the Emailage API\n\n_class_ `client.ApiDomains`\n\nAPI URLs for the specified domains\n\n_class_ `client.EmailageClient`(_secret_, _token_, _sandbox=False_,\n_tls_version=<_SSLMethod.PROTOCOL_TLSv1_2: 5>_)\n\n`__init__`(_secret_, _token_, _sandbox=False_,\n_tls_version=<_SSLMethod.PROTOCOL_TLSv1_2: 5>_)\n\nCreates an instance of the EmailageClient using the specified credentials and\nenvironment\n\nParameters:\n\n * **secret** (_str_) Consumer secret, e.g. SID or API key.\n * **token** (_str_) Consumer token.\n * **sandbox** (_bool_) (Optional) Whether to use a sandbox instead of a production server. Uses production by default\n * **tls_version** (see `TlsVersions`) (Optional) Uses TLS version 1.2 by default (TlsVersions.TLSv1_2 | TlsVersions.TLSv1_1)\n\nExample:\n\n >>> from emailage.client import EmailageClient\n >>> from emailage import protocols\n >>> client = EmailageClient('consumer_secret', 'consumer_token', sandbox=True, tls_version=protocols.TLSv1_1)\n >>> fraud_report = client.query(('useremail@example.co.uk', '192.168.1.1'), urid='some_unique_identifier')\n\n`flag_as_fraud`(_query_, _fraud_code_)\n\nMark an email address as fraud.\n\nParameters:\n\n * **query** (_str_) Email to be flagged\n * **fraud_code** (_int_) Reason for the email to be marked as fraud; must be one of the IDs in emailage.client.EmailageClient.FRAUD_CODES\n\nReturns:\n\nJSON dict of the confirmation response generated by the API\n\nExample:\n\n >>> from emailage.client import EmailageClient\n >>> client = EmailageClient('My account SID', 'My auth token', sandbox=True)\n >>> response_json = client.flag_as_fraud('test@example.com', 8)\n\n`flag_as_good`(_query_)\n\nMark an email address as good.\n\nParameters:\n\n**query** (_str_) Email to be flagged\n\nReturns:\n\nJSON dict of the confirmation response generated by the API\n\nExample:\n\n >>> from emailage.client import EmailageClient\n >>> client = EmailageClient('My account SID', 'My auth token', sandbox=True)\n >>> response_json = client.flag_as_good('test@example.com')\n\n`query`(_query_, _**params_)\n\nBase query method providing support for email, IP address, and optional\nadditional parameters\n\nParameters:\n\n * **query** (_str |__ (__str__, __str__)_) RFC2822-compliant Email, RFC791-compliant IP, or both\n * **params** (_kwargs_) keyword-argument form for parameters such as urid, firstname, lastname, etc.\n\nReturns:\n\nJSON dict of the response generated by the API\n\nExample:\n```python\n >>> from emailage.client import EmailageClient\n >>> client = EmailageClient('consumer_secret', 'consumer_token')\n >>> response_json = client.query('test@example.com')\n >>> # Email address only\n >>> response_json = client.query('test@example.com')\n >>> # IP Address only\n >>> response_json = client.query('209.85.220.41')\n >>> # For a combination. Please note the order\n >>> response_json = client.query(('test@example.com', '209.85.220.41'))\n >>> # Pass a User Defined Record ID (URID) as an optional parameter\n >>> response_json = client.query('test@example.com', urid='My record ID for test@example.com')\n```\n\n\n`query_email`(_email_, _**params_)\n\nQuery a risk score information for the provided email address.\n\nParameters:\n\n * **email** (_str_) RFC2822-compliant Email\n * **params** (_kwargs_) (Optional) keyword-argument form for parameters such as urid, firstname, lastname, etc.\n\nReturns:\n\nJSON dict of the response generated by the API\n\nExample:\n\n >>> from emailage.client import EmailageClient\n >>> client = EmailageClient('My account SID', 'My auth token', sandbox=True)\n >>> response_json = client.query_email('test@example.com')\n\n`query_email_and_ip_address`(_email_, _ip_, _**params_)\n\nQuery a risk score information for the provided combination of an Email and IP\naddress\n\nParameters:\n\n * **email** (_str_) RFC2822-compliant Email\n * **ip** (_str_) RFC791-compliant IP\n * **params** (_kwargs_) (Optional) keyword-argument form for parameters such as urid, firstname, lastname, etc.\n\nReturns:\n\nJSON dict of the response generated by the API\n\nExample:\n\n >>> from emailage.client import EmailageClient\n >>> client = EmailageClient('My account SID', 'My auth token', sandbox=True)\n >>> response_json = client.query_email_and_ip_address('test@example.com', '209.85.220.41')\n >>> response_json = client.query_email_and_ip_address('test@example.com', '209.85.220.41', urid='My record ID for test@example.com and 209.85.220.41')\n\n`remove_flag`(_query_)\n\nUnflag an email address that was marked as good or fraud previously.\n\nParameters:\n\n**query** (_str_) Email to be flagged\n\nReturns:\n\nJSON dict of the confirmation response generated by the API\n\nExample:\n\n >>> from emailage.client import EmailageClient\n >>> client = EmailageClient('My account SID', 'My auth token', sandbox=True)\n >>> response_json = client.remove_flag('test@example.com')\n\n`request`(_endpoint_, _**params_)\n\nBase method to generate requests for the Emailage validator and flagging APIs\n\nParameters:\n\n * **endpoint** (_str_) API endpoint to send the request ( | /flag )\n * **params** (_kwargs_) keyword-argument list of parameters to send with the request\n\nReturns:\n\nJSON dict of the response generated by the API\n\nExample:\n\n >>> from emailage.client import EmailageClient\n >>> client = EmailageClient('consumer_secret', 'consumer_token')\n >>> response = client.request('/flag', email='user20180830001@domain20180830001.com', flag='good')\n >>> response['query']['email']\n 'user20180830001%40domain20180830001.com'\n\n`set_api_domain`(_domain_, _tls_version=<_SSLMethod.PROTOCOL_TLSv1_2: 5>_)\n\nExplicitly set the API domain to use for a session of the client, typically\nused in testing scenarios\n\nParameters:\n\n * **domain** (str see :class: ApiDomains) API domain to use for the session\n * **tls_version** (see :class: TlsVersions) (Optional) Uses TLS version 1.2 by default (TlsVersions.TLSv1_2 | TlsVersions.TLSv1_1)\n\nReturns:\n\nNone\n\nExample:\n\n >>> from emailage.client import EmailageClient\n >>> from emailage.client import ApiDomains\n >>> client = EmailageClient('consumer_secret', 'consumer_token')\n >>> client.set_api_domain(ApiDomains.sandbox)\n >>> client.domain\n 'https://sandbox.emailage.com'\n\nExample:\n\n >>> from emailage.client import EmailageClient\n >>> client = EmailageClient('consumer_secret', 'consumer_token')\n >>> client.set_api_domain('https://testing.emailage.com')\n >>> client.domain\n 'https://testing.emailage.com'\n\n`set_credentials`(_secret_, _token_)\n\nExplicitly set the authentication credentials to be used when generating a\nrequest in the current session. Useful when you want to change credentials\nafter initial creation of the client.\n\nParameters:\n\n * **secret** Consumer secret, e.g. SID or API key\n * **token** Consumer token\n\nReturns:\n\nNone\n\n`signature.add_oauth_entries_to_fields_dict`(_secret_, _params_,\n_nonce=None_, _timestamp=None_)\n\nAdds dict entries to the users params dict which are required for OAuth1.0\nsignature generation\n\nParameters:\n\n * **secret** (_str_) API secret\n * **params** (_dict_) dictionary of values which will be sent in the query\n * **nonce** (_str_) (Optional) random string used in signature creation, uuid4() is used if not provided\n * **timestamp** (_int_) (Optional) integer-format timestamp, time.time() is used if not provided\n\nReturns:\n\ndict containing params and the OAuth1.0 fields required before executing\nsignature.create\n\nExample:\n\n >>> from emailage.signature import add_oauth_entries_to_fields_dict\n >>> query_params = dict(user_email='registered.account.user@yourcompany.com', query='email.you.are.interested.in@gmail.com' )\n >>> query_params = add_oauth_entries_to_fields_dict('YOUR_API_SECRET', query_params)\n >>> query_params['oauth_consumer_key']\n 'YOUR_API_SECRET'\n >>> query_params['oauth_signature_method']\n 'HMAC-SHA1'\n >>> query_params['oauth_version']\n 1.0\n\n`signature.create`(_method_, _url_, _params_, _hmac_key_)\n\nGenerates the OAuth1.0 signature used as the value for the query string\nparameter oauth_signature\n\nParameters:\n\n * **method** (_str_) HTTP method that will be used to send the request ( GET | POST ); EmailageClient uses GET\n * **url** (_str_) API domain and endpoint up to the ?\n * **params** (_dict_) user-provided query string parameters and the OAuth1.0 parameters :method add_oauth_entries_to_fields_dict:\n * **hmac_key** (_str_) for Emailage users, this is your consumer token with an & (ampersand) appended to the end\n\nReturns:\n\nstr value used for oauth_signature\n\nExample:\n\n >>> from emailage.signature import add_oauth_entries_to_fields_dict, create\n >>> your_api_key = 'SOME_KEY'\n >>> your_hmac_key = 'SOME_SECRET' + '&'\n >>> api_url = 'https://sandbox.emailage.com/emailagevalidator/'\n >>> query_params = { 'query': 'user.you.are.validating@gmail.com', 'user_email': 'admin@yourcompany.com' }\n >>> query_params = add_oauth_entries_to_fields_dict(your_api_key, query_params)\n >>> query_params['oauth_signature'] = create('GET', api_url, query_params, your_hmac_key)\n\n\n2018, Emailage Dev Team. | Powered by Sphinx 1.7.7\n# Revision History\n\n## 1.1.6 (14 December 2018)\n\n - Fix choice of URL encoding function for Python 2.7 users\n\n\n## 1.1.4 (17 September 2018)\n\n - Corrected IPv4 validation Regex to allow 0s in octets 2,3,4\n\n## 1.1.0 (30 August 2018)\n\n - Corrected bug in the URL encoding of spaces\n - Significantly expanded documentation of signature functions\n - Extracted all OAuth signature generation logic from request generation into the signature module\n - Explicit decoding of API response bytes removes the need to run a Regex over the response\n\n## 1.0.2 (30 October 2017)\n\n - Corrected the validation of IPv4 and IPv6 IP addresses\n - Added an optional parameter to specify TLS 1.1 or 1.2 on the initialization of EmailageClient", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www.emailage.com/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "emailage-official", "package_url": "https://pypi.org/project/emailage-official/", "platform": "", "project_url": "https://pypi.org/project/emailage-official/", "project_urls": { "Homepage": "https://www.emailage.com/" }, "release_url": "https://pypi.org/project/emailage-official/1.1.8/", "requires_dist": null, "requires_python": "", "summary": "Official Emailage API client written in Python", "version": "1.1.8" }, "last_serial": 5952518, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "5c3e0ae1bee8bec3f3d031344ee57b6c", "sha256": "f590c9ea10c380289d167b3771241fd878a22e6576e451afbfe733eace83eb98" }, "downloads": -1, "filename": "emailage_official-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5c3e0ae1bee8bec3f3d031344ee57b6c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12639, "upload_time": "2016-09-23T19:46:47", "url": "https://files.pythonhosted.org/packages/b6/66/67424793bc4b504587a18ea60ba4b74839d42eebb7443273fe96feb30bbd/emailage_official-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b63be5855d703ce0cee84623b1774a03", "sha256": "ca798bce18cd035ec6cf8958e37ae4ca54ed4d079060ef4e1e5591c565c4ae16" }, "downloads": -1, "filename": "emailage-official-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b63be5855d703ce0cee84623b1774a03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9696, "upload_time": "2016-09-23T19:46:03", "url": "https://files.pythonhosted.org/packages/b2/b4/d5f5907161a0dbab078b48a290cf64eb70c664aa5f900f32d7853819c769/emailage-official-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "3c6bf3621ddb013d731447951e124c55", "sha256": "a119c18a8074a2abde10bf6d558673d68253ec49b4ac402cfdd005822e847489" }, "downloads": -1, "filename": "emailage_official-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "3c6bf3621ddb013d731447951e124c55", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12643, "upload_time": "2016-09-30T23:02:36", "url": "https://files.pythonhosted.org/packages/f2/4a/644ff1e89379f85cabbc9f2dd9fae1c5827c8f6345941fe987fa703a03dc/emailage_official-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "428e0d832a4b1b9584b6f02f694d4188", "sha256": "1985f0e332b8907c14c9664a9fac1b2ad98dac0f1137126aacb4c63741938431" }, "downloads": -1, "filename": "emailage-official-1.0.1.tar.gz", "has_sig": false, "md5_digest": "428e0d832a4b1b9584b6f02f694d4188", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9700, "upload_time": "2016-09-30T23:02:32", "url": "https://files.pythonhosted.org/packages/b6/41/4cc6cbf14d79fa5e14c8767fafb5f2bd92e2c5881a205f471ea7780475d4/emailage-official-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "907505c443a8f36ba650dbe2fb6a2bb3", "sha256": "3e345e520525dffef1d075525415e3ae8298bbb7eb5b635b551725bb7a41c888" }, "downloads": -1, "filename": "emailage_official-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "907505c443a8f36ba650dbe2fb6a2bb3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13306, "upload_time": "2017-11-07T00:51:46", "url": "https://files.pythonhosted.org/packages/99/e0/d16c2d708263964de87989f17354bcac18eb56c8b6e14921cd3ad7c5c8e7/emailage_official-1.0.2-py2.py3-none-any.whl" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "d074ff0edf43970542e93b57b5644499", "sha256": "9a5b2e24ea5a5eb6f245e3380e39b1803dab9e556d3de8d36f278063dceaccec" }, "downloads": -1, "filename": "emailage-official-1.0.3.tar.gz", "has_sig": false, "md5_digest": "d074ff0edf43970542e93b57b5644499", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11735, "upload_time": "2018-09-06T16:54:25", "url": "https://files.pythonhosted.org/packages/aa/cb/c8c821bd14578be9a2b8f0248738265f8db146cba7837d7dcb98a182e206/emailage-official-1.0.3.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "b469ad0f7992168302928a14900e5399", "sha256": "03e1e30fd4f9b800364fa6ec3f7eab6ba9762fbad1b6628b276bfaf43d51a1d6" }, "downloads": -1, "filename": "emailage-official-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b469ad0f7992168302928a14900e5399", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15438, "upload_time": "2018-09-07T20:41:01", "url": "https://files.pythonhosted.org/packages/b3/02/f4749ba5a73dbee28541d8db6ea8ff0fcc9bd89e7d377a61ad41424ebda2/emailage-official-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "6a83f1a3c24f98b006ec05e4f30d1cda", "sha256": "3e2624c791870753b7f382e99017b42f1a5ecb9baf6268a80b4e11a915bd8bc8" }, "downloads": -1, "filename": "emailage-official-1.1.1.tar.gz", "has_sig": false, "md5_digest": "6a83f1a3c24f98b006ec05e4f30d1cda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22118, "upload_time": "2018-09-07T20:54:02", "url": "https://files.pythonhosted.org/packages/0c/a9/98e766debfa8e70389eab0c989188d08a1919bdfe5005442f62a67841e60/emailage-official-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "fd778cf500b0f6b33f564a1f8adac4b2", "sha256": "ea894b46844e846eef201ece9a04701b8d5bef89490e396a21d0dee757fe622c" }, "downloads": -1, "filename": "emailage-official-1.1.2.tar.gz", "has_sig": false, "md5_digest": "fd778cf500b0f6b33f564a1f8adac4b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23577, "upload_time": "2018-09-07T21:03:46", "url": "https://files.pythonhosted.org/packages/b0/b3/6d09d0b28cbe33117b1cae93d10d0f1fc84c33cc0ea434e902ea04007c6d/emailage-official-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "51ddb1c15d6de606084e4de396a1cb73", "sha256": "1a7cf2f9697670f6a232705fc73c8c371a3277d0398abbc657f52af5128a9ddd" }, "downloads": -1, "filename": "emailage-official-1.1.3.tar.gz", "has_sig": false, "md5_digest": "51ddb1c15d6de606084e4de396a1cb73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23603, "upload_time": "2018-09-07T21:14:41", "url": "https://files.pythonhosted.org/packages/89/94/98264828439f0f32fab9aa4a932d8b9a08ada8389918dcc06ecccb8f5293/emailage-official-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "d882098ad0b2dffa52f5db132fd52d84", "sha256": "6c374bba10d0aba96793c003ef13b1107530d9ebb40f4073518769452e9eb688" }, "downloads": -1, "filename": "emailage-official-1.1.4.tar.gz", "has_sig": false, "md5_digest": "d882098ad0b2dffa52f5db132fd52d84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24463, "upload_time": "2018-09-18T22:28:30", "url": "https://files.pythonhosted.org/packages/31/d0/93ec768bc7df168c57b43233e6f4fcfd0849af25280e7e4962a3806bf1f8/emailage-official-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "0682981bbe62c522199872b7e7cd5534", "sha256": "d56f3c0c70e0b130f81d2edcdb0163eb6b4c7c88b220809b5d11801ec68a4649" }, "downloads": -1, "filename": "emailage_official-1.1.5-py2-none-any.whl", "has_sig": false, "md5_digest": "0682981bbe62c522199872b7e7cd5534", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16152, "upload_time": "2018-10-15T20:54:02", "url": "https://files.pythonhosted.org/packages/c8/0e/091f7965d7f88adf87d5417fefea15c30569468c688a7593e88e24337308/emailage_official-1.1.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab8f1820e587c8233688f7c5a8936032", "sha256": "5b53b179318c43bf6b119880d3f8946bed597ccfe4dcd5d6e69baf2ea1875390" }, "downloads": -1, "filename": "emailage_official-1.1.5-py3.5.egg", "has_sig": false, "md5_digest": "ab8f1820e587c8233688f7c5a8936032", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 32703, "upload_time": "2018-10-15T20:54:05", "url": "https://files.pythonhosted.org/packages/9a/2f/e69d7383641794b2ca4fe2684bae38b3cd0a4406862766f50674e8d4a13e/emailage_official-1.1.5-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "7211007ec209f330d5d639d1bb108003", "sha256": "f98c9f82f7efa8a6c367c26d4f5e81a8bcbb7a4ac9151e6574dcb4781f9ddd6f" }, "downloads": -1, "filename": "emailage_official-1.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "7211007ec209f330d5d639d1bb108003", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16185, "upload_time": "2018-10-15T20:54:04", "url": "https://files.pythonhosted.org/packages/45/d8/144541d24933de4573a440d4944e7bb712a4232dc4abc30e7e5dc1285eee/emailage_official-1.1.5-py3-none-any.whl" } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "95e0c6d31852c4102603cd8f63183e37", "sha256": "2894312870dd8af141151e217ab378cc5646e88c74978e0df3d53b16d9039998" }, "downloads": -1, "filename": "emailage-official-1.1.6.tar.gz", "has_sig": false, "md5_digest": "95e0c6d31852c4102603cd8f63183e37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22289, "upload_time": "2019-01-18T19:11:24", "url": "https://files.pythonhosted.org/packages/0c/77/7c8d889c0987ae8936507827e65b322d3bec2bfb06a13862f328aff0b693/emailage-official-1.1.6.tar.gz" } ], "1.1.7": [ { "comment_text": "", "digests": { "md5": "7cb45ca1151fb8cb8820a86f4ee42b9f", "sha256": "b665463324eb9ae13c9a0bd75dc880f2a0defb9a813b2b88a9c00a4762fca3e7" }, "downloads": -1, "filename": "emailage-official-1.1.7.tar.gz", "has_sig": false, "md5_digest": "7cb45ca1151fb8cb8820a86f4ee42b9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22293, "upload_time": "2019-04-12T01:14:25", "url": "https://files.pythonhosted.org/packages/69/7a/934fa4a7b667e7ee170b9edeefe4384ce12337593b552a70fbe32320b473/emailage-official-1.1.7.tar.gz" } ], "1.1.8": [ { "comment_text": "", "digests": { "md5": "c8c9977b3df1a54f426a89f27e0b2283", "sha256": "7cce228f6d2ef74fe5401ddfb499339deb9225acf05aaad7d287e7affd746b40" }, "downloads": -1, "filename": "emailage-official-1.1.8.tar.gz", "has_sig": false, "md5_digest": "c8c9977b3df1a54f426a89f27e0b2283", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20290, "upload_time": "2019-10-10T00:10:40", "url": "https://files.pythonhosted.org/packages/08/48/9139612495c3cc4b2cc6e0f1effdaace279990eab1e4c391a852bdef469d/emailage-official-1.1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c8c9977b3df1a54f426a89f27e0b2283", "sha256": "7cce228f6d2ef74fe5401ddfb499339deb9225acf05aaad7d287e7affd746b40" }, "downloads": -1, "filename": "emailage-official-1.1.8.tar.gz", "has_sig": false, "md5_digest": "c8c9977b3df1a54f426a89f27e0b2283", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20290, "upload_time": "2019-10-10T00:10:40", "url": "https://files.pythonhosted.org/packages/08/48/9139612495c3cc4b2cc6e0f1effdaace279990eab1e4c391a852bdef469d/emailage-official-1.1.8.tar.gz" } ] }