Skip to main content

Windseeker

Python SysML CLI Status PyPI Coverage Docstrings Security Audit

Windseeker is a command-line tool for SysML v2 dependency analysis, notebook generation, execution, and view extraction.

It scans .sysml files, analyzes package dependencies, generates a dependency-ordered SysML Jupyter notebook, executes that notebook using a SysML kernel, and extracts rendered views as images.

Naming note

  • PyPI distribution name: sysml-windseeker
  • Python import name: windseeker
  • CLI command: windseeker

AI Assisted Development

This project has used generative AI to assist in the development of the tool.


🧱 Architecture Overview

flowchart TD
    A[.sysml Files] --> B[Folder Scanner]
    B --> C[Package & Import Parser]
    C --> D[Dependency Graph]
    D --> E[Topological Ordering]

    E --> F[SysML Concatenation]
    E --> G[Jupyter Notebook Builder]

    G --> H[Notebook Execution]
    H --> I[View Rendering Cells]

    I --> J[SVG / PNG / JPG Extraction]

    D --> K[Graph Visualization]

✨ Features

Model Analysis

  • Recursively scans .sysml files
  • Extracts top-level packages only
  • Detects import dependencies
  • Builds a directed dependency graph
  • Fails fast on:
    • Import cycles
    • Invalid dependency ordering

Notebook Generation

  • Generates a single-kernel SysML Jupyter notebook
  • One code cell per top-level package
  • Cells ordered by dependency order
  • Nested packages remain embedded in their parent cell
  • Appends additional cells for each discovered view
    • Uses %view Fully::Qualified::ViewName

Notebook Execution

  • Executes the generated notebook programmatically
  • Supports:
    • nbclient (preferred)
    • jupyter nbconvert --execute (fallback)
  • Detects errors via:
    • Jupyter error outputs
    • SysML kernel stderr (ERROR, Exception, Traceback)
  • View rendering failures are non-fatal by default

View Image Extraction

  • Extracts rendered views from executed notebooks
  • Supports:
    • SVG (raw XML)
    • PNG (transparent or solid background)
    • Optional JPG
  • Automatically rescales oversized SVGs to avoid Cairo rendering errors

🚀 Quick Start

1) Install Windseeker

pip install sysml-windseeker

For development:

pip install -e .

2) Ensure a SysML Jupyter Kernel Is Installed

jupyter kernelspec list

You must see a kernel such as:

sysml

3) Run Windseeker

windseeker run --folder ./tests

🧰 CLI Usage

Common Options

Flag Description
--folder PATH Root directory to scan for .sysml files
--graph / --no-graph Enable or disable dependency graph image generation
--execute / --no-execute Execute the generated notebook
--export-views / --no-export-views Extract rendered views
--views-dir PATH Output directory for view images
--sysml-out PATH Output .sysml file
--notebook-out PATH Output notebook path

Validation & Safety Flags

Flag Description
--ignore-missing NAME Ignore unresolved imports (e.g. standard libraries)
--strict-missing / --allow-missing Fail if unresolved imports are found
--strict-views / --allow-view-errors Fail if %view cells error
--execute / --no-execute Skip notebook execution

View Rendering Options

Flag Description
--write-svg / --no-write-svg Write SVG files
--write-png / --no-write-png Write PNG files
--write-jpg / --no-write-jpg Also write JPG files
--png-transparent / --png-opaque Control PNG transparency
--png-bg COLOR Background color for opaque PNGs

Full CLI Reference

windseeker run --help
windseeker order --help

📜 License

MIT

Metadata

Release files for sysml-windseeker 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sysml-windseeker 0.3.1
File Size Uploaded
sysml_windseeker-0.3.1.tar.gz 21.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sysml-windseeker 0.3.1
File Interpreter ABI Platform
sysml_windseeker-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 42.8 kB

Release files / sysml_windseeker-0.3.1.tar.gz

Download URL sysml_windseeker-0.3.1.tar.gz
Size 21.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f8be16c7729c8eb9d378887abe8c7887bb3f8d0005064d0c3fce9bba3164ceb6
BLAKE2b-256 checksum
How to use checksums
0016f1f647bf0ae0dd2c4fca623cfaa67606aaa8456dd257b628423f98ec3fa3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 29, 2026.

Transparency log

Release files / sysml_windseeker-0.3.1-py3-none-any.whl

Download URL sysml_windseeker-0.3.1-py3-none-any.whl
Size 21.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a19b40c4301b1dd94159db4337e4ac77e20ae2c5a930ac842f9a492ed4523a52
BLAKE2b-256 checksum
How to use checksums
2bbf6db143a20518d8fd3eb23c7f9ed17e5e5d2f88b19983d55daf51ea24d580
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 29, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page