Plotly graph export library
Reason this release was yanked:
Bad code, doesn't work
Project description
tetsuya
tetsuya collects information and offers it up as JSON packets and pretty print strings.
It's very easy to extend:
- Write a function (a service) that collects information from web/system.
- It takes a
dataclassas a config object (can be empty). - It returns another
dataclassas a report.
- It takes a
tetsuya offers the report object to your user (and your user only) as a JSON endpoint available via REST and command-line interface.
You will also define two functions on your report dataclass: short() and
long() which can pretty-print the JSON.
It does some helpful stuff automatically:
-
tetsuya can cache your new service for you and auto-refresh the cache: all tetsuya service configs have a cachelife integer and autorefresh boolean.
-
tetsuya will derive the default config from your
dataclass, but will read a .toml if you want to change it. -
tetsuya runs in a client-server model, with a background daemon doing the work, and a CLI interface for basic control.
Try uvx tetsuya --help-tree=ascii to see the whole interface.
Installation
Daemon on systemd
Theres a tetsuya.service file in the repository.
mkdir -p ~/.config/systemd/user
systemctl --user daemon-reload
systemctl --user enable --now "$(realpath ./tetsuya.service)"
loginctl enable-linger "$USER" # (allow it to start at boot even if logged out)
journalctl --user -u tetsuya -f
Roadmap
-
Some early modules:
-
Do a Basic 200 is it good thing
- Check domains for email record
- Check SLL
-
Active sessions on linux
-
Updates available
- Changelog on kernel
if which yay 1> /dev/null; then ( set -e yay -Qu yay -Pw checkupdates ) fi
-
-
Any errors on systemd + --kernel
-
Monarch Money from that guy? - MoneyFlown and redeploy
-
Improve naming and arguments, flags, etc.
- -> Services to Client
- Names of services = arguments
- Add help descriptions
- Turn off options like --thing, --no-thing, if --no-thing is default?
- Go back to CLI and do the formatting better
-
Document throughout code
-
If we want to instantiate multiple instances of one service class:
-
Inspect:
- all instances of get_name()
- how services are registered
- Consider Dictionary Storage and Access Here:
-
_config.config_data -
_timer.timer_tasks -
service manager.??(Not written at this time)
-
- Will have to pass both service obj + class to _config, _timer
- Make room for customed name in config +
.get_name() - Start will have change (calls a lot of this stuff)
-
Don't enable service until it has a config
- Allow per app config default generation
- Upon reload, recalculate active services
- Config API:
- Separate Touch and Dump
-
Create persistence:
- Roundtrip reports upon registering (json and back)
- Save reports upon running
- Load reports upong starting
-
Services can subscribe to changes of other services
-
Importing modules dynamically from a subfoler
Desired Modules
-
Google drive auditor, google accounts/emails
-
Check agreements (modules subscribed to other modules)
- are we checking all domains that namecheap lists
- does google list all
-
Analytics summary + link
-
Git status
-
Scrape forum posts
-
Firewall stats
-
process accounting?
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tetsuya-0.2.0.tar.gz.
File metadata
- Download URL: tetsuya-0.2.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08999639036c4fcecd9b1eab6a5ea5f9a0a6b60cbbf1aa02e3e04615dddf01da
|
|
| MD5 |
19d8420712e40929e9af0a9b739e72bd
|
|
| BLAKE2b-256 |
ef06f4bf8c4e1045b614e8011bc5a119fc761086c9ca9e007a8461086679a2c8
|
Provenance
The following attestation bundles were made for tetsuya-0.2.0.tar.gz:
Publisher:
publish_all.yml on geopozo/tetsuya
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tetsuya-0.2.0.tar.gz -
Subject digest:
08999639036c4fcecd9b1eab6a5ea5f9a0a6b60cbbf1aa02e3e04615dddf01da - Sigstore transparency entry: 664250119
- Sigstore integration time:
-
Permalink:
geopozo/tetsuya@a3250409edb831d5422085a0f2b66d2969dbda9d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/geopozo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_all.yml@a3250409edb831d5422085a0f2b66d2969dbda9d -
Trigger Event:
push
-
Statement type:
File details
Details for the file tetsuya-0.2.0-py3-none-any.whl.
File metadata
- Download URL: tetsuya-0.2.0-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a85bd80fa6b7710fbc970263acb25b8563640813fea36f0ad1add72a46c004ec
|
|
| MD5 |
e393f6f9f239d0214af3b58201534875
|
|
| BLAKE2b-256 |
ee1eb529a9cf76e194d83066c5da286c2c75c0a3291b660683adf6b73a2fd178
|
Provenance
The following attestation bundles were made for tetsuya-0.2.0-py3-none-any.whl:
Publisher:
publish_all.yml on geopozo/tetsuya
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tetsuya-0.2.0-py3-none-any.whl -
Subject digest:
a85bd80fa6b7710fbc970263acb25b8563640813fea36f0ad1add72a46c004ec - Sigstore transparency entry: 664250126
- Sigstore integration time:
-
Permalink:
geopozo/tetsuya@a3250409edb831d5422085a0f2b66d2969dbda9d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/geopozo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish_all.yml@a3250409edb831d5422085a0f2b66d2969dbda9d -
Trigger Event:
push
-
Statement type: