Skip to main content

DataWatcher

A lightweight Python library for monitoring data changes and recording them to lists.

Features

  • Monitor multiple data sources simultaneously
  • Record data changes over time
  • Thread-safe operations
  • Simple and intuitive API
  • Lightweight with zero dependencies

Installation

pip install datawatcher

Examples

Quick Start

from datawatcher import DataWatcher
import time

# Create a watcher instance
watcher = DataWatcher()

# Define a variable to monitor
counter = 0

# Register the variable for monitoring
watcher.watch(lambda: counter, "counter")

# Start monitoring (samples every 1 second by default)
watcher.start()

# Modify the variable
for i in range(10):
    counter += 1
    time.sleep(1.1)

# Stop monitoring
watcher.stop()

# Access recorded data
print(watcher["counter"])  # Print the recorded values
print(watcher.value_list("counter"))  # Alternative way to get values
print(watcher.time_list())  # Get timestamps

System Resource Monitoring

Monitor CPU and memory usage over time:

from datawatcher import DataWatcher
import psutil  # pip install psutil
import time

# Create watcher instance
watcher = DataWatcher()

# Register system metrics for monitoring
watcher.watch(lambda: psutil.cpu_percent(), "cpu_usage", callback=lambda x: print(x))
watcher.watch(lambda: psutil.virtual_memory().percent, "memory_usage")

# Start monitoring every 1 seconds
watcher.start(interval=1.0)

# Let it run for 10 seconds
print("Monitoring system resources for 10 seconds...")
time.sleep(10)

# Stop monitoring
watcher.stop()

# Display results
print("\n=== System Monitoring Results ===")
print(f"CPU Usage: {watcher['cpu_usage']}")
print(f"Memory Usage: {watcher['memory_usage']}") 
print(f"Timestamps: {watcher.time_list()}")

API Reference

DataWatcher

Main class for monitoring data changes.

Methods

  • watch(func: Callable[[], Any], key: str, callback: Optional[Callable[[Any], Any]] = None) - Register a function to monitor
  • unwatch(key: str) - Remove a monitored function
  • clear() - Clear all monitored functions and history
  • start(interval: float = 1.0) - Start monitoring with specified interval
  • stop() - Stop monitoring
  • time_list() -> List[float] - Get timestamp list
  • value_list(key: str) -> List[Any] - Get recorded values for a key
  • __getitem__(key: str) -> List[Any] - Access values using bracket notation

License

MIT License

Release files for datawatcher 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for datawatcher 0.1.0
File Size Uploaded
datawatcher-0.1.0.tar.gz 4.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for datawatcher 0.1.0
File Interpreter ABI Platform
datawatcher-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 8.6 kB

Release files / datawatcher-0.1.0.tar.gz

Download URL datawatcher-0.1.0.tar.gz
Size 4.1 kB
Tags Source
SHA-256 checksum
How to use checksums
09e9bc1c61859c55d0249a531eac086eae21078115d3ddf96ecd1b72406807d5
BLAKE2b-256 checksum
How to use checksums
9af289ad66b540b4da52912490cf8fb58c7b9a4c4a49ef256bd6d1327b96baa3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / datawatcher-0.1.0-py3-none-any.whl

Download URL datawatcher-0.1.0-py3-none-any.whl
Size 4.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
40e94834e1a3009c37e9bf1ab9754e5453428acb3fbcdc38c7e6f023e6c49717
BLAKE2b-256 checksum
How to use checksums
915e415f2dc32c243172d0b3e025a29fd0119abd0778044d17ee29d3c0609705
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page