Skip to main content

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 dataclass as a config object (can be empty).
    • It returns another dataclass as a report.

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:

  1. tetsuya can cache your new service for you and auto-refresh the cache: all tetsuya service configs have a cachelife integer and autorefresh boolean.

  2. tetsuya will derive the default config from your dataclass, but will read a .toml if you want to change it.

  3. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tetsuya-0.2.0.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tetsuya-0.2.0-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

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

Hashes for tetsuya-0.2.0.tar.gz
Algorithm Hash digest
SHA256 08999639036c4fcecd9b1eab6a5ea5f9a0a6b60cbbf1aa02e3e04615dddf01da
MD5 19d8420712e40929e9af0a9b739e72bd
BLAKE2b-256 ef06f4bf8c4e1045b614e8011bc5a119fc761086c9ca9e007a8461086679a2c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetsuya-0.2.0.tar.gz:

Publisher: publish_all.yml on geopozo/tetsuya

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for tetsuya-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a85bd80fa6b7710fbc970263acb25b8563640813fea36f0ad1add72a46c004ec
MD5 e393f6f9f239d0214af3b58201534875
BLAKE2b-256 ee1eb529a9cf76e194d83066c5da286c2c75c0a3291b660683adf6b73a2fd178

See more details on using hashes here.

Provenance

The following attestation bundles were made for tetsuya-0.2.0-py3-none-any.whl:

Publisher: publish_all.yml on geopozo/tetsuya

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page