Skip to content

Modernize package structure for better usability and maintainability #7

@jasonsethrothman

Description

@jasonsethrothman

Problem

pyNeuroMatic currently lacks modern Python package infrastructure.

First issue addressed here:

  • ❌ GUI dependencies exist even for non-GUI users

Proposed Solution

Restructure pyNeuroMatic as follows:

pyNeuroMatic/
├── pyneuromatic/          # Main package (lowercase)
│   ├── core/             # Data structures, I/O
│   ├── analysis/         # Analysis algorithms  
│   ├── visualization/    # Matplotlib plots
│   └── gui/             # Optional GUI (separate)
├── tests/                # Automated tests
├── docs/                 # Sphinx documentation
├── examples/             # Jupyter notebooks
└── pyproject.toml        # Modern packaging

Key Changes

1. Separate GUI from Core

# Core: works without GUI
pip install pyneuromatic
import pyneuromatic as pnm
spikes = pnm.detect_spikes(data)

# GUI: optional
pip install pyneuromatic[gui]
pyneuromatic-gui

### Benefits

-Use without GUI on servers
-Clear code organization
-Easier to maintain
-Wider adoption

Metadata

Metadata

Labels

enhancementNew feature or request

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions