Skip to main content

An open-source data manipulation software for experimental sciences

Project description

DataManip

Tests Version Python License

An open-source data manipulation software for experimental sciences

📖 Release Notes | 🗺️ Roadmap | 🤝 Contributing


✨ Key Features

  • 5 Column Types: Data, Calculated, Derivative, Range, Uncertainty
  • Formula Engine: NumPy functions, custom functions, unit-aware calculations
  • Plotting with Error Bars: Multiple series, X/Y uncertainties, statistics (histogram/box plot), image export
  • Workspace Management: Save/load complete workspaces, atomic file operations
  • Undo/Redo: 50-step history for column operations
  • Constants System: Numeric, calculated, and function constants
  • Preferences: Customizable settings with theme support
  • Performance: 3x faster with lazy evaluation and parallel execution
  • 308 Tests: 99%+ passing unit test coverage (8 new error bar tests)

📋 View Complete Feature List →


Getting Started

Prerequisites

  • uv package manager

Clone and Run

# Clone the repository
git clone https://github.com/brian-sinquin/DataManip.git
cd DataManip

# Install dependencies and run with uv
uv sync
uv run datamanip

📚 Documentation


🧮 Uncertainty Propagation

DataManip automatically calculates propagated uncertainties using the standard error propagation formula:

$$\delta f = \sqrt{\sum_i \left(\frac{\partial f}{\partial x_i} \cdot \delta x_i\right)^2}$$

Where:

  • $\delta f$ = combined uncertainty of result
  • $\frac{\partial f}{\partial x_i}$ = partial derivatives (calculated symbolically using SymPy)
  • $\delta x_i$ = uncertainties of input variables

🚀 Quick Examples

# See examples/ directory for complete demonstrations
examples/
├── basic_usage.py              # Simple data manipulation
├── projectile_motion.py        # Physics with units
├── uncertainty_demo.py         # Error propagation
├── derivative_example.py       # Numerical differentiation
├── error_bars_example.py       # Plotting with uncertainties ⭐ NEW
└── performance_benchmark.py    # Performance testing

🧪 Testing

# Run all tests
uv run pytest tests/unit/ -v

# Generate coverage report
uv run pytest --cov=src --cov-report=html

# Test by layer
uv run pytest tests/unit/core/ -v
uv run pytest tests/unit/studies/ -v
uv run pytest tests/unit/ui/ -v

📄 License

MIT License - See LICENSE for details


🙏 Acknowledgments

Built with ❤️ for experimental scientists worldwide.

Contributors: See assets/contributors.json


Made with PySide6 • pandas • NumPy • matplotlib • sympy • pint

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

datamanip-0.2.0.tar.gz (97.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

datamanip-0.2.0-py3-none-any.whl (110.8 kB view details)

Uploaded Python 3

File details

Details for the file datamanip-0.2.0.tar.gz.

File metadata

  • Download URL: datamanip-0.2.0.tar.gz
  • Upload date:
  • Size: 97.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for datamanip-0.2.0.tar.gz
Algorithm Hash digest
SHA256 020f5db5298a3ff2d887a0477674375c12cb13eb900abc5c4d2020cfd1288b1c
MD5 1555a7c50d2aeac8466bd804a77bfb2d
BLAKE2b-256 ac81c7c72a419d320dddc1d01a22a63bbc0efd25a25a3cc90f402547e14184c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for datamanip-0.2.0.tar.gz:

Publisher: publish.yml on brian-sinquin/DataManip

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file datamanip-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: datamanip-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 110.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for datamanip-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fdb5806229732f306b28eb17c0fb34ad7b6f19e30a73e5c2a009dd24b5a27959
MD5 3b5d83450aceeff5040fc42e118b11af
BLAKE2b-256 f3c618efdb2c4fdbcb97de14628d87c81d194a5f8857bc7f6f164f3492a1be5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for datamanip-0.2.0-py3-none-any.whl:

Publisher: publish.yml on brian-sinquin/DataManip

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page