This CLI will monitor(active-tab, mouse, keyboard), log, and plot graphs.
Project description
GanttLogger
CLI that Monitors active-tab, mouse-distance and keyboard-count, Logs and Plots various graphs.
(PyPI)https://pypi.org/project/ganttlogger/
AGENDA
Requirements(Test Completing) ▲
- OS
- Windows10(64bit)
- MacOS Mojave
- Python
- 3.7
Get Started ▲
Install ▲
- Windows
There are two ways to install.- Install with
pip
.- Install python3.
- Install with
pip
like below.> python -m pip install ganttlogger
- Install by downloading
.exe
.- Read README for
.exe
.
- Read README for
- Install with
- MacOS
- Install python3 and pip3.
- Installl with
pip3
like below.$ pip3 install ganttlogger
Quick Start ▲
- Run as "Alone"(Run both monitoring and logging in a PC).
$ ganttlogger
- Exit CLI(running as "Alone" or "Observer") by typing keys
1, /, z, ^
simultaneously. - Check a created folder
ganttlogger_logs
in current directory.
When you want a guide about the outputed folder, refer Structure of outputed folder "ganttlogger_logs".
- If you get the following problems
ModuleNotFoundError: No module named 'win32gui'
on Windows.- Try uninstall and install
pywin32
.> python -m pip uninstall pywin32 & python -m pip install pywin32
- Try uninstall and install
- Appear warning below on MacOS.
/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:211: RuntimeWarning: Glyph 128266 missing from current font. font.set_text(s, 0.0, flags=flags) /usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:180: RuntimeWarning: Glyph 128266 missing from current font. font.set_text(s, 0, flags=flags)
- No problem. You can ignore that.
Structure of outputed folder "ganttlogger_logs" ▲
ganttlogger_logs
├ (ID)
├ active_tab.log
├ mouse.log
├ keyboard.log
└ graphs
├ output_(date)_all.pkl
├ output_(date)_all.png
...
├ (ID)
├ active_tab.log
...
...
(ID)
: A unique ID generated by ganttlogger.~.log
: log data.~.pkl
: Dynamic graph data.~.png
: Static graph data(image).
Command Options ▲
usage: ganttlogger [--observer] [--logger] [--uuid <UUID>] [--help] [--plotter] [--withplot] [--displayer]
This CLI will do Observing active-tab, mouse, keyboard,
and Logging them,
and Plotting graphs (active-tab=ganttchart, mouse=line, keyboard=bar).
If you don't set any option, this work both of 'observer' and 'logger'.
optional arguments:
-h, --help show this help message and exit
-o, --observer The role of this PC is only observing action.
-l, --logger The role of this PC is only logging and plotting. You must also set '--uuid'.
-u UUID, --uuid UUID When you set '--logger', you must also set this by being informed from 'observer' PC.
-p, --plotter Use this option if you want other outputs by a log in the current directory after getting one and a graph.
--withplot Use this option when you want to get a graph after running 'Alone'.
-d, --displayer Use this option when you want to look a graph from a '.pkl' file.
--observer
and--logger
don't work because they're not implemented yet.- Run
ganttlogger
without any options if you run CLI asalone
- both ofobserver
andlogger/plotter
-.- Add an option
--withplot
, if you want graphs along with logs.
Then, CLI will output a graph like No.1 of Graph Examples
- Add an option
- Change to current directory of logs and add an option
--plotter
, if you want to get other graphs from logs.- Then, you'll be required some settings to decide formats to plot graphs.
- First,
Select keywords(you can combine) from (set_interval | filter_tab | select_data | xaxis_type).Select plot types separated by ',', or enter without input.:
- When select
set_interval
, you'll be required a setting.
Example graph when set "5" is No.2 of Graph Examples.Set the number of interval by seconds:
- When select
filter_tab
, you'll be required two settings.(1)Input a file name written a list of tab text you want to filter.: (2)Do you want to hide mouse and keyboard graph depictions of the duration filtered regarding tab text?(Y/n) :
- When select
select_data
, you'll be required a setting.
Example graphs when set "active_tab" and "keyboard" are No.5 and No.6 of Graph Examples.Select 'all' or list separated by ',' from ('active_tab'|'mouse'|'keyboard'|'mouse-keyboard').:
- When select
xaxis_type
, you'll be required two settings.
Example graphs when set "(1)active-start(2)active-start" and "(1)15(2)15" are No.3 and No.4 of Graph Examples.(1)Select x-axis type for ActiveTab from whether 'active-start' or number of the interval by seconds: (2)Select x-axis type for Mouse or Keyboard from whether 'active-start' or number of the interval by seconds:
- Add an option
--displayer
if you want watch dynamic graph with generated~.pkl
.- Then, you'll be required a setting.
Input file name of '.pkl':
- Then, you'll be required a setting.
Graph Examples
- All graphs were plotted from same logs.
In the future... ▲
- Optimize code like
Plotter.py
by commonizing to functions. - Like No.2 in Graph Examples, a part of ganttchart disappear from graph when setting
set_interval
more than 2.
I'm investigating the causes... - In
Observer.py
, sometimes thread error like below occurs on Windows. I'm investigating the causes...Exception in thread Thread-1: Traceback (most recent call last): ...
- Try implementing flushing stdin buffering. But it's difficury, so I want advices or pull-requests.
- Implement mode remote '--observer' and '--logger'.
License ▲
MIT LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ganttlogger-0.1.6.tar.gz
(4.1 MB
view hashes)
Built Distribution
Close
Hashes for ganttlogger-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff560853217b205cdca5b5c07c0b24a4f6e350b4b8ca2053db657c9cd0364274 |
|
MD5 | 6fee55efc20d629bf5838ef5fd4c6a90 |
|
BLAKE2b-256 | 4a6e5da21188a02bc66e1ceca0799b60f483a32c9794ffa267ded240d3febdea |