Metadata-Version: 2.5
Name: mtpylib
Version: 0.5.10
Summary: A python based tool for Meltpool Tomography.
Project-URL: repository, https://github.com/Cian-H/MTPy
Project-URL: documentation, https://mtpylib.readthedocs.io/
Author-email: Cian Hughes <cian.hughes@dcu.ie>
License: MIT
License-File: LICENSE
Requires-Python: >=3.13
Requires-Dist: bokeh>=3.7.3
Requires-Dist: dash>=3.0.4
Requires-Dist: dask[complete,dataframe,distributed]>=2025.5.1
Requires-Dist: datashader>=0.18.1
Requires-Dist: flatbuffers>=25.2.10
Requires-Dist: fsspec>=2025.5.1
Requires-Dist: h5py>=3.13.0
Requires-Dist: holoviews>=1.20.2
Requires-Dist: loguru>=0.7.3
Requires-Dist: lz4>=4.4.4
Requires-Dist: matplotlib>=3.10.3
Requires-Dist: numba>=0.65.1
Requires-Dist: numpy<2.6.0,>=2.4
Requires-Dist: odfpy>=1.4.1
Requires-Dist: openpyxl>=3.1.5
Requires-Dist: pandas>=2.2.3
Requires-Dist: plotly>=6.1.1
Requires-Dist: psutil>=7.0.0
Requires-Dist: pyarrow>=20.0.0
Requires-Dist: read-aconity-layers>=0.5.0
Requires-Dist: scanline-annotator>=0.1.0
Requires-Dist: tables>=3.10.2
Requires-Dist: tqdm>=4.67.1
Requires-Dist: typer>=0.15.4
Description-Content-Type: text/markdown

# MTPy

## Overview

A modular, extensible, and modifiable python based tool for Meltpool Tomography. The aim of this tool is to create a core library of PBF tools that can be applied in the many areas of our research on the topic.

## Current Features

- Streaming of larger-than-RAM datasets from HDD for:
    - analysis
    - plotting
    - Data mining
-  No need for binning or other data reduction methods
-  Distributed computing, allowing for analysis to take place on compute clusters and larger distributed systems
-  Extensive type hinting and structurally subtyped composition. This design ensures that:
    - New modules can easily be added
    - Documentation can be automatically generated
    - Users will get LSP tooltips to help them develop quickly
    - Static analysis can be used to catch errors quickly
    - Modules can easily and seamlessly be implemented in more performant, statically typed languages (e.g: the [`read_aconity_layers`](https://github.com/Cian-H/read_aconity_layers) submodule here, written in rust)
- Detailed, togglable user feedback and debug logs, allowing for quick diagnosis of problems when they occur
- Test coverage for core, IO interfaces (as they are most likely parts to error) with plans to expand coverage in the future

## Planned Features

- A CLI to avoid the need for scripting when doing common analyses
- A new GUI to allow non-programming researchers to use the tool (previous GUI [`Melter`](https://github.com/Cian-H/Melter) was a good demonstrator but isn't really fit for our current purposes)
- Reimplementation of the previouslt removed interactive 3d plot feature
- GPU support to further accelerate analysis of extremely large datasets
- Better sample detection via mathematically driven raster detection

## ToDo

- [ ] implement a CLI for basic functions
- [ ] rewrite experimental GUI using flet
- [ ] implement Dask GPU support
- [ ] Add raster detection component as processor
- [ ] fix interactive 3d tomography visualizations (in-progress project)
- [ ] Carve out save/load functionality into a separate module
