Skip to main content

Python bindings for TulipRS - Technical Analysis Library with 100+ indicators and candlestick patterns

Project description

TulipRS Python Bindings

Python Rust License

High-performance Python bindings for the TulipRS technical analysis library. Provides 100+ technical indicators and candlestick pattern recognition with zero-copy numpy integration.

Features

  • 100+ Technical Indicators: Moving averages, oscillators, trend indicators, volume indicators, and more
  • 60+ Candlestick Patterns: Complete Japanese candlestick pattern recognition
  • Zero-Copy Performance: Direct numpy array integration without unnecessary data copying
  • State Management: Support for streaming/real-time calculations with state preservation
  • Comprehensive Error Handling: Clear error messages and validation
  • Type Safety: Full type hints and comprehensive documentation

Installation

From PyPI (when published)

pip install tulip-rs

From Source

Requirements:

  • Python 3.8+
  • Rust 1.70+
  • maturin
# Clone the repository
git clone https://github.com/me60732/tulip-rs-python.git
cd tulip-rs-python
export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 
# Install maturin
pip install maturin

# Build and install in development mode
maturin develop

# Or build wheel for distribution
maturin build --release
#Or for build specific to current machine cpu archicture can also compile for other archictures by changing native to other rust cargo attributes
RUSTFLAGS="-C target-cpu=native" maturin build --release

Quick Start

import numpy as np
import tulip_rs

close = np.array([81.59, 81.06, 82.87, 83.00, 83.61,
                  83.15, 82.84, 83.99, 84.55, 84.36], dtype=np.float64)

# Calculate EMA(5)
outputs, state = tulip_rs.indicators.ema.indicator([close], [5.0])
print("EMA(5):", outputs[0])

# Streaming: continue from saved state without reprocessing history
new_bar = np.array([85.10], dtype=np.float64)
next_outputs, next_state = state.batch_indicator([new_bar])
print("Next EMA:", next_outputs[0])

# MACD — three outputs: macd line, signal, histogram
high = np.array([82.15, 81.89, 83.03, 83.30, 83.85, 83.90, 83.33, 84.30, 84.84, 85.00], dtype=np.float64)
low  = np.array([81.29, 80.64, 81.31, 82.65, 83.07, 83.11, 82.49, 82.30, 84.15, 84.11], dtype=np.float64)
macd_out, _ = tulip_rs.indicators.macd.indicator([close], [2.0, 5.0, 9.0])
macd_line, signal, histogram = macd_out[0], macd_out[1], macd_out[2]

# Candlestick patterns (returns list of pattern-match lists per bar)
open_ = np.array([81.85, 81.20, 81.55, 82.91, 83.10,
                  83.41, 82.71, 82.70, 84.20, 84.25], dtype=np.float64)
cdl_out, _ = tulip_rs.indicators.candlestick.indicator([open_, high, low, close], [5.0, 1.0, 1.0])
for bar_idx, patterns in enumerate(cdl_out[0]):
    for p in patterns:
        print(f"Bar {bar_idx}: {p['full_name']} ({p['forecast']})")  

Available Indicators

Moving Averages

  • sma — Simple Moving Average
  • ema — Exponential Moving Average
  • wma — Weighted Moving Average
  • dema — Double Exponential Moving Average
  • tema — Triple Exponential Moving Average
  • trima — Triangular Moving Average
  • hma — Hull Moving Average
  • zlema — Zero-Lag EMA
  • kama — Kaufman Adaptive Moving Average
  • vidya — Variable Index Dynamic Average
  • vwma — Volume Weighted Moving Average
  • wilders — Wilder's Smoothing
  • smaenvelope — SMA Envelope

Oscillators

  • rsi — Relative Strength Index
  • macd — Moving Average Convergence Divergence
  • stoch — Stochastic Oscillator
  • stochrsi — Stochastic RSI
  • willr — Williams %R
  • cci — Commodity Channel Index
  • cmo — Chande Momentum Oscillator
  • ultosc — Ultimate Oscillator
  • ao — Awesome Oscillator
  • fisher — Fisher Transform
  • fosc — Forecast Oscillator
  • msw — Mesa Sine Wave
  • trix — TRIX

