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

# Sample price data
prices = np.array([100.0, 101.5, 102.0, 101.0, 103.5, 104.0, 102.5])

# Calculate Simple Moving Average
sma_result = tulip_rs.sma(prices, period=3.0)
sma_values = sma_result.get_output()
print(f"SMA values: {sma_values}")

# Calculate RSI
rsi_result = tulip_rs.rsi(prices, period=14.0)
rsi_values = rsi_result.get_output()
print(f"RSI values: {rsi_values}")

# OHLC data for candlestick patterns
open_prices = np.array([100.0, 101.0, 102.0, 101.5, 103.0])
high_prices = np.array([101.0, 103.0, 103.5, 102.0, 104.0])
low_prices = np.array([99.5, 100.5, 101.5, 100.0, 102.5])
close_prices = np.array([101.0, 102.5, 101.5, 103.0, 103.5])

# Detect hammer patterns
hammer_result = tulip_rs.hammer(
    open_prices, high_prices, low_prices, close_prices,
    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
)

patterns = hammer_result.get_patterns()
print(f"Hammer patterns: {patterns}")

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 Exponential Moving Average
  • kama - Kaufman Adaptive Moving Average
  • vidya - Variable Index Dynamic Average
  • vwma - Volume Weighted Moving Average
  • wilders - Wilder's Smoothing

Oscillators

  • rsi - Relative Strength Index
  • 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

Trend Indicators

  • macd - Moving Average Convergence Divergence
  • ppo - Percentage Price Oscillator
  • apo - Absolute Price Oscillator
  • adx - Average Directional Movement Index
  • adxr - Average Directional Movement Index Rating
  • dm - Directional Movement
  • di - Directional Indicator
  • dx - Directional Movement Index
  • aroon - Aroon
  • aroonosc - Aroon Oscillator
  • psar - Parabolic SAR

Volatility Indicators

  • bbands - Bollinger Bands
  • atr - Average True Range
  • natr - Normalized Average True Range
  • tr - True Range
  • stddev - Standard Deviation
  • volatility - Volatility
  • vhf - Vertical Horizontal Filter

Volume Indicators

  • ad - Accumulation/Distribution Line
  • adosc - Accumulation/Distribution 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

Price/Statistical Indicators

  • avgprice - Average Price
  • medprice - Median Price
  • typprice - Typical Price
  • wcprice - Weighted Close Price
  • max - Highest Value Over Period
  • min - Lowest Value Over Period
  • mom - Momentum
  • roc - Rate of Change
  • rocr - Rate of Change Ratio
  • bop - Balance of Power
  • linreg - Linear Regression
  • tsf - Time Series Forecast
  • trix - TRIX
  • dpo - Detrended Price Oscillator
  • And many more...

Candlestick Patterns

One Bar Patterns

  • hammer - Hammer
  • hanging_man - Hanging Man
  • bullish_belt_hold - Bullish Belt Hold
  • bearish_belt_hold - Bearish Belt Hold
  • northern_doji - Northern Doji
  • southern_doji - Southern Doji
  • gapping_up_doji - Gapping Up Doji
  • gapping_down_doji - Gapping Down Doji
  • one_candle_shooting_star - Shooting Star
  • takuri_line - Takuri Line

Two Bar Patterns

  • bullish_engulfing - Bullish Engulfing
  • bearish_engulfing - Bearish Engulfing
  • dark_cloud_cover - Dark Cloud Cover
  • piercing - Piercing Pattern
  • bullish_harami - Bullish Harami
  • bearish_harami - Bearish Harami
  • inverted_hammer - Inverted Hammer

Three Bar Patterns

  • three_white_soldiers - Three White Soldiers
  • three_black_crows - Three Black Crows
  • morning_star - Morning Star
  • evening_star - Evening Star
  • three_inside_up - Three Inside Up
  • three_inside_down - Three Inside Down
  • advance_block - Advance Block

Four Bar Patterns

  • concealing_baby_swallow - Concealing Baby Swallow
  • bullish_three_line_strike - Bullish Three Line Strike
  • bearish_three_line_strike - Bearish Three Line Strike

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

# Initial calculation
prices_batch1 = np.array([100, 101, 102, 103, 104])
result1 = tulip_rs.sma(prices_batch1, period=3.0)
sma1 = result1.get_output()

# Save state for continuation
state_json = result1.state_to_json()

