pysimplesps


Namepysimplesps JSON
Version 0.2.1 PyPI version JSON
download
home_pageNone
SummaryA comprehensive Python library to parse SPS MML configurations and generate JSON/topology data
upload_time2025-08-05 11:26:30
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords diameter mml signaling sps telecom topology
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ๐Ÿ”— pysimplesps - SPS MML Configuration Parser & Topology Generator

[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

> ๐Ÿš€ **Transform boring MML configurations into beautiful, interactive network topologies**

pysimplesps is a comprehensive Python library that parses Huawei SPS (Signaling Point Systems) MML configurations and generates structured JSON data or stunning D3.js topology visualizations. Say goodbye to boring MML dumps and hello to intuitive network understanding!

## โœจ Features

### ๐ŸŽฏ **Multi-Format Support**
- **Links Configuration** - Diameter, M2UA, M3UA, MTP links parsing
- **DMRT** - Diameter Routing configuration analysis  
- **AVPMED** - AVP Mediation rules and transformations

### ๐Ÿ“Š **Output Formats**
- **JSON** - Structured data for programmatic analysis
- **D3.js Topology** - Interactive network visualizations
- **HTML** - Self-contained visualization files

### ๐Ÿ› ๏ธ **Enterprise Features**
- Comprehensive error handling and validation
- Rich logging with loguru
- Extensive test coverage with pytest
- Module execution support (`python -m pysimplesps`)
- Programmatic API for integration

## ๐Ÿš€ Quick Start

### Installation

```bash
# Install pysimplesps
pip install -e .

# Or install with development dependencies
pip install -e .[dev]
```

### Module Execution

```bash
# Run as Python module
python -m pysimplesps links links.txt
python -m pysimplesps dmrt dmrt1.txt dmrt2.txt
python -m pysimplesps avpmed avpmed.txt

# With options
python -m pysimplesps links links.txt -o output.json
python -m pysimplesps links links.txt -f topology -o network.html
python -m pysimplesps dmrt dmrt_host.txt dmrt_id.txt -v
```

### Programmatic Usage

```python
from pysimplesps import SPSUnifiedLinksParser, SPSDiameterRoutingParser, SPSAVPMediationParser

# Parse links configuration
parser = SPSUnifiedLinksParser("spsdmlinks.txt")
config = parser.parse_file()
parser.print_summary()
parser.save_json("output.json")

# Parse DMRT configuration
dmrt_parser = SPSDiameterRoutingParser()
dmrt_parser.parse_file("spsdmrt_host.txt")
dmrt_parser.parse_file("spsdmrt_id.txt")
dmrt_config = dmrt_parser.get_config()

# Parse AVPMED configuration
avp_parser = SPSAVPMediationParser("spsavpmediation.txt")
avp_config = avp_parser.parse_file()
```

## ๐Ÿ“‹ Command Reference

### Links Parser
```bash
python -m pysimplesps links <input_file> [OPTIONS]

Options:
  -o, --output PATH     Output file path
  -f, --format FORMAT   Output format: json|topology [default: json]
  -v, --verbose         Enable verbose logging
```

### DMRT Parser  
```bash
python -m pysimplesps dmrt <input_files>... [OPTIONS]

Options:
  -o, --output PATH     Output file path
  -f, --format FORMAT   Output format: json|topology [default: json]  
  -v, --verbose         Enable verbose logging
```

### AVPMED Parser
```bash
python -m pysimplesps avpmed <input_file> [OPTIONS]

Options:
  -o, --output PATH     Output file path
  -v, --verbose         Enable verbose logging
```

## ๐ŸŽจ Examples

### Parse SPS Links Configuration

```bash
# Basic JSON output
python -m pysimplesps links spsdmlinks.txt

# Save to file with topology visualization
python -m pysimplesps links spsdmlinks.txt -f topology -o network_topology.html

# Verbose parsing with detailed logs
python -m pysimplesps links spsdmlinks.txt -v -o detailed_links.json
```

### Diameter Routing Analysis

```bash
# Parse multiple DMRT files
python -m pysimplesps dmrt spsdmrt_host.txt spsdmrt_id.txt spsdmrt_ip.txt

# Generate routing topology
python -m pysimplesps dmrt dmrt_config.txt -f topology -o routing_flow.html
```

### AVP Mediation Processing

```bash
# Parse mediation rules
python -m pysimplesps avpmed spsavpmediation.txt -o mediation_config.json
```

## ๐Ÿ—๏ธ Architecture

```
pysimplesps/
โ”œโ”€โ”€ __main__.py         # ๐Ÿš€ Module execution entry point
โ”œโ”€โ”€ links2json.py       # ๐Ÿ”— Links configuration parser  
โ”œโ”€โ”€ links2topo.py       # ๐ŸŒ Links topology generator
โ”œโ”€โ”€ dmrt2json.py        # ๐Ÿ“ก DMRT configuration parser
โ”œโ”€โ”€ dmrt2topo.py        # ๐Ÿ”„ DMRT topology generator  
โ”œโ”€โ”€ avpmed2json.py      # ๐Ÿ”ง AVPMED configuration parser
โ””โ”€โ”€ __init__.py         # ๐Ÿ“ฆ Package initialization
```

## ๐Ÿงช Testing

Run the comprehensive test suite:

```bash
# Run all tests
pytest

# Run with coverage
pytest --cov=pysimplesps --cov-report=html

# Run specific test categories
pytest -m unit         # Unit tests only
pytest -m integration  # Integration tests only
pytest -v              # Verbose output

# Run test script
python run_tests.py
```

## ๐Ÿ“Š Sample Output

### JSON Structure
```json
{
  "diameter_peers": [...],
  "diameter_link_sets": [...], 
  "diameter_links": [...],
  "mtp_destination_points": [...],
  "metadata": {
    "parsed_at": "2025-08-03T...",
    "total_peers": 4,
    "total_link_sets": 6,
    "total_links": 12,
    "unique_ips": ["172.21.1.101", "172.21.1.102"],
    "unique_networks": ["172.21.1.0/24"]
  }
}
```

### Topology Features
- **Interactive D3.js visualizations**
- **Color-coded node types** (Diameter, MTP, M2UA, M3UA)
- **Drag-and-drop network exploration**
- **Connection details on hover**
- **Responsive design**

## ๐ŸŽฏ Supported MML Commands

### Links Configuration
- `ADD DMPEER` - Diameter peers
- `ADD DMLKS` - Diameter link sets  
- `ADD DMLNK` - Diameter links
- `ADD N7DSP` - MTP destination points
- `ADD N7LKS` - MTP link sets
- `ADD N7LNK` - MTP links

### DMRT Configuration  
- `ADD DMROUTERESULT` - Route results
- `ADD DMROUTEENTRANCE` - Route entrances
- `ADD DMROUTEEXIT` - Route exits
- `ADD DMROUTERULE_*` - Routing rules

### AVPMED Configuration
- `ADD MEDFILTER` - Mediation filters
- `ADD MEDACTION` - Mediation actions  
- `ADD MEDRULE` - Mediation rules
- `MOD DMPEER` - Peer assignments
- `MOD SFP` - Software parameters

## ๐Ÿ”ง Development

### Setup Development Environment
```bash
# Clone repository
git clone https://github.com/fxyzbtc/pysimplesps.git
cd pysimplesps

# Install in development mode
pip install -e .[dev]

# Run linting
ruff check pysimplesps/
ruff format pysimplesps/

# Type checking
mypy pysimplesps/
```

### Contributing Guidelines
1. ๐Ÿด Fork the repository
2. ๐ŸŒŸ Create a feature branch (`git checkout -b feature/amazing-feature`)
3. ๐Ÿ“ Make your changes with tests
4. โœ… Run the test suite (`pytest`)
5. ๐Ÿš€ Submit a pull request

## ๐Ÿ“š Documentation

- **API Documentation**: Coming soon
- **Wiki**: [https://deepwiki.com/fxyzbtc/pysimplesps](https://deepwiki.com/fxyzbtc/pysimplesps)
- **Examples**: Check the `tests/` directory for usage examples

## ๐Ÿค Support

- ๐Ÿ› **Issues**: [GitHub Issues](https://github.com/fxyzbtc/pysimplesps/issues)
- ๐Ÿ’ฌ **Discussions**: [GitHub Discussions](https://github.com/fxyzbtc/pysimplesps/discussions)
- ๐Ÿ“ง **Email**: fxyzbtc@example.com

## ๐Ÿ“„ License

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

## ๐Ÿ™ Acknowledgments

- Built with โค๏ธ for telecommunications engineers
- Powered by Python 3.12+ and modern tooling
- Inspired by the need to make MML configurations more accessible

---

<div align="center">

**โญ Star this repo if pysimplesps helps you visualize your networks! โญ**

Made with ๐Ÿ”ฅ by [fxyzbtc](https://github.com/fxyzbtc)

</div>

## ๐ŸŽจ Examples

### Parse SPS Links Configuration

```bash
# Basic JSON output
pysimplesps links spsdmlinks.txt

# Save to file with topology visualization
pysimplesps links spsdmlinks.txt -f topology -o network_topology.html

# Verbose parsing with detailed logs
pysimplesps links spsdmlinks.txt -v -o detailed_links.json
```

### Diameter Routing Analysis

```bash
# Parse multiple DMRT files
pysimplesps dmrt spsdmrt_host.txt spsdmrt_id.txt spsdmrt_ip.txt

# Generate routing topology
pysimplesps dmrt dmrt_config.txt -f topology -o routing_flow.html
```

### AVP Mediation Processing

```bash
# Parse mediation rules
pysimplesps avpmed spsavpmediation.txt -o mediation_config.json
```

## ๐Ÿ—๏ธ Architecture

```
pysimplesps/
โ”œโ”€โ”€ cli.py              # ๐ŸŽฏ Main CLI interface with Typer
โ”œโ”€โ”€ links2json.py       # ๐Ÿ”— Links configuration parser  
โ”œโ”€โ”€ links2topo.py       # ๐ŸŒ Links topology generator
โ”œโ”€โ”€ dmrt2json.py        # ๐Ÿ“ก DMRT configuration parser
โ”œโ”€โ”€ dmrt2topo.py        # ๐Ÿ”„ DMRT topology generator  
โ”œโ”€โ”€ avpmed2json.py      # ๐Ÿ”ง AVPMED configuration parser
โ”œโ”€โ”€ __main__.py         # ๐Ÿš€ Module execution entry point
โ””โ”€โ”€ __init__.py         # ๐Ÿ“ฆ Package initialization
```

## ๐Ÿงช Testing

Run the comprehensive test suite:

```bash
# Run all tests
pytest

# Run with coverage
pytest --cov=pysimplesps --cov-report=html

# Run specific test categories
pytest -m unit         # Unit tests only
pytest -m integration  # Integration tests only
pytest -v              # Verbose output
```

## ๐Ÿ“Š Sample Output

### JSON Structure
```json
{
  "diameter_peers": [...],
  "diameter_link_sets": [...], 
  "diameter_links": [...],
  "mtp_destination_points": [...],
  "metadata": {
    "parsed_at": "2025-08-03T...",
    "total_peers": 4,
    "total_link_sets": 6,
    "total_links": 12,
    "unique_ips": ["172.21.1.101", "172.21.1.102"],
    "unique_networks": ["172.21.1.0/24"]
  }
}
```

### Topology Features
- **Interactive D3.js visualizations**
- **Color-coded node types** (Diameter, MTP, M2UA, M3UA)
- **Drag-and-drop network exploration**
- **Connection details on hover**
- **Responsive design**

## ๐ŸŽฏ Supported MML Commands

### Links Configuration
- `ADD DMPEER` - Diameter peers
- `ADD DMLKS` - Diameter link sets  
- `ADD DMLNK` - Diameter links
- `ADD N7DSP` - MTP destination points
- `ADD N7LKS` - MTP link sets
- `ADD N7LNK` - MTP links

### DMRT Configuration  
- `ADD DMROUTERESULT` - Route results
- `ADD DMROUTEENTRANCE` - Route entrances
- `ADD DMROUTEEXIT` - Route exits
- `ADD DMROUTERULE_*` - Routing rules

### AVPMED Configuration
- `ADD MEDFILTER` - Mediation filters
- `ADD MEDACTION` - Mediation actions  
- `ADD MEDRULE` - Mediation rules
- `MOD DMPEER` - Peer assignments
- `MOD SFP` - Software parameters

## ๐Ÿ”ง Development

### Setup Development Environment
```bash
# Clone repository
git clone https://github.com/fxyzbtc/pysimplesps.git
cd pysimplesps

# Install in development mode
pip install -e .[dev]

# Run linting
ruff check pysimplesps/
ruff format pysimplesps/

# Type checking
mypy pysimplesps/
```

### Contributing Guidelines
1. ๐Ÿด Fork the repository
2. ๐ŸŒŸ Create a feature branch (`git checkout -b feature/amazing-feature`)
3. ๐Ÿ“ Make your changes with tests
4. โœ… Run the test suite (`pytest`)
5. ๐Ÿš€ Submit a pull request

## ๐Ÿ“š Documentation

- **API Documentation**: Coming soon
- **Wiki**: [https://deepwiki.com/fxyzbtc/pysimplesps](https://deepwiki.com/fxyzbtc/pysimplesps)
- **Examples**: Check the `tests/` directory for usage examples

## ๐Ÿค Support

- ๐Ÿ› **Issues**: [GitHub Issues](https://github.com/fxyzbtc/pysimplesps/issues)
- ๐Ÿ’ฌ **Discussions**: [GitHub Discussions](https://github.com/fxyzbtc/pysimplesps/discussions)
- ๐Ÿ“ง **Email**: fxyzbtc@example.com

## ๐Ÿ“„ License

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

## ๐Ÿ™ Acknowledgments

- Built with โค๏ธ for telecommunications engineers
- Powered by Python 3.12+ and modern tooling
- Inspired by the need to make MML configurations more accessible

---

<div align="center">

**โญ Star this repo if pysimplesps helps you visualize your networks! โญ**

Made with ๐Ÿ”ฅ by [fxyzbtc](https://github.com/fxyzbtc)

</div>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pysimplesps",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "diameter, mml, signaling, sps, telecom, topology",
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/ac/4e/d3c0227785e1744f67e1032612aef390fc39f6dad63a168eda1f6d0192d3/pysimplesps-0.2.1.tar.gz",
    "platform": null,
    "description": "# \ud83d\udd17 pysimplesps - SPS MML Configuration Parser & Topology Generator\n\n[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n> \ud83d\ude80 **Transform boring MML configurations into beautiful, interactive network topologies**\n\npysimplesps is a comprehensive Python library that parses Huawei SPS (Signaling Point Systems) MML configurations and generates structured JSON data or stunning D3.js topology visualizations. Say goodbye to boring MML dumps and hello to intuitive network understanding!\n\n## \u2728 Features\n\n### \ud83c\udfaf **Multi-Format Support**\n- **Links Configuration** - Diameter, M2UA, M3UA, MTP links parsing\n- **DMRT** - Diameter Routing configuration analysis  \n- **AVPMED** - AVP Mediation rules and transformations\n\n### \ud83d\udcca **Output Formats**\n- **JSON** - Structured data for programmatic analysis\n- **D3.js Topology** - Interactive network visualizations\n- **HTML** - Self-contained visualization files\n\n### \ud83d\udee0\ufe0f **Enterprise Features**\n- Comprehensive error handling and validation\n- Rich logging with loguru\n- Extensive test coverage with pytest\n- Module execution support (`python -m pysimplesps`)\n- Programmatic API for integration\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\n# Install pysimplesps\npip install -e .\n\n# Or install with development dependencies\npip install -e .[dev]\n```\n\n### Module Execution\n\n```bash\n# Run as Python module\npython -m pysimplesps links links.txt\npython -m pysimplesps dmrt dmrt1.txt dmrt2.txt\npython -m pysimplesps avpmed avpmed.txt\n\n# With options\npython -m pysimplesps links links.txt -o output.json\npython -m pysimplesps links links.txt -f topology -o network.html\npython -m pysimplesps dmrt dmrt_host.txt dmrt_id.txt -v\n```\n\n### Programmatic Usage\n\n```python\nfrom pysimplesps import SPSUnifiedLinksParser, SPSDiameterRoutingParser, SPSAVPMediationParser\n\n# Parse links configuration\nparser = SPSUnifiedLinksParser(\"spsdmlinks.txt\")\nconfig = parser.parse_file()\nparser.print_summary()\nparser.save_json(\"output.json\")\n\n# Parse DMRT configuration\ndmrt_parser = SPSDiameterRoutingParser()\ndmrt_parser.parse_file(\"spsdmrt_host.txt\")\ndmrt_parser.parse_file(\"spsdmrt_id.txt\")\ndmrt_config = dmrt_parser.get_config()\n\n# Parse AVPMED configuration\navp_parser = SPSAVPMediationParser(\"spsavpmediation.txt\")\navp_config = avp_parser.parse_file()\n```\n\n## \ud83d\udccb Command Reference\n\n### Links Parser\n```bash\npython -m pysimplesps links <input_file> [OPTIONS]\n\nOptions:\n  -o, --output PATH     Output file path\n  -f, --format FORMAT   Output format: json|topology [default: json]\n  -v, --verbose         Enable verbose logging\n```\n\n### DMRT Parser  \n```bash\npython -m pysimplesps dmrt <input_files>... [OPTIONS]\n\nOptions:\n  -o, --output PATH     Output file path\n  -f, --format FORMAT   Output format: json|topology [default: json]  \n  -v, --verbose         Enable verbose logging\n```\n\n### AVPMED Parser\n```bash\npython -m pysimplesps avpmed <input_file> [OPTIONS]\n\nOptions:\n  -o, --output PATH     Output file path\n  -v, --verbose         Enable verbose logging\n```\n\n## \ud83c\udfa8 Examples\n\n### Parse SPS Links Configuration\n\n```bash\n# Basic JSON output\npython -m pysimplesps links spsdmlinks.txt\n\n# Save to file with topology visualization\npython -m pysimplesps links spsdmlinks.txt -f topology -o network_topology.html\n\n# Verbose parsing with detailed logs\npython -m pysimplesps links spsdmlinks.txt -v -o detailed_links.json\n```\n\n### Diameter Routing Analysis\n\n```bash\n# Parse multiple DMRT files\npython -m pysimplesps dmrt spsdmrt_host.txt spsdmrt_id.txt spsdmrt_ip.txt\n\n# Generate routing topology\npython -m pysimplesps dmrt dmrt_config.txt -f topology -o routing_flow.html\n```\n\n### AVP Mediation Processing\n\n```bash\n# Parse mediation rules\npython -m pysimplesps avpmed spsavpmediation.txt -o mediation_config.json\n```\n\n## \ud83c\udfd7\ufe0f Architecture\n\n```\npysimplesps/\n\u251c\u2500\u2500 __main__.py         # \ud83d\ude80 Module execution entry point\n\u251c\u2500\u2500 links2json.py       # \ud83d\udd17 Links configuration parser  \n\u251c\u2500\u2500 links2topo.py       # \ud83c\udf10 Links topology generator\n\u251c\u2500\u2500 dmrt2json.py        # \ud83d\udce1 DMRT configuration parser\n\u251c\u2500\u2500 dmrt2topo.py        # \ud83d\udd04 DMRT topology generator  \n\u251c\u2500\u2500 avpmed2json.py      # \ud83d\udd27 AVPMED configuration parser\n\u2514\u2500\u2500 __init__.py         # \ud83d\udce6 Package initialization\n```\n\n## \ud83e\uddea Testing\n\nRun the comprehensive test suite:\n\n```bash\n# Run all tests\npytest\n\n# Run with coverage\npytest --cov=pysimplesps --cov-report=html\n\n# Run specific test categories\npytest -m unit         # Unit tests only\npytest -m integration  # Integration tests only\npytest -v              # Verbose output\n\n# Run test script\npython run_tests.py\n```\n\n## \ud83d\udcca Sample Output\n\n### JSON Structure\n```json\n{\n  \"diameter_peers\": [...],\n  \"diameter_link_sets\": [...], \n  \"diameter_links\": [...],\n  \"mtp_destination_points\": [...],\n  \"metadata\": {\n    \"parsed_at\": \"2025-08-03T...\",\n    \"total_peers\": 4,\n    \"total_link_sets\": 6,\n    \"total_links\": 12,\n    \"unique_ips\": [\"172.21.1.101\", \"172.21.1.102\"],\n    \"unique_networks\": [\"172.21.1.0/24\"]\n  }\n}\n```\n\n### Topology Features\n- **Interactive D3.js visualizations**\n- **Color-coded node types** (Diameter, MTP, M2UA, M3UA)\n- **Drag-and-drop network exploration**\n- **Connection details on hover**\n- **Responsive design**\n\n## \ud83c\udfaf Supported MML Commands\n\n### Links Configuration\n- `ADD DMPEER` - Diameter peers\n- `ADD DMLKS` - Diameter link sets  \n- `ADD DMLNK` - Diameter links\n- `ADD N7DSP` - MTP destination points\n- `ADD N7LKS` - MTP link sets\n- `ADD N7LNK` - MTP links\n\n### DMRT Configuration  \n- `ADD DMROUTERESULT` - Route results\n- `ADD DMROUTEENTRANCE` - Route entrances\n- `ADD DMROUTEEXIT` - Route exits\n- `ADD DMROUTERULE_*` - Routing rules\n\n### AVPMED Configuration\n- `ADD MEDFILTER` - Mediation filters\n- `ADD MEDACTION` - Mediation actions  \n- `ADD MEDRULE` - Mediation rules\n- `MOD DMPEER` - Peer assignments\n- `MOD SFP` - Software parameters\n\n## \ud83d\udd27 Development\n\n### Setup Development Environment\n```bash\n# Clone repository\ngit clone https://github.com/fxyzbtc/pysimplesps.git\ncd pysimplesps\n\n# Install in development mode\npip install -e .[dev]\n\n# Run linting\nruff check pysimplesps/\nruff format pysimplesps/\n\n# Type checking\nmypy pysimplesps/\n```\n\n### Contributing Guidelines\n1. \ud83c\udf74 Fork the repository\n2. \ud83c\udf1f Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. \ud83d\udcdd Make your changes with tests\n4. \u2705 Run the test suite (`pytest`)\n5. \ud83d\ude80 Submit a pull request\n\n## \ud83d\udcda Documentation\n\n- **API Documentation**: Coming soon\n- **Wiki**: [https://deepwiki.com/fxyzbtc/pysimplesps](https://deepwiki.com/fxyzbtc/pysimplesps)\n- **Examples**: Check the `tests/` directory for usage examples\n\n## \ud83e\udd1d Support\n\n- \ud83d\udc1b **Issues**: [GitHub Issues](https://github.com/fxyzbtc/pysimplesps/issues)\n- \ud83d\udcac **Discussions**: [GitHub Discussions](https://github.com/fxyzbtc/pysimplesps/discussions)\n- \ud83d\udce7 **Email**: fxyzbtc@example.com\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- Built with \u2764\ufe0f for telecommunications engineers\n- Powered by Python 3.12+ and modern tooling\n- Inspired by the need to make MML configurations more accessible\n\n---\n\n<div align=\"center\">\n\n**\u2b50 Star this repo if pysimplesps helps you visualize your networks! \u2b50**\n\nMade with \ud83d\udd25 by [fxyzbtc](https://github.com/fxyzbtc)\n\n</div>\n\n## \ud83c\udfa8 Examples\n\n### Parse SPS Links Configuration\n\n```bash\n# Basic JSON output\npysimplesps links spsdmlinks.txt\n\n# Save to file with topology visualization\npysimplesps links spsdmlinks.txt -f topology -o network_topology.html\n\n# Verbose parsing with detailed logs\npysimplesps links spsdmlinks.txt -v -o detailed_links.json\n```\n\n### Diameter Routing Analysis\n\n```bash\n# Parse multiple DMRT files\npysimplesps dmrt spsdmrt_host.txt spsdmrt_id.txt spsdmrt_ip.txt\n\n# Generate routing topology\npysimplesps dmrt dmrt_config.txt -f topology -o routing_flow.html\n```\n\n### AVP Mediation Processing\n\n```bash\n# Parse mediation rules\npysimplesps avpmed spsavpmediation.txt -o mediation_config.json\n```\n\n## \ud83c\udfd7\ufe0f Architecture\n\n```\npysimplesps/\n\u251c\u2500\u2500 cli.py              # \ud83c\udfaf Main CLI interface with Typer\n\u251c\u2500\u2500 links2json.py       # \ud83d\udd17 Links configuration parser  \n\u251c\u2500\u2500 links2topo.py       # \ud83c\udf10 Links topology generator\n\u251c\u2500\u2500 dmrt2json.py        # \ud83d\udce1 DMRT configuration parser\n\u251c\u2500\u2500 dmrt2topo.py        # \ud83d\udd04 DMRT topology generator  \n\u251c\u2500\u2500 avpmed2json.py      # \ud83d\udd27 AVPMED configuration parser\n\u251c\u2500\u2500 __main__.py         # \ud83d\ude80 Module execution entry point\n\u2514\u2500\u2500 __init__.py         # \ud83d\udce6 Package initialization\n```\n\n## \ud83e\uddea Testing\n\nRun the comprehensive test suite:\n\n```bash\n# Run all tests\npytest\n\n# Run with coverage\npytest --cov=pysimplesps --cov-report=html\n\n# Run specific test categories\npytest -m unit         # Unit tests only\npytest -m integration  # Integration tests only\npytest -v              # Verbose output\n```\n\n## \ud83d\udcca Sample Output\n\n### JSON Structure\n```json\n{\n  \"diameter_peers\": [...],\n  \"diameter_link_sets\": [...], \n  \"diameter_links\": [...],\n  \"mtp_destination_points\": [...],\n  \"metadata\": {\n    \"parsed_at\": \"2025-08-03T...\",\n    \"total_peers\": 4,\n    \"total_link_sets\": 6,\n    \"total_links\": 12,\n    \"unique_ips\": [\"172.21.1.101\", \"172.21.1.102\"],\n    \"unique_networks\": [\"172.21.1.0/24\"]\n  }\n}\n```\n\n### Topology Features\n- **Interactive D3.js visualizations**\n- **Color-coded node types** (Diameter, MTP, M2UA, M3UA)\n- **Drag-and-drop network exploration**\n- **Connection details on hover**\n- **Responsive design**\n\n## \ud83c\udfaf Supported MML Commands\n\n### Links Configuration\n- `ADD DMPEER` - Diameter peers\n- `ADD DMLKS` - Diameter link sets  \n- `ADD DMLNK` - Diameter links\n- `ADD N7DSP` - MTP destination points\n- `ADD N7LKS` - MTP link sets\n- `ADD N7LNK` - MTP links\n\n### DMRT Configuration  \n- `ADD DMROUTERESULT` - Route results\n- `ADD DMROUTEENTRANCE` - Route entrances\n- `ADD DMROUTEEXIT` - Route exits\n- `ADD DMROUTERULE_*` - Routing rules\n\n### AVPMED Configuration\n- `ADD MEDFILTER` - Mediation filters\n- `ADD MEDACTION` - Mediation actions  \n- `ADD MEDRULE` - Mediation rules\n- `MOD DMPEER` - Peer assignments\n- `MOD SFP` - Software parameters\n\n## \ud83d\udd27 Development\n\n### Setup Development Environment\n```bash\n# Clone repository\ngit clone https://github.com/fxyzbtc/pysimplesps.git\ncd pysimplesps\n\n# Install in development mode\npip install -e .[dev]\n\n# Run linting\nruff check pysimplesps/\nruff format pysimplesps/\n\n# Type checking\nmypy pysimplesps/\n```\n\n### Contributing Guidelines\n1. \ud83c\udf74 Fork the repository\n2. \ud83c\udf1f Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. \ud83d\udcdd Make your changes with tests\n4. \u2705 Run the test suite (`pytest`)\n5. \ud83d\ude80 Submit a pull request\n\n## \ud83d\udcda Documentation\n\n- **API Documentation**: Coming soon\n- **Wiki**: [https://deepwiki.com/fxyzbtc/pysimplesps](https://deepwiki.com/fxyzbtc/pysimplesps)\n- **Examples**: Check the `tests/` directory for usage examples\n\n## \ud83e\udd1d Support\n\n- \ud83d\udc1b **Issues**: [GitHub Issues](https://github.com/fxyzbtc/pysimplesps/issues)\n- \ud83d\udcac **Discussions**: [GitHub Discussions](https://github.com/fxyzbtc/pysimplesps/discussions)\n- \ud83d\udce7 **Email**: fxyzbtc@example.com\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- Built with \u2764\ufe0f for telecommunications engineers\n- Powered by Python 3.12+ and modern tooling\n- Inspired by the need to make MML configurations more accessible\n\n---\n\n<div align=\"center\">\n\n**\u2b50 Star this repo if pysimplesps helps you visualize your networks! \u2b50**\n\nMade with \ud83d\udd25 by [fxyzbtc](https://github.com/fxyzbtc)\n\n</div>\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A comprehensive Python library to parse SPS MML configurations and generate JSON/topology data",
    "version": "0.2.1",
    "project_urls": {
        "Documentation": "https://deepwiki.com/fxyzbtc/pysimplesps",
        "Homepage": "https://github.com/fxyzbtc/pysimplesps",
        "Issues": "https://github.com/fxyzbtc/pysimplesps/issues",
        "Repository": "https://github.com/fxyzbtc/pysimplesps"
    },
    "split_keywords": [
        "diameter",
        " mml",
        " signaling",
        " sps",
        " telecom",
        " topology"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "937aa0aa87cfd9d433f510c78d3b71a5ebfccf6ae449dd9d1ab8345ddd0435ec",
                "md5": "3fcaac5fbb3beb7d2b610325411d566d",
                "sha256": "051000933dbda55ac52d8cc1f957295dc81b6389f076324926d845a8425427da"
            },
            "downloads": -1,
            "filename": "pysimplesps-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3fcaac5fbb3beb7d2b610325411d566d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 74062,
            "upload_time": "2025-08-05T11:26:28",
            "upload_time_iso_8601": "2025-08-05T11:26:28.310274Z",
            "url": "https://files.pythonhosted.org/packages/93/7a/a0aa87cfd9d433f510c78d3b71a5ebfccf6ae449dd9d1ab8345ddd0435ec/pysimplesps-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ac4ed3c0227785e1744f67e1032612aef390fc39f6dad63a168eda1f6d0192d3",
                "md5": "40ba1ebff36ed4ab9b2482b1434e1f31",
                "sha256": "568a9bae2b299dc673188461e8a5d04c5de479922cccf30310b869f1dc04b6d4"
            },
            "downloads": -1,
            "filename": "pysimplesps-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "40ba1ebff36ed4ab9b2482b1434e1f31",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 103495,
            "upload_time": "2025-08-05T11:26:30",
            "upload_time_iso_8601": "2025-08-05T11:26:30.031069Z",
            "url": "https://files.pythonhosted.org/packages/ac/4e/d3c0227785e1744f67e1032612aef390fc39f6dad63a168eda1f6d0192d3/pysimplesps-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-05 11:26:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "fxyzbtc",
    "github_project": "pysimplesps",
    "github_not_found": true,
    "lcname": "pysimplesps"
}
        
Elapsed time: 1.07997s