{ "info": { "author": "Praekelt International", "author_email": "dev@praekelt.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "jmbo-neo\n========\n\njmbo-neo provides integration with Neo Web Services for jmbo and jmbo-foundry. It syncs jmbo-foundry's Member objects with consumers\nin the Neo data hubs. Syncing refers to the creation, modification and deactivation of Neo consumers as Member objects are created, modified\nand deactivated.\n\nAuthentication-related actions are also performed via Neo Web Services. These include logging in and out and changing passwords. jmbo-neo also\nsupports a number of other Neo API calls. These, in addition to the above mentioned, can be invoked as necessary in other jmbo apps.\n\nRequirements\n------------\n\nSystem libraries\n****************\n- libxml2-dev\n- libxslt-dev\n\nPython packages\n***************\n- python-lxml\n- requests\n\n*jmbo-neo uses generateDS.py (http://cutter.rexx.com/~dkuhlman/generateDS.html) to generate Python classes from Neo XML schemas.*\n\nUsage\n-----\n\n`neo.api` contains functions for all the supported Neo API calls. Consumer calls require either a consumer ID or consumer object (or both).\nIf a consumer has been created for a particular Member, a corresponding NeoProfile object will be stored in the database. So to obtain the\nconsumer ID, use `neo.models.NeoProfile(user=member.id).consumer_id`.\n\nA consumer object is an instance of `neo.xml.Consumer`. Consumer should not be instantiated directly. Internally, jmbo-neo uses `neo.xml.parseString(response.content)`\nto create a consumer object from the XML return by Neo Web Services. This object will be returned when calling, for instance, `neo.api.get_consumer`.\nTo access this consumer object, you should use the wrapper class `neo.utils.ConsumerWrapper`. It has all the necessary getter and setter methods to correctly\nmanipulate the consumer object, ensuring the resulting XML is valid.\n\n**When using jmbo-neo, all non-required Member fields will be null, or set to their default values. Queries on Member objects\nwill return incorrect results.**\n\nSettings\n********\nThe following settings must be added to settings.py::\n\n NEO = {\n 'URL': 'neowebservices.com/service/'\n 'APP_ID': '1',\n 'VERSION_ID': '1.3',\n 'PROMO_CODE': 'testPromo', # if there is a single promo code for the website\n 'BRAND_ID': 35, # if there is a single brand for the website\n 'PASSWORD': 'password', # http basic auth password\n }\n\n AUTHENTICATION_BACKENDS = ('neo.backends.NeoBackend',)\n\nTo-do\n-----\n\n1. Replace generateDS.py with `lxml.objectify`.\n2. Mock testing calls to Neo API using `mock`.\nAuthors\n=======\n\nPraekelt Foundation\n-------------------\n\n* Rizmari VersfeldChangelog\n=========\n\n0.4.5.1 (17-01-2014)\n--------------------\n#. Increase upper limit on jmbo-foundry version.\n\n0.4.5 (23-10-2013)\n------------------\n#. Log all API calls. Uses `neo.api` logger.\n\n0.4.4.1 (28-09-2013)\n--------------------\n#. Add `ModifyFlag` to empty `Answer` element. Invalid otherwise.\n\n0.4.4 (28-09-2013)\n------------------\n#. Add `answer_set` to `QuestionAnswerWrapper` for adding answers in bulk.\n\n0.4.3 (18-06-2013)\n------------------\n#. Don't create consumer on member load - issue for views with many members and unmigrated accounts.\n\n0.4.2 (14-06-2013)\n------------------\n#. Normalize login_alias, removing bad characters and padding it.\n#. Add a validation module with validators for email, mobile_number and login_alias - to be expanded.\n#. Fix error on `user_logged_out` if there is no authenticated user.\n\n0.4.1 (06-06-2013)\n------------------\n#. Only clean via Neo if no local errors in join form.\n\n0.4 (23-05-2013)\n----------------\n#. Use random password for Neo auth instead of actual user password.\n#. Only `Member.full_clean` throws ValidationError, not `Member.save` anymore.\n#. Remove auth backend and middleware. The user's plain text password isn't stashed in the session or on the `member` object anymore.\n#. Add `created` field to `NeoProfile` - useful for checking consumer creation limit (10 000 per day at the moment).\n#. Reduce test time by re-using an immutable member where possible.\n\n0.3 (03-05-2013)\n----------------\n#. Add a new management command to export members for bulk upload:\n ``members_to_cidb_dataloadtool``\n#. Automatically create consumers on CIDB for members on login.\n#. Consumer creation deferred until a member is complete according to `RegistrationPreferences.required_fields`.\n#. Consumer fields are kept in sync with member fields over MCAL.\n#. Use `login_alias` instead of `Member.username` for CIDB communications. \n\n0.2 (09-11-2012)\n----------------\n#. Create member if credentials are valid and the member does not exist.\n#. Fix bug in logout.\n\n0.1 (18-10-2012)\n----------------\n#. Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/praekelt/jmbo-neo", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "jmbo-neo", "package_url": "https://pypi.org/project/jmbo-neo/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/jmbo-neo/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/praekelt/jmbo-neo" }, "release_url": "https://pypi.org/project/jmbo-neo/0.4.5.1/", "requires_dist": null, "requires_python": null, "summary": "Jmbo Neo Web Services integration app.", "version": "0.4.5.1" }, "last_serial": 972633, "releases": { "0.0.1": [], "0.1": [ { "comment_text": "", "digests": { "md5": "4d45fd822be2bce7964f3e0eaf023207", "sha256": "385a64d34b0c8933aacda94b5f9f040c39ca0236513d1b64038e5d1a72039c8e" }, "downloads": -1, "filename": "jmbo_neo-0.1-py2.6.egg", "has_sig": false, "md5_digest": "4d45fd822be2bce7964f3e0eaf023207", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 106637, "upload_time": "2012-10-18T12:22:35", "url": "https://files.pythonhosted.org/packages/4a/df/99a196dd92df6b176699d4ebd948bd2149e6fdd888a76ba35e2a75ae6873/jmbo_neo-0.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "9b8ccd392e955d456518c22110274f10", "sha256": "f946c0fbed61834cf52de838c67ee4308c3731375a8853f7cd307cd7c8ee0ae1" }, "downloads": -1, "filename": "jmbo_neo-0.1-py2.7.egg", "has_sig": false, "md5_digest": "9b8ccd392e955d456518c22110274f10", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 107077, "upload_time": "2012-10-18T12:23:10", "url": "https://files.pythonhosted.org/packages/09/70/e80931c8d6f8b2ded3dd58962090336370ed350e196d9f8af05789607b57/jmbo_neo-0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "dfca420f1dd902349b5dfd74b34fddc6", "sha256": "4f24049f5005ccd620ffd0b48af67b98c7a89e58ed4b22852830030cfc08828a" }, "downloads": -1, "filename": "jmbo-neo-0.1.tar.gz", "has_sig": false, "md5_digest": "dfca420f1dd902349b5dfd74b34fddc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43013, "upload_time": "2012-10-18T12:22:43", "url": "https://files.pythonhosted.org/packages/9f/0d/c7bb7bd13381f04acf6ce25da1fb667e9fe30e7c6cbde54ba7085895bab3/jmbo-neo-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "0ba4443a3c15a20b38bc7e50391a1e1b", "sha256": "10ddb3b3d6e975d2b3c2d87bdc22ae54c80d2e15aca45b5999757c19844a54b4" }, "downloads": -1, "filename": "jmbo_neo-0.2-py2.6.egg", "has_sig": false, "md5_digest": "0ba4443a3c15a20b38bc7e50391a1e1b", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 107840, "upload_time": "2012-11-09T13:14:51", "url": "https://files.pythonhosted.org/packages/7a/2b/4d50647b5b82d067b4ed63e1ad6348db597d4fed36b604d0a1a244230f08/jmbo_neo-0.2-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "c6de0967a28dfa17d928df780c789def", "sha256": "7ebacaa0ae0e2aba2a980a280d6b3b4a461bb3a48af396e72fcbde0a8fb86023" }, "downloads": -1, "filename": "jmbo_neo-0.2-py2.7.egg", "has_sig": false, "md5_digest": "c6de0967a28dfa17d928df780c789def", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 108275, "upload_time": "2012-11-09T13:18:22", "url": "https://files.pythonhosted.org/packages/50/83/3b1d60acf10b2be130cbd3d6483967664313741f77b7114a52f510e4ba5b/jmbo_neo-0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "b4a23f6f55aad51482cd7d7d62849164", "sha256": "fdc90cf87d21be20449c7df31652afa4b08548f4ed924d23568e162172478d05" }, "downloads": -1, "filename": "jmbo-neo-0.2.tar.gz", "has_sig": false, "md5_digest": "b4a23f6f55aad51482cd7d7d62849164", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43407, "upload_time": "2012-11-09T13:17:54", "url": "https://files.pythonhosted.org/packages/19/7c/94b9e4e0bbd642f10a418a2b817bc1062425fe5fbb8903ab82fb4830e70a/jmbo-neo-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "f98167b953ea01fb5dcd3b2410764275", "sha256": "ccad87da51f849ba873a6e32e9321af7d0339e151b33e995a0ffdb695d03cf83" }, "downloads": -1, "filename": "jmbo_neo-0.3-py2.7.egg", "has_sig": false, "md5_digest": "f98167b953ea01fb5dcd3b2410764275", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 145451, "upload_time": "2013-05-03T09:29:43", "url": "https://files.pythonhosted.org/packages/c6/80/68e4171d6da47506d455f49b7ed4caeeaa521e24ac46479895e492088c09/jmbo_neo-0.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "23563c830a648ec794b70e9061d099d1", "sha256": "f72da800a9411125716930791385df0c9965ad8a7f8037301936e7fcf2e62202" }, "downloads": -1, "filename": "jmbo-neo-0.3.tar.gz", "has_sig": false, "md5_digest": "23563c830a648ec794b70e9061d099d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52947, "upload_time": "2013-05-03T09:30:46", "url": "https://files.pythonhosted.org/packages/4b/4e/f39e6393b5772eba7c5d6f587c74804ac571123c15f3f59f7811358784e4/jmbo-neo-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "3b9a7fbd5229123dc89b42f9b8fbcb6a", "sha256": "8f684827f823fbef6c5c5b7c7dead9cf8cc17fb9b33ae00e132ea5455fc720cd" }, "downloads": -1, "filename": "jmbo_neo-0.4-py2.7.egg", "has_sig": false, "md5_digest": "3b9a7fbd5229123dc89b42f9b8fbcb6a", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 148963, "upload_time": "2013-05-23T15:29:46", "url": "https://files.pythonhosted.org/packages/18/19/519948a336cb0ea29d58f82618ec20d89f222bf6953bbdd2fc93ba9e1a35/jmbo_neo-0.4-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "1d195666efb394f327fae67764b37d42", "sha256": "7956eeac370a5c6a3b7e8cae392b6e981ee3f6d69ecc5ab119e0c5acfba3a106" }, "downloads": -1, "filename": "jmbo-neo-0.4.tar.gz", "has_sig": false, "md5_digest": "1d195666efb394f327fae67764b37d42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52553, "upload_time": "2013-05-23T15:29:52", "url": "https://files.pythonhosted.org/packages/0e/e6/9033acd16a938b1694a110dde83606d6c5bda6a7b085fa7581c2884781fe/jmbo-neo-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "5d0760f62f7e41f4e0de73bd42d36bf7", "sha256": "6b2b33ab283ded4fd2e97111a215b50766a59651fe1477eda322bf97343669b7" }, "downloads": -1, "filename": "jmbo_neo-0.4.1-py2.7.egg", "has_sig": false, "md5_digest": "5d0760f62f7e41f4e0de73bd42d36bf7", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 149027, "upload_time": "2013-06-06T12:59:55", "url": "https://files.pythonhosted.org/packages/b3/2e/fbd4b3ee52e8b8fcd76e9cdc5194605acaa12eca908cc572c0234ca28d8b/jmbo_neo-0.4.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "23ce867bb2d16753cd902c0cd48ebd9a", "sha256": "0291899f48ff1fc7fd681d29c37b0a39dfbbbc539a94b34b447ae477dbac2fe1" }, "downloads": -1, "filename": "jmbo-neo-0.4.1.tar.gz", "has_sig": false, "md5_digest": "23ce867bb2d16753cd902c0cd48ebd9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52631, "upload_time": "2013-06-06T13:00:00", "url": "https://files.pythonhosted.org/packages/8d/36/9c7052694897f11cb643abc80da0548f5f471631c550c3e4f1c6cd98e743/jmbo-neo-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "2f93a41de151b0eee63e530f1d9ed2cb", "sha256": "012b337815c2bc7573ba0f62568948bb6823c16328ea4e0f549292f158e9a858" }, "downloads": -1, "filename": "jmbo_neo-0.4.2-py2.7.egg", "has_sig": false, "md5_digest": "2f93a41de151b0eee63e530f1d9ed2cb", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 150512, "upload_time": "2013-06-14T14:46:57", "url": "https://files.pythonhosted.org/packages/ff/50/32e112085e1e0b03d8ec4d6e5b569f933b3eb61643334fdb07edd508ea8b/jmbo_neo-0.4.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "3511bf4e4fc901aa798a89bb1d626804", "sha256": "c08a7f0934d90dc6b3d6f7bbf32298c41d3be9ddda5dbe1f3ad2d6df3d05b715" }, "downloads": -1, "filename": "jmbo-neo-0.4.2.tar.gz", "has_sig": false, "md5_digest": "3511bf4e4fc901aa798a89bb1d626804", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53157, "upload_time": "2013-06-14T14:47:01", "url": "https://files.pythonhosted.org/packages/a2/3e/bb0a7125b9ea573bd5d87103370e25a79cdc946cf3ad4d4e7df39a7a03d0/jmbo-neo-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "877289aec534fe7d5be8c64ea64af7aa", "sha256": "e24546bf861beb6f13a57e55781253f21a9e4d950df90ebfe71ee6a5f75f14c9" }, "downloads": -1, "filename": "jmbo_neo-0.4.3-py2.7.egg", "has_sig": false, "md5_digest": "877289aec534fe7d5be8c64ea64af7aa", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 150314, "upload_time": "2013-06-18T13:10:54", "url": "https://files.pythonhosted.org/packages/1b/3f/a3eb7d201b9b99696e64d8f66eb9b7baee11302af5d4b5107a3da1a3c265/jmbo_neo-0.4.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "5c7a9c5d42606ea2890b858ce10a28b3", "sha256": "d958d8f27fdfb2915bbf8188c539126765bd3b0eeb09525ae9c80b416e209e03" }, "downloads": -1, "filename": "jmbo-neo-0.4.3.tar.gz", "has_sig": false, "md5_digest": "5c7a9c5d42606ea2890b858ce10a28b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53116, "upload_time": "2013-06-18T13:11:00", "url": "https://files.pythonhosted.org/packages/07/68/2fcc98b0b2af1bb0c8b48152be13e40d92bfaa8ebd3fe175e0fa5fff4f67/jmbo-neo-0.4.3.tar.gz" } ], "0.4.4.1": [ { "comment_text": "", "digests": { "md5": "108ebaa2f43433483f334dad554323ee", "sha256": "058269d0d472a2eee9466053abc2579287a08a42ff616220cb440258b91fd0ad" }, "downloads": -1, "filename": "jmbo_neo-0.4.4.1-py2.7.egg", "has_sig": false, "md5_digest": "108ebaa2f43433483f334dad554323ee", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 151142, "upload_time": "2013-09-28T20:02:16", "url": "https://files.pythonhosted.org/packages/e8/50/f1ea3dcc3e03e6c20b2a4ce474a27932bc2c5607d6c2d872be7de0775aad/jmbo_neo-0.4.4.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "7677cc1e31548d802010bce57fa5e815", "sha256": "b8e423c99ae62804fbdcea0e5cf34a080aeb220136cb809e47a0b37ae917051a" }, "downloads": -1, "filename": "jmbo-neo-0.4.4.1.tar.gz", "has_sig": false, "md5_digest": "7677cc1e31548d802010bce57fa5e815", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53515, "upload_time": "2013-09-28T20:02:21", "url": "https://files.pythonhosted.org/packages/b8/68/25213ced28661cce37c7dfd5f07b43f2c548323c3fd928b2bde34d0ba9ed/jmbo-neo-0.4.4.1.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "28be623e1ed33d1c150a93c09a822cea", "sha256": "f50abd7f02268b8ae99027baa149131e96b7f77c352fe5d90edb46f5140ada72" }, "downloads": -1, "filename": "jmbo_neo-0.4.5-py2.7.egg", "has_sig": false, "md5_digest": "28be623e1ed33d1c150a93c09a822cea", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 154449, "upload_time": "2013-10-23T17:03:32", "url": "https://files.pythonhosted.org/packages/9f/bf/78a17795e4ddd1e139ab7a21e60a83bc4ab51a8c7f94df56b6e3b806858a/jmbo_neo-0.4.5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "54a2db711e3fb019adee086184f3f809", "sha256": "2d154bec22f9d37ade7566345a0e5ffbcc5d2a6e7f5c5b835b626d1608ffd15a" }, "downloads": -1, "filename": "jmbo-neo-0.4.5.tar.gz", "has_sig": false, "md5_digest": "54a2db711e3fb019adee086184f3f809", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54684, "upload_time": "2013-10-23T17:03:36", "url": "https://files.pythonhosted.org/packages/69/83/d64b06060aa2cc770defe78a9b7762a1938cef294107e8726d28df1fcdc4/jmbo-neo-0.4.5.tar.gz" } ], "0.4.5.1": [ { "comment_text": "", "digests": { "md5": "30874f4cee5684673bc64575f6cc7c7c", "sha256": "fe81407cc3bf3546fd998ccd76122d6e1b7525fe92725c9b539f0e90b95b6203" }, "downloads": -1, "filename": "jmbo_neo-0.4.5.1-py2.7.egg", "has_sig": false, "md5_digest": "30874f4cee5684673bc64575f6cc7c7c", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 157728, "upload_time": "2014-01-17T15:40:25", "url": "https://files.pythonhosted.org/packages/ec/9c/43e686cec930d50754c7ee7a04ec5c579d0f18185950c02eaba1cc683acd/jmbo_neo-0.4.5.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "14f2864c3ca4167c6661b215d053e89d", "sha256": "92ca1f532832fbd17cf079c2f8f90d3e191b6e31f3ac3caf072d9d3f3e766284" }, "downloads": -1, "filename": "jmbo-neo-0.4.5.1.tar.gz", "has_sig": false, "md5_digest": "14f2864c3ca4167c6661b215d053e89d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54779, "upload_time": "2014-01-17T15:40:29", "url": "https://files.pythonhosted.org/packages/3a/56/e12d8daa7781ea718636e23bd720a822e9b120a918eec5823abd49fe9fa2/jmbo-neo-0.4.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "30874f4cee5684673bc64575f6cc7c7c", "sha256": "fe81407cc3bf3546fd998ccd76122d6e1b7525fe92725c9b539f0e90b95b6203" }, "downloads": -1, "filename": "jmbo_neo-0.4.5.1-py2.7.egg", "has_sig": false, "md5_digest": "30874f4cee5684673bc64575f6cc7c7c", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 157728, "upload_time": "2014-01-17T15:40:25", "url": "https://files.pythonhosted.org/packages/ec/9c/43e686cec930d50754c7ee7a04ec5c579d0f18185950c02eaba1cc683acd/jmbo_neo-0.4.5.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "14f2864c3ca4167c6661b215d053e89d", "sha256": "92ca1f532832fbd17cf079c2f8f90d3e191b6e31f3ac3caf072d9d3f3e766284" }, "downloads": -1, "filename": "jmbo-neo-0.4.5.1.tar.gz", "has_sig": false, "md5_digest": "14f2864c3ca4167c6661b215d053e89d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54779, "upload_time": "2014-01-17T15:40:29", "url": "https://files.pythonhosted.org/packages/3a/56/e12d8daa7781ea718636e23bd720a822e9b120a918eec5823abd49fe9fa2/jmbo-neo-0.4.5.1.tar.gz" } ] }