Metadata-Version: 2.4
Name: snmpbox
Version: 0.1.0
Summary: Intelligent SNMP data collection system for telecom devices with automatic discovery and reverse engineering
Home-page: https://github.com/mexyusef/snmp-manager
Author: Yusef Ulum
Author-email: Yusef Ulum <yusef314159@gmail.com>
Maintainer: Yusef Ulum
Maintainer-email: Yusef Ulum <yusef314159@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/mexyusef/snmp-manager
Project-URL: Documentation, https://snmp-manager.readthedocs.io/
Project-URL: Repository, https://github.com/mexyusef/snmp-manager.git
Project-URL: Bug Reports, https://github.com/mexyusef/snmp-manager/issues
Project-URL: Discussions, https://github.com/mexyusef/snmp-manager/discussions
Project-URL: Changelog, https://github.com/mexyusef/snmp-manager/blob/main/CHANGELOG.md
Keywords: snmp,telecom,network-monitoring,olt,onu,gpon,device-discovery,reverse-engineering,intelligence,automation,huawei,zte,vsol
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Telecommunications Industry
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Networking
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: System :: Hardware :: Hardware Drivers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Communications
Classifier: Environment :: Console
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pysnmp>=7.1.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: asyncio-throttle>=1.0.0
Requires-Dist: aiofiles>=0.8.0
Requires-Dist: netaddr>=0.8.0
Requires-Dist: pydantic>=1.10.0
Requires-Dist: click>=8.0.0
Requires-Dist: rich>=12.0.0
Requires-Dist: typing-extensions>=4.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.20.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=22.0.0; extra == "dev"
Requires-Dist: isort>=5.10.0; extra == "dev"
Requires-Dist: mypy>=0.991; extra == "dev"
Requires-Dist: pre-commit>=2.20.0; extra == "dev"
Requires-Dist: flake8>=4.0.0; extra == "dev"
Requires-Dist: twine>=4.0.0; extra == "dev"
Requires-Dist: wheel>=0.40.0; extra == "dev"
Requires-Dist: build>=0.8.0; extra == "dev"
Provides-Extra: ml
Requires-Dist: scikit-learn>=1.1.0; extra == "ml"
Requires-Dist: numpy>=1.21.0; extra == "ml"
Requires-Dist: pandas>=1.4.0; extra == "ml"
Requires-Dist: scipy>=1.9.0; extra == "ml"
Provides-Extra: docs
Requires-Dist: sphinx>=7.0.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "docs"
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
Provides-Extra: visualization
Requires-Dist: matplotlib>=3.5.0; extra == "visualization"
Requires-Dist: seaborn>=0.11.0; extra == "visualization"
Requires-Dist: plotly>=5.0.0; extra == "visualization"
Provides-Extra: enterprise
Requires-Dist: celery>=5.2.0; extra == "enterprise"
Requires-Dist: redis>=4.3.0; extra == "enterprise"
Requires-Dist: psycopg2-binary>=2.9.0; extra == "enterprise"
Requires-Dist: sqlalchemy>=1.4.0; extra == "enterprise"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: maintainer
Dynamic: requires-python

# SNMP Manager - Telecom Multivendor Data Collection System

[![PyPI version](https://badge.fury.io/py/snmp-manager.svg)](https://badge.fury.io/py/snmp-manager)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)

A robust, intelligent SNMP data collection system capable of handling multivendor telecom devices (OLT/ONU, BSC/RNC, etc.) with automatic discovery, reverse engineering capabilities, and uniform data output.

## Features

- **Intelligent Device Discovery** - Automatically discover and profile SNMP devices
- **Adaptive Adapter System** - Self-learning adapters that evolve with each device
- **Reverse Engineering** - Handle undocumented devices through pattern recognition
- **Uniform Data Output** - Standardized JSON/XML/YAML output for all devices
- **High Performance** - Parallel collection and intelligent caching
- **Crowdsourced Knowledge** - Community-driven device profile database
- **Pattern Recognition** - ML-like device classification with confidence scoring
- **Self-Learning** - Gets smarter with every device interaction
- **Robust Fallback Strategies** - Multiple collection methods with graceful degradation

## Quick Start

```python
from snmp_manager import SNMPManager

# Discover devices on network
async with SNMPManager() as manager:
    devices = await manager.discover_devices("192.168.1.0/24")

    # Collect data from all devices
    for device in devices:
        data = await device.collect()
        print(f"Device {device.host}: {len(data)} fields collected")
```

## Use Case Example

```python
# Enhanced device with full intelligence features
from snmp_manager.core.enhanced_device import EnhancedDevice

async def main():
    # Create enhanced device (no manual configuration needed!)
    device = EnhancedDevice(host="192.168.1.10")

    # Intelligent discovery (reverse engineers unknown devices!)
    discovery = await device.intelligent_discover()
    print(f"Discovered {discovery['total_duration_ms']:.1f}ms")

    # Smart data collection with fallback strategies
    data = await device.collect_with_intelligence()
    print(f"Collected {len(data)} fields")

    # Get device insights
    insights = await device.get_intelligent_insights()
    print(f"Device classification: {insights['device_info']['signature']}")

asyncio.run(main())
```

## Supported Devices

### Telecom Equipment
- **OLT/ONU**: Huawei (MA5800, MA5600), ZTE (ZXA10), V-SOL (V1600, V2800), Fiberhome (AN5500)
- **Cellular**: BSC, RNC, SMSC, BTS, mobile network equipment
- **GPON/EPON**: All major OLT and ONU/ONT devices
- **Network Switches**: Cisco, Juniper, Huawei, ZTE, Mikrotik
- **Routers**: Enterprise and carrier-grade routers

### Vendor Support
- **Documented**: Huawei, ZTE, Cisco, Juniper, Mikrotik
- **Undocumented**: V-SOL, C-Data, Fiberhome (via reverse engineering)
- **Unknown**: Any SNMP device (pattern recognition + learning)

## Installation

```bash
# From PyPI
pip install snmp-manager

# With optional ML features
pip install snmp-manager[ml]

# With development tools
pip install snmp-manager[dev]

# From source
git clone https://github.com/mexyusef/snmp-manager.git
cd snmp-manager
pip install -e .
```

## Documentation

- [**Examples**](examples/) - Usage examples and demos

## Development

```bash
# Clone repository
git clone https://github.com/mexyusef/snmp-manager.git
cd snmp-manager

# Install development dependencies
pip install -e ".[dev]"

# Run tests
python -m pytest tests/

# Build documentation
mkdocs build
```

## Contributing

Contributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

## License

Copyright © 2025 Yusef Ulum

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Links

- **GitHub Repository**: https://github.com/mexyusef/snmp-manager
- **PyPI Package**: https://pypi.org/project/snmp-manager/
- **Documentation**: https://snmp-manager.readthedocs.io/
- **Bug Reports**: https://github.com/mexyusef/snmp-manager/issues
- **Discussions**: https://github.com/mexyusef/snmp-manager/discussions