# Continue with new data (when supported)
# This feature enables real-time streaming calculations

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.8.tar.gz (121.3 kB 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.8-cp312-cp312-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.12Windows x86-64

tulip_rs-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

tulip_rs-0.1.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

tulip_rs-0.1.8-cp312-cp312-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tulip_rs-0.1.8-cp312-cp312-macosx_10_12_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

tulip_rs-0.1.8-cp311-cp311-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.11Windows x86-64

tulip_rs-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

tulip_rs-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

tulip_rs-0.1.8-cp311-cp311-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tulip_rs-0.1.8-cp311-cp311-macosx_10_12_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

tulip_rs-0.1.8-cp310-cp310-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.10Windows x86-64

tulip_rs-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

tulip_rs-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

tulip_rs-0.1.8-cp310-cp310-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tulip_rs-0.1.8-cp310-cp310-macosx_10_12_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

tulip_rs-0.1.8-cp39-cp39-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.9Windows x86-64

tulip_rs-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

tulip_rs-0.1.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

tulip_rs-0.1.8-cp39-cp39-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tulip_rs-0.1.8-cp39-cp39-macosx_10_12_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

tulip_rs-0.1.8-cp38-cp38-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.8Windows x86-64

tulip_rs-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

tulip_rs-0.1.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

tulip_rs-0.1.8-cp38-cp38-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

tulip_rs-0.1.8-cp38-cp38-macosx_10_12_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: tulip_rs-0.1.8.tar.gz
  • Upload date:
  • Size: 121.3 kB
  • 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.8.tar.gz
Algorithm Hash digest
SHA256 5411d6fab441c89661d31f5667c80a9bef2d5ac94a922e2bf19a1e5beea64fa9
MD5 074ddac27f0fe18605fc34d289d96119
BLAKE2b-256 afd48040af7e20c399b87c96514640d5e033afff5233e8d5d34a40a9909e8561

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8.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.8-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: tulip_rs-0.1.8-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3205d6707bd1c5e3a6ca9b5b7aa28e20f60d27497f40980cd5aa73884fee034d
MD5 983472bf33f6a8317ecd4066c9aea8cf
BLAKE2b-256 9518b20caa15b78b4087229f85210622dadb3313d6258d3f2328a806504049f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4cafce1431de2f30fc01595397ecefd0da29fe3632c47a44116376684fdd2284
MD5 d11d3370b7fb007272fd5312a1dc3b53
BLAKE2b-256 fdb69f757c179fa1e6eb11987b96447f43ea03eee1a1f8946cc7678f5b748412

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_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.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5a048045947b10de52389057f665dfd89d8408baafff703569e2c7ce23ce50b9
MD5 2f72eadd583ee9a7eda25db3d87207f0
BLAKE2b-256 c1469f0e5ec46bb60484e1fdba2ffd184b0311403c080f04414ceefae4e20955

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_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.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 957abea23f0b60339d6f849b643d5e1fa5806e9fcfe58c305bfc190a53e6ce34
MD5 8a083909756ce6322598848f490afded
BLAKE2b-256 b81e8cc8e897256cad2f96dd78e0037ea145a543d838d17df7d3f7f80dd079f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 86f94b05d315ce94bf98cab3010d65745bb2db466ae07e7ec34b37d22e8206fb
MD5 ede8ca6b07562c7a7858e19dbad9ed89
BLAKE2b-256 d4787802b8435229d863a441cb0083f617dbf419b86a68c5269806127e2e3637

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tulip_rs-0.1.8-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0f48a8b08de658d436524f107d0c6c2cc92d4ec06151c21deffd836e60f00cc0
MD5 219d5b56c0fe94ea0224d094fb97b0fc
BLAKE2b-256 2045139404f1405a940827ef683bef4a1367d39592edc0ccf7823397e7b2f87d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea23608a346d1849cf202f71938ec27e81eea4cb3fd4320904dcefaa49ca8bcd
MD5 755d7c2e1927927ba7c6df80ef22e9c9
BLAKE2b-256 feb9f4e35b97b07d71dbae15bb3b1d0fedc58d0e5ac8bf9d33cf5afae882d364

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_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.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 010b3e2c18e113c38353bcaece855e16e3eb867e2ce523a1b457d49df8a3eb15
MD5 8e8ae36b9fe9728792b849b83260d24d
BLAKE2b-256 a3df3aa50f5ec67941055b4344d965a9edba3067542bb8090679f10418f78759

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_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.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 355a59b53df212195e123a4b18252a6bb4db6bfbd08be419c50db89ccca18bdf
MD5 c849287fbd64ac9e52d6ee175b3d8ab0
BLAKE2b-256 cd0a6e4002aaf9c74a46112f4aa5bc47d972627f2824e49f114cb2e9b860505c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f21f58b099658e2b05a0d3f44225460d7011f81cd155448f03d9a6957e4ba45e
MD5 c7c985047e4eab88c640331b6627531d
BLAKE2b-256 b8934994b8cac4f2f93197493f05adcc295bbc16f95eb68876fbd1ee24d3e1f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tulip_rs-0.1.8-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 10e86135da5fd8e3436d641588caa7c7f741201db29ae53bf1a08f11f492ab59
MD5 bd216dad4f476d0f3b46a598f2803a44
BLAKE2b-256 54f2ef33222f7d4e9d1eec391e122eaa6c0e2467eea2fec179afda8309363d80

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 01be24b5a1805e618b0ac31c241926995ab149db89e5c3284eedf9f82093a2dc
MD5 769ef745875e765b99176924ccd3cb52
BLAKE2b-256 17f7fb925cf7b19f60c56ebda4771ab35f4d2d5a38d9b112462ceda9ce21730c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_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.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4cefebc5a0a8d0fb6095f2398594a67a74941ba62de3e824b355a59227b53c5f
MD5 0fc6cad292ea61b91202c43b9d07fe3c
BLAKE2b-256 07a730714747472641c473ba511f768b0b8567afa94a378fade61af69611c002

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_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.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d7d9415034201e4e5563ec5c0213a56796714d73d9a635773c640578611cdc41
MD5 17364e1779f93e05ec4b83edde25022a
BLAKE2b-256 43afae5801dfe1f32ba6c217b18052147c9c8bab59fd648120f6289c71bef6f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 db4dfce63538e682550a6b761b2c4e8cf59552af7f03d3f772452bb339783026
MD5 82bc12e48d90b9a34cc37bfdf00b6f00
BLAKE2b-256 e0238139947547b56959c47232cfe479d172b6cbd73a6ea4dcdb7ebf3b7e4a12

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tulip_rs-0.1.8-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 224f6d8a4e82682345641d3ffa1e7edb4591995266ab3b17779be420dc9fb324
MD5 cfe8f752ac0a079ad4e9b3314dc5fbe3
BLAKE2b-256 7ffeab03509fb5c2647350ede4188712cf0fc91129e88265de25cf45a0f6d044

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f12f09a48024578652e5a6b69aba38785f1850e818ca0eced57fa9594ce75a1
MD5 45001fddbd59f1e40c556d9660f601e8
BLAKE2b-256 82f8f84ac0dd77b161ca7825eee32d7ad189cabdf5b949e629d7872794f3f10b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_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.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b5270ca4c70564db710d659f1d5e285d137ff4898389c6032c5904fe157b92d9
MD5 1f1139cfae26fbe04407c6ac96ffea91
BLAKE2b-256 b410cad63bb39ed4c546d9fd92cf55587f30c56238f94b5167ff7caa77f46c74

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_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.8-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 79f9980d2ff498c99393a90b93c545a3ee9daf4d109569a296154a8f9f2f8dbf
MD5 87a9ad7405cf5b03f97f2212c3c1dfaf
BLAKE2b-256 d911aca7264a03517a8236b0e0506a08f794b60287906e3b4df4b4d33d4b99ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f0a6029955d4e8b4866a991d20c6b1946e08b14e2a8fb4c111925ef278266fd1
MD5 d4051ace9afebef4e51e3e802fbb389c
BLAKE2b-256 e2839492a4f1216528feec2725d97a35e4506bae9e2f52c9f88a0b0edc2173cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: tulip_rs-0.1.8-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.8-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0bf3342243208d06593e62aac2445b015ee6e9a5850b8971b74afa64de5a1914
MD5 059eb8e2b5f9023c6aad408bac4abe09
BLAKE2b-256 1b650560ab0c145cfd35e01f4d889daaa0574e95ffa16ac46f4bc8fd805b975b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8c5de11b2c2377d91ce63031fbb5eb9b86f243f613743fd374e9c0df5afa1a9e
MD5 ba1f434adfe49a4dd0bb3941d68f5aa3
BLAKE2b-256 bef8e201a45cd42d969995fbb1b0852a77a209ee9dcfb33249abdef0690ecc69

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_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.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b8715d5de0b6db64e5cdb000fb06274a54e9f6014ce119400717b43e12c6fe7b
MD5 ce565eada305baf8f8417b9c707b6ab6
BLAKE2b-256 35666a91eb96c48ae8e9b9a1e35868180f1091c2ba7f2d6850be60f982cb4928

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_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.8-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db86899120b58a475c82d4b9752bd00e32e7657bd16a9628583fa0ff2ae4e16d
MD5 1d863e1f4c15c3e96f70d739f58760df
BLAKE2b-256 24d53db606fd58b44c7583a650f37cffaef861302492ba0b687bc3844a007b5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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.8-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.8-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b1e946c69fc962fc92f4902122a6de07921bd017c6c63f912ab85871a952e454
MD5 60f00f6f0e8c88198f9c924dbb976853
BLAKE2b-256 d824aa30a87ac842ad4e4263b72ecaeae5d31a691a79e4a2dec0941686d48c6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.8-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