Skip to content

๐ŸŒพ Python library for parsing and analyzing MATLAB code, providing support for extracting signatures, documentation, and metadata from MATLAB projects including functions, classes, scripts, and namespaces..

License

Notifications You must be signed in to change notification settings

watermarkhu/maxx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

52 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

maxx

CI pypi version Python 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.

About

๐ŸŒพ Python library for parsing and analyzing MATLAB code, providing support for extracting signatures, documentation, and metadata from MATLAB projects including functions, classes, scripts, and namespaces..

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Contributors 2

  •  
  •