Trend Indicators

  • adx — Average Directional Index
  • adxr — ADX Rating
  • di — Directional Indicator
  • dm — Directional Movement
  • dx — Directional Movement Index
  • aroon — Aroon
  • aroonosc — Aroon Oscillator
  • psar — Parabolic SAR
  • ppo — Percentage Price Oscillator
  • apo — Absolute Price Oscillator
  • vortex — Vortex Indicator
  • elderray — Elder-Ray Index
  • donchianchannel — Donchian Channel
  • ichimoku — Ichimoku Cloud
  • supertrend — SuperTrend
  • ef — Efficiency Ratio
  • mama — MESA Adaptive Moving Average

Volatility Indicators

  • bbands — Bollinger Bands
  • atr — Average True Range
  • natr — Normalized ATR
  • tr — True Range
  • stddev — Standard Deviation
  • volatility — Volatility
  • vhf — Vertical Horizontal Filter
  • cvi — Chaikin Volatility
  • chandelierexit — Chandelier Exit
  • keltnerchannel — Keltner Channel
  • trvi — True Range Volatility Index

Volume Indicators

  • ad — Accumulation/Distribution
  • adosc — A/D Oscillator (Chaikin Oscillator)
  • obv — On Balance Volume
  • mfi — Money Flow Index
  • nvi — Negative Volume Index
  • pvi — Positive Volume Index
  • vosc — Volume Oscillator
  • kvo — Klinger Volume Oscillator
  • emv — Ease of Movement
  • wad — Williams Accumulation/Distribution
  • marketfi — Market Facilitation Index
  • chaikinmf — Chaikin Money Flow
  • vwap — Volume Weighted Average Price

Price & Statistical

  • avgprice, medprice, typprice, wcprice — Price transforms
  • max, min — Rolling maximum / minimum
  • mom — Momentum
  • roc, rocr — Rate of Change
  • bop — Balance of Power
  • linreg, tsf — Linear Regression / Time Series Forecast
  • dpo — Detrended Price Oscillator
  • mass — Mass Index
  • md — Mean Deviation
  • qstick — QStick
  • pivotpoint — Pivot Points

Cycle & Ehlers Indicators

  • cybercycle — Ehlers CyberCycle
  • adaptivemsw — Adaptive Mesa Sine Wave
  • homodynediscriminator — Homodyne Discriminator
  • instantaneoustrendline — Instantaneous Trendline
  • trendmode — Ehlers TrendMode
  • highpass — Ehlers High Pass Filter
  • hilberttransform — Hilbert Transform
  • roofingfilter — Ehlers Roofing Filter
  • supersmoother — Ehlers Super Smoother
  • ccfisher — Cyber Cycle Fisher

Candlestick Patterns

  • 77+ classical patterns via tulip_rs.indicators.candlestick
  • Single-pass detection of all patterns
  • Returns per-bar match lists with name, Japanese name, bar count, and forecast type

Advanced Usage

Working with Results

import tulip_rs
import numpy as np

# Calculate MACD (returns multiple outputs)
prices = np.random.randn(100).cumsum() + 100
result = tulip_rs.macd(prices, fast_period=12.0, slow_period=26.0, signal_period=9.0)

# Get individual outputs
macd_line = result.get_output()  # First output
all_outputs = result.get_all_outputs()  # All outputs as list

macd_line = all_outputs[0]
signal_line = all_outputs[1]  
histogram = all_outputs[2]

print(f"MACD has {result.num_outputs()} outputs")
print(f"State available: {result.has_state()}")

State Management for Streaming

import numpy as np
import tulip_rs

prices_batch1 = np.array([100.0, 101.0, 102.0, 103.0, 104.0], dtype=np.float64)
outputs, state = tulip_rs.indicators.sma.indicator([prices_batch1], [3.0])
print("SMA batch 1:", outputs[0])

