{
"info": {
"author": "Etu Corporation",
"author_email": "support@etusolution.com, finchen@etusolution.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 2 - Pre-Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU General Public License (GPL)",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Topic :: Software Development",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "etunexus\n========\n\nEtunexus is an GPL-licensed SDK encapsulating the API to interact with\n`etunexus online service `__.\n\nIt supports API of Etu Management Center (EMC) v2, Etu Recommender (ER)\nv3, and Etu Insight (EI) v3.\n\n\nFeatures\n--------\n\n- Simplify the single-signon process with a simple login() call.\n- Encapsulate the protocol detail into easy-of-use objects, but still\n keep the flexibility for adjustment.\n\n\nQuick start\n-----------\n\nEtuneuxs online service provides a rich and full-featured API entries\nfor every client supporting RESTful programming model to manipulate the\ndata and settings. It also provides a single-sign-on (SSO) service that\nmultiple applications can share the same user login authentication.\n\nHowever, for a Python programmer, it is still complicated to code the\nSSO process with involving two stages communication between SSO server\nand application server from the ground. The SDK wraps it as a simple\nlogin() call as:\n\n.. code-block:: pycon\n\n >>> from etunexus.cas import *\n >>> from etunexus.emc import *\n >>>\n >>> cas = CAS([user_group], [user_name], [password])\n >>> # It is optional to make SSO login first.\n >>> cas.login()\n 'TGT-147-ZRV9j9fy2mv2wZujOKMyaFlOeKXJqvf9S6jBcWeJ39vb1TzKaY-cas.etu.im'\n >>>\n >>> # Login application\n >>> emc2 = EMC2(cas)\n >>> emc2.login()\n 'ST-232-wUwi0bNFhB66Xxr4wM7o-cas.etu.im'\n\nThe subsequent API call is also trivial with the methods of the\napplication object. For example, it is easy to get the group list and\nthe user list in a group (of course, for an authorized account only)\nwith:\n\n.. code-block:: pycon\n\n >>> # Get all groups, and then find a specific group.\n >>> groups=emc2.get_groups()\n >>> workshop_group = filter(lambda x: x['name']=='workshop', groups)[0]\n >>> print workshop_group\n {'id': 2, 'displayName': u'Workshop Sample', 'name': u'workshop', 'createTime': 1484113449499}\n >>>\n >>> # Get all users, and then find a specific user\n >>> workshop_users = emc2.get_users(workshop_group)\n >>> workshop_user = filter(lambda x: x['name']=='workshop_user', workshop_users)[0]\n >>> print workshop_user\n {'displayName': u'Workshop User', 'name': u'workshop_user', 'roles': [{'roleName': u'Operator', 'appId': u'ETU-INSIG\n HT'}, {'roleName': u'Viewer', 'appId': u'ETU-RECOMMENDER'}], 'lastUpdateTime': 1487399443855, 'createTime': 14841296\n 56168, 'department': u'', 'mail': u'', 'password': None, 'id': 3}\n\nIt is worthy of noticing that the data returned are wrapped into\nobjects/classes:\n\n.. code-block:: pycon\n\n >>> type(workshop_group)\n \n >>> type(workshop_user)\n \n\nTo manipulate the data, for example, add a user to the group. First,\ncreate an object as the data with the constructor already properly\ndesigned:\n\n.. code-block:: pycon\n\n >>> new_user=User('new_workshop_user', 'New workshop user', 'password')\n >>> emc2.add_user(workshop_group, new_user)\n {'createTime': 1487735435494, 'department': u'', 'displayName': u'New workshop user', 'id': 15, 'lastUpdateTime': 14\n 87735435494, 'mail': u'', 'name': u'new_workshop_user', 'password': None, 'roles': []}\n\nAnd, it is easy to update the data with:\n\n.. code-block:: pycon\n\n >>> update_user = filter(lambda x: x['name']=='new_workshop_user', workshop_users)[0]\n >>>\n >>> from etunexus.enum import *\n >>> update_user['roles']=[UserRole(AppRoleName.VIEWER, AppId.ER), UserRole(AppRoleName.VIEWER, AppId.EI)]\n >>>\n >>> emc2.update_user(update_user)\n {'createTime': 1487735435494, 'department': u'', 'displayName': u'New workshop user', 'id': 15, 'lastUpdateTime': 14\n 87736051534, 'mail': u'', 'name': u'new_workshop_user', 'password': None, 'roles': [{'appId': u'ETU-RECOMMENDER', 'r\n oleName': u'Viewer'}, {'appId': u'ETU-INSIGHT', 'roleName': u'Viewer'}]}\n\nFinally, delete a resource is also as simple as:\n\n.. code-block:: pycon\n\n >>> emc2.del_user(update_user)\n 15\n\nSimilar programming model for other applications (ER and EI). Please\nrefer to pydoc for detail. There are also samples in `GitHub\nrepository `__.\n\n\nInstallation\n------------\n\nEtunexus is in PyPI. It can be installed easily directly with:\n\n.. code-block:: bash\n\n $ pip install etunexus\n\nOr, from Github:\n\n.. code-block:: bash\n\n $ git clone https://github.com/etusolution/etunexus_api.git\n $ cd etunexus_api/module\n $ python setup.py install\n\nDocuments generation\n--------------------\n\nAfter installed the SDK, the document of modules can be viewed with\nfollowing:\n\n.. code-block:: bash\n\n $ pydoc etunexus.emc\n $ pydoc etunexus.er\n $ pydoc etunexus.ei\n $ pydoc etunexus.enum\n\nOr, you can generate the HTML edition with \"pydoc -w\". For example,\nfollowing line generate an etunexus.emc.html.\n\n.. code-block:: bash\n\n $ pydoc -w etunexus.emc\n\nResources\n---------\n\n- `GitHub\n repository `__",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://www.etunexus.com/",
"keywords": "",
"license": "GPL",
"maintainer": "",
"maintainer_email": "",
"name": "etunexus",
"package_url": "https://pypi.org/project/etunexus/",
"platform": "",
"project_url": "https://pypi.org/project/etunexus/",
"project_urls": {
"Homepage": "http://www.etunexus.com/"
},
"release_url": "https://pypi.org/project/etunexus/0.6.8/",
"requires_dist": null,
"requires_python": "",
"summary": "Etu Nexus API",
"version": "0.6.8"
},
"last_serial": 3296706,
"releases": {
"0.5": [
{
"comment_text": "",
"digests": {
"md5": "e82a3d56938523e4d9169bffce91d8ed",
"sha256": "88304a4a65f561899672bba352213c01d121a391f6ed200ab5886e7bee354a71"
},
"downloads": -1,
"filename": "etunexus-0.5.tar.gz",
"has_sig": false,
"md5_digest": "e82a3d56938523e4d9169bffce91d8ed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12367,
"upload_time": "2017-02-14T12:03:22",
"url": "https://files.pythonhosted.org/packages/22/d0/8942c8db0ca1c18d6f909f84334d64b57907e89d78bacafe2904abdd34e6/etunexus-0.5.tar.gz"
}
],
"0.5.1": [
{
"comment_text": "",
"digests": {
"md5": "54a107266d6c7af3d6e9ca34fa9386ae",
"sha256": "c4c463def5e80335ec187446b14f17a97dc2783af6aa12cad135ef3eb5cbaa9e"
},
"downloads": -1,
"filename": "etunexus-0.5.1.tar.gz",
"has_sig": false,
"md5_digest": "54a107266d6c7af3d6e9ca34fa9386ae",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14803,
"upload_time": "2017-02-18T09:54:25",
"url": "https://files.pythonhosted.org/packages/3a/45/9ce6e5c87102854b8a28ff559a34064951e330dda368efeffcecbfcec5e2/etunexus-0.5.1.tar.gz"
}
],
"0.5.3": [
{
"comment_text": "",
"digests": {
"md5": "607c7a90e9419d8d669067356b090362",
"sha256": "a4ba1db58a3fcaf5a71d5bdd017db4e7e40d6f01340811efbe47543a8b12efcc"
},
"downloads": -1,
"filename": "etunexus-0.5.3.tar.gz",
"has_sig": false,
"md5_digest": "607c7a90e9419d8d669067356b090362",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21010,
"upload_time": "2017-02-22T04:56:47",
"url": "https://files.pythonhosted.org/packages/63/e9/59af34c5ac0a0d1a1f516b3615f198f3e2004cf94c103ae7883b1d96ee77/etunexus-0.5.3.tar.gz"
}
],
"0.5.4": [
{
"comment_text": "",
"digests": {
"md5": "2f16977aa9d6960e6d8fa4c0888f8e5a",
"sha256": "63d6c5833f4c8fbb62923aa4fedab9bb6e25cae956a3a97248287ba169312408"
},
"downloads": -1,
"filename": "etunexus-0.5.4.tar.gz",
"has_sig": false,
"md5_digest": "2f16977aa9d6960e6d8fa4c0888f8e5a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21435,
"upload_time": "2017-02-22T08:08:17",
"url": "https://files.pythonhosted.org/packages/a5/26/fb6521ad4b37a4c6d42d0f153a76e5a1998a743d2ef3a9c40249b0aed84c/etunexus-0.5.4.tar.gz"
}
],
"0.5.5": [
{
"comment_text": "",
"digests": {
"md5": "16ea737c463f858b2056951b4a5d1bd9",
"sha256": "2c08f4f877936a77aed7879cda8d60e0838a870613a85bf6cb70dd10af151195"
},
"downloads": -1,
"filename": "etunexus-0.5.5.tar.gz",
"has_sig": false,
"md5_digest": "16ea737c463f858b2056951b4a5d1bd9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21465,
"upload_time": "2017-02-22T09:26:03",
"url": "https://files.pythonhosted.org/packages/c7/d0/8d1c4649d0586ef2ce6e8fb6af0955f6b9c6357f2a7708494689af4e5def/etunexus-0.5.5.tar.gz"
}
],
"0.6": [
{
"comment_text": "",
"digests": {
"md5": "9f14ab06fb736a04f46f122dcd093818",
"sha256": "f5a49d7b4125276ade30aeb968f69767ee0ef7d8ec708d9accd6e7f02490d8a0"
},
"downloads": -1,
"filename": "etunexus-0.6.tar.gz",
"has_sig": false,
"md5_digest": "9f14ab06fb736a04f46f122dcd093818",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 24124,
"upload_time": "2017-03-07T07:27:48",
"url": "https://files.pythonhosted.org/packages/8a/24/17a5813830ebb763401e749f017b375d04b311684ebe1b3f2f942dcc82f8/etunexus-0.6.tar.gz"
}
],
"0.6.1": [
{
"comment_text": "",
"digests": {
"md5": "d5dada323bb4e68d5006e5e7a2add5ff",
"sha256": "d372a9b3ea1a402fafc2337e11d08145b87c2212917ddbbd55f96ca6a97fc31b"
},
"downloads": -1,
"filename": "etunexus-0.6.1.tar.gz",
"has_sig": false,
"md5_digest": "d5dada323bb4e68d5006e5e7a2add5ff",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 24312,
"upload_time": "2017-03-17T08:26:44",
"url": "https://files.pythonhosted.org/packages/f5/87/4cb3aef74d4c6f55936ae4ad0fb5380eec2868766233a18031b4a5845267/etunexus-0.6.1.tar.gz"
}
],
"0.6.2": [
{
"comment_text": "",
"digests": {
"md5": "84dd0aa1d22103e2c308c57de1cdf8f2",
"sha256": "426ce1e63b12bbdf2ab8f32c21eba23e824b3a46f2fe58c4e10e8f8f54c4230d"
},
"downloads": -1,
"filename": "etunexus-0.6.2.tar.gz",
"has_sig": false,
"md5_digest": "84dd0aa1d22103e2c308c57de1cdf8f2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 24767,
"upload_time": "2017-04-24T08:05:16",
"url": "https://files.pythonhosted.org/packages/a6/03/25d0d1dab7997cc56f42024c0edc195d1610d0c0089eb21ce5082bb44784/etunexus-0.6.2.tar.gz"
}
],
"0.6.3": [
{
"comment_text": "",
"digests": {
"md5": "04f574369f0d28a09677b2d6aacd37a5",
"sha256": "74822971370b27e1767ac933cc1f59745dcc2a2a7de1b8a57addb6afd0c6960e"
},
"downloads": -1,
"filename": "etunexus-0.6.3.tar.gz",
"has_sig": false,
"md5_digest": "04f574369f0d28a09677b2d6aacd37a5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25439,
"upload_time": "2017-06-07T03:28:51",
"url": "https://files.pythonhosted.org/packages/53/61/150f3e8bea9bbb831b6be443fa3ca90e1239c8a07cd1cccb29523c5ae623/etunexus-0.6.3.tar.gz"
}
],
"0.6.4": [
{
"comment_text": "",
"digests": {
"md5": "096a3f2da16c3da4cb9b8772355c06ed",
"sha256": "77c691cf39bb2f7d6ce422fee1f109f9f54f506584e42a12a03d3dac05bcaa71"
},
"downloads": -1,
"filename": "etunexus-0.6.4.tar.gz",
"has_sig": false,
"md5_digest": "096a3f2da16c3da4cb9b8772355c06ed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25664,
"upload_time": "2017-06-13T08:38:10",
"url": "https://files.pythonhosted.org/packages/b2/76/c6e22b844953932fe5bb9720a02cc58da6d8af30a750c5b2afc142897a38/etunexus-0.6.4.tar.gz"
}
],
"0.6.5": [
{
"comment_text": "",
"digests": {
"md5": "2e2cd5deab9db7cae527f8f3c1509396",
"sha256": "17c18729e921c53ba71eb299f5ccacd0601191ac0b3ab0d1921ae86225b64d17"
},
"downloads": -1,
"filename": "etunexus-0.6.5.tar.gz",
"has_sig": false,
"md5_digest": "2e2cd5deab9db7cae527f8f3c1509396",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26159,
"upload_time": "2017-08-01T05:28:48",
"url": "https://files.pythonhosted.org/packages/fa/ff/40b7bf109155ef32c8cf36de3b5f0565563b822f455825dbd583e7dbf168/etunexus-0.6.5.tar.gz"
}
],
"0.6.6": [
{
"comment_text": "",
"digests": {
"md5": "01724ba73d20ece70bd42682f0393987",
"sha256": "14467a8b3b1e68ed2cdc5c53b94ea086db0344ba7634587e055d7c70e1b7b16f"
},
"downloads": -1,
"filename": "etunexus-0.6.6.tar.gz",
"has_sig": false,
"md5_digest": "01724ba73d20ece70bd42682f0393987",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26807,
"upload_time": "2017-08-03T10:34:20",
"url": "https://files.pythonhosted.org/packages/86/4b/be2e430da99a33fe6e5ef54786c4f8d8c8d0273b0d32732f51b80ca94faa/etunexus-0.6.6.tar.gz"
}
],
"0.6.7": [
{
"comment_text": "",
"digests": {
"md5": "bdb329e62b886d273a40d1752bf8e874",
"sha256": "897ce6468c2caf672255b81b47addf861c2f68ca8675e70daf961e10963b1975"
},
"downloads": -1,
"filename": "etunexus-0.6.7.tar.gz",
"has_sig": false,
"md5_digest": "bdb329e62b886d273a40d1752bf8e874",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26953,
"upload_time": "2017-08-04T03:57:25",
"url": "https://files.pythonhosted.org/packages/e1/7f/e8932ae30b02b00b7c5ad217cf2f78f985d24ca33b1962fc177f28fb7a5e/etunexus-0.6.7.tar.gz"
}
],
"0.6.8": [
{
"comment_text": "",
"digests": {
"md5": "09149de6baff22dd74215c620f4a9472",
"sha256": "f7f3aefc7fd54db7e4996bb419653520bea7d3a1d8a871f293b9d6f1f7609a9c"
},
"downloads": -1,
"filename": "etunexus-0.6.8.tar.gz",
"has_sig": false,
"md5_digest": "09149de6baff22dd74215c620f4a9472",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26781,
"upload_time": "2017-11-01T10:31:15",
"url": "https://files.pythonhosted.org/packages/c6/27/e4ee8d74ab18b77787d00cb3e261b0e813365e635db962dc2ea91a499efe/etunexus-0.6.8.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "09149de6baff22dd74215c620f4a9472",
"sha256": "f7f3aefc7fd54db7e4996bb419653520bea7d3a1d8a871f293b9d6f1f7609a9c"
},
"downloads": -1,
"filename": "etunexus-0.6.8.tar.gz",
"has_sig": false,
"md5_digest": "09149de6baff22dd74215c620f4a9472",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26781,
"upload_time": "2017-11-01T10:31:15",
"url": "https://files.pythonhosted.org/packages/c6/27/e4ee8d74ab18b77787d00cb3e261b0e813365e635db962dc2ea91a499efe/etunexus-0.6.8.tar.gz"
}
]
}