Skip to main content

Obj servers

Project description

OBJ.SERVER is a package part of the OBJ namespace. It provides server to run on linux.

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.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
obj.server-2.tar.gz (3.9 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page