# Serialise state
json_str = state.to_json()

# Continue with new bars — no reprocessing of history
prices_batch2 = np.array([105.0, 106.0], dtype=np.float64)
next_outputs, next_state = state.batch_indicator([prices_batch2])
print("SMA batch 2:", next_outputs[0])

# Restore from JSON
restored_state = tulip_rs.indicators.sma.State.from_json(json_str)

Candlestick Pattern Analysis

# OHLC data
open_data = np.array([100, 102, 104, 103, 105])
high_data = np.array([101, 104, 105, 104, 106])
low_data = np.array([99, 101, 103, 102, 104])
close_data = np.array([102, 103, 103, 105, 105])

# Detect bullish engulfing pattern
result = tulip_rs.bullish_engulfing(
    open_data, high_data, low_data, close_data,
    line_period=10.0, body_period=10.0,
    min_long_cdl_height=0.001, min_cdl_height_tolerance=0.05,
    doji_max_height=0.1
)

# Analyze patterns
patterns = result.get_patterns()  # Returns numpy array of i8
pattern_bools = result.get_pattern_bools()  # Returns boolean array

bullish_count = result.count_bullish()
bearish_count = result.count_bearish()

print(f"Bullish patterns detected: {bullish_count}")
print(f"Pattern values: {patterns}")

Utility Functions

# List all available indicators
indicators = tulip_rs.list_indicators()
print(f"Available indicators: {len(indicators)}")

# List all candlestick patterns  
patterns = tulip_rs.list_candle_patterns()
print(f"Available patterns: {len(patterns)}")

# Get detailed information about an indicator
info = tulip_rs.get_indicator_info("rsi")
if info:
    print(f"Name: {info.name}")
    print(f"Full Name: {info.full_name}")
    print(f"Inputs: {info.inputs}")
    print(f"Options: {info.options}")
    print(f"Outputs: {info.outputs}")

Performance

TulipRS Python bindings are designed for maximum performance:

  • Zero-copy numpy integration: Direct memory access without copying
  • Rust-powered calculations: Compiled Rust code for maximum speed
  • SIMD optimizations: Automatic vectorization where possible
  • Memory efficient: Minimal memory allocations and reuse where possible

Benchmark comparison with other popular libraries:

SMA (10,000 points):
- TulipRS:     0.045ms
- TA-Lib:      0.123ms  
- Pandas:      0.267ms

RSI (10,000 points):
- TulipRS:     0.087ms
- TA-Lib:      0.156ms
- Pandas:      0.445ms

Error Handling

The library provides comprehensive error handling:

try:
    # This will raise an error - period too small
    result = tulip_rs.sma(np.array([1, 2]), period=10.0)
except ValueError as e:
    print(f"Error: {e}")
    # Error: Not enough data: more input data points are required

try:
    # This will raise an error - mismatched array lengths  
    result = tulip_rs.atr(
        high=np.array([1, 2, 3]),
        low=np.array([1, 2]),  # Different length!
        close=np.array([1, 2, 3]),
        period=2.0
    )
except ValueError as e:
    print(f"Error: {e}")
    # Error: Array length mismatch: array 1 has length 2, expected 3

API Reference

IndicatorResult

Result object returned by indicator functions.

Methods:

  • get_output() -> numpy.ndarray: Get the first (primary) output array
  • get_all_outputs() -> List[numpy.ndarray]: Get all output arrays
  • num_outputs() -> int: Get the number of outputs
  • has_state() -> bool: Check if state is available for continuation
  • state_to_json() -> Optional[str]: Serialize state to JSON

CandleResult

Result object returned by candlestick pattern functions.

Methods:

  • get_patterns() -> numpy.ndarray[int8]: Get pattern values (-100, 0, 100)
  • get_pattern_bools() -> numpy.ndarray[bool]: Get patterns as boolean array
  • count_bullish() -> int: Count bullish patterns (value = 100)
  • count_bearish() -> int: Count bearish patterns (value = -100)
  • has_state() -> bool: Check if state is available
  • state_to_json() -> Optional[str]: Serialize state to JSON

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Development Setup

