maxx

October 7, 2025 ยท View on GitHub

CI pypi version Python codecov License: GPL v3

malt logo, created by Mark Shui Hu

maxx (MATLAB Language Tools) is a Python library for parsing and analyzing MATLAB code. It provides comprehensive support for extracting signatures, documentation, and metadata from MATLAB projects including functions, classes, scripts, and packages.

Features

  • ๐Ÿ” Parse MATLAB files - Extract functions, classes, properties, and methods
  • ๐Ÿ“ Project structure analysis - Handle MATLAB packages, namespaces, and class folders
  • ๐Ÿ“– Documentation extraction - Parse docstrings and comments from MATLAB code
  • ๐ŸŽฏ Type information - Extract argument types, validation functions, and return types
  • ๐ŸŒณ Tree-sitter based - Fast and accurate parsing using tree-sitter-matlab
  • ๐Ÿ”— Integration ready - Built for documentation generators like MkDocs

Installation

Using pip:

pip install maxx

Using uv:

uv add maxx

Quick Start

Basic File Parsing

from pathlib import Path
from maxx.treesitter import FileParser

# Parse a MATLAB function file
parser = FileParser(Path("myfunction.m"))
matlab_object = parser.parse()

print(f"Object type: {matlab_object.kind}")
print(f"Name: {matlab_object.name}")
print(f"Arguments: {matlab_object.arguments}")
print(f"Docstring: {matlab_object.docstring}")

Project Collection

from maxx.collection import PathsCollection
from pathlib import Path

# Collect all MATLAB objects from a project
paths = PathsCollection([Path("src"), Path("examples")])

# Access parsed objects
my_function = paths["myfunction"]
my_class = paths["MyClass"]
my_package = paths["+mypackage.MyFunction"]

Working with Classes

# Access class members
matlab_class = paths["MyClass"]
print(f"Base classes: {matlab_class.bases}")
print(f"Properties: {list(matlab_class.members.keys())}")

# Access methods and properties
constructor = matlab_class.constructor
properties = [m for m in matlab_class.members.values() if m.is_property]

Supported MATLAB Constructs

  • Functions - Regular functions, nested functions, methods
  • Classes - Class definitions, properties, methods, inheritance
  • Scripts - Script files and their documentation
  • Packages - Namespace packages (+package) and class folders (@class)
  • Arguments blocks - Input/output validation and type information
  • Properties blocks - Class properties with attributes and validation

License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.