TulipRS Python Bindings
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 Averageema— Exponential Moving Averagewma— Weighted Moving Averagedema— Double Exponential Moving Averagetema— Triple Exponential Moving Averagetrima— Triangular Moving Averagehma— Hull Moving Averagezlema— Zero-Lag EMAkama— Kaufman Adaptive Moving Averagevidya— Variable Index Dynamic Averagevwma— Volume Weighted Moving Averagewilders— Wilder's Smoothingsmaenvelope— SMA Envelope
Oscillators
rsi— Relative Strength Indexmacd— Moving Average Convergence Divergencestoch— Stochastic Oscillatorstochrsi— Stochastic RSIwillr— Williams %Rcci— Commodity Channel Indexcmo— Chande Momentum Oscillatorultosc— Ultimate Oscillatorao— Awesome Oscillatorfisher— Fisher Transformfosc— Forecast Oscillatormsw— Mesa Sine Wavetrix— TRIX
Trend Indicators
adx— Average Directional Indexadxr— ADX Ratingdi— Directional Indicatordm— Directional Movementdx— Directional Movement Indexaroon— Aroonaroonosc— Aroon Oscillatorpsar— Parabolic SARppo— Percentage Price Oscillatorapo— Absolute Price Oscillatorvortex— Vortex Indicatorelderray— Elder-Ray Indexdonchianchannel— Donchian Channelichimoku— Ichimoku Cloudsupertrend— SuperTrendef— Efficiency Ratiomama— MESA Adaptive Moving Average
Volatility Indicators
bbands— Bollinger Bandsatr— Average True Rangenatr— Normalized ATRtr— True Rangestddev— Standard Deviationvolatility— Volatilityvhf— Vertical Horizontal Filtercvi— Chaikin Volatilitychandelierexit— Chandelier Exitkeltnerchannel— Keltner Channeltrvi— True Range Volatility Index
Volume Indicators
ad— Accumulation/Distributionadosc— A/D Oscillator (Chaikin Oscillator)obv— On Balance Volumemfi— Money Flow Indexnvi— Negative Volume Indexpvi— Positive Volume Indexvosc— Volume Oscillatorkvo— Klinger Volume Oscillatoremv— Ease of Movementwad— Williams Accumulation/Distributionmarketfi— Market Facilitation Indexchaikinmf— Chaikin Money Flowvwap— Volume Weighted Average Price
Price & Statistical
avgprice,medprice,typprice,wcprice— Price transformsmax,min— Rolling maximum / minimummom— Momentumroc,rocr— Rate of Changebop— Balance of Powerlinreg,tsf— Linear Regression / Time Series Forecastdpo— Detrended Price Oscillatormass— Mass Indexmd— Mean Deviationqstick— QStickpivotpoint— Pivot Points
Cycle & Ehlers Indicators
cybercycle— Ehlers CyberCycleadaptivemsw— Adaptive Mesa Sine Wavehomodynediscriminator— Homodyne Discriminatorinstantaneoustrendline— Instantaneous Trendlinetrendmode— Ehlers TrendModehighpass— Ehlers High Pass Filterhilberttransform— Hilbert Transformroofingfilter— Ehlers Roofing Filtersupersmoother— Ehlers Super Smootherccfisher— 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 arrayget_all_outputs() -> List[numpy.ndarray]: Get all output arraysnum_outputs() -> int: Get the number of outputshas_state() -> bool: Check if state is available for continuationstate_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 arraycount_bullish() -> int: Count bullish patterns (value = 100)count_bearish() -> int: Count bearish patterns (value = -100)has_state() -> bool: Check if state is availablestate_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
- Based on the TulipRS Rust library
- Inspired by the original Tulip Indicators library
- Built with PyO3 and maturin
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
Metadata
Release files for tulip-rs 0.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tulip_rs-0.2.5.tar.gz | 1.5 MB | Details |
Built distributions (wheels)
Total release size: 128.7 MB
Release files / tulip_rs-0.2.5.tar.gz
| Download URL | tulip_rs-0.2.5.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6bcc062309e0a8f62b02e2e123402856a06cd92f151f8dabbcbaa6b09a0d6a93
|
|
BLAKE2b-256 checksum How to use checksums |
e846042e101ad85c1aabef4999d8bd8bb565e3068798c4cb815dd4b865fc00ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp312-cp312-win_amd64.whl
| Download URL | tulip_rs-0.2.5-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
08c597742ad10c4170b9879d9e7ce619a8d65afc43888aa59abfd651a0cef79e
|
|
BLAKE2b-256 checksum How to use checksums |
f040dca22ba9edaf74794bb2acb49a365f4879b92848dddc25cf990e09e93788
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | tulip_rs-0.2.5-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 5.5 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
402334b7bdd20b6012346d5bde66703e7c4858365ce7da434abca2219b802736
|
|
BLAKE2b-256 checksum How to use checksums |
137e43ab30ee0192d32ca61e4fa2773fcd589414878ae3dc3df39576d37fa82e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp312-cp312-manylinux_2_28_aarch64.whl
| Download URL | tulip_rs-0.2.5-cp312-cp312-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.8 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
239b62d3706741fbb075182d80740feb2a3855346184318277dfbc72e91dbd43
|
|
BLAKE2b-256 checksum How to use checksums |
d6147e53cf42388ee533b83d2f2ba6a606a2340450620dcab31c3a79cdff9bcb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | tulip_rs-0.2.5-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e63aeb1cf1264ea0293ff7c567d7196fba4df94ea75e182d2e637057a868ebe8
|
|
BLAKE2b-256 checksum How to use checksums |
217badbb9872a36d5b2e40f79e179b92f521126b80d3138dc00472dee388b638
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | tulip_rs-0.2.5-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 5.5 MB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
13deb9a3fd0f38354d1b7dd889eaa0a6756c38f506784862617acad03b4285cc
|
|
BLAKE2b-256 checksum How to use checksums |
daa04321d2e5de1bb9c21456f4840e8d17362ccea216590436fe474073a31e82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp311-cp311-win_amd64.whl
| Download URL | tulip_rs-0.2.5-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
630b5a9d71d22999d3e0c28ca2034b6667a8d32f49aae487a352df75e6aa1ced
|
|
BLAKE2b-256 checksum How to use checksums |
b1c6159d59d36b463bfd22153c01f53e6af2711b80e2c702a1f92fd52937c644
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | tulip_rs-0.2.5-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 5.6 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
897288d25c8c28f16d2a5d47240b2d27659d105acdc31f06e22a0273b4c7bbf9
|
|
BLAKE2b-256 checksum How to use checksums |
01fae900a522d2f93a2455fd05d54209c9fbb96f980ed3cb8acb657e2d3fa00e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp311-cp311-manylinux_2_28_aarch64.whl
| Download URL | tulip_rs-0.2.5-cp311-cp311-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.8 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
100403d3b27664763e5e7e9c6110a46a392fe23425101960931e5cd011737834
|
|
BLAKE2b-256 checksum How to use checksums |
90f2d4543bdcd72a6709170a0720869537e5f0eda5d2abd4a18a9da6eb24ac5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | tulip_rs-0.2.5-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5c16252f3df390edc1a954ffcd73b265da9fdf83aaba6cd7771543b6e158f433
|
|
BLAKE2b-256 checksum How to use checksums |
0e9e8255585e5239ce873819782664fd0ca2e9f311db0b91af0c74ecf0ad1a0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | tulip_rs-0.2.5-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 5.5 MB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
eadfd844ee02d578ae9fa15372a89776095489fd77f7dd510b5f1541b3889f9a
|
|
BLAKE2b-256 checksum How to use checksums |
f13b1a8711bf6d4169c91a701f2fefa1d670a7127ed47b1aac9012d73929423f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp310-cp310-win_amd64.whl
| Download URL | tulip_rs-0.2.5-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0e61ad76b3d14ed63e9d4095d8a61cd90089a5065f169c8caf56adff2a69f2b0
|
|
BLAKE2b-256 checksum How to use checksums |
e15bbc80e6214b6944b590ed4ff30156176b77d85019cb43b8a7920405a58262
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp310-cp310-manylinux_2_28_x86_64.whl
| Download URL | tulip_rs-0.2.5-cp310-cp310-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 5.6 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
fc5772842983a84ca46dee8ebd269602f35a861c515d328016e9b5461e1df9ed
|
|
BLAKE2b-256 checksum How to use checksums |
8cbaf7ef813adeeed08cc6aa7419d97f7ee1daf95c35bd9aac323662646e0900
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp310-cp310-manylinux_2_28_aarch64.whl
| Download URL | tulip_rs-0.2.5-cp310-cp310-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.8 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
bdc91857afece510d133d280178312e010fcc2e06e21ab490f89ed4e30d05b34
|
|
BLAKE2b-256 checksum How to use checksums |
ae0badddb6104ea311e5036b81ac1c9c506a957e252de77c14e887ac6880cec9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | tulip_rs-0.2.5-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
fbc5056836e51c8d576991e197e9e8f20811cf22211e61b40e965c425254cec6
|
|
BLAKE2b-256 checksum How to use checksums |
b03646f412e11c2514848f2b33cd34f7c4118e3f0e9c8f36e002a04e24a3cd97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp310-cp310-macosx_10_12_x86_64.whl
| Download URL | tulip_rs-0.2.5-cp310-cp310-macosx_10_12_x86_64.whl |
|---|---|
| Size | 5.5 MB |
| Tags | CPython 3.10 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
ddfbb98ab2371ae18f1785107f08a74ff2f2ce3fab3647a1d8d8b1c478bf4b6a
|
|
BLAKE2b-256 checksum How to use checksums |
48885ea15deb97c04b929751cab7e7eb2af2c8ef16eaf1a1a9f402eec00ef80b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp39-cp39-win_amd64.whl
| Download URL | tulip_rs-0.2.5-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5537b2a076150f425ca9a98ac599c8fd5afadcf13988c4367b026662db209e91
|
|
BLAKE2b-256 checksum How to use checksums |
1d6bc22daeb3a652e14ab01fb256666de7be5026de6c54956635ab485608b3c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp39-cp39-manylinux_2_28_x86_64.whl
| Download URL | tulip_rs-0.2.5-cp39-cp39-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 5.6 MB |
| Tags | CPython 3.9 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
41eca05ee653ecb4830c3d4083d50393b485790187e96993c2e5a8a96b55c382
|
|
BLAKE2b-256 checksum How to use checksums |
d5d41df2d7fde70405efdc8c401ab1e845a8f92e03bc1e69804e5fb222722674
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp39-cp39-manylinux_2_28_aarch64.whl
| Download URL | tulip_rs-0.2.5-cp39-cp39-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.8 MB |
| Tags | CPython 3.9 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
ab575a8de0205e5b9e3bc32e9010a835590643e178a6c186479b437fb5e24f33
|
|
BLAKE2b-256 checksum How to use checksums |
875d9519715dcc1c1a51c7c92759246c891340791791e41dee50b7f3e17c20cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | tulip_rs-0.2.5-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
600d4b3201fcdd0e3cc8e0fe09734445bf9f48bcea4695c802636fb093453505
|
|
BLAKE2b-256 checksum How to use checksums |
ea8bf3a64fc1478df721c534e87494c2af2b78976d4a8937ca04a171a1d9cfea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp39-cp39-macosx_10_12_x86_64.whl
| Download URL | tulip_rs-0.2.5-cp39-cp39-macosx_10_12_x86_64.whl |
|---|---|
| Size | 5.5 MB |
| Tags | CPython 3.9 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
0ceaaa8fa8050c120fbca44d93b421b88749d1642085d8d0c9e47fcb7979bcb1
|
|
BLAKE2b-256 checksum How to use checksums |
f4f28c5681cd3196565554e6c0955102806521f518b8d67034b67a0b1f937ca3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp38-cp38-win_amd64.whl
| Download URL | tulip_rs-0.2.5-cp38-cp38-win_amd64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.8 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d122c1ac320e365431fe7f0b729ea44a400b959fadd892e7847ad4578ced48b9
|
|
BLAKE2b-256 checksum How to use checksums |
ce58b834270a7a4ea7fe5e70b7760c52c22a92f5f30e96be1ddd98210bd57912
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp38-cp38-manylinux_2_28_x86_64.whl
| Download URL | tulip_rs-0.2.5-cp38-cp38-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 5.6 MB |
| Tags | CPython 3.8 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
eb860e2ef5b22ae2d36b11ec7231f9ea036ba6cdbc85dfe6a827e06b2d41b1dc
|
|
BLAKE2b-256 checksum How to use checksums |
228ed1391f3851a2babc6b40dc1adcf806abf0cc156afde3acf6749b6fb16353
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp38-cp38-manylinux_2_28_aarch64.whl
| Download URL | tulip_rs-0.2.5-cp38-cp38-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.8 MB |
| Tags | CPython 3.8 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
2e103366fcc92d7df80ab49eba0a9c2a2c9f03f3282003934a4763b3313b4b48
|
|
BLAKE2b-256 checksum How to use checksums |
083b45e6ba6e0fa129cfed11ec6a3e3b195f889d8c296ee2d8f22ebc3a09dd7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp38-cp38-macosx_11_0_arm64.whl
| Download URL | tulip_rs-0.2.5-cp38-cp38-macosx_11_0_arm64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | CPython 3.8 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
58f5217b3c456ab9a46ad9ec4e73138ad301d01ebb17834f3a0d0d324f19b695
|
|
BLAKE2b-256 checksum How to use checksums |
72c995bb196ae5130b11727ac7ef53326adb176477562695d0227b3f06e86122
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency logRelease files / tulip_rs-0.2.5-cp38-cp38-macosx_10_12_x86_64.whl
| Download URL | tulip_rs-0.2.5-cp38-cp38-macosx_10_12_x86_64.whl |
|---|---|
| Size | 5.5 MB |
| Tags | CPython 3.8 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
a2015fa796c7a6715c9d353e259de6eb0f38e714f8e6bf130664661d5f74228c
|
|
BLAKE2b-256 checksum How to use checksums |
99bb978a670e51aba9b72c5e354dc1145f76efd7c11d86d10ca594f86c5d3ee2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.
Transparency log