minor ci fixes
Some checks failed
Security Scan / security (pull_request) Successful in 48s
Security Scan / dependency-check (pull_request) Failing after 36s
Test Suite / lint (pull_request) Failing after 29s
Test Suite / test (3.11) (pull_request) Successful in 1m24s
Test Suite / build (pull_request) Has been skipped

This commit is contained in:
2025-08-13 20:44:48 -07:00
parent 091a2a0f97
commit c9c2c0ef39
3 changed files with 23 additions and 6 deletions

View File

@@ -41,7 +41,7 @@ jobs:
continue-on-error: true continue-on-error: true
- name: Upload security reports - name: Upload security reports
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3
with: with:
name: security-reports name: security-reports
path: | path: |

View File

@@ -2,16 +2,20 @@ name: Test Suite
on: on:
push: push:
branches: ["*"] branches:
- "main"
- "develop"
pull_request: pull_request:
branches: ["main", "master"] branches:
- "main"
workflow_dispatch:
jobs: jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: ["3.11", "3.12"] python-version: ["3.11"]
steps: steps:
- name: Checkout code - name: Checkout code

View File

@@ -42,7 +42,7 @@ Use the included `sample_data.ndjson` and `sample_prompts.ndjson` files for test
The application follows a modular architecture with clear separation of concerns: The application follows a modular architecture with clear separation of concerns:
``` ```text
src/embeddingbuddy/ src/embeddingbuddy/
├── app.py # Main application entry point and factory ├── app.py # Main application entry point and factory
├── main.py # Application runner ├── main.py # Application runner
@@ -72,27 +72,32 @@ src/embeddingbuddy/
### Key Components ### Key Components
**Data Layer:** **Data Layer:**
- `data/parser.py` - NDJSON parsing with error handling - `data/parser.py` - NDJSON parsing with error handling
- `data/processor.py` - Data transformation and combination logic - `data/processor.py` - Data transformation and combination logic
- `models/schemas.py` - Dataclasses for type safety and validation - `models/schemas.py` - Dataclasses for type safety and validation
**Algorithm Layer:** **Algorithm Layer:**
- `models/reducers.py` - Modular dimensionality reduction with factory pattern - `models/reducers.py` - Modular dimensionality reduction with factory pattern
- Supports PCA, t-SNE (openTSNE), and UMAP algorithms - Supports PCA, t-SNE (openTSNE), and UMAP algorithms
- Abstract base class for easy extension - Abstract base class for easy extension
**Visualization Layer:** **Visualization Layer:**
- `visualization/plots.py` - Plot factory with single and dual plot support - `visualization/plots.py` - Plot factory with single and dual plot support
- `visualization/colors.py` - Color mapping and grayscale conversion utilities - `visualization/colors.py` - Color mapping and grayscale conversion utilities
- Plotly-based 2D/3D scatter plots with interactive features - Plotly-based 2D/3D scatter plots with interactive features
**UI Layer:** **UI Layer:**
- `ui/layout.py` - Main application layout composition - `ui/layout.py` - Main application layout composition
- `ui/components/` - Reusable, testable UI components - `ui/components/` - Reusable, testable UI components
- `ui/callbacks/` - Organized callbacks grouped by functionality - `ui/callbacks/` - Organized callbacks grouped by functionality
- Bootstrap-styled sidebar with controls and large visualization area - Bootstrap-styled sidebar with controls and large visualization area
**Configuration:** **Configuration:**
- `config/settings.py` - Centralized settings with environment variable support - `config/settings.py` - Centralized settings with environment variable support
- Plot styling, marker configurations, and app-wide constants - Plot styling, marker configurations, and app-wide constants
@@ -112,16 +117,19 @@ Optional fields: `id`, `category`, `subcategory`, `tags`
The refactored callback system is organized by functionality: The refactored callback system is organized by functionality:
**Data Processing (`ui/callbacks/data_processing.py`):** **Data Processing (`ui/callbacks/data_processing.py`):**
- File upload handling - File upload handling
- NDJSON parsing and validation - NDJSON parsing and validation
- Data storage in dcc.Store components - Data storage in dcc.Store components
**Visualization (`ui/callbacks/visualization.py`):** **Visualization (`ui/callbacks/visualization.py`):**
- Dimensionality reduction pipeline - Dimensionality reduction pipeline
- Plot generation and updates - Plot generation and updates
- Method/parameter change handling - Method/parameter change handling
**Interactions (`ui/callbacks/interactions.py`):** **Interactions (`ui/callbacks/interactions.py`):**
- Point click handling and detail display - Point click handling and detail display
- Reset functionality - Reset functionality
- User interaction management - User interaction management
@@ -131,15 +139,18 @@ The refactored callback system is organized by functionality:
The modular design enables comprehensive testing: The modular design enables comprehensive testing:
**Unit Tests:** **Unit Tests:**
- `tests/test_data_processing.py` - Parser and processor logic - `tests/test_data_processing.py` - Parser and processor logic
- `tests/test_reducers.py` - Dimensionality reduction algorithms - `tests/test_reducers.py` - Dimensionality reduction algorithms
- `tests/test_visualization.py` - Plot creation and color mapping - `tests/test_visualization.py` - Plot creation and color mapping
**Integration Tests:** **Integration Tests:**
- End-to-end data pipeline testing - End-to-end data pipeline testing
- Component integration verification - Component integration verification
**Key Testing Benefits:** **Key Testing Benefits:**
- Fast test execution (milliseconds vs seconds) - Fast test execution (milliseconds vs seconds)
- Isolated component testing - Isolated component testing
- Easy mocking and fixture creation - Easy mocking and fixture creation
@@ -167,6 +178,7 @@ Uses modern Python stack with uv for dependency management:
5. **Tests** - Write tests for all new functionality 5. **Tests** - Write tests for all new functionality
**Code Organization Principles:** **Code Organization Principles:**
- Single responsibility principle - Single responsibility principle
- Clear module boundaries - Clear module boundaries
- Testable, isolated components - Testable, isolated components
@@ -174,7 +186,8 @@ Uses modern Python stack with uv for dependency management:
- Error handling at appropriate layers - Error handling at appropriate layers
**Testing Requirements:** **Testing Requirements:**
- Unit tests for all core logic - Unit tests for all core logic
- Integration tests for data flow - Integration tests for data flow
- Component tests for UI elements - Component tests for UI elements
- Maintain high test coverage - Maintain high test coverage