{ "info": { "author": "Bart Thate", "author_email": "bthate@dds.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: Unix", "Programming Language :: Python", "Topic :: Utilities" ], "description": "\nOBJ.SERVER is a package part of the OBJ namespace. It provides server to run on linux.\n\nOBJ is a pure python package that provides an object class that can save/load objects in JSON format to disk.\nFiles are saved with a timestamp in their filename, so searching in a time related manner becomes possible.\n\nOBJ has a \"no-clause MIT license\" that should be the most liberal license you can get at the year 2018.\n\n| pypi: https://pypi.org/project/obj | source: http://bitbucket.org/bthate/obj | email: bthate@dds.nl\n\nmodules\n=======\n\nOBJ contains the following modules:\n\n::\n\n base\t\t- the base module containing the Object class providing load/save to JSON functionality.\n bots\t\t- bots package.\n bus\t\t- send text to a list of registered handlers.\n cli\t\t- the command line interface bot giving access to the bot from the shell.\n cmds\t\t- commands subpackage containing the above listed commands.\n db\t\t- database functionality that can search through objects stored on disk.\n event\t\t- the Event class generated on bots when data is read from the socket.\n handler\t- the event handler of the bot.\n loader\t\t- Loader class to load modules from ob space into the program.\n shell\t\t- shell related startup, cli arguments parsing and logging.\n thr\t\t- thread module to launch, kill threads.\n users\t\t- provides user management code.\n\nusage\n=====\n\nThe basic class is Object that inherits from object and add load/save methods to a standard object:\n\n >>> from obj.base import Object\n >>> o = Object()\n >>> p = o.save()\n >>> oo = Object()\n >>> oo.load(p) \n >>> o == oo\n >>> True\n\nNext class is Obj, a dict combined with Object provides a usable \"dotted access\" dict:\n\n >>> from obj.base import Obj\n >>> o = Obj()\n >>> o.test = \"test1\"\n >>> p = o.save()\n >>> oo = Obj()\n >>> oo.load(p)\n >>> oo.test == \"test1\"\n >>> True\n\nshell\n=====\n\nYou can get a OBJ shell working by running python3 -m obj.bots.shell.\n\nOBJ shell has the following commands::\n\n cfg\t\t- show config files.\n cmds\t\t- show list of commands.\n deleted\t- show deleted objects.\n ed\t\t- edit saved objects.\n exit\t\t- stop the CLI.\n find\t\t- find objects in the datastore.\n fleet\t\t- show list of registered handlers.\n kill\t\t- stop a thread.\n last\t\t- show last record of a object.\n load\t\t- load a module.\n log\t\t- log some text.\n ls\t\t- list subdirectories in the workdir.\n meet\t\t- add a user\n perm\t\t- change permissions of a user.\n ps\t\t- show running threads.\n reboot\t\t- reboot the CLI.\n rm\t\t- set the deleted flag on an object.\n rmperm\t\t- remove permissions.\n test\t\t- echo test response.\n todo\t\t- store a todo item.\n unload\t\t- unload a module.\n uptime \t- show uptime.\n user\t\t- user lookup.\n version\t- show OBJ version.\n\nprogramming\n===========\n\nProgramming your own commands for the CLI is easy, your can load modules with the -m option.\nA command is a function with one argument, the event that was generated on the bot::\n\n def mycommand(event):\n\n <<< your code here >>>\n\nYou can use event.reply() to send response back to the user.\n\n \n ", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/bthate/obj.server", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "obj.server", "package_url": "https://pypi.org/project/obj.server/", "platform": "", "project_url": "https://pypi.org/project/obj.server/", "project_urls": { "Homepage": "https://bitbucket.org/bthate/obj.server" }, "release_url": "https://pypi.org/project/obj.server/2/", "requires_dist": null, "requires_python": "", "summary": "Obj servers", "version": "2" }, "last_serial": 4368321, "releases": { "1": [ { "comment_text": "", "digests": { "md5": "bb77841aa8cbe23c1c2bd38af91433aa", "sha256": "0e7fd4ce1c07b2a7d1a3e759f83567b8bcc94e24267d5ce91f1821b63ed897a3" }, "downloads": -1, "filename": "obj.server-1.tar.gz", "has_sig": false, "md5_digest": "bb77841aa8cbe23c1c2bd38af91433aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3867, "upload_time": "2018-09-29T14:39:54", "url": "https://files.pythonhosted.org/packages/9f/bc/c181b755ab84cad24e378ac5b6e6b7aa4637e5f0ed51f43a8146b5e6868b/obj.server-1.tar.gz" } ], "2": [ { "comment_text": "", "digests": { "md5": "96e61027963612d6797d2ea83c8a217f", "sha256": "7889893ccf0c88438b9cd3bb66091d4474f0c9017e8c502c2d16a349573fe230" }, "downloads": -1, "filename": "obj.server-2.tar.gz", "has_sig": false, "md5_digest": "96e61027963612d6797d2ea83c8a217f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3854, "upload_time": "2018-10-12T11:45:10", "url": "https://files.pythonhosted.org/packages/79/d3/ed90c68053661e1299fcd55dd31374528ff4b68be6f527749620bd93fb7d/obj.server-2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "96e61027963612d6797d2ea83c8a217f", "sha256": "7889893ccf0c88438b9cd3bb66091d4474f0c9017e8c502c2d16a349573fe230" }, "downloads": -1, "filename": "obj.server-2.tar.gz", "has_sig": false, "md5_digest": "96e61027963612d6797d2ea83c8a217f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3854, "upload_time": "2018-10-12T11:45:10", "url": "https://files.pythonhosted.org/packages/79/d3/ed90c68053661e1299fcd55dd31374528ff4b68be6f527749620bd93fb7d/obj.server-2.tar.gz" } ] }