Module Structure¶
This document describes the package organization and module responsibilities.
Package Overview¶
iso8583sim/
├── __init__.py # Package root (minimal)
├── core/ # Core message handling
├── llm/ # LLM-powered features
├── cli/ # Command-line interface
├── web/ # REST API (placeholder)
└── demo.py # Interactive demo helpers
Core Module (iso8583sim.core)¶
The core module handles ISO 8583 message parsing, building, and validation.
types.py¶
Central type definitions and field specifications.
Classes:
- ISO8583Version - Protocol version enum (1987, 1993, 2003)
- FieldType - Field data type enum (NUMERIC, ALPHA, LLVAR, etc.)
- CardNetwork - Card network enum (VISA, MASTERCARD, etc.)
- MessageClass - Message class enum (AUTHORIZATION, FINANCIAL, etc.)
- MessageFunction - Message function enum (REQUEST, RESPONSE, etc.)
- FieldDefinition - Field metadata dataclass
- ISO8583Message - Message data structure
- ParseError / BuildError - Exception types
Data:
- ISO8583_FIELDS - Standard ISO 8583 field definitions (128 fields)
- NETWORK_SPECIFIC_FIELDS - Network-specific field overrides
- VERSION_SPECIFIC_FIELDS - Version-specific field overrides
Functions:
- get_field_definition() - Get field definition with network/version overrides
- detect_network() - Identify card network from PAN
parser.py¶
Message parsing from raw string to ISO8583Message.
Classes:
- ISO8583Parser - Main parser class
- EMVTag - EMV tag data structure
Key Methods:
- parse(message, network=None) - Parse raw message string
- _parse_mti() - Extract Message Type Indicator
- _parse_bitmap() - Parse primary/secondary bitmaps
- _parse_fields() - Parse individual fields
builder.py¶
Message building from ISO8583Message to raw string.
Classes:
- ISO8583Builder - Main builder class
Key Methods:
- build(message) - Build raw message string
- _format_field_value() - Format field with padding
- _build_bitmap() - Generate bitmap from fields
- _build_field() - Build field with length prefix
validator.py¶
Message validation with network-specific rules.
Classes:
- ISO8583Validator - Main validator class
Key Methods:
- validate_message(message) - Full message validation
- validate_field(field_number, value, field_def) - Single field validation
- _validate_pan_luhn() - PAN Luhn checksum validation
- _validate_visa_specific() - VISA-specific rules
- _validate_mastercard_specific() - Mastercard-specific rules
emv.py¶
EMV/ICC chip card data handling.
Functions:
- parse_emv_data(data) - Parse Field 55 TLV data
- build_emv_data(tags) - Build Field 55 from tags
- format_emv_tag() - Format EMV tag for display
pool.py¶
Object pooling for high-throughput scenarios.
Classes:
- MessagePool - Reusable message object pool
Key Methods:
- acquire() - Get message from pool
- release(message) - Return message to pool
LLM Module (iso8583sim.llm)¶
AI-powered message explanation and generation.
base.py¶
Provider interface and exceptions.
Classes:
- LLMProvider - Abstract base class for providers
- LLMResponse - Response with metadata dataclass
- LLMError - Base LLM exception
- ProviderConfigError - Configuration error
- ProviderNotAvailableError - Missing provider/package
explainer.py¶
Message explanation using LLMs.
Classes:
- MessageExplainer - Explain messages in plain English
Key Methods:
- explain(message, verbose=False) - Explain a message
- explain_field(field_number, value) - Explain a single field
- explain_response_code(code) - Explain response code
generator.py¶
Message generation from natural language.
Classes:
- MessageGenerator - Generate messages from descriptions
Key Methods:
- generate(description, validate=True) - Generate message
- suggest_fields(partial_message) - Suggest missing fields
providers/¶
LLM provider implementations.
Files:
- __init__.py - Provider factory and auto-detection
- anthropic.py - Anthropic (Claude) provider
- openai.py - OpenAI (GPT) provider
- google.py - Google (Gemini) provider
- ollama.py - Ollama (local) provider
Key Functions:
- get_provider(name=None) - Get provider instance
- list_available_providers() - List configured providers
- list_installed_providers() - List installed providers
CLI Module (iso8583sim.cli)¶
Command-line interface using Click.
commands.py¶
CLI command implementations.
Commands:
- parse - Parse a raw ISO 8583 message
- build - Build a message from fields
- validate - Validate a message
- generate - Generate sample messages
Demo Module (iso8583sim.demo)¶
Interactive helpers for notebooks and exploration.
Functions:
- generate_auth_request() - Generate authorization request
- generate_emv_auth() - Generate EMV authorization
- pretty_print() - Format message for display
Cython Extensions¶
Optional compiled extensions for performance.
Files:
- core/_parser_fast.pyx - Fast parsing functions
- core/_bitmap.pyx - Fast bitmap operations
- core/_validator_fast.pyx - Fast validation functions
Detection:
try:
from ._parser_fast import parse_mti_fast
_USE_CYTHON = True
except ImportError:
_USE_CYTHON = False
Import Patterns¶
Basic Usage¶
from iso8583sim.core.parser import ISO8583Parser
from iso8583sim.core.builder import ISO8583Builder
from iso8583sim.core.types import ISO8583Message
With Validation¶
from iso8583sim.core.validator import ISO8583Validator
from iso8583sim.core.types import CardNetwork
With LLM Features¶
from iso8583sim.llm import MessageExplainer, MessageGenerator
from iso8583sim.llm import get_provider, list_available_providers
Demo/Interactive¶
from iso8583sim.demo import generate_auth_request, pretty_print