Spaces:
Running
Running
File size: 4,794 Bytes
39db0ca |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
#!/usr/bin/env python3
"""
Test script to verify Trackio TRL compatibility fix
Tests that our trackio module provides the interface expected by TRL library
"""
import sys
import os
import logging
# Add src to path
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
def test_trackio_interface():
"""Test that trackio module provides the expected interface"""
print("π Testing Trackio TRL Interface")
try:
# Test importing trackio
import trackio
print("β
Successfully imported trackio module")
# Test that required functions exist
required_functions = ['init', 'log', 'finish']
for func_name in required_functions:
if hasattr(trackio, func_name):
print(f"β
Found required function: {func_name}")
else:
print(f"β Missing required function: {func_name}")
return False
# Test initialization
experiment_id = trackio.init(
project_name="test_project",
experiment_name="test_experiment",
trackio_url="https://test.hf.space",
dataset_repo="test/trackio-experiments"
)
print(f"β
Trackio initialization successful: {experiment_id}")
# Test logging
metrics = {'loss': 0.5, 'learning_rate': 1e-4}
trackio.log(metrics, step=1)
print("β
Trackio logging successful")
# Test finishing
trackio.finish()
print("β
Trackio finish successful")
return True
except Exception as e:
print(f"β Trackio interface test failed: {e}")
return False
def test_trl_compatibility():
"""Test that our trackio module is compatible with TRL expectations"""
print("\nπ Testing TRL Compatibility")
try:
# Simulate what TRL would do
import trackio
# TRL expects these functions to be available
assert hasattr(trackio, 'init'), "trackio.init not found"
assert hasattr(trackio, 'log'), "trackio.log not found"
assert hasattr(trackio, 'finish'), "trackio.finish not found"
# Test function signatures
import inspect
# Check init signature
init_sig = inspect.signature(trackio.init)
print(f"β
init signature: {init_sig}")
# Check log signature
log_sig = inspect.signature(trackio.log)
print(f"β
log signature: {log_sig}")
# Check finish signature
finish_sig = inspect.signature(trackio.finish)
print(f"β
finish signature: {finish_sig}")
print("β
TRL compatibility test passed")
return True
except Exception as e:
print(f"β TRL compatibility test failed: {e}")
return False
def test_monitoring_integration():
"""Test that our trackio module integrates with our monitoring system"""
print("\nπ Testing Monitoring Integration")
try:
import trackio
# Test that we can get the monitor
monitor = trackio.get_monitor()
if monitor is not None:
print("β
Monitor integration working")
else:
print("β οΈ Monitor not available (this is normal if not initialized)")
# Test availability check
is_avail = trackio.is_available()
print(f"β
Trackio availability check: {is_avail}")
return True
except Exception as e:
print(f"β Monitoring integration test failed: {e}")
return False
def main():
"""Run all tests"""
print("π Testing Trackio TRL Fix")
print("=" * 50)
tests = [
test_trackio_interface,
test_trl_compatibility,
test_monitoring_integration
]
passed = 0
total = len(tests)
for test in tests:
try:
if test():
passed += 1
except Exception as e:
print(f"β Test {test.__name__} failed with exception: {e}")
print("\n" + "=" * 50)
print(f"Test Results: {passed}/{total} tests passed")
if passed == total:
print("β
All tests passed! Trackio TRL fix is working correctly.")
print("\nThe trackio module now provides the interface expected by TRL library:")
print("- init(): Initialize experiment")
print("- log(): Log metrics")
print("- finish(): Finish experiment")
print("\nThis should resolve the 'module trackio has no attribute init' error.")
else:
print("β Some tests failed. Please check the implementation.")
return 1
return 0
if __name__ == "__main__":
sys.exit(main()) |