Signatures for MATLAB projects
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file maxx-0.8.0.tar.gz.
File metadata
- Download URL: maxx-0.8.0.tar.gz
- Upload date:
- Size: 925.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2995eb531ac6581318fcc4753ca43d7118228f7ec945d1f1c4de17704ffe6b0a
|
|
| MD5 |
3219c26c326ceaaf81b878494891477a
|
|
| BLAKE2b-256 |
ea3a792613db0f40c0f54d88a36a57eaf74c75daa133c16ccc9a8efee3faf7f5
|
File details
Details for the file maxx-0.8.0-py3-none-any.whl.
File metadata
- Download URL: maxx-0.8.0-py3-none-any.whl
- Upload date:
- Size: 80.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.1 {"installer":{"name":"uv","version":"0.11.1","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
124445c2c89eb0ef9254527b5aa258bc37532d09640c4bd3832effea3240bcb0
|
|
| MD5 |
ea121b6d3aed2be4633c68aea1fe5923
|
|
| BLAKE2b-256 |
9ce434ef41f5a6f2e5214964f55c53377def5cdcf494c537282848ae3b326625
|