README.md update. (0.30.2)

This commit is contained in:
Johannes Findeisen 2023-10-13 11:44:14 +02:00
commit 9bd83a4058

View file

@ -1,6 +1,12 @@
# Linspector System Monitoring # Linspector System Monitoring
#### Linspector is not some program expecting computers to obviously run... *Linspector is not some program expecting computers to obviously run...*
## *IMPORTANT:*
**Linspector is currently not process safe because of the GIL! I am refactoring a lot of stuff
at the moment. When running the scheduler in thread-mode everything is fine but I really wann to
make it possible to use the process-mode of APScheduler...**
## About ## About
@ -42,29 +48,29 @@ development environment.
### To do ### To do
- **Everything!** But the progress is fast and after some few days I am not far - **Everything!** But the progress is fast and after some few days I am not far
away to get a first working codebase. If the core is running I believe adding features away to get a first working codebase. If the core is running I believe adding features
will happen from day to day... ;) will happen from day to day... ;)
See TODO for internal tasks. See TODO for internal tasks.
### Ideas ### Ideas
- **Thousands!** For now the goal is to implement most features from the old version - **Thousands!** For now the goal is to implement most features from the old version
of Linspector. :) of Linspector. :)
### Manifest ### Manifest
- All of this project **must be MIT licensed**. When using 3rd party libraries make - All of this project **must be MIT licensed**. When using 3rd party libraries make
sure the license is compatible. sure the license is compatible.
- The core of Linspector should not use 3rd party libraries if possible. Only notifications, - The core of Linspector should not use 3rd party libraries if possible. Only notifications,
plugins, services and tasks may use other libraries. Copying code into the plugins, services and tasks may use other libraries. Copying code into the
source tree is ok when respecting the license. Not using 3rd party libraries source tree is ok when respecting the license. Not using 3rd party libraries
should always be preferred though. should always be preferred though.
- Inline comments can all be lowercase. Descriptions and documentation comments - Inline comments can all be lowercase. Descriptions and documentation comments
must be natural language. must be natural language.
- Arguments to functions must always be in alphabetical order. - Arguments to functions must always be in alphabetical order.
- Class member variables must always be in alphabetical order in "\__init__()" or any - Class member variables must always be in alphabetical order in "\__init__()" or any
function / method. function / method.
- Functions must always be in alphabetical order in classes. - Functions must always be in alphabetical order in classes.
- Every commit must be working code without errors even if not being a working version of Linspector. - Every commit must be working code without errors even if not being a working version of Linspector.
@ -73,12 +79,12 @@ function / method.
Currently, the Linspector core requires the following 3rd party libraries: Currently, the Linspector core requires the following 3rd party libraries:
- [APScheduler](https://pypi.org/project/APScheduler/) - APScheduler is a Python library that lets you - [APScheduler](https://pypi.org/project/APScheduler/) - APScheduler is a Python library that lets you
schedule your Python code to be executed later, either just once or periodically. This is the heart of Linspector for schedule your Python code to be executed later, either just once or periodically. This is the heart of Linspector for
executing scheduled jobs in intervals. executing scheduled jobs in intervals.
- [Loguru](https://pypi.org/project/loguru/) - Loguru is a library which aims to bring enjoyable logging in Python. - [Loguru](https://pypi.org/project/loguru/) - Loguru is a library which aims to bring enjoyable logging in Python.
Linspector uses Loguru for all logging stuff. Linspector uses Loguru for all logging stuff.
- [urwid](https://pypi.org/project/urwid/) - Urwid is a console user interface library for Python. urwid will - [urwid](https://pypi.org/project/urwid/) - Urwid is a console user interface library for Python. urwid will
become the UI library used for the management TUI of Linspector. CURRENTLY, NOT REQUIRED! become the UI library used for the management TUI of Linspector. CURRENTLY, NOT REQUIRED!
### Other used libraries ### Other used libraries
@ -87,22 +93,22 @@ databases, monitors, notifications, services or plugins sometimes need to make u
them may only affect parts of Linspector. Currently used libraries are: them may only affect parts of Linspector. Currently used libraries are:
- [CherryPy](https://cherrypy.dev/) - CherryPy is a pythonic, object-oriented HTTP framework. - [CherryPy](https://cherrypy.dev/) - CherryPy is a pythonic, object-oriented HTTP framework.
Used by the HTTPServer plugin. Used by the HTTPServer plugin.
- [fritzconnection](https://github.com/kbr/fritzconnection) - A Python-Tool to communicate with - [fritzconnection](https://github.com/kbr/fritzconnection) - A Python-Tool to communicate with
the AVM Fritz!Box. Uses the TR-064 protocol over UPnP. Used by the FritzboxPhoneStatus and the AVM Fritz!Box. Uses the TR-064 protocol over UPnP. Used by the FritzboxPhoneStatus and
FritzBoxUplink service. FritzBoxUplink service.
- [Paramiko](https://www.paramiko.org/) - Paramiko is a pure-Python (2.7, 3.4+) implementation - [Paramiko](https://www.paramiko.org/) - Paramiko is a pure-Python (2.7, 3.4+) implementation
of the SSHv2 protocol, providing both client and server functionality. Used by the SSH service. of the SSHv2 protocol, providing both client and server functionality. Used by the SSH service.
- [PyMySQL](https://pypi.org/project/pymysql/) - This package contains a pure-Python MySQL client library, - [PyMySQL](https://pypi.org/project/pymysql/) - This package contains a pure-Python MySQL client library,
based on PEP 249. Used by the MySQL connection module. based on PEP 249. Used by the MySQL connection module.
- [python-gammu](https://wammu.eu/python-gammu/) - Python bindings for the Gammu library. Used by the - [python-gammu](https://wammu.eu/python-gammu/) - Python bindings for the Gammu library. Used by the
SMS notification. SMS notification.
- [PySNMP](https://pysnmp.readthedocs.io/en/latest/) - PySNMP is a cross-platform, pure-Python - [PySNMP](https://pysnmp.readthedocs.io/en/latest/) - PySNMP is a cross-platform, pure-Python
SNMP engine implementation. It features fully-functional SNMP engine capable to act in SNMP engine implementation. It features fully-functional SNMP engine capable to act in
Agent/Manager/Proxy roles, talking SNMP v1/v2c/v3 protocol versions over IPv4/IPv6 and other Agent/Manager/Proxy roles, talking SNMP v1/v2c/v3 protocol versions over IPv4/IPv6 and other
network transports. Used by the SNMP services (get). network transports. Used by the SNMP services (get).
- [requests](https://requests.readthedocs.io/en/latest/) - Requests is an elegant and simple - [requests](https://requests.readthedocs.io/en/latest/) - Requests is an elegant and simple
HTTP library for Python, built for human beings. Used by the Speedtest service. HTTP library for Python, built for human beings. Used by the Speedtest service.
- [xmpp2](https://pypi.org/project/xmpp2/) - A XMPP client for Python. Used by the XMPP notification. - [xmpp2](https://pypi.org/project/xmpp2/) - A XMPP client for Python. Used by the XMPP notification.
These libraries are not being delivered with the Linspector source code and maybe have These libraries are not being delivered with the Linspector source code and maybe have