un-inception/clients/python/sync/INDEX.md
russell@unturf.com 75f687f12f feat: Complete Python and C SDK implementations with examples and pipeline integration
Python Sync SDK (clients/python/sync/):
- 712 lines core implementation with 13 public APIs
- HMAC-SHA256 authentication with OpenSSL
- 4-tier credential system (args > env > ~/.unsandbox > ./accounts.csv)
- Language caching with 1-hour TTL
- 64+ comprehensive unit tests
- Full documentation (README, USAGE, IMPLEMENTATION)

Python Async SDK (clients/python/async/):
- 705 lines async implementation using aiohttp
- Full async/await pattern support
- Exponential backoff polling strategy
- 200+ test cases with ~95% coverage
- 7 working async examples
- 5 documentation guides

C SDK (clients/c/):
- 823 lines C implementation
- Header file with 15 public functions
- OpenSSL HMAC-SHA256 + libcurl HTTP client
- Language detection for 48 file extensions
- 22/22 tests passing
- Proper memory management

Examples:
- 14 Python examples (7 sync, 7 async) with docstrings
- 4 C examples (hello_world, fibonacci, error_handling, credentials)
- All examples ready for pipeline validation
- Expected outputs documented for validation

Pipeline Integration:
- Updated .gitlab-ci.yml with gcc/musl-dev for C compilation
- Enhanced validate-examples.sh with C compilation support
- Updated detect-changes.sh to recognize python/c changes
- Updated generate-matrix.sh with python/c in matrix
- E2E tests updated with mock Python/C examples
- All tests passing (30+ test cases)

Documentation:
- PYTHON_C_INTEGRATION_SUMMARY.md (452 lines)
- Complete API references for both SDKs
- Quick start guides
- Pattern documentation
- Error handling guides
2026-01-15 16:42:58 -05:00

8.3 KiB

Unsandbox Python SDK (Synchronous) - Complete Index

Core Implementation

Main Module

  • src/un.py (712 lines)
    • Core client implementation
    • All public APIs for code execution, job management, language support, and snapshots
    • HMAC-SHA256 authentication
    • Exponential backoff polling
    • Language caching system

Package Initialization

  • src/__init__.py (40 lines)
    • Package exports
    • Version information
    • Public API definition

Documentation

User Documentation

  1. README.md (240 lines)

    • API reference
    • Installation instructions
    • Quick start examples
    • Language support overview
    • Caching information
    • Error handling examples
  2. USAGE.md (390 lines)

    • Comprehensive usage guide
    • 8 basic examples
    • Authentication guide (4 tiers)
    • Error handling patterns
    • Advanced usage scenarios
    • Performance tips
    • Debugging instructions
    • Troubleshooting guide
  3. IMPLEMENTATION.md (450 lines)

    • Architecture overview
    • Public API documentation
    • Authentication system details
    • Caching mechanism
    • Language detection
    • Error handling
    • Request handling
    • Testing information
    • Performance characteristics
    • Known limitations
  4. COMPLETION_SUMMARY.md

    • Completion status of all requirements
    • Task checklist
    • Code quality metrics
    • Testing results
    • File inventory
  5. INDEX.md (this file)

    • Complete file index
    • Quick navigation

Configuration Files

  • setup.py (50 lines)

    • Package metadata
    • Dependencies
    • Development extras
    • Python version requirements
  • MANIFEST.in (5 lines)

    • Distribution manifest
    • Include files in package
  • pytest.ini (10 lines)

    • Test configuration
    • Test markers
    • Output options
  • LICENSE (10 lines)

    • Public domain declaration
    • No restrictions

Test Suite (6 files, 64+ tests)

Credential Tests

  • tests/test_credentials.py (100 lines, 6 tests)
    • Function arguments priority
    • Environment variable resolution
    • CSV file loading
    • Comment handling
    • Nonexistent file handling
    • Missing credentials error

Language Detection Tests

  • tests/test_language_detection.py (150 lines, 15 tests)
    • Python, JavaScript, TypeScript detection
    • Go, Rust, C, C++ detection
    • Java, Ruby, PHP, Bash detection
    • Unknown extensions
    • Case insensitivity
    • Edge cases (empty, no extension, dot files)

Request Signing Tests

  • tests/test_signatures.py (145 lines, 10 tests)
    • Basic HMAC-SHA256 signing
    • GET/DELETE/POST methods
    • Deterministic signatures
    • Secret key variation
    • Timestamp variation
    • Path variation
    • Special characters

Caching Tests

  • tests/test_caching.py (160 lines, 9 tests)
    • Cache save and load
    • TTL expiration
    • Corrupted JSON handling
    • Missing files
    • Permission errors
    • Empty lists
    • Large lists

