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.1.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.1-cp312-cp312-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.12Windows x86-64

tulip_rs-0.1.1-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.1-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.1-cp312-cp312-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tulip_rs-0.1.1-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.1-cp311-cp311-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.11Windows x86-64

tulip_rs-0.1.1-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.1-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.1-cp311-cp311-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tulip_rs-0.1.1-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.1-cp310-cp310-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.10Windows x86-64

tulip_rs-0.1.1-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.1-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.1-cp310-cp310-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tulip_rs-0.1.1-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.1-cp39-cp39-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.9Windows x86-64

tulip_rs-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

tulip_rs-0.1.1-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.1-cp39-cp39-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tulip_rs-0.1.1-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.1-cp38-cp38-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.8Windows x86-64

tulip_rs-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

tulip_rs-0.1.1-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.1-cp38-cp38-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

tulip_rs-0.1.1-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.1.tar.gz.

File metadata

  • Download URL: tulip_rs-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 3a0c9323733cc7cc57e98bb326b554ca4aecca5afd518d6b07f38112b3e93872
MD5 a0ede879dfba58d14f9d40447f5dd071
BLAKE2b-256 0f7253c8a2f50a2b0bfa34d2ea137e79d7ee0c26a1676d98fa6b6f82c9978da2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tulip_rs-0.1.1-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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f8b4a8f21fe28e2da3b163f90df7a6470f5dc1348ed93502fe6b732b7656662b
MD5 f09b3795a88a060641e5bbb8d9bd30b6
BLAKE2b-256 eea23ada530acb31be4bc4876d833a3bba522ecb8b348cafc378cda73982eb49

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7738f86bc4fde49af34a49ea48eced93f05b8e3bedb000eb5202dbe565e32c97
MD5 6fabdf27c512f925dc3e4402295118d2
BLAKE2b-256 caf2eea9d6ae0103a6099f5ce6c5e50fbccdfeef60ec2a3e59a8b1c068eb0765

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.1-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.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bf4a442565937303e6d9d89fb357ccaf0d2ac3ee9d78a5ddb29efe18b77e6e2d
MD5 c3e00a833d7e988a1ca26137bbbf3e6c
BLAKE2b-256 5ba007978e7f83cafc5e96a3479f7fe3d828b7394a4d80e49cf68996b9e2c2b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.1-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.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4cf94dde3170f14a17a2a28701db3548b64bf4652e4d80faffe2c438e61399e6
MD5 0776da35ab8055d34a7fb70cdceecfdb
BLAKE2b-256 b5ffc4f2af351dcb273f19a44196c286bf12256942ae94dcc00cba4acba5b34c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4f4434b47bb0c56f49ca03bf53acd89e04a42a937f71c866e03be60454ba42c6
MD5 06605962fd2f94533dd505a6a60e78de
BLAKE2b-256 7ba7208ace683ed43b92295226e4a6a533faa2a2a975e07a4ceb9caf1f9493cf

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tulip_rs-0.1.1-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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8038e6188a6317435e0b0477fbcc9387f5d4a0fbce1c41f16276ec4441c80d92
MD5 db1974a3adc0b383856e65a86c5ed3ac
BLAKE2b-256 3f29375f62eba81f2f0cc988900f02ba998666a52790b3f12e932138d208aaf8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f21dc4c667adb237088a2ebca912c85904227de649435899587eacfcb093e74e
MD5 2459c2b87d313e133bc04a797cd39a51
BLAKE2b-256 27a28bf105717ffbc00538721b9b8dac1eca47906297c5caf45c0b9ac9947ed7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.1-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.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1b0594c1b739ccfb89e83ba4ebfaa38ac50c7fef2440313b1aed531e3c9bc367
MD5 14939671d368717a2920d884178b6d4a
BLAKE2b-256 96cb5b3ebaab9dd2eaa33811a0e50aa0a135b5332d17454d1227c292884a890d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.1-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.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dfa78ae11fcbd948d95014ac6199322db73ae0f1adba5476d7afd958f2ca5ee7
MD5 8863de76f632f79877bd7149502079a5
BLAKE2b-256 8f6afde3d47a7b9edcb96dfc8d453b2cf0c7f89a5b278fb9c64e674d8b508ec4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e743b7b744d46d426dfe13abe652e78cb4489e657b4cda660e924e465ce7dbd8
MD5 7933d6225cd70dad33deab466595f60f
BLAKE2b-256 654689914ec528de9d5932a9135fe1dcaba3a22787f3175cf477a33a67060634

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tulip_rs-0.1.1-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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 640e48d2251bd852592bbc7ae7baf15bc281f32df0d4423dc75be333ebd4ea3b
MD5 4009a06e943de9477a7af9fe5f606bc9
BLAKE2b-256 28b4b535015dd5a6de6c617312d676083b451746a7d66c8ef8d8f8ea55d88359

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ddfcc4b339683f8076390aaadd2cda9721299b293574ffd0cf69f3e04eac046b
MD5 50c0d928cee7bd69a9d974b7693c82b0
BLAKE2b-256 9c9fac6c4d4a2518b63b1db22767e717be909c4a15c9be9cbf00a2571f3ec5d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.1-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.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0657cfaaffe2f66dddb1c419df134f6cf21db40af00ece77404c49d4e32a3c57
MD5 389558f171f92f6acf802f031bcc222d
BLAKE2b-256 8b4381d64a9423c5e4b6a99c7f57956bc19be107b3d8a29c0ec4ae1506eaa1d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.1-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.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd9c8fcf77ef8e6522e559331f8912ca6a1682a20757cd4997984a850bdbd3b1
MD5 17488496298f2efdde885e0b02b17080
BLAKE2b-256 5f2a9000143d0d3828bd3c560cc7ca33940bca27441ff51695de377bd4dfdaff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 406a63179dec2fba0d7b7eabd3d80c9b3d370b363ecdf474d1eee4f767ad3f6a
MD5 af0d99275b70f372d2e8181349c2cfea
BLAKE2b-256 ecd73700af88aedffbff30c9b37f130bf850bda815ccd74087d2b8ed3506a3e7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tulip_rs-0.1.1-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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1d3b404d68240bfb65497e92439799cd4e3df8359523229c0540d5db11f5271c
MD5 12645ff231a65a66e6381c90f0c16ab4
BLAKE2b-256 5046e1f83f595411d9580d03050f55bbe005cbee885994d1c46ccb1409ddb09f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1e730a9a57e01fd24297bd88c9ec41b8c4be3b782f80f441f0491ab0c3708c7d
MD5 018c322ad3e6c76952b395d7add9bdb1
BLAKE2b-256 1769b8c33b301c1da2095f2ec9154747c1408073a56b5c2957dcee7cbf98e059

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.1-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.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ff2ff3aec8286b5aa07099cd56823e985baaf45d6cfb95b5e381c80c78b390e6
MD5 b0ef5a8a45afbbe246e725f529f943c5
BLAKE2b-256 260bd5b70f9ccefe3e71b53f4408b8171d3607a74d80ba2056cd3b56b33e744a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.1-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.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 80f543bc18a67bbbeb83489a7cf9e8e7327285d367fa1ada2ac88a25d1196a62
MD5 a136ca5e2fe77aa7db4abde2c8a26272
BLAKE2b-256 f6e140417de923cf859716b433a6fb6bcd975df52f0447d49f9a54bdf7217e02

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ff6563828991744fe3394caff79ced469e94d9c2221a438eece875aebc5efa43
MD5 039eb169bb9a334f9695577a06a77d82
BLAKE2b-256 4a1370524c6d1484b1769393c2b06ad8c49f56e60d9366b5681557acd6ff7e61

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tulip_rs-0.1.1-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.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 2846cbc9d5b418b731200c6cd2adf0579dc9d886bc67fd4535e69bd6426b595f
MD5 00703b222e1b798ee1d13e024ecab463
BLAKE2b-256 5d76866bcb607dc1d26264366fdece2adcea12c0b7aa1ce2a81d9f9bfbcf24db

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c1fada67c9a738c400bc845c81f8f5aa0d57bee69ec3b682ddb14f21dbbc3cc8
MD5 9292182808105915c486dec85a6b54a3
BLAKE2b-256 56b9a4bb32a5186b585116ea656a3ace94ccca2a34bf9b35f5d4cb7e88297f62

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.1-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.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4333136de903a38ea8f0a59270191da69edabc998c3b84278948c4de49db4a44
MD5 14a97be0bbcf04adb92260176de6660c
BLAKE2b-256 cee2b7b72c50f7880a29df1765d80b82b0d5a6a961f710a819147a1b767c4c29

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.1-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.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2fcd034ea303a5bf140ff069c876dde7be6e9c954f89d66c6c73a1f657495860
MD5 520c8eb6ca0336f73d33367ad1f6995c
BLAKE2b-256 5702663f4e0d751f5874ef60c6da296fd78be9498dc4144957325a33fddb0067

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.1-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a8b38da030a7da644ecf58f8a61309eb2b3e0d3730c0b9ffb0c818adaf1057ce
MD5 b34417bcd3265c770f98b941577b7767
BLAKE2b-256 41533a0d1b99893ad84c84e37c75a5f79dbd1a35139249e6c95aaefa95ad5931

See more details on using hashes here.

Provenance

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