一般查看器
项目描述
# 通用查看器 (GViewer)
[![构建状态](https://travis-ci.org/chhsiao90/gviewer.svg?branch=master)](https://travis-ci.org/chhsiao90/gviewer)
[ ![覆盖状态](https://coveralls.io/repos/github/chhsiao90/gviewer/badge.svg?branch=master)](https://coveralls.io/github/chhsiao90/gviewer?branch=master)
**简单、轻量、功能强大**
GViewer 是一个终端 UI 库,它依赖于 [urwid](https://github.com/urwid/urwid) 简化了编写基于 tui 的报告系统。
您可以编写一个功能强大的终端 UI,用越来越少的代码显示和操作数据。
## 安装
```shell
pip install gviewer
```
## 运行示例
示例中有一些示例提供了一些用例。
您可以查看并运行示例。
```shell
python examples/panama.py
```
## Usage
### Data Store
####StaticDataStore
用于静态数据列表,如日志文件
以 eny 类型的内容列表启动
内容将传输到稍后您定义的显示器用于显示
```python
from gviewer import StaticDataStore
data_store = StaticDataStore(data)
```
#### AsyncDataStore
用于异步数据列表,例如订阅 [zeromq](http://zeromq.org/)发布者
```python
def register_func(on_message):
some_listener.on_message(on_message)
data_store = AsyncDataStore(register_func)
```
### Displayer
定义了如何将数据从 Data Store 显示到摘要/详细信息
```python
from gviewer import BaseDisplayer, View, Group, PropsGroup, Text, Prop
class 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):
"""返回一个元组数组,其中包含视图标题和将消息转换为详细信息的函数""“
返回[
("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"]])]
)
```
### GViewer
主类启动 tui
构造函数接受任何 urwid。MainLoop 参数启动自定义配置
```python
from gviewer import GViewer, DisplayerContext
context = DisplayerContext(data_store, displayer)
viewer = GViewer(context)
viewer.start()
```
## Advanced Usage
### Summary Actions
将函数绑定到特定键以应用自定义操作,例如:export
```python
from gviewer import GViewer, DisplayerContext
def 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 Actions
将函数绑定到特定键以应用自定义操作,例如:export
```python
from gviewer import View, BaseDisplayer
class 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")
```
## 内置操作
### 摘要
- /: 搜索
- g : top
- G: bottom
- x: 清除当前项目
- X: 清除所有项目
- q: 退出
- ?: help
### 详细信息
- /: 搜索
- tab: 下一个视图
- shift+tab: 上一个视图
- n: 搜索下一个结果
- N: 搜索上一个结果
- e: 导出当前要归档的内容
- q: quit
- ?: help
## Contribution
请随意创建问题或创建 PR
[![构建状态](https://travis-ci.org/chhsiao90/gviewer.svg?branch=master)](https://travis-ci.org/chhsiao90/gviewer)
[ ![覆盖状态](https://coveralls.io/repos/github/chhsiao90/gviewer/badge.svg?branch=master)](https://coveralls.io/github/chhsiao90/gviewer?branch=master)
**简单、轻量、功能强大**
GViewer 是一个终端 UI 库,它依赖于 [urwid](https://github.com/urwid/urwid) 简化了编写基于 tui 的报告系统。
您可以编写一个功能强大的终端 UI,用越来越少的代码显示和操作数据。
## 安装
```shell
pip install gviewer
```
## 运行示例
示例中有一些示例提供了一些用例。
您可以查看并运行示例。
```shell
python examples/panama.py
```
## Usage
### Data Store
####StaticDataStore
用于静态数据列表,如日志文件
以 eny 类型的内容列表启动
内容将传输到稍后您定义的显示器用于显示
```python
from gviewer import StaticDataStore
data_store = StaticDataStore(data)
```
#### AsyncDataStore
用于异步数据列表,例如订阅 [zeromq](http://zeromq.org/)发布者
```python
def register_func(on_message):
some_listener.on_message(on_message)
data_store = AsyncDataStore(register_func)
```
### Displayer
定义了如何将数据从 Data Store 显示到摘要/详细信息
```python
from gviewer import BaseDisplayer, View, Group, PropsGroup, Text, Prop
class 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):
"""返回一个元组数组,其中包含视图标题和将消息转换为详细信息的函数""“
返回[
("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"]])]
)
```
### GViewer
主类启动 tui
构造函数接受任何 urwid。MainLoop 参数启动自定义配置
```python
from gviewer import GViewer, DisplayerContext
context = DisplayerContext(data_store, displayer)
viewer = GViewer(context)
viewer.start()
```
## Advanced Usage
### Summary Actions
将函数绑定到特定键以应用自定义操作,例如:export
```python
from gviewer import GViewer, DisplayerContext
def 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 Actions
将函数绑定到特定键以应用自定义操作,例如:export
```python
from gviewer import View, BaseDisplayer
class 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")
```
## 内置操作
### 摘要
- /: 搜索
- g : top
- G: bottom
- x: 清除当前项目
- X: 清除所有项目
- q: 退出
- ?: help
### 详细信息
- /: 搜索
- tab: 下一个视图
- shift+tab: 上一个视图
- n: 搜索下一个结果
- N: 搜索上一个结果
- e: 导出当前要归档的内容
- q: quit
- ?: help
## Contribution
请随意创建问题或创建 PR
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
gviewer-3.0.6.tar.gz
(22.6 kB
查看哈希)
内置分布
gviewer-3.0.6-py2-none-any.whl
(37.1 kB
查看哈希)