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

Uploaded CPython 3.12Windows x86-64

tulip_rs-0.1.16-cp312-cp312-manylinux_2_28_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

tulip_rs-0.1.16-cp312-cp312-macosx_10_12_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

tulip_rs-0.1.16-cp311-cp311-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.11Windows x86-64

tulip_rs-0.1.16-cp311-cp311-manylinux_2_28_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

tulip_rs-0.1.16-cp311-cp311-macosx_10_12_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

tulip_rs-0.1.16-cp310-cp310-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.10Windows x86-64

tulip_rs-0.1.16-cp310-cp310-manylinux_2_28_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

tulip_rs-0.1.16-cp310-cp310-macosx_10_12_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

tulip_rs-0.1.16-cp39-cp39-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.9Windows x86-64

tulip_rs-0.1.16-cp39-cp39-manylinux_2_28_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

tulip_rs-0.1.16-cp39-cp39-macosx_10_12_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

tulip_rs-0.1.16-cp38-cp38-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.8Windows x86-64

tulip_rs-0.1.16-cp38-cp38-manylinux_2_28_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.8macOS 11.0+ ARM64

tulip_rs-0.1.16-cp38-cp38-macosx_10_12_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: tulip_rs-0.1.16.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.16.tar.gz
Algorithm Hash digest
SHA256 9e419ab29932f99cf4f5e99e4ce71a58264a47668384710055bc06b9c9daf438
MD5 2766ac3a59f7860ee2c17aae80eaf6bd
BLAKE2b-256 4653e2061f0c883f940e51d289e1ec38c8885ff77fd3df6e93c2f25d9a1456c2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tulip_rs-0.1.16-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.16-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bf160a2d89679e300b3ce9b10c066e2dcd6b6b9a3dd69de36e048a9123580b53
MD5 b6b1faecd73fed1949983436463acb4c
BLAKE2b-256 ef355bb4fd36801a822996e563f6696001f770cb683e5508badbdb7c6c3bdffb

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.16-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.16-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2d4f55a7813088da58617499c32e0f0aa98c0996f77fdab7c8863b98ca437f4e
MD5 8da6026c552c489c8cd2e81a04090cdf
BLAKE2b-256 72d296dac7721dc17e887b0c528b812b80a598421652b84d8da9632e24b69df5

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.16-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.16-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9d4a4c38674c40d8336877b60564d3948b6005b2e7adbadab73c97286b3b49d2
MD5 70b6fca4a8f9fb9495f1862fbc707c93
BLAKE2b-256 1210220afbc2ab5791992eea2d3c2b26d720c00a9afbed6e9bfc058f47236770

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ba7978855da457028a2b05b8ef3936088dd92d908cb19db3c135c637137191c
MD5 94e638860aa89e1f5797e2eed04699de
BLAKE2b-256 ae9013de514d00411bbed7c659b65a66368119126e35c39ea1156e4f60728737

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cb22059818a58bf164b20decad92b850d0f77d8551e5df67bd6612b67a545e5c
MD5 6a631c73440a071ee9f4e1af3401144d
BLAKE2b-256 5193d12a3d365f6488060e91052488659c571bcd8f362734d28777f212d358d8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tulip_rs-0.1.16-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 5.5 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.16-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0a40f77f10de7c73efd337485d2e9d0c56ab7506620426962e140a6e131bc715
MD5 09c8a472da24e015feecdccb0142273f
BLAKE2b-256 63ca32f79f62339e99a463150779208c278ebff7b087ba75f3fcd3542f9494ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.16-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.16-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 529840631c31bf96f61973737d02a158e849bd8335c0c631aaf06e860e9a1a95
MD5 d23674edc23f6c5819ac837d0a05c130
BLAKE2b-256 923df37a0fb9834f053ec90ef475b4519348eae1de26cc3f0fc69fc3172856c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.16-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.16-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 42204e22af4f676ad750ca38e03e8d27f44cfe9990adc4344331b35c84d96ef3
MD5 942800d397bd3cccc2bdc7a4df698f29
BLAKE2b-256 903a2eaed17d0eeb129eada7f2657ac50bfd332adef4a3b159e92b671a8009b2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1716e22d0a70f0fb1d75fedfea0d58ad27f3dc52bcdac24b090a68645aa7fc25
MD5 210833d39da4223f60e545507aa01319
BLAKE2b-256 a7fcfd98317b6099508133f58e22c5b3a9076eae95767cde4d2d47a843041809

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d6725301654a76e11abb7a9917a5885c12f39b3960ac3590da9742a985dc0283
MD5 879f73c402de989f28cef21058e911a7
BLAKE2b-256 11a7e5598a9aff357d3e51ee7f05c84ff735a71b57b823a0f19181a720207aa3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tulip_rs-0.1.16-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 5.5 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.16-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a814022f0879831bc65ea6cfc6ac9cd7192f5669f5627d5378c2dd81e68ee03c
MD5 0b1c97dd12182de8c209619a8e77b02f
BLAKE2b-256 ca11f49aaecdec85ae578c6ac076264aef8b715bcbe374a71f3e507d104a9ffa

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.16-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.16-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7f874d3fefb840b3f6f65e6c01e56f0691740ee5a49602cf7e9557fb04f31937
MD5 6d97afe4b87347d09e93fb11c22287be
BLAKE2b-256 c1e8285e812cecef2a1863bc129908a1f5bc14dd431ec5257a8af90010102318

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.16-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.16-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 81a6d7151f20aeee60add319c367734cf6bc77e4babe1d8ad5e039ddc1d7ca97
MD5 4ff7145e1bf179f36989a1b38b89fb95
BLAKE2b-256 36984a5956a2d85cff1a16714d10f2807213caafd22fb6c4165eb31563a39f0c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 48684f56aa74278930d86edd5c7e3ee142df32ff301fbd6ef4248bc90f44b8ca
MD5 4bde4328d5c937625ce44260a1cd42e9
BLAKE2b-256 1fb85e9fbcbb51e1fb6dcede093934b523c80d4b6f3e0fa43140c2f7a4e9a4ea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b95667fbb17b7c78624cdd59c08ca7e0b4e3397e6e5aa97d3eeadda27b576c5a
MD5 b4ef226beb6b48e19a30d6c60f0805c6
BLAKE2b-256 cd85f9286b007b165c3223e5e139474c1e31f63bc4591b395e1892f4832a41a9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tulip_rs-0.1.16-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 5.5 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.16-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3d889d019527f91d9037f5ead92f344ff8c98ee5075ae6c073deac201c2733d7
MD5 0212f51e00ff39ed45ada6a3e3dfd01e
BLAKE2b-256 3dd30a8325e60ac43ecf9867a55bd3f0b83d0fa33751728f7d833b63d35559c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.16-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.16-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 88c82f4ba53b8e1ee8a246755e7d81740fb81590afaa69d1319e307569763911
MD5 721a29454fa76a8a254014c756c9b9af
BLAKE2b-256 1b8ba136ec6058ae151a747f46632780043d078c083468e5c57769ba7e4baf68

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.16-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.16-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 432e05c03590fe2acf5c69e3e628f397c08bc80dfd692d50e99dad0527762b04
MD5 9c757492a4e49c47b54412f1d8aa6fe0
BLAKE2b-256 e2ee2d400943d02ddb5903ce72a0ccee6857c601a39b975307985793cdb4eaf5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 873ca69b6ee8528c285eafbddedf387f58690db53a98c0b896d29f8cdb8f7934
MD5 2b59c81431dbebf45609899270da371b
BLAKE2b-256 b79d3729627c8881230aa8d89965ae5ed09d59c00c719dce73ddbee6702300c9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 38bcd53bc421d6cd8eec6d66024a3ef60f84744a4dad42df3838bc630d5a3810
MD5 571985c85cdaf9f5d1e88178688d4279
BLAKE2b-256 72172bbc0eeb7de13bfdf1448589a7f238e087d96a323c74b9c7dd757e60a2dd

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tulip_rs-0.1.16-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 5.5 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.16-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 da25aba8f0cf94e6c7fa2267b23b206b79ffe4dafbc77016ebc4c9f89bab5282
MD5 a024217e88c603d7d4e1379cc6a56ad0
BLAKE2b-256 ca80024706a26ae699d4f59313024105bf5dd0c59e85a7f6fe6f74dcd72bb44c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.16-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.16-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d094c9cbcb6e0befde00d8deee8ba133d6224d2e97f9861871e8b8f44ad9d20d
MD5 e12de48ba9d54db9871c2e420de2be51
BLAKE2b-256 76bf97329dd2843e203ea92fb3503ce7e0d001d7245250252aa23a097c8215e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tulip_rs-0.1.16-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.16-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f3522c42d8032d9046693d1a00a20d4a731700b6d789a7c2c5e9dad9d5fd9830
MD5 a5985adf330139a3da2bc0c519bf4654
BLAKE2b-256 86f50a84b6da8f9889fdcf2b0c237fe3e791acfbdab16a35ce58b29c3e4591ea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 659956701a048e892b7ce6dab24f1bdca7969fab217a75a7c21b5369d0f19dbe
MD5 ea7d3c7a12da29ebf97ad940f8008c72
BLAKE2b-256 ae86adeab6a1139cd79f2a73bbd64027e2c20e2835bfc2e7cf05f31be8024ed1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tulip_rs-0.1.16-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4300d0833447173c4861bdd35477a570b16bc3b876986f68a16f6514d69c4204
MD5 72aaee28c2f2e550b7a92821bc450c98
BLAKE2b-256 eeed660fb3e3a0fb58b087377890a973f8365da204425c5b255d12e5d5283ac6

See more details on using hashes here.

Provenance

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