[output] Create preliminary framework for output handling

Prepare a framework for having modular outputs. Essentially, the main
application uses a output-type object to format strings for the
preamble, the actual data items, and a "postamble" (finalizer). The
printing of that representation, again, is up to the main application,
not the output framework.

Probably, at some point in the future, an interface class will be in
order, but right now, I want to keep it lean - seeing as for the
forseeable future, i3bar is going to be the one and only consumer of
this.
This commit is contained in:
Tobias Witek 2016-10-30 15:58:35 +01:00
parent 3dd69c71c2
commit c4683f3700
4 changed files with 33 additions and 0 deletions

0
bumblebee/__init__.py Normal file
View file

View file

13
bumblebee/outputs/i3.py Normal file
View file

@ -0,0 +1,13 @@
import json
class i3bar:
def preamble(self):
return json.dumps({ "version": 1 }) + "["
def data(self, data):
return json.dumps(data) + ","
def finalize(self):
return "]"
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

20
i3bumblebee Executable file
View file

@ -0,0 +1,20 @@
#!/usr/bin/env python
import bumblebee.outputs.i3
def main():
output = bumblebee.outputs.i3.i3bar()
print output.preamble()
while True:
# TODO: retrieve data from modules
data = []
print output.data(data)
print output.finalize()
if __name__ == "__main__":
main()
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4