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

Aperta
#214 2 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
20/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Tranquilla
Stack tecnologico
matlab, python
Ambito
backend

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

Lingua principale
MATLAB
Stelle
30
Fork
1
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di UniprJRC/DSwithMATLAB

Tutte le issue di UniprJRC/DSwithMATLAB

Issue simili

Altre issue su MATLAB

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.