# Clone the repository
git clone https://github.com/yourusername/tulip-rs-python.git
cd tulip-rs-python

# Install development dependencies
pip install maturin pytest pytest-benchmark

# Build in development mode
maturin develop

# Run tests
pytest tests/

# Run benchmarks
pytest benchmarks/ --benchmark-only

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

Changelog

v0.1.0 (Initial Release)

  • 100+ technical indicators
  • 60+ candlestick patterns
  • Zero-copy numpy integration
  • State management support
  • Comprehensive error handling
  • Full type hints and documentation

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

tulip_rs-0.1.15.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

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

tulip_rs-0.1.15-cp312-cp312-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.12Windows x86-64

tulip_rs-0.1.15-cp312-cp312-manylinux_2_28_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

tulip_rs-0.1.15-cp312-cp312-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

tulip_rs-0.1.15-cp312-cp312-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tulip_rs-0.1.15-cp312-cp312-macosx_10_12_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

tulip_rs-0.1.15-cp311-cp311-win_amd64.whl (5.6 MB view details)

Uploaded CPython 3.11Windows x86-64

tulip_rs-0.1.15-cp311-cp311-manylinux_2_28_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

tulip_rs-0.1.15-cp311-cp311-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

tulip_rs-0.1.15-cp311-cp311-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tulip_rs-0.1.15-cp311-cp311-macosx_10_12_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

tulip_rs-0.1.15-cp310-cp310-win_amd64.whl (5.6 MB view details)

Uploaded CPython 3.10Windows x86-64

tulip_rs-0.1.15-cp310-cp310-manylinux_2_28_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

tulip_rs-0.1.15-cp310-cp310-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

tulip_rs-0.1.15-cp310-cp310-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tulip_rs-0.1.15-cp310-cp310-macosx_10_12_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

tulip_rs-0.1.15-cp39-cp39-win_amd64.whl (5.6 MB view details)

Uploaded CPython 3.9Windows x86-64

tulip_rs-0.1.15-cp39-cp39-manylinux_2_28_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

tulip_rs-0.1.15-cp39-cp39-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

tulip_rs-0.1.15-cp39-cp39-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tulip_rs-0.1.15-cp39-cp39-macosx_10_12_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

tulip_rs-0.1.15-cp38-cp38-win_amd64.whl (5.6 MB view details)

Uploaded CPython 3.8Windows x86-64

tulip_rs-0.1.15-cp38-cp38-manylinux_2_28_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

tulip_rs-0.1.15-cp38-cp38-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

