gviewer 3.0.6

Creator: bradpython12

Last updated:

Add to Cart

Description:

gviewer 3.0.6

# General Viewer (GViewer)[![Build Status](https://travis-ci.org/chhsiao90/gviewer.svg?branch=master)](https://travis-ci.org/chhsiao90/gviewer)[![Coverage Status](https://coveralls.io/repos/github/chhsiao90/gviewer/badge.svg?branch=master)](https://coveralls.io/github/chhsiao90/gviewer?branch=master)**Simple, Light Weight, Powerful** GViewer is a terminal UI library that depends on [urwid](https://github.com/urwid/urwid) simplified writing a tui based reporting system. You could write a powerful terminal UI that display and operate with data as you want with just less and less code.## Installation```shellpip install gviewer```## Run ExampleThere are some example in examples that provide some use cases. You could see and run the examples.```shellpython examples/panama.py```## Usage### Data Store####StaticDataStoreUsed for static data list, like log fileInitiate with a list of eny type of contentThe content will transfer to the your defined displayer later for display ```pythonfrom gviewer import StaticDataStoredata_store = StaticDataStore(data)```#### AsyncDataStoreUsed for asynchronous data list, like subscribe an [zeromq](http://zeromq.org/) publisher```pythondef register_func(on_message): some_listener.on_message(on_message)data_store = AsyncDataStore(register_func)```### DisplayerDefined how you display your data from Data Store to summary/details```pythonfrom gviewer import BaseDisplayer, View, Group, PropsGroup, Text, Propclass MyDisplayer(BaseDisplayer): def to_summary(self, message): """ return a str or text markup reference: http://urwid.org/manual/displayattributes.html#text-markup """ return message["summary"] def get_views(self): """return an array of tuple that contains view title and a function that transform message to detail""" return [ ("view1", self.view1), ("view2", self.view2), ] def view1(self, message): """return groups""" return View( [Group("title", [Text(m) for m in message["view1"]])] ) def view2(self, message): """return groups""" return View( [PropsGroup("title", [Prop(p[0], p[1]) for p in message["view2"]])] )```### GViewerMain class to start the tuiThe constructor accept any of urwid.MainLoop arguments to intiate with custom config```pythonfrom gviewer import GViewer, DisplayerContextcontext = DisplayerContext(data_store, displayer)viewer = GViewer(context)viewer.start()```## Advanced Usage### Summary ActionsBind function to specific key to apply customize action, ex: export```pythonfrom gviewer import GViewer, DisplayerContextdef custom_export(controller, message, widget, *args, **kwargs): with open("export", "w") as f: f.write(str(message)) controller.notify("file is export")context = DisplayerContext(data_store, displayer, actions=Actions([("a", "Custom export", custom_export)]))viewer = GViewer(context)```### View ActionsBind function to specific key to apply customize action, ex: export```pythonfrom gviewer import View, BaseDisplayerclass MyDisplayer(BaseDisplayer): def get_views(self): return [("view", self.view)] def view(self, message): return View([], actions=Actions([("a", "Custom export", self.custom_export)])) def custom_export(controller, message, *args, **kwargs): with open("export", "w") as f: f.write(str(message)) controller.notify("file is export")```## Built-in actions### Summary- /: search- g: top- G: bottom- x: clear current item- X: clear all items- q: quit- ?: help### Detail- /: search- tab: next view- shift+tab: prev view- n: search next result - N: search previous result- e: export current content to file- q: quit- ?: help## ContributionPlease feel free to create issue or create PR

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.