semvec/pypi-packages huggingface dataset:
obj.server.rest 4
OBJ REST server
License: MIT


OBJ.SERVER.REST is a package part of the OBJ namespace. It provides as REST server to serve OBJ json files over HTTP.

OBJ is a pure python package that provides an object class that can save/load objects in JSON format to disk.
Files are saved with a timestamp in their filename, so searching in a time related manner becomes possible.

OBJ has a "no-clause MIT license" that should be the most liberal license you can get at the year 2018.

| pypi: https://pypi.org/project/obj | source: http://bitbucket.org/bthate/obj | email: bthate@dds.nl

modules
=======

OBJ contains the following modules:

::

 base		- the base module containing the Object class providing load/save to JSON functionality.
 bots		- bots package.
 bus		- send text to a list of registered handlers.
 cli		- the command line interface bot giving access to the bot from the shell.
 cmds		- commands subpackage containing the above listed commands.
 db		- database functionality that can search through objects stored on disk.
 event		- the Event class generated on bots when data is read from the socket.
 handler	- the event handler of the bot.
 loader		- Loader class to load modules from ob space into the program.
 shell		- shell related startup, cli arguments parsing and logging.
 thr		- thread module to launch, kill threads.
 users		- provides user management code.

usage
=====

The basic class is Object that inherits from object and add load/save methods to a standard object:

 >>> from obj.base import Object
 >>> o = Object()
 >>> p = o.save()
 >>> oo = Object()
 >>> oo.load(p)   
 >>> o == oo
 >>> True

Next class is Obj, a dict combined with Object provides a usable "dotted access" dict:

 >>> from obj.base import Obj
 >>> o = Obj()
 >>> o.test = "test1"
 >>> p = o.save()
 >>> oo = Obj()
 >>> oo.load(p)
 >>> oo.test == "test1"
 >>> True

shell
=====

You can get a OBJ shell working by running python3 -m obj.bots.shell.

OBJ shell has the following commands::

 cfg		- show config files.
 cmds		- show list of commands.
 deleted	- show deleted objects.
 ed		- edit saved objects.
 exit		- stop the CLI.
 find		- find objects in the datastore.
 fleet		- show list of registered handlers.
 kill		- stop a thread.
 last		- show last record of a object.
 load		- load a module.
 log		- log some text.
 ls		- list subdirectories in the workdir.
 meet		- add a user
 perm		- change permissions of a user.
 ps		- show running threads.
 reboot		- reboot the CLI.
 rm		- set the deleted flag on an object.
 rmperm		- remove permissions.
 test		- echo test response.
 todo		- store a todo item.
 unload		- unload a module.
 uptime 	- show uptime.
 user		- user lookup.
 version	- show OBJ version.

programming
===========

Programming your own commands for the CLI is easy, your can load modules with the -m option.
A command is a function with one argument, the event that was generated on the bot::

 def mycommand(event):

     <<< your code here >>>

You can use event.reply() to send response back to the user.