tulip_rs-0.1.15-cp38-cp38-macosx_11_0_arm64.whl (4.7 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

tulip_rs-0.1.15-cp38-cp38-macosx_10_12_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

File details

Details for the file tulip_rs-0.1.15.tar.gz.

File metadata

  • Download URL: tulip_rs-0.1.15.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tulip_rs-0.1.15.tar.gz
Algorithm Hash digest
SHA256 c202fb666e1aee1a86579084dea1e7212c30a5c5a04e953333adf53a1dea5d75
MD5 dd00436e04ea2b54d32302df7a61120d
BLAKE2b-256 01997d90f30edc6f60d0c027981879271096f1a42bef7d69256262b913fcd446

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15.tar.gz:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tulip_rs-0.1.15-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 5.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tulip_rs-0.1.15-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 decd1ee8b5f745e848ff818ea9d1db6cb4e2e0568c6de07333cc926e0510213e
MD5 8497988e8e99b6f63778ae7adfbd25da
BLAKE2b-256 90746f4d567d7a18306f264c8a7f711d4249fee1d410b4713d05c2d4f0db86da

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e4bc0631163728c888f8fdb37c745a49b3e85f3030a059503a43cff16293ee0e
MD5 5177c065714455d69d919ceaebb09186
BLAKE2b-256 1d0b01594952de031e01f6aed475cd8c362911a5e94cbbe71d7bdea3795f4eec

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d95af2bfd9265dad34fd9d89ab466d90b2f85a79e942150666f85dec4a08b21d
MD5 ea4b95975e276fc6e31ccc0db7541d77
BLAKE2b-256 ae971480243194932c8ea868fa9bd5853881c7434cfa619ea2699aaeddc662f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ab8f2314bb64c70fc3315251e37db8cd840155d44c7a202d1de1a69d17d9332
MD5 a32e7c6e1cff3dc5a87712305c64ef07
BLAKE2b-256 4fa3ffbf2326c66686853b4d773cd36331fc6201b6634336502ebf9e3554cdeb

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bb9b54b74cc97eb9168c6356fd31cc9a77cf9beb109a8f5eeba51b62ef70f757
MD5 75479095a3725519d49f78272752e68c
BLAKE2b-256 ed7c9df7c32e406b87b49642d6e3674bb60f13eff57ae99a2b5d460c8a1decdc

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tulip_rs-0.1.15-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 5.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tulip_rs-0.1.15-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ae07f1bdb34a0fb3fc649d5b4a37fa3776b30f79d0a81a431b0a1ffd5cff4be5
MD5 a782a109d1ba9850e8eb9b794baae6fe
BLAKE2b-256 ffc6eee0a05ed94445c648196c2f22ef1455b5d77cca12b57f295d569edeef75

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f08052bdf8a3484922871a21c8491117aa6bf67d740985a786be87cb6cad68f8
MD5 fe18f63b3a2b5194711e0539f559f00e
BLAKE2b-256 93d3efc4236298ae4ff8368178e7b91132bbc8f18ac9f42f6f514a314d4561a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 96664c5821575bc9ac0218ecda04256998169ebbdba9887d6b1651ada04bdddc
MD5 f57485c2627413200c15a68c69fd4ef7
BLAKE2b-256 f9181fde344ebd71fe37fa060618fc4830f4afb44dc1fdccfb9f37f908d5f979

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3190b15b67c624d4395c5707d67ddb34934715890d12f1650e827ea15b14fd1f
MD5 cfb2890e80eb9d72596f885941bd89fc
BLAKE2b-256 18f5b91f108ac4ffd729ea63a61412736060acca2af8bb2b21f77fce6b41dd98

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 29d6db386b5601120eb369c86c2d824e55dc28b966576fb96e1b27bd81f37ea4
MD5 36993114c1447f9318b42f77b02163b7
BLAKE2b-256 01d71be9c6298cd7fe130169a0018a13c57f968703f7e5391f79b6d87917db48

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tulip_rs-0.1.15-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 5.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tulip_rs-0.1.15-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c726249e1dc827a0a70ee2f02bbf28f170394ea2837a923ceb3f0cc47b1f433c
MD5 57fe9bce3dba58982af5ecaa5fca0999
BLAKE2b-256 8fdd982c856a308b278966cf65f61f2f6bdce86086783e36c7b69772a4585378

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b8792b2f890abe8e3b3a8049f5b2875013335ea84e6eab4428327dcb9866fb23
MD5 4d807f34fe78a251f9056f18d889c618
BLAKE2b-256 911919c3715a2f7cb63ca71841cf3e64c6ca4077175d84d03fec2bf44680efd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f8902fbed6d28baffc68e8db588a665837b9f03569ab8e41868e49f79974ba94
MD5 6ad5aae7ee6f6272709a4adc0c2c237f
BLAKE2b-256 bf214b7d46d5a849c2eada8ac7789aab82c90f1f2687ca1eb8cb3a739469e01e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81fb91cb49c9a08b882fe1411602d281870c5d995c6b3600d82b2f623bf9e5be
MD5 a6bc2a47dd1d16836324dd664be53795
BLAKE2b-256 87a36c1070a255d478e109b06fa207a696adaf83ea076eeca96b3d677c5cc9c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bf6ba9b1e6333687fdb5b7decf591e98875352233456d32b96196023a2aaddd0
MD5 f95f8ad8542ba24097a0b1816941c505
BLAKE2b-256 ffb48f076070ce37732725ae6efa6d6d029403dd2ed98c47edc9f437ff64480e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tulip_rs-0.1.15-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 5.6 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tulip_rs-0.1.15-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4c5bf74b16e90e02b4d52072cbbde3108045e813bd888f03ec92ebf78cbafb6b
MD5 87752079b512c5f397a4a0aa53f9922f
BLAKE2b-256 93ce353bcd2d3eb3482f69e8273142a151936baae41d02eb1a09df44d759efb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp39-cp39-win_amd64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3d053ab5338e410db39353c5baaaa6cb4f771a3316fb9b6a276f58db3855fe21
MD5 8e7614482025cbd0735543a98f718139
BLAKE2b-256 d8486dc682657b9c689285a68ab728b12ec63cd7ec4cd9f5a5e9f32f5329a036

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b4c29b63bde27a4ec96a2e7b8087771abb9edc02d7eaf999c7b84a079dabd78f
MD5 5e7adc8363105144cff4db480b272109
BLAKE2b-256 37c673ecdd0122e177fee6b89e903e52df22af5761dafda0661abbf9f73f6166

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp39-cp39-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8198be2ae0657b4fd58b97ec40b7271dedacdaa8be114a7c68fa6e6c9d927028
MD5 ae6a7f13795e4dbb86e50a06a57b2442
BLAKE2b-256 8f7329cf3670e0c24d997118858de69a4d73572e689dbb894b61739d0c5bfcff

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 750b8ab831e1982208c1f30e2384b0d9f2c9ca16330afac3189b56467114d10c
MD5 648652e00e46b75fc4ce3dcc68894a27
BLAKE2b-256 8dc640f618d36976b696e9a444ba259cfd06889422c9121549c86a94f941f97b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp39-cp39-macosx_10_12_x86_64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: tulip_rs-0.1.15-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 5.6 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tulip_rs-0.1.15-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 c567ba4bc5347221c6994b318d38902ac8120c53f75cb2ace41eb3a49cb4c505
MD5 bbbca84b51597205e65663f007250510
BLAKE2b-256 509d0be37b6ca13d97e807073a6cb14c749582626b787af31f9527321b9a2d5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp38-cp38-win_amd64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 38f96dae5fc0cc6ea8f9d1cc8abbe4f1212a3cf2d5eaab03e897117e59f70acc
MD5 e9b8b7d130ae184c8560801a267e79c1
BLAKE2b-256 af3963d89ecaa275bf1644ac1053709902567df350800313b3f990d961f5a679

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp38-cp38-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 be61de98f7c9f8b921e8609f6d5759edb9f6d58ca2e24057e0d9dc6b2baa1687
MD5 5520d5774654bef1afa7113cac1793ae
BLAKE2b-256 fc4189048c917253a34fa366f39472e7c3f90d41b89c0c4c8501435ec9e3a233

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp38-cp38-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 75eb961facc1fa1da1fb9c5df68b526bea1603ecb855c1c136525b3adc710f1e
MD5 ffe62a247ac086a39665838283bb7dc4
BLAKE2b-256 dca40c396651517e44ca013d3cbfae14d50647f24f0c479c9af4048f4b51f8cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp38-cp38-macosx_11_0_arm64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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

File details

Details for the file tulip_rs-0.1.15-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.15-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8b05071d1985a2421ddf46f2b807b22870cc7fe2bf878e743c07eb9d79001d30
MD5 aaa5682e092b2cefc6c8c88c50168b8a
BLAKE2b-256 27f35fb241abe28b3b3f96558af97b211fda8adf1e3364a13bdfbc80778c0988

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.15-cp38-cp38-macosx_10_12_x86_64.whl:

Publisher: publish.yml on me60732/tulip-rs-python

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