
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
progressbar-tracker
Advanced tools
Python SDK for Progress Bar Tracker - Track and manage progress bars with read/write/admin permissions
A powerful Python SDK for tracking and managing progress bars with granular permission control.
pip install progressbar-tracker
from progressbar_tracker import ProgressBar
# Initialize with your API endpoint and key
pb = ProgressBar(
api_url="http://your-server:8989",
api_key="your-api-key"
)
# Create a new progress item
pb.create(
item_id="video-encoding-001",
title="Encoding Video",
description="Processing 4K video file",
value=0.0,
weight=100 # Higher weight = higher priority in display
)
# Update progress
pb.update(
item_id="video-encoding-001",
title="Encoding Video",
description="50% complete",
value=0.5,
weight=100
)
# Get all items
items = pb.get_all()
for item in items:
print(f"{item['title']}: {item['value']*100:.0f}%")
# Delete when done
pb.delete("video-encoding-001")
pb = ProgressBar(api_url="http://server:8989", api_key="readonly-key-123")
items = pb.get_all() # Works
pb.create(...) # Raises PermissionError
pb = ProgressBar(api_url="http://server:8989", api_key="write-key-456")
pb.create("my-task", "Task", "Processing...", 0.5) # Works
pb.update("my-task", "Task", "Almost done", 0.9) # Works
pb.update("other-task", ...) # Raises PermissionError
pb = ProgressBar(api_url="http://server:8989", api_key="admin-key-789")
pb.update("any-task", ...) # Works on any item
pb.delete("any-task") # Can delete any item
pb = ProgressBar(api_url="http://server:8989", api_key="your-key")
if pb.is_admin():
print("You have full admin access")
elif pb.can_write():
print("You can create and modify items")
elif pb.is_read_only():
print("You can only view items")
from progressbar_tracker import ProgressBar, PermissionError
pb = ProgressBar(api_url="http://server:8989", api_key="write-key")
try:
pb.create("task-1", "Task 1", "Running", 0.5)
except PermissionError as e:
print(f"Permission denied: {e}")
except ValueError as e:
print(f"Validation error: {e}")
# Skip permission detection on initialization (faster)
pb = ProgressBar(
api_url="http://server:8989",
api_key="your-key",
auto_detect=False
)
ProgressBar(api_url, api_key, auto_detect=True)Initialize the SDK client.
Parameters:
api_url (str): Base URL of the progress bar serverapi_key (str): Your API keyauto_detect (bool): Auto-detect key permissions (default: True)get_all() -> List[Dict]Retrieve all progress items.
Returns: List of progress item dictionaries
Raises: PermissionError if key lacks read permission
create(item_id, title, description, value, weight=0)Create a new progress item.
Parameters:
item_id (str): Unique identifiertitle (str): Display titledescription (str): Status descriptionvalue (float): Progress value (0.0 to 1.0)weight (int): Sort priority (default: 0)Raises:
PermissionError if key lacks create permissionValueError if item already existsupdate(item_id, title, description, value, weight=0)Update an existing progress item.
Parameters: Same as create()
Raises:
PermissionError if key lacks update permissionValueError if item doesn't existdelete(item_id)Delete a progress item.
Parameters:
item_id (str): ID of item to deleteRaises: PermissionError if key lacks delete permission
is_admin() -> bool: Check if key is adminis_read_only() -> bool: Check if key is read-onlycan_write() -> bool: Check if key can create/updatecan_delete() -> bool: Check if key can deletefrom progressbar_tracker import ProgressBar
import time
pb = ProgressBar(api_url="http://server:8989", api_key="write-key")
# Start encoding
pb.create("video-001", "Encoding: movie.mp4", "Initializing...", 0.0, weight=100)
for progress in range(0, 101, 10):
time.sleep(1)
pb.update(
"video-001",
"Encoding: movie.mp4",
f"Processing frame {progress*10}/1000",
progress / 100.0,
weight=100
)
pb.delete("video-001")
print("✓ Encoding complete!")
from progressbar_tracker import ProgressBar
pb = ProgressBar(api_url="http://server:8989", api_key="write-key")
files = ["file1.txt", "file2.txt", "file3.txt"]
for i, filename in enumerate(files):
pb.create(
f"process-{i}",
f"Processing {filename}",
"In queue",
0.0,
weight=len(files) - i # Higher weight for earlier files
)
# Process and update
for i, filename in enumerate(files):
# ... do work ...
pb.update(f"process-{i}", f"Processing {filename}", "Complete", 1.0)
pb.delete(f"process-{i}")
This SDK requires a Progress Bar Tracker server. You can deploy one using Docker:
docker run -d \
-p 8989:8080 \
-e ADMIN_USERNAME=admin \
-e ADMIN_PASSWORD=your-password \
progressbar-server:latest
Or see the full documentation for setup instructions.
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE file for details.
FAQs
Python SDK for Progress Bar Tracker - Track and manage progress bars with read/write/admin permissions
We found that progressbar-tracker demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.