maxx
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.
Metadata
Release files for maxx 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| maxx-0.10.0.tar.gz | 927.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| maxx-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.0 MB
Release files / maxx-0.10.0.tar.gz
| Download URL | maxx-0.10.0.tar.gz |
|---|---|
| Size | 927.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
903092f0d4f3ac9bcc7415df98d11a0474634745ed22763c3a8f655f80f8b93e
|
|
BLAKE2b-256 checksum How to use checksums |
1213150ac538d405e5088272c8c201c198862ba7f63c24762c5b6b8270be2c41
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / maxx-0.10.0-py3-none-any.whl
| Download URL | maxx-0.10.0-py3-none-any.whl |
|---|---|
| Size | 81.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e32e0d256f5273712ae27a8bd9ca12616d894aff910942f3dd7abf67514415f
|
|
BLAKE2b-256 checksum How to use checksums |
7bcf5dce6a7468974cd6e90b307ce1bd0a81a3d32678a26c57620ad5148233aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|