# tim-buchalka/python architecture

> Architecture diagram of the GitHub repository tim-buchalka/python, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tim-buchalka/python
- Repository: https://github.com/tim-buchalka/python

## Overview

This repository is a personal collection of independent Python experiments and utility scripts, not a single application. The principal workflows are command-line or file-driven tasks that inspect or modify files, check network or server availability, and report results; workstation helpers also launch remote sessions and daily-check resources. The graph groups related utilities, but does not imply shared runtime orchestration. README descriptions establish several capabilities whose source was not sampled; those scripts are shown as standalone components, with wiring omitted where implementation details are unavailable.

Main entry points: [`powerup_checks.py`](https://github.com/tim-buchalka/python/blob/master/powerup_checks.py) (Startup checks), [`powerdown_startup.py`](https://github.com/tim-buchalka/python/blob/master/powerdown_startup.py) (Startup sessions), [`ping_servers.py`](https://github.com/tim-buchalka/python/blob/master/ping_servers.py) (Group server ping), [`ping_subnet.py`](https://github.com/tim-buchalka/python/blob/master/ping_subnet.py) (Subnet scan)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_files["File utilities"]
  node_batch_rename["Batch rename"]
  node_file_info["File information<br/>[fileinfo.py]"]
  node_folder_size["Folder sizing<br/>[folder_size.py]"]
  node_logs["Log archiving<br/>[logs.py]"]
  node_move_old["Move old files"]
  node_script_listing["Recursive listing<br/>[script_listing.py]"]
end

subgraph group_network["Network checks"]
  node_ping_servers["Group server ping<br/>[ping_servers.py]"]
  node_ping_subnet["Subnet scan<br/>[ping_subnet.py]"]
  node_nslookup["DNS check<br/>[nslookup_check.py]"]
  node_powerup["Startup checks<br/>[powerup_checks.py]"]
end

subgraph group_workstation["Workstation helpers"]
  node_daily_checks["Daily checks<br/>[daily_checks.py]"]
  node_powerdown["Startup sessions"]
  node_work_connect["Work connection<br/>[work_connect.py]"]
  node_backup_services["Service backup"]
end

subgraph group_script_tools["Script tools"]
  node_script_count["Script counts<br/>[script_count.py]"]
  node_new_script["Script template<br/>[new_script.py]"]
end

subgraph group_examples["Small examples"]
  node_count_chars["Character count"]
  node_serial_scanner["Serial ports<br/>[serial_scanner.py]"]
  node_youtube_views["YouTube views"]
end

node_user(("User"))
node_filesystem["Local files"]
node_backup_target["Dropbox backup"]
node_network_target(("Network hosts"))
node_remote_services(("Remote services"))
node_sqlite_db[("Server database")]

node_user -->|"specifies extensions"| node_batch_rename
node_batch_rename -->|"renames files"| node_filesystem
node_user -->|"enters filename"| node_file_info
node_file_info -->|"stats file"| node_filesystem
node_folder_size -->|"scans directories"| node_filesystem
node_logs -->|"archives logs"| node_filesystem
node_move_old -->|"moves old files"| node_filesystem
node_script_listing -->|"lists tree"| node_filesystem
node_user -->|"selects group and site"| node_ping_servers
node_ping_servers -->|"reads server list; writes log"| node_filesystem
node_ping_servers -->|"pings hosts"| node_network_target
node_user -->|"supplies subnet"| node_ping_subnet
node_ping_subnet -->|"pings addresses"| node_network_target
node_ping_subnet -->|"writes scan log"| node_filesystem
node_nslookup -->|"reads server list"| node_filesystem
node_nslookup -->|"looks up DNS"| node_remote_services
node_user -->|"selects site"| node_powerup
node_powerup -->|"queries servers"| node_sqlite_db
node_powerup -->|"writes server list and log"| node_filesystem
node_powerup -->|"pings servers"| node_network_target
node_user -->|"starts checks"| node_daily_checks
node_daily_checks -->|"reads session list"| node_filesystem
node_daily_checks -->|"launches tools and documents"| node_remote_services
node_powerdown -->|"reads server list; writes log"| node_filesystem
node_powerdown -->|"pings servers"| node_network_target
node_powerdown -->|"opens reachable sessions"| node_remote_services
node_user -->|"chooses connect or disconnect"| node_work_connect
node_work_connect -->|"loads remote desktop file"| node_filesystem
node_work_connect -->|"starts or stops connections"| node_remote_services
node_backup_services -->|"reads configuration and services"| node_filesystem
node_backup_services -->|"copies service workflows"| node_backup_target
node_script_count -->|"scans script directories"| node_filesystem
node_new_script -->|"reads template; writes script"| node_filesystem
node_user -->|"runs example"| node_count_chars
node_count_chars -->|"counts embedded text"| node_count_chars
node_user -->|"requests port list"| node_serial_scanner
node_user -->|"starts script"| node_youtube_views
node_youtube_views -.->|"requests video views"| node_remote_services

click node_batch_rename "https://github.com/tim-buchalka/python/blob/master/batch_file_rename.py"
click node_file_info "https://github.com/tim-buchalka/python/blob/master/fileinfo.py"
click node_folder_size "https://github.com/tim-buchalka/python/blob/master/folder_size.py"
click node_logs "https://github.com/tim-buchalka/python/blob/master/logs.py"
click node_move_old "https://github.com/tim-buchalka/python/blob/master/move_files_over_x_days.py"
click node_script_listing "https://github.com/tim-buchalka/python/blob/master/script_listing.py"
click node_ping_servers "https://github.com/tim-buchalka/python/blob/master/ping_servers.py"
click node_ping_subnet "https://github.com/tim-buchalka/python/blob/master/ping_subnet.py"
click node_nslookup "https://github.com/tim-buchalka/python/blob/master/nslookup_check.py"
click node_powerup "https://github.com/tim-buchalka/python/blob/master/powerup_checks.py"
click node_daily_checks "https://github.com/tim-buchalka/python/blob/master/daily_checks.py"
click node_powerdown "https://github.com/tim-buchalka/python/blob/master/powerdown_startup.py"
click node_work_connect "https://github.com/tim-buchalka/python/blob/master/work_connect.py"
click node_backup_services "https://github.com/tim-buchalka/python/blob/master/backup_automater_services.py"
click node_script_count "https://github.com/tim-buchalka/python/blob/master/script_count.py"
click node_new_script "https://github.com/tim-buchalka/python/blob/master/new_script.py"
click node_count_chars "https://github.com/tim-buchalka/python/blob/master/CountMillionCharacter.py"
click node_serial_scanner "https://github.com/tim-buchalka/python/blob/master/serial_scanner.py"
click node_youtube_views "https://github.com/tim-buchalka/python/blob/master/get_youtube_view.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_batch_rename,node_file_info,node_folder_size,node_logs,node_move_old,node_script_listing,node_user toneBlue
class node_ping_servers,node_ping_subnet,node_nslookup,node_powerup,node_sqlite_db toneAmber
class node_daily_checks,node_powerdown,node_work_connect,node_backup_services toneMint
class node_script_count,node_new_script toneRose
class node_count_chars,node_serial_scanner,node_youtube_views,node_filesystem,node_backup_target,node_network_target,node_remote_services toneIndigo
```

## Components

### File utilities

- [Batch rename](https://github.com/tim-buchalka/python/blob/master/batch_file_rename.py): `batch_file_rename.py`
- [File information](https://github.com/tim-buchalka/python/blob/master/fileinfo.py): `fileinfo.py`
- [Folder sizing](https://github.com/tim-buchalka/python/blob/master/folder_size.py): `folder_size.py`
- [Log archiving](https://github.com/tim-buchalka/python/blob/master/logs.py): `logs.py`
- [Move old files](https://github.com/tim-buchalka/python/blob/master/move_files_over_x_days.py): `move_files_over_x_days.py`
- [Recursive listing](https://github.com/tim-buchalka/python/blob/master/script_listing.py): `script_listing.py`

### Network checks

- [Group server ping](https://github.com/tim-buchalka/python/blob/master/ping_servers.py): `ping_servers.py`
- [Subnet scan](https://github.com/tim-buchalka/python/blob/master/ping_subnet.py): `ping_subnet.py`
- [DNS check](https://github.com/tim-buchalka/python/blob/master/nslookup_check.py): `nslookup_check.py`
- [Startup checks](https://github.com/tim-buchalka/python/blob/master/powerup_checks.py): `powerup_checks.py`

### Workstation helpers

- [Daily checks](https://github.com/tim-buchalka/python/blob/master/daily_checks.py): `daily_checks.py`
- [Startup sessions](https://github.com/tim-buchalka/python/blob/master/powerdown_startup.py): `powerdown_startup.py`
- [Work connection](https://github.com/tim-buchalka/python/blob/master/work_connect.py): `work_connect.py`
- [Service backup](https://github.com/tim-buchalka/python/blob/master/backup_automater_services.py): `backup_automater_services.py`

### Script tools

- [Script counts](https://github.com/tim-buchalka/python/blob/master/script_count.py): `script_count.py`
- [Script template](https://github.com/tim-buchalka/python/blob/master/new_script.py): `new_script.py`

### Small examples

- [Character count](https://github.com/tim-buchalka/python/blob/master/CountMillionCharacter.py): `CountMillionCharacter.py`
- [Serial ports](https://github.com/tim-buchalka/python/blob/master/serial_scanner.py): `serial_scanner.py`
- [YouTube views](https://github.com/tim-buchalka/python/blob/master/get_youtube_view.py): `get_youtube_view.py`

### Other components

- **User**
- **Local files**
- **Dropbox backup**
- **Network hosts**
- **Remote services**
- **Server database**

## Connections

- User → Batch rename: specifies extensions
- Batch rename → Local files: renames files
- User → File information: enters filename
- File information → Local files: stats file
- Folder sizing → Local files: scans directories
- Log archiving → Local files: archives logs
- Move old files → Local files: moves old files
- Recursive listing → Local files: lists tree
- User → Group server ping: selects group and site
- Group server ping → Local files: reads server list; writes log
- Group server ping → Network hosts: pings hosts
- User → Subnet scan: supplies subnet
- Subnet scan → Network hosts: pings addresses
- Subnet scan → Local files: writes scan log
- DNS check → Local files: reads server list
- DNS check → Remote services: looks up DNS
- User → Startup checks: selects site
- Startup checks → Server database: queries servers
- Startup checks → Local files: writes server list and log
- Startup checks → Network hosts: pings servers
- User → Daily checks: starts checks
- Daily checks → Local files: reads session list
- Daily checks → Remote services: launches tools and documents
- Startup sessions → Local files: reads server list; writes log
- Startup sessions → Network hosts: pings servers
- Startup sessions → Remote services: opens reachable sessions
- User → Work connection: chooses connect or disconnect
- Work connection → Local files: loads remote desktop file
- Work connection → Remote services: starts or stops connections
- Service backup → Local files: reads configuration and services
- Service backup → Dropbox backup: copies service workflows
- Script counts → Local files: scans script directories
- Script template → Local files: reads template; writes script
- User → Character count: runs example
- Character count → Character count: counts embedded text
- User → Serial ports: requests port list
- User → YouTube views: starts script
- YouTube views → Remote services: requests video views