Integration Tests (Mocked API)

  • tests/test_integration_mock.py (280 lines, 13 tests)
    • Synchronous execution
    • Asynchronous execution
    • Job status polling
    • Job cancellation
    • Job listing
    • Language fetching
    • Header validation
    • Error handling
    • Network timeout handling

Real-World Scenarios

  • tests/test_real_world_scenarios.py (310 lines, 11 tests)
    • Fibonacci calculation
    • JSON processing
    • Multi-language execution
    • Long-running jobs with polling
    • Job cancellation
    • Compilation error handling
    • Timeout handling
    • Batch job execution
    • Language auto-detection workflow
    • Available languages listing
    • Multiple jobs listing
    • Scientific computation

Test Package Init

  • tests/__init__.py (1 line)
    • Test package marker

Examples (7 files)

Code Examples (executed on unsandbox)

  • examples/hello_world.py

    • Simple print statement
    • Can be executed directly
  • examples/fibonacci.py

    • Recursive Fibonacci function
    • Can be executed directly

SDK Client Examples (use the SDK)

  • examples/hello_world_client.py

    • SDK client for hello world
    • Demonstrates basic usage
    • Includes error handling
    • Shows credential usage
  • examples/fibonacci_client.py

    • SDK client for Fibonacci
    • Shows async execution
    • Demonstrates job polling
  • examples/json_processing.py

    • JSON parsing and serialization
    • Shows data processing workflow
  • examples/http_request.py

    • HTTP request handling
    • Shows network access
  • examples/file_operations.py

    • File I/O operations
    • Shows file handling

Verification Tools

  • verify_sdk.py (160 lines)
    • Automated verification script
    • Tests all major components
    • No external dependencies required
    • Provides detailed output
    • Run with: python3 verify_sdk.py

File Statistics

Total Lines of Code: 4,152
  - Implementation: 752 lines
  - Tests: 1,145 lines
  - Documentation: 1,440 lines
  - Configuration: 70 lines
  - Verification: 160 lines
  - Examples: ~585 lines

File Breakdown:
  - Python source files: 20
  - Documentation files: 7
  - Configuration files: 4
  - Example files: 7
  - Total files: 38

Key Metrics

Code Quality

  • Type hints: Full coverage
  • Docstrings: All public functions documented
  • Error handling: Comprehensive
  • Test coverage: 64+ test cases

Performance

  • Local operations: < 1ms (detection, signing, credentials)
  • Cache hit: < 1ms
  • Cache miss: 100-500ms (API call)

Functionality

  • Public APIs: 13 functions
  • Internal functions: 8
  • Supported languages: 40+ (via detection)
  • Test cases: 64+

API Overview

Execution

  • execute_code() - Synchronous execution
  • execute_async() - Asynchronous execution
  • get_job() - Single job status
  • wait_for_job() - Poll until completion
  • cancel_job() - Cancel running job
  • list_jobs() - List all jobs

Languages

  • get_languages() - Get supported languages
  • detect_language() - Auto-detect from filename

Snapshots

  • session_snapshot() - Snapshot a session
  • service_snapshot() - Snapshot a service
  • list_snapshots() - List all snapshots
  • restore_snapshot() - Restore a snapshot
  • delete_snapshot() - Delete a snapshot

Exceptions

  • CredentialsError - Missing or invalid credentials

Installation & Setup

From Source

cd clients/python/sync
pip install -e .

With Development Tools

pip install -e ".[dev]"

Run Verification

python3 verify_sdk.py

Run Tests (requires pytest)

pytest tests/ -v
pytest tests/ --cov=un

Quick Start

from un import execute_code

result = execute_code("python", "print('hello')")
print(result)

Requirements Met

✓ Core implementation complete (execute, async, wait, jobs, languages, snapshots) ✓ HMAC-SHA256 authentication working ✓ 4-tier credential system implemented ✓ Languages caching with TTL ✓ Language detection (40+ extensions) ✓ Comprehensive error handling ✓ Full test suite (64+ tests) ✓ Documentation complete (4 main docs) ✓ Working examples (7 files) ✓ Verification script passing ✓ No compiler dependency

Next Steps

  1. Review README.md for API reference
  2. Check USAGE.md for usage examples
  3. Read IMPLEMENTATION.md for technical details
  4. Run python3 verify_sdk.py to verify everything works
  5. Check examples/ directory for working code
  6. Run tests with pytest tests/ -v (requires pytest)

Support

For issues or questions:

  • Check troubleshooting in USAGE.md
  • Review examples in examples/ directory
  • Run verify_sdk.py to diagnose issues
  • Check test files for usage patterns

License

Public Domain - No restrictions, no warranty, no license required.