Contributing to FSDA Python Integration - Wrapper Package Ready for Review (Issue #212)

Abierto
#214 2 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
20/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Tranquilo
Stack tecnológico
matlab, python
Área
backend

Línea de trabajo

The proposed wrapper package and its code are linked from Google Drive; review its architecture notes and testing script alongside the FSDA material in the repository. First establish the project’s intended scope for Python integration, then compare the proposal with that scope. Done means maintainers decide whether and how the wrapper should be incorporated; the issue does not define a repository change or acceptance criteria.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hi everyone,

I’ve been following this initiative, and I’m very excited about the goal of making FSDA accessible to Python users. I have already started working on this by developing a robust wrapper architecture that addresses the challenges of bridging FSDA with the Python ecosystem.

have successfully compiled the FSDA toolbox into a standalone Python package (fsda_wrapper_pkg) and developed a wrapper that handles:
Seamless Integration: Instead of manual engine configuration, I’ve implemented an initialize() function that handles pathing and setup automatically.

Robust Data Handling: A dedicated fsda_wrapper.m interface that performs dynamic data type conversion (e.g., handling matlab.double casting and empty input arguments) which was a critical roadblock.

Cross-Functionality: I have already tested and integrated the following core FSDA functions:

  • FSM (with and without interactive plots)
  • FSR (Robust Regression)
  • zscoreFS (including 3D/Sn dimension support)
  • CorAna (Correspondence Analysis)

Developer Experience: Built a menu-driven Python interface to demonstrate how natural the workflow feels for Python users.

I have documented the architectural choices (Why I chose a compiled package over direct engine calls) and the error-handling strategies I used to overcome MATLAB-Python interface limitations.

would love to share my progress, contribute this code to the project and i am sharing my drive link where i have added my package + architecture + my testing script and live testing video

Prerequisites

Before you begin, ensure you have these installed:

-Python (Version 3.12.10 or less greater than this may create issues).
-MATLAB Software
-MATLAB Runtime (The version must match the one used to compile the package, e.g., 2025b).

How to Install and Run

Open your Project Folder:
Navigate to the folder named package where you see the file setup_project.bat.

Run the Installer:

Simply double-click the setup_project.bat file.

-The script will automatically create a Virtual Environment (venv) for you.
-It will install all necessary libraries (matlabengine and numpy) inside that environment.
-it will trigger pip install -e . using your setup.py file, which registers your fsda_wrapper_pkg so you can use it in your code.

Once finished, the environment will be ready, and your package will be linked to your Python setup.

i have share my code file in drive link you can test that code too.

link : https://drive.google.com/drive/folders/16JlIWzzOvxwUOU8Zq9SZjknCpfueWEx3?usp=sharing

Image Image Image Image Image Image

@AldoCorbelliniUNIPR @MarcoRianiUNIPR @UniprJRC @Asadunipr @qaseem97

Lenguaje dominante
MATLAB
Estrellas
30
Forks
1
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de UniprJRC/DSwithMATLAB

Todos los issues de UniprJRC/DSwithMATLAB

Issues similares

Más issues de MATLAB

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.