Metadata-Version: 2.4
Name: wsdl-explorer
Version: 0.1.0
Summary: Browse WSDL files from a terminal UI or print a friendly terminal summary.
Author: wsdl-explorer maintainers
License-Expression: MIT
License-File: LICENSE
Keywords: soap,terminal,textual,tui,wsdl
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Environment :: Console :: Curses
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Documentation
Classifier: Topic :: Text Processing :: Markup :: XML
Requires-Python: >=3.10
Requires-Dist: defusedxml>=0.7.1
Requires-Dist: rich>=13.7
Requires-Dist: textual<9.0,>=6.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.14; extra == 'dev'
Description-Content-Type: text/markdown

# wsdl-explorer

[![CI](https://github.com/pminervini/wsdl-explorer/actions/workflows/ci.yml/badge.svg)](https://github.com/pminervini/wsdl-explorer/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

`wsdl-explorer` is a terminal tool for inspecting WSDL 1.1 documents. Give it a
URL or file path and it opens a Textual browser with services, endpoints,
bindings, port types, operations, messages, schema summaries, and imports. It can
also print the same information as a friendly Rich terminal summary.

## Install

```bash
pip install wsdl-explorer
```

For local development from this repository:

```bash
python -m pip install -e ".[dev]"
```

After installation, the `wsdl-explorer` command is available on `PATH`.

## Usage

Open the TUI:

```bash
wsdl-explorer https://www.dataaccess.com/webservicesserver/NumberConversion.wso?WSDL
```

Print a terminal summary:

```bash
wsdl-explorer --print ./service.wsdl
```

Read from stdin:

```bash
curl -L "https://www.dataaccess.com/webservicesserver/NumberConversion.wso?WSDL" | wsdl-explorer --print -
```

## TUI controls

- Arrow keys: move through the tree
- Enter: expand, select tree nodes, or open referenced schemas
- Backspace: return from an opened schema to the previous WSDL/schema view
- Mouse wheel or trackpad over the right pane: scroll details
- `Ctrl+D` / `Ctrl+U`: page the right detail pane down or up
- `r`: reload the WSDL
- `q`: quit
- `F1`: show a short help notification

## What it shows

- WSDL document name and target namespace
- Services, ports, bindings, and SOAP addresses
- Port types and operations with input/output/fault messages
- Binding operations with SOAP actions and body use
- Messages and message parts
- Inline XML Schema counts
- WSDL import locations

## Limitations

`wsdl-explorer` parses WSDL 1.1 documents directly from XML. It summarizes inline
schemas and import references, but it does not recursively download imported WSDL
or XSD files and it does not generate SOAP clients.

## License

`wsdl-explorer` is distributed under the MIT License. See [LICENSE](LICENSE).

## Development

```bash
python -m pip install -e ".[dev]"
pytest
```

The Textual app follows the repo-local guidance in
`~/workspace/guidelines/TEXTUAL-GUIDELINE.md`: layout is in `app.tcss`, slow
loading runs in a worker, and UI behavior is covered by a headless
`App.run_test()` smoke test.
