ToolRegistry Hub: A collection of commonly used tools for LLM function calling
Project description
ToolRegistry Hub
⚠️ Important Notice: This is a standalone package that can be used independently. This package was separated from
toolregistryat version0.4.14and shares version format for historical continuity only.toolregistry-hubhas no dependencies ontoolregistryand is completely independent and self-sufficient. It can be used on its own or as a submodule for the maintoolregistrypackage.
A comprehensive collection of tools designed for LLM function calling, extracted from the main ToolRegistry package to provide focused utility modules.
Overview
ToolRegistry Hub provides a robust set of utility tools specifically designed for LLM agents and function calling scenarios:
- Calculator: Advanced mathematical operations and expression evaluation with support for complex functions
- DateTime: Simple current date and time utilities in ISO format
- FileSystem: Comprehensive file and directory operations with enhanced error handling
- FileOps: Atomic file operations with diff/patch support for safe file manipulations
- ThinkTool: Simple reasoning and brainstorming tool for structured thought processes
- UnitConverter: Extensive unit conversion utilities covering various measurement systems
- WebSearch: Multi-engine web search capabilities with content fetching and filtering options
Features
Calculator
- Evaluate mathematical expressions with standard and custom functions
- Support for basic arithmetic, power/roots, logarithmic/exponential functions
- Statistical operations (min, max, sum, average, median, mode, standard deviation)
- Combinatorics functions (factorial, gcd, lcm)
- Distance calculations and financial computations
- Expression evaluation with safe function execution
DateTime
- Get current UTC time in ISO 8601 format
- Simple and focused datetime functionality for LLM tools
- Static methods for easy integration
FileSystem
- Create, read, update, and delete files and directories
- Path manipulation and validation
- Directory listing with depth control and hidden file filtering
- File metadata operations (size, modification time)
- Cross-platform compatibility
FileOps
- Atomic file operations to prevent data corruption
- Unified diff and git-style conflict resolution
- File search with regex patterns and context
- Safe file writing with temporary file handling
- Path validation utilities
ThinkTool
- Simple thought logging for reasoning and brainstorming
- Designed for Claude's thinking processes
- Stateless operation without external changes
UnitConverter
- Convert between various units of measurement:
- Temperature (Celsius, Fahrenheit, Kelvin)
- Length (meters, feet, centimeters, inches)
- Weight (kilograms, pounds)
- Time (seconds, minutes)
- Area, speed, data storage, pressure, power, energy
- Electrical, magnetic, radiation, and light intensity units
- Comprehensive coverage of measurement systems
WebSearch
- Multiple search engine support (Google, Bing, SearXNG)
- Content fetching and extraction from web pages
- Result filtering and ranking options
- Unified interface across different search providers
Installation
pip install toolregistry-hub
Quick Start
from toolregistry_hub import Calculator, DateTime, FileSystem, ThinkTool, UnitConverter, WebSearchGoogle
# Mathematical calculations
calc = Calculator()
result = calc.evaluate("sqrt(16) + pow(2, 3)")
print(f"Calculation result: {result}")
# Get current time
current_time = DateTime.now()
print(f"Current time: {current_time}")
# File operations
fs = FileSystem()
fs.create_dir("my_project")
fs.create_file("my_project/config.txt")
# Unit conversions
converter = UnitConverter()
fahrenheit = converter.celsius_to_fahrenheit(25)
print(f"25°C = {fahrenheit}°F")
# Structured thinking
thought = ThinkTool.think("Analyzing the best approach for this problem...")
print(f"Thought process: {thought}")
# Web search
search = WebSearchGoogle()
results = search.search("Python programming", number_results=3)
for result in results:
print(f"Title: {result['title']}")
print(f"URL: {result['url']}")
print(f"Content: {result['content'][:100]}...")
Integration with ToolRegistry
This package is designed to work seamlessly with the main ToolRegistry package:
# Install ToolRegistry with hub tools
pip install toolregistry[hub]
API Documentation
For detailed API documentation and advanced usage examples, visit: https://toolregistry.readthedocs.io/
Contributing
We welcome contributions! Please see our contributing guidelines for more information on how to get involved.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Changelog
See CHANGELOG.md for a list of changes and version history.
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 toolregistry_hub-0.4.16a0.tar.gz.
File metadata
- Download URL: toolregistry_hub-0.4.16a0.tar.gz
- Upload date:
- Size: 56.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f195562cb95110c778611d04b7a9e2faf4d645aef6914a794786517aef2d290
|
|
| MD5 |
cc6988057711b6964b396b43feac6b0a
|
|
| BLAKE2b-256 |
a020787e2c6c5f2948c89a5081a4e8d4e9ea1e0fe49920bc8a309007ac959715
|
File details
Details for the file toolregistry_hub-0.4.16a0-py3-none-any.whl.
File metadata
- Download URL: toolregistry_hub-0.4.16a0-py3-none-any.whl
- Upload date:
- Size: 65.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56a9a71fcfdd9d628db8fe8d1efff6dbbe0e055ffd251197cf2961dd1da4ef09
|
|
| MD5 |
43a5761f298ebaec8c4a819430afc3d7
|
|
| BLAKE2b-256 |
c96db1b28496272f6e13b3001141be6293b5b4bfee624c96bedc626d3ebfaf85
|