{
"info": {
"author": "Pawel Kowalik",
"author_email": "pawel-kow@users.noreply.github.com",
"bugtrack_url": null,
"classifiers": [
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7"
],
"description": "# id4me-rp-client\nPython Relying Party client library for ID4me protocol.\nFor details of the protocol, please visit: https://id4me.org\n\nLibrary offers Relying Party functionality for authentication with Identity Authority and claim request from the Identity Agent..\n\n## Specification reference\nhttps://gitlab.com/ID4me/documentation/blob/master/id4ME%20Technical%20Specification.adoc\n- Version: 1.0\n- Revision: 02\n\n## Installation\n```shell\npip install id4me-rp-client\n```\n\n## Usage\n\n### Register the client and authorize with Identity Authority\n\n```python\nfrom id4me_rp_client import *\n\n# these imports are just needed in this example\nfrom builtins import input\nimport json\nimport uuid\n\nregistrations = dict()\n\n# a routine to save client registration at authority\ndef save_authority_registration(auth_name, auth_content):\n registrations[auth_name] = auth_content\n pass\n\n\n# a routine to load client registration at authority\ndef load_authority_registration(auth_name):\n return registrations[auth_name]\n\n# create client object with basic parameters of your app\nclient = ID4meClient(\n get_client_registration=load_authority_registration,\n save_client_registration=save_authority_registration,\n app_type=OIDCApplicationType.web,\n validate_url='https://dynamicdns.domainconnect.org/ddnscode',\n client_name='Foo app',\n logo_url='https://upload.wikimedia.org/wikipedia/commons/7/76/Foobar2000_logo_2014.png',\n policy_url='https://foo.com/policy',\n tos_url='https://foo.com/tos',\n private_jwks_json=ID4meClient.generate_new_private_keys_set())\n\ntry:\n # make a discovery of identity authority and register if needed\n # find_authority and save_authority are optional, but when missing client will be registered each time anew\n ctx = client.get_rp_context(\n id4me='id200.connect.domains') \n\n # get a link to login routine\n link = client.get_consent_url(\n ctx,\n claimsrequest=ID4meClaimsRequest(\n userinfo_claims={\n OIDCClaim.name: ID4meClaimRequestProperties(reason='To call you by name'),\n OIDCClaim.email: ID4meClaimRequestProperties(essential=True, reason='To be able to contact you'),\n OIDCClaim.email_verified: ID4meClaimRequestProperties(reason='To know if your E-mail was verified'),\n }),\n state=str(uuid.uuid4())\n )\n print('Please open the link:\\n{}'.format(link))\n\n # Normally code will arrive as query param on client.validateUrl\n code = input('Please enter code: ')\n # Get ID token\n id_token = client.get_idtoken(context=ctx, code=code)\n print('ID Token:\\n{}'.format(json.dumps(id_token, sort_keys=True, indent=4)))\n # Get User Info\n userinfo = client.get_user_info(context=ctx)\n print('User Info:\\n{}'.format(json.dumps(userinfo, sort_keys=True, indent=4))) \nexcept ID4meException as e:\n print('Exception: {}'.format(e))\n\n```\n\n#### Output:\n```text\nResolving \"_openid.id200.connect.domains.\"\nChecking TXT record \"v=OID1;iss=id.test.denic.de;clp=identityagent.de\"\nidentity_authority = auth.freedom-id.de\nregistering with new identity authority (auth.freedom-id.de)\ndestination = https://auth.freedom-id.de/login?scope=openid&response_type=code&client_id=hmkzay2riyon4&redirect_uri=https%3A//foo.com/validate&login_hint=id200.connect.domains&state=&claims=%7B%22userinfo%22%3A%20%7B%22email_verified%22%3A%20%7B%22reason%22%3A%20%22To%20know%20if%20your%20E-mail%20was%20verified%22%7D%2C%20%22email%22%3A%20%7B%22reason%22%3A%20%22To%20be%20able%20to%20contact%20you%22%2C%20%22essential%22%3A%20true%7D%2C%20%22name%22%3A%20%7B%22reason%22%3A%20%22To%20call%20you%20by%20name%22%7D%7D%7D\nPlease open the link:\nhttps://auth.freedom-id.de/login?scope=openid&response_type=code&client_id=hmkzay2riyon4&redirect_uri=https%3A//foo.com/validate&login_hint=id200.connect.domains&state=&claims=%7B%22userinfo%22%3A%20%7B%22email_verified%22%3A%20%7B%22reason%22%3A%20%22To%20know%20if%20your%20E-mail%20was%20verified%22%7D%2C%20%22email%22%3A%20%7B%22reason%22%3A%20%22To%20be%20able%20to%20contact%20you%22%2C%20%22essential%22%3A%20true%7D%2C%20%22name%22%3A%20%7B%22reason%22%3A%20%22To%20call%20you%20by%20name%22%7D%7D%7D\nPlease enter code: >? 9jNXCX9OZ4HQLr2YZWKisw.5mSDkoR-5YJQoTp3f1vuxg\nUser Info:\n{\n \"aud\": \"hmkzay2riyon4\", \n \"email\": \"foo@bar.de\", \n \"email_verified\": true, \n \"exp\": 1538762218, \n \"iat\": 1538761918, \n \"id4me.identifier\": \"id200.connect.domains\", \n \"id4me.identity\": \"id200.connect.domains\", \n \"iss\": \"https://auth.freedom-id.de\", \n \"nbf\": 1538761918, \n \"sub\": \"uiw3pTRRLVaKJqbnbSwr4EVuhEPTHvRgci91RbhYU2rab/YVDqDmqTKzTVAdDMm+\", \n \"updated_at\": 1538564738\n}\n```\n\n### Requesting custom claims\n\nIn order to request a custom claim, it's enough to pass its name as a key in `userinfo_claims` or `id_token_claims`\nparameters of `ID4meClient.get_consent_url` method.\n\nExample\n```python\n...\n link = client.get_consent_url(\n ctx=context, \n claimsrequest=ID4meClaimsRequest(\n userinfo_claims={\n OIDCClaim.email: ID4meClaimRequestProperties(essential=True, reason='Test other confusing reason'),\n 'id4me.custom': ID4meClaimRequestProperties(essential=True, reason='Custom claim reason')\n })\n )\n...\n```\n\n## CHANGELOG:\n| version | date | changes |\n| ------- | -----------| ------ |\n| 0.0.23 | 2019-10-04 | NEW FEATURE: plain JSON user info support added
NEW FEATURE: use of scope parameter instead of claims if not supported by IdP
NEW: example code included |\n| 0.0.22 | 2019-07-29 | BUGFIX: id4me_rp_client.helper not exported to the release library |\n| 0.0.21 | 2019-07-29 | BUGFIX: YXDOMAIN case not properly handled
BUGFIX: avoid trying to resolve empty domain names
BUGFIX: added better handling when state is empty
LOGGING: added logging of all exceptions (debug level) |\n| 0.0.20 | 2019-05-23 | NEW FEATURE: E-mail address hashing as per spec change proposed in https://gitlab.com/ID4me/documentation/merge_requests/7
MINOR CHANGE: finally deprecated `preferred_client_id` from registration
NEW FEATURE: timeout configurable via NetworkConfig |\n| 0.0.19 | 2019-03-24 | TEST: added Kopano to the integration test
BUGFIX: leeway to re-register set to 5 minutes istead of 2 hours
TEST: added password to mojeid test account |\n| 0.0.18 | 2019-03-23 | NEW FEATURE: added support for E-mail like identifiers (just replace @ with .)
NEW FEATURE: requesting claims with scope
WORKAROUND: accepting token_type as 'Bearer' and 'bearer'
BUGFIX: 'tos_uri' assigned properly |\n| 0.0.17 | 2019-03-19 | SECURITY FIX: Limited timeouts and size of downloaded data (DOS prevention)
SECURITY FIX: Limited recoursion level of distributed claims (DOS prevention) |\n| 0.0.16 | 2019-03-11 | MAJOR CHANGE: removed back-compatibility with old _openid record format |\n| 0.0.15 | 2019-02-27 | - NEW FEATURE: Automatically re-register expired client registration
- explicit parameter to enable/block automatic client registration |\n| 0.0.14 | 2019-02-25 | No functional changes. Example code in README fixed |\n| 0.0.13 | 2019-02-25 | No functional changes. TEST & EXAMPLE for custom claims added |\n| 0.0.12 | 2019-02-21 | BUGFIX: Exception when no encryption used but private key missing |\n| 0.0.11 | 2019-02-21 | BUGFIX, error when serializing ID4meContext |\n| 0.0.10 | 2019-02-18 | API BREAKING CHANGE: client configuration loading callback moved to client object in order to remove secret data from the ID4meContext which can be in some frameworks sent over cookies |\n\n\n",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://gitlab.com/ID4me/id4me-rp-client-python",
"keywords": "",
"license": "https://gitlab.com/ID4me/id4me-rp-client-python/blob/master/LICENSE",
"maintainer": "",
"maintainer_email": "",
"name": "id4me-rp-client",
"package_url": "https://pypi.org/project/id4me-rp-client/",
"platform": "",
"project_url": "https://pypi.org/project/id4me-rp-client/",
"project_urls": {
"Homepage": "https://gitlab.com/ID4me/id4me-rp-client-python"
},
"release_url": "https://pypi.org/project/id4me-rp-client/0.0.23/",
"requires_dist": [
"dnspython (>=1.15.0)",
"six (>=1.11.0)",
"future (>=0.16.0)",
"jwcrypto (>=0.5.0)"
],
"requires_python": "",
"summary": "Python client library for ID4me protocol - Relying Party side. See: https://id4me.org",
"version": "0.0.23"
},
"last_serial": 5928023,
"releases": {
"0.0.1": [
{
"comment_text": "",
"digests": {
"md5": "dfe1708c42f8c17093dd2e2ecafbc985",
"sha256": "381a7574c9371f579ccfe5cfc8162c96cb980e49ab614ce865f4b2188253ec65"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "dfe1708c42f8c17093dd2e2ecafbc985",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 9604,
"upload_time": "2018-10-04T23:03:34",
"url": "https://files.pythonhosted.org/packages/ac/50/9cf76fefd7de66c0fb39730cb52563de10d277145666e82f0942cbee50e8/id4me_rp_client-0.0.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c6d185a4e58e850055e52890f0301a0c",
"sha256": "4b04548ebe96ca494487aec7ce143fb62e6f1066c042cd61fb54e45f5178ae55"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "c6d185a4e58e850055e52890f0301a0c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7944,
"upload_time": "2018-10-04T23:03:36",
"url": "https://files.pythonhosted.org/packages/7b/c2/581566944da6dde243cacb6d8ba7b0ea6b60d738e27dfcf4e3a0866c4ec8/id4me-rp-client-0.0.1.tar.gz"
}
],
"0.0.10": [
{
"comment_text": "",
"digests": {
"md5": "a03b8d1a6f25dc9f1ba98532c43f9ac2",
"sha256": "158eba5cfaf2580eb8bd9b01c134e257e1658919531e30561c141fc7d86b372e"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.10-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a03b8d1a6f25dc9f1ba98532c43f9ac2",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 16533,
"upload_time": "2019-02-18T11:45:14",
"url": "https://files.pythonhosted.org/packages/23/0b/5f8ac4ab441397705f069ae39d8ced65a8d68e250d0fb082a74f37270146/id4me_rp_client-0.0.10-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "37516073c5ec72219a37eacd51cdaa9d",
"sha256": "3af551775112cbbd78cf424e60b2c91cf15dd7f0f5dd0680384d0f4693cf23dd"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.10.tar.gz",
"has_sig": false,
"md5_digest": "37516073c5ec72219a37eacd51cdaa9d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15444,
"upload_time": "2019-02-18T11:45:24",
"url": "https://files.pythonhosted.org/packages/db/10/10f81af93d123c0d75676f1c49c81502c1f405287f6e08e6d2861f9e5f49/id4me-rp-client-0.0.10.tar.gz"
}
],
"0.0.11": [
{
"comment_text": "",
"digests": {
"md5": "7a2ec131808c2f11d62860db60500dc5",
"sha256": "061ed1d4a70635f97b6b11ca69d499a11bfb4190f3053237883c71cd8206f2d2"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.11-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "7a2ec131808c2f11d62860db60500dc5",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 16490,
"upload_time": "2019-02-21T08:07:23",
"url": "https://files.pythonhosted.org/packages/6c/bd/da91adfb07e565887a213078e3f2556098f9928c8c3a58857de8bce0b3a0/id4me_rp_client-0.0.11-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a680305ea3b36115776b60ecbce98a88",
"sha256": "1ca7e2f50c5f52c6fe2fd657e00d426316b1f2d47bb99a9737c88a5de1bdb9ca"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.11.tar.gz",
"has_sig": false,
"md5_digest": "a680305ea3b36115776b60ecbce98a88",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15432,
"upload_time": "2019-02-21T08:07:33",
"url": "https://files.pythonhosted.org/packages/83/af/65b8bc3a1e059bfc4d5035ec243406e6e0a317935d8ecab85ba43352c83d/id4me-rp-client-0.0.11.tar.gz"
}
],
"0.0.12": [
{
"comment_text": "",
"digests": {
"md5": "0d2bb358ccd30c29f4954e796d2d5d4f",
"sha256": "626429fc1c5646c4a6cab606fbcff051b9e957435c6542e922d87fb4f6159b09"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.12-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0d2bb358ccd30c29f4954e796d2d5d4f",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 16529,
"upload_time": "2019-02-21T08:28:49",
"url": "https://files.pythonhosted.org/packages/eb/d8/a7ef9e6c8336559d97c1417e2b0958a8070ec123e28dc90d0b006a003b0a/id4me_rp_client-0.0.12-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a7c6ba6c9277ebe8832a5a7c6a014d1f",
"sha256": "e2b55b4ddc0eff0be365762fa938cb2648a2972abf8cf5ec24e753c3a1c5193e"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.12.tar.gz",
"has_sig": false,
"md5_digest": "a7c6ba6c9277ebe8832a5a7c6a014d1f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15488,
"upload_time": "2019-02-21T08:29:00",
"url": "https://files.pythonhosted.org/packages/da/5c/bbafcff288131a2965dd76c874f670d2980ee6263cc2c9453468bae3cefe/id4me-rp-client-0.0.12.tar.gz"
}
],
"0.0.13": [
{
"comment_text": "",
"digests": {
"md5": "a57dccf564910033570cbcfb41d4edf7",
"sha256": "93d6ac37286aaa3c12f1e4eb902f880f5db7c599961196e5a458243f675bbf01"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.13-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a57dccf564910033570cbcfb41d4edf7",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 16728,
"upload_time": "2019-02-25T07:44:57",
"url": "https://files.pythonhosted.org/packages/de/36/22b6145aca6c6f3653e192ead60ba7d1a328c7732e9108f0cfb05396dcc7/id4me_rp_client-0.0.13-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7032d79b83609902d4725bcb2e3fab2f",
"sha256": "6b5cb946889ceeb007bcc040d4dab794220a9c9886ca2c088e1ec82ddc0e7c8d"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.13.tar.gz",
"has_sig": false,
"md5_digest": "7032d79b83609902d4725bcb2e3fab2f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15923,
"upload_time": "2019-02-25T07:45:08",
"url": "https://files.pythonhosted.org/packages/d1/29/b35a00112d7da8b772be361c866df30f90c762303ec307f3a482840fdad6/id4me-rp-client-0.0.13.tar.gz"
}
],
"0.0.14": [
{
"comment_text": "",
"digests": {
"md5": "9028acbc67b3f3797d77084622d80945",
"sha256": "f796f810f293839d4074b26d0ff213b1361b030877e35f671f0ed1ed179275d6"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.14-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "9028acbc67b3f3797d77084622d80945",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 16764,
"upload_time": "2019-02-25T08:14:04",
"url": "https://files.pythonhosted.org/packages/99/00/12cdc22738e139a46f9d89dcb0102b6e0acf2e32c6c4401ab253002faf54/id4me_rp_client-0.0.14-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "59d6a4047e36aa30cf0e7c5023b3d4c1",
"sha256": "d02b83d7199a4cd5b2fec8dae0a2df5e828ded7f3234a11880a7b8e2c3ae3449"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.14.tar.gz",
"has_sig": false,
"md5_digest": "59d6a4047e36aa30cf0e7c5023b3d4c1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15973,
"upload_time": "2019-02-25T08:14:16",
"url": "https://files.pythonhosted.org/packages/b5/e8/fb0729c0e24cd9bd77e6fa758b1ebe737bf440d3663ebee42f61aa29a34a/id4me-rp-client-0.0.14.tar.gz"
}
],
"0.0.15": [
{
"comment_text": "",
"digests": {
"md5": "d78089117a8c1a7887e857c15e01cb2d",
"sha256": "3800635a8638e605c64c00932d6be9de3b933e49268821bafa70b8f1f90ab5f3"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.15-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "d78089117a8c1a7887e857c15e01cb2d",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 16946,
"upload_time": "2019-02-27T11:06:37",
"url": "https://files.pythonhosted.org/packages/81/8f/6e081eed4f0c736414c75b578b713547b9d125b744223ca51bbaebfb5bb5/id4me_rp_client-0.0.15-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fe786da638a62917966324da6a47b135",
"sha256": "f1f0102864bd787a5ea95326198160af0744c2bae937dbb81e3f6ad20a005b15"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.15.tar.gz",
"has_sig": false,
"md5_digest": "fe786da638a62917966324da6a47b135",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16277,
"upload_time": "2019-02-27T11:06:50",
"url": "https://files.pythonhosted.org/packages/42/20/6a4e5a8d61d0b36b89335cfec07da1943b86dbebd9091de019571a1d9e60/id4me-rp-client-0.0.15.tar.gz"
}
],
"0.0.16": [
{
"comment_text": "",
"digests": {
"md5": "6f9f2780f6d9f69aad78b23b77e9740e",
"sha256": "cea208ab0f3609d37dc31fc5c5aea835eb26ebd074c3b30d9c4f0db8ac17f11b"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.16-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "6f9f2780f6d9f69aad78b23b77e9740e",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 16905,
"upload_time": "2019-03-11T15:57:14",
"url": "https://files.pythonhosted.org/packages/2a/0d/1cd025306ad6d178c31fe7da56efd4836ebc1838fd397ce414a6633cbe8d/id4me_rp_client-0.0.16-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7e7bab41b2ea1a18cd9fdd7f80a8c353",
"sha256": "9413fec86dd8924c1368639574d103fc67d6413fcc99d737a79a686e41e2c6a5"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.16.tar.gz",
"has_sig": false,
"md5_digest": "7e7bab41b2ea1a18cd9fdd7f80a8c353",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16312,
"upload_time": "2019-03-11T15:57:28",
"url": "https://files.pythonhosted.org/packages/e8/c7/9d4f591227c9104310f080e61de6039013cfcbe69dd4029e80f09e2675c2/id4me-rp-client-0.0.16.tar.gz"
}
],
"0.0.17": [
{
"comment_text": "",
"digests": {
"md5": "e4ecd8b47569cf404634b47ea457a3fd",
"sha256": "ce9e63d59b1ac4ecfc5af460bf518bdcb94b9c42465fd6575e0ad6936ded042d"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.17-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e4ecd8b47569cf404634b47ea457a3fd",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 17348,
"upload_time": "2019-03-19T17:05:49",
"url": "https://files.pythonhosted.org/packages/61/77/36ff11d4251d6837b99be81b0f011a9f469b3724e7f5431673b680b8d112/id4me_rp_client-0.0.17-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "147b39e45d454480dfe46b733619fa0b",
"sha256": "d4a35ebda6f79ad102b86348eb9f4c6312205568c0691eb919e0df140bc5d25c"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.17.tar.gz",
"has_sig": false,
"md5_digest": "147b39e45d454480dfe46b733619fa0b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16838,
"upload_time": "2019-03-19T17:06:04",
"url": "https://files.pythonhosted.org/packages/3e/07/0d793c51ef80951db7830386178db99aab9a5e4ca30e5fb9795171da7a4e/id4me-rp-client-0.0.17.tar.gz"
}
],
"0.0.18": [
{
"comment_text": "",
"digests": {
"md5": "be042721f65fdec837d977318f4337bd",
"sha256": "de60f83a4190d2bdc4b2ef9301ee91bcebee00e512c6f9ae72be4d7182e60c0c"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.18-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "be042721f65fdec837d977318f4337bd",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 17666,
"upload_time": "2019-03-23T18:12:28",
"url": "https://files.pythonhosted.org/packages/c8/93/b155523a33a1ad56c1334d99f208bfd8b2f1137e6e420f931bd490152764/id4me_rp_client-0.0.18-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "231aaaf6b7736e7d0acafbb4e27b183e",
"sha256": "38e9ccecdffc4f240cb9146880ce28b667fd2e60059d34f73a5e9b68e9964a70"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.18.tar.gz",
"has_sig": false,
"md5_digest": "231aaaf6b7736e7d0acafbb4e27b183e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17241,
"upload_time": "2019-03-23T18:12:41",
"url": "https://files.pythonhosted.org/packages/b4/8b/6fcbfc79f9f1e3bb5618eaa4628e2ff5bb465d1f6a5842461149aa06bb3b/id4me-rp-client-0.0.18.tar.gz"
}
],
"0.0.19": [
{
"comment_text": "",
"digests": {
"md5": "93e6947c85d535d251c3ceb674a1cb76",
"sha256": "fd047be71e9e93f6b2aca00bb3d58fca2f5243f6d8e3e19e0186e596bce787cf"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.19-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "93e6947c85d535d251c3ceb674a1cb76",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 17740,
"upload_time": "2019-03-25T08:49:07",
"url": "https://files.pythonhosted.org/packages/ee/b2/ecd576b237c196e484bd944b54a91f7e09cc9cd3bc6926236a6805dda0b1/id4me_rp_client-0.0.19-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "89b21bc254f6584d827c953028498ff6",
"sha256": "858e86fe15f03c402294cd0f1b111a59738385ede3027682df2ce638e7abf9e3"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.19.tar.gz",
"has_sig": false,
"md5_digest": "89b21bc254f6584d827c953028498ff6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17390,
"upload_time": "2019-03-25T08:49:21",
"url": "https://files.pythonhosted.org/packages/a8/d2/a2dfbc1a5932f221445c03722adb700f85eeb409f75cc10488ed4c373d2d/id4me-rp-client-0.0.19.tar.gz"
}
],
"0.0.2": [
{
"comment_text": "",
"digests": {
"md5": "d34923bfd74fec9a57a899b13222f722",
"sha256": "cc708b377ca54ebf7b5acc801c2f09b70009f2b08b5ebdff15c84b8c90082216"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.2-py2.7.egg",
"has_sig": false,
"md5_digest": "d34923bfd74fec9a57a899b13222f722",
"packagetype": "bdist_egg",
"python_version": "2.7",
"requires_python": null,
"size": 24264,
"upload_time": "2018-10-05T18:10:14",
"url": "https://files.pythonhosted.org/packages/16/26/83115c21bcd1a499449308a0445eccab678f3e4ca25ed4241a209fad8227/id4me_rp_client-0.0.2-py2.7.egg"
},
{
"comment_text": "",
"digests": {
"md5": "70b4e2902a2c894990eae968bb2185b8",
"sha256": "e4fa35881099b92a89b041c230bb5ff38212859cef18a717aa8b5dda58d46148"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "70b4e2902a2c894990eae968bb2185b8",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 24115,
"upload_time": "2018-10-05T18:10:10",
"url": "https://files.pythonhosted.org/packages/d4/71/4b99ac8a0569348bbf76a29aad52dd9f5a983c6c323e51e3e312d8c49740/id4me_rp_client-0.0.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5bf6b486bb1d427ea161444591a732d6",
"sha256": "e4305a7de51f1f3c906a2d6fc5de24f1559057ae582e1cb7b8b071f1df12b82b"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "5bf6b486bb1d427ea161444591a732d6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10196,
"upload_time": "2018-10-05T18:10:12",
"url": "https://files.pythonhosted.org/packages/c1/fc/ab3dd0b2479196c7355b9025eaa17981ec77f9383d03cef12d877d2b1049/id4me-rp-client-0.0.2.tar.gz"
}
],
"0.0.20": [
{
"comment_text": "",
"digests": {
"md5": "6b7b030fb8efab28c9c094c69864899b",
"sha256": "26309913f01b460341d5543fc46cc738ff682437575d506ef7a7a615b16236a8"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.20-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "6b7b030fb8efab28c9c094c69864899b",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 18243,
"upload_time": "2019-05-23T06:57:11",
"url": "https://files.pythonhosted.org/packages/f6/01/ad14c5971d54665f33fabb797b48ed58449810d23e4c65ae6fcb36c0e5bc/id4me_rp_client-0.0.20-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2bde6510f76f48c5b3e225e4aa0d76c1",
"sha256": "25656fef91c938f8488f77fc5563a53ed6e0faad4074ef0b7628a069594af9e9"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.20.tar.gz",
"has_sig": false,
"md5_digest": "2bde6510f76f48c5b3e225e4aa0d76c1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17881,
"upload_time": "2019-05-23T06:57:12",
"url": "https://files.pythonhosted.org/packages/81/77/cdcadee0523c5380f224863d91d8a3e606c735fb479dbe7836fe48488e0a/id4me-rp-client-0.0.20.tar.gz"
}
],
"0.0.21": [
{
"comment_text": "",
"digests": {
"md5": "138c37fc02c5ee97b9d5bf41409077c5",
"sha256": "f6e7222af591bd1b066bd46bbe26f000ac4f2754674a805031808635235ff854"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.21-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "138c37fc02c5ee97b9d5bf41409077c5",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 17700,
"upload_time": "2019-07-29T12:29:16",
"url": "https://files.pythonhosted.org/packages/c4/7a/b0b0f688c15ed9562d796f08f4c41e85382a0751b1b3e8d15a9f68915214/id4me_rp_client-0.0.21-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4e22fd57b65db9efe6d2a10c5476d1e4",
"sha256": "82d85fb392638c790e59fd907f4b60b0eb4e4259a5651682718f59baf5bf9913"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.21.tar.gz",
"has_sig": false,
"md5_digest": "4e22fd57b65db9efe6d2a10c5476d1e4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17950,
"upload_time": "2019-07-29T12:29:17",
"url": "https://files.pythonhosted.org/packages/93/71/ee1c065d7bb37be07d459e5a09b158a936c7fe4e51d55280cb42e6a73364/id4me-rp-client-0.0.21.tar.gz"
}
],
"0.0.22": [
{
"comment_text": "",
"digests": {
"md5": "0dcabc566a65d4d6573f231f00049570",
"sha256": "124b103a4666b30afd366788315063fa28993d445a3610628eca256baa7ad7d8"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.22-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0dcabc566a65d4d6573f231f00049570",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 18591,
"upload_time": "2019-07-29T14:08:49",
"url": "https://files.pythonhosted.org/packages/a3/00/389f3a1b387a4b2de2876d128118871e9471226f59234738b659a38a5b6e/id4me_rp_client-0.0.22-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7f03a1c21c29b30874cf8f1e143303ee",
"sha256": "cd788fc5221ab7c71d347cca878efcd90953a085c4180060515a09cb468d882f"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.22.tar.gz",
"has_sig": false,
"md5_digest": "7f03a1c21c29b30874cf8f1e143303ee",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18346,
"upload_time": "2019-07-29T14:08:50",
"url": "https://files.pythonhosted.org/packages/81/a0/955c8bbfcf8ed46a8f5749893674be5aff44e2ac27f452b8e668f98b00cc/id4me-rp-client-0.0.22.tar.gz"
}
],
"0.0.23": [
{
"comment_text": "",
"digests": {
"md5": "4fee661680f4cb44d43d79c63556d871",
"sha256": "2a69f41d01406836aa17358f3cbae383babffe68ace2feedf5d0f601b520da0f"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.23-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4fee661680f4cb44d43d79c63556d871",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19384,
"upload_time": "2019-10-04T12:15:10",
"url": "https://files.pythonhosted.org/packages/c6/c3/0e46e2f0b43a8d9f67a7091d14c3b8ae5cd8bc45486acade84de4f18c628/id4me_rp_client-0.0.23-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7e46fe65db4b46d2a73eacf887ae76e7",
"sha256": "f680485c3cdea2cd726faf522bbe0a92de7fe16b9f968ef8f0c1c11d2196645b"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.23.tar.gz",
"has_sig": false,
"md5_digest": "7e46fe65db4b46d2a73eacf887ae76e7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19182,
"upload_time": "2019-10-04T12:15:12",
"url": "https://files.pythonhosted.org/packages/cb/d8/9be5f6809d08913f969f64d897864f8012ed82e507ee25e3a913916f8e75/id4me-rp-client-0.0.23.tar.gz"
}
],
"0.0.4": [
{
"comment_text": "",
"digests": {
"md5": "9220b59f486e337b070be6b1bd44ca9a",
"sha256": "7f18416a5ee594e7b0fd4fd43779865adde05675c6692500ea4c6f9f49fd2f74"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "9220b59f486e337b070be6b1bd44ca9a",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 25239,
"upload_time": "2018-10-15T14:56:01",
"url": "https://files.pythonhosted.org/packages/fd/ae/9eb3eaa692c0200c7d6ab3fecc6baf27a6f5500b0a9e43d391663b1b8cd0/id4me_rp_client-0.0.4-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9bd33c0fbc2f8f1306b8aaff1236dcb1",
"sha256": "801cae4bb766cadf93cb64adaef60f1d6f0ebca941fc66893fffbff765a83db9"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "9bd33c0fbc2f8f1306b8aaff1236dcb1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10644,
"upload_time": "2018-10-15T14:56:04",
"url": "https://files.pythonhosted.org/packages/ae/a4/19cf6c4dabc57e297457ff1bb1c7c13da5d7288e8a2cbbb62dab35d11bb9/id4me-rp-client-0.0.4.tar.gz"
}
],
"0.0.5": [
{
"comment_text": "",
"digests": {
"md5": "73ce448034b703a26e01fe6a07230956",
"sha256": "2eb30fbb57ce052d2ab8171b3bd10f95efc639a37e68422c00b70e720a2592aa"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.5-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "73ce448034b703a26e01fe6a07230956",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 25292,
"upload_time": "2018-10-26T09:46:23",
"url": "https://files.pythonhosted.org/packages/09/3d/6c6a84e1e3d33399ec6cfeb56cc04727c02c586a57318ca6276a8da8156a/id4me_rp_client-0.0.5-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "0db6d725cfc9ab503c9cfda7cadd837d",
"sha256": "e091eaf3fc8de8ec6a7161eea78a17ab4d2998bc0e834f53a22060bbb7bb117d"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "0db6d725cfc9ab503c9cfda7cadd837d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10669,
"upload_time": "2018-10-26T09:46:27",
"url": "https://files.pythonhosted.org/packages/c2/5a/66e68f2fd9a0b903614bb1ad6f6d1a4c78a96cfefcb24d33ee476f33838e/id4me-rp-client-0.0.5.tar.gz"
}
],
"0.0.6": [
{
"comment_text": "",
"digests": {
"md5": "f1146f20ed6aa8c26b37d75587539a3d",
"sha256": "ed93d558491d3a089beff58e5c3628f2ba1c01b36ec1610773afa8db7cb5abe7"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.6-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "f1146f20ed6aa8c26b37d75587539a3d",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 25833,
"upload_time": "2018-12-14T09:47:02",
"url": "https://files.pythonhosted.org/packages/04/72/6876b3520f45e5e0bc628a6d2477e6b73cf736db9b34c2b7eff9a4ae38d5/id4me_rp_client-0.0.6-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "034814b49ff1160e32007cde30c4794d",
"sha256": "8c607a381603591999ec2ef91a39c1bc6d4c389974c2e3d6267662c0bf54340b"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.6.tar.gz",
"has_sig": false,
"md5_digest": "034814b49ff1160e32007cde30c4794d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11146,
"upload_time": "2018-12-14T09:47:07",
"url": "https://files.pythonhosted.org/packages/91/5b/16a2756d6ee167c147d3fd112f5f15811357100b022ecbdb092dd2b0cae5/id4me-rp-client-0.0.6.tar.gz"
}
],
"0.0.7": [
{
"comment_text": "",
"digests": {
"md5": "a59888b7cc7ec081f9b45878b9189e72",
"sha256": "007d936c69906265eaa0422752ef9c2228c81138ba0671cc823cf42e7f7572f9"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.7-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a59888b7cc7ec081f9b45878b9189e72",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 25793,
"upload_time": "2018-12-14T11:28:16",
"url": "https://files.pythonhosted.org/packages/00/e3/ef2bcfb6f39c99bcd0fd6775c264b34b1849f025574eeafffdc75544e3e8/id4me_rp_client-0.0.7-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3bed7de69e93f311813443bdcc0e03af",
"sha256": "11bb4431f112ee8978fb2af2df08adccc70844d789add181db7d48d4a19f2f98"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.7.tar.gz",
"has_sig": false,
"md5_digest": "3bed7de69e93f311813443bdcc0e03af",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11139,
"upload_time": "2018-12-14T11:28:22",
"url": "https://files.pythonhosted.org/packages/d8/33/f66051737d094d5223dc01b26b241e8352a0c99e45034a378d4070903791/id4me-rp-client-0.0.7.tar.gz"
}
],
"0.0.8": [
{
"comment_text": "",
"digests": {
"md5": "2d6db56fe584ab6f4ecf91d5d6ef0f26",
"sha256": "666e96c04b99390fa1fdd0e41367692d2944dd0287824ec69c8223b53d0a8ebb"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.8-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "2d6db56fe584ab6f4ecf91d5d6ef0f26",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 26405,
"upload_time": "2018-12-20T16:09:26",
"url": "https://files.pythonhosted.org/packages/d2/a7/d22d18b2de6c4ffda8594b5f5c8df30449f7ebfb1946104185d82edbc94e/id4me_rp_client-0.0.8-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "82ec67432739591a52b2d939b5e86864",
"sha256": "05a1467639d14080ff60c712080d8c2f43490fb684c7d1c47ad502077d7b7e3f"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.8.tar.gz",
"has_sig": false,
"md5_digest": "82ec67432739591a52b2d939b5e86864",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11789,
"upload_time": "2018-12-20T16:09:32",
"url": "https://files.pythonhosted.org/packages/b4/73/9e5c04c90bea3579a26bac0dd10a7559a93ad37bdc438471a9c10d7c8052/id4me-rp-client-0.0.8.tar.gz"
}
],
"0.0.9": [
{
"comment_text": "",
"digests": {
"md5": "2e7c6ef64fc3c610e1f85a3e880d64f1",
"sha256": "542e3d682bb62295a7c754023897afeac0ba8af1b58c91ddfb397e179785c676"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.9-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "2e7c6ef64fc3c610e1f85a3e880d64f1",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 26453,
"upload_time": "2018-12-21T07:54:40",
"url": "https://files.pythonhosted.org/packages/c0/33/8d6a88dc9f7161123953153f876545d5e263810879b96404baade5fe701b/id4me_rp_client-0.0.9-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "cf9123ffe11253043300def98c1ed495",
"sha256": "d8526e8f316f6984a13c10367b13b5a33ab4bb07bcfa4310d3115fb342b4c2f7"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.9-py3.7.egg",
"has_sig": false,
"md5_digest": "cf9123ffe11253043300def98c1ed495",
"packagetype": "bdist_egg",
"python_version": "3.7",
"requires_python": null,
"size": 28993,
"upload_time": "2019-02-18T11:45:32",
"url": "https://files.pythonhosted.org/packages/f9/7d/49c63e224b07324c9f5f085ba4b9d9062f1c388aa6d6587a4dfac1f3e6aa/id4me_rp_client-0.0.9-py3.7.egg"
},
{
"comment_text": "",
"digests": {
"md5": "02e5902078a08f7e6d6943608ccc4c25",
"sha256": "66cecf8fbd17138a798fd8e741eaa617419a2e0f96a121a7ed798e2c9361ee7b"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.9.tar.gz",
"has_sig": false,
"md5_digest": "02e5902078a08f7e6d6943608ccc4c25",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11809,
"upload_time": "2018-12-21T07:54:47",
"url": "https://files.pythonhosted.org/packages/eb/d2/110ceee193345d3b250d522f67e7260bf70c65237ad65430e333cc2ab3da/id4me-rp-client-0.0.9.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "4fee661680f4cb44d43d79c63556d871",
"sha256": "2a69f41d01406836aa17358f3cbae383babffe68ace2feedf5d0f601b520da0f"
},
"downloads": -1,
"filename": "id4me_rp_client-0.0.23-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4fee661680f4cb44d43d79c63556d871",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19384,
"upload_time": "2019-10-04T12:15:10",
"url": "https://files.pythonhosted.org/packages/c6/c3/0e46e2f0b43a8d9f67a7091d14c3b8ae5cd8bc45486acade84de4f18c628/id4me_rp_client-0.0.23-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7e46fe65db4b46d2a73eacf887ae76e7",
"sha256": "f680485c3cdea2cd726faf522bbe0a92de7fe16b9f968ef8f0c1c11d2196645b"
},
"downloads": -1,
"filename": "id4me-rp-client-0.0.23.tar.gz",
"has_sig": false,
"md5_digest": "7e46fe65db4b46d2a73eacf887ae76e7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19182,
"upload_time": "2019-10-04T12:15:12",
"url": "https://files.pythonhosted.org/packages/cb/d8/9be5f6809d08913f969f64d897864f8012ed82e507ee25e3a913916f8e75/id4me-rp-client-0.0.23.tar.gz"
}
]
}