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.2
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.2.tar.gz | 930.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| maxx-0.10.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.0 MB
Release files / maxx-0.10.2.tar.gz
| Download URL | maxx-0.10.2.tar.gz |
|---|---|
| Size | 930.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
77b954af95f72d216b0e2c1f1eefb36a3631448754e24a1721ad0bc00492fabd
|
|
BLAKE2b-256 checksum How to use checksums |
53cb83d3ec11beb61dfa72c0f8819b35b9d49bb67b5f69f7fab3fc0c1199ef93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","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.2-py3-none-any.whl
| Download URL | maxx-0.10.2-py3-none-any.whl |
|---|---|
| Size | 82.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
319bc9325b191c14329e041d899592966fc5c73cf04648e9b0e6c56a111bd68c
|
|
BLAKE2b-256 checksum How to use checksums |
1e7737e57462f94014ac4a4a8297bb9dbaa61c447dade30e977ead0d00eea1d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","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}
|