Skip to main content

pypsx-toolkit — Pakistan Stock Exchange Data Library

A clean, simple Python library to fetch and analyze Pakistan Stock Exchange (PSX) market data. Get real-time market data, historical prices, and powerful analysis tools all in one package — no authentication required.

Installation

pip install pypsx-toolkit

Try it in a notebook

Open In Colab

Quick Start

Basic Usage - Get Stock Information

import pypsx_toolkit

# Create a ticker object for any stock symbol
ticker = pypsx_toolkit.PSXTicker("OGDC")  # or use pypsx_toolkit.Ticker("OGDC")

# Get company information
info = ticker.info
print(f"Company: {info.get('Sector')}")
print(f"Current Price: {info.get('Current')}")

# Get comprehensive snapshot data (OHLCV, bid/ask, circuit breaker, ranges, ratios, etc.)
snapshot = ticker.snapshot
print(f"Open: {snapshot.get('REG', {}).get('Open')}")
print(f"High: {snapshot.get('REG', {}).get('High')}")
print(f"52-Week Range: {snapshot.get('REG', {}).get('52-WEEK RANGE ^')}")
print(f"P/E Ratio: {snapshot.get('REG', {}).get('P/E Ratio (TTM) **')}")

# Get market watch data for this stock
market_data = ticker.market_watch()
print(market_data)

# Get historical price data (1 year)
history = ticker.history(period="1y", interval="1d")
print(history.head())

# Get recent intraday trades (last 2 days)
intraday = ticker.intraday()
print(intraday.head())

Market Data

import pypsx_toolkit

# Get full market watch (all stocks)
market_watch = pypsx_toolkit.market_watch()
print(f"Total stocks in market watch: {len(market_watch)}")

# Get top performers
performers = pypsx_toolkit.top_performers()
print("Top Gainers:")
print(performers["top_gainers"].head())

print("Top Decliners:")
print(performers["top_decliners"].head())

print("Most Active:")
print(performers["top_actives"].head())

# Get sector summary
sectors = pypsx_toolkit.sector_summary()
print(sectors.head())

# Get all available stock symbols
# get_symbols() returns a list of clean symbols (without suffixes XD, NC, XR)
symbols_list = pypsx_toolkit.get_symbols()
print(f"Total symbols: {len(symbols_list)}")

Historical Data

import pypsx_toolkit

# Get 1 year of historical data for a stock
ticker = pypsx_toolkit.PSXTicker("OGDC")
history = ticker.history(period="1y", interval="1d")

# Get full OHLCV data for specific date range
full_data = ticker.get_historical(start_date="2024-01-01", end_date="2024-12-31")
print(full_data.head())

# Download multiple symbols at once
df = pypsx_toolkit.download(["OGDC", "PPL", "KEL"], period="6mo", interval="1d")
print(df.head())

Indices and Sectors

import pypsx_toolkit

# Get all indices overview
indices = pypsx_toolkit.get_indices()
print(indices.head())

# Get constituents of an index (e.g., KSE100)
kse100 = pypsx_toolkit.index_constituents("KSE100")
print(f"KSE100 has {len(kse100)} constituents")
print(kse100.head())

# Get sector information
sectors = pypsx_toolkit.sector_summary()
print(sectors.head())

# Get complete indices breakdown with statistics
indices_breakdown = pypsx_toolkit.get_indices_breakdown()
print(f"Total indices: {indices_breakdown['total_indices']}")
print(f"Total unique symbols: {indices_breakdown['unique_symbols']}")
for idx, count, stats in indices_breakdown['indices'][:5]:
    print(f"{idx}: {count} symbols (Current: {stats.get('current', 'N/A')})")

# Get complete sector breakdown with company counts and averages
sector_breakdown = pypsx_toolkit.get_sector_breakdown()
print(f"\nTotal sectors: {sector_breakdown['total_sectors']}")
print(f"Total companies: {sector_breakdown['total_companies']}")
for sector in sector_breakdown['sectors'][:5]:
    name = sector['name']
    count = sector['company_count']
    avg_price = sector['averages'].get('current', 'N/A')
    print(f"{name}: {count} companies (Avg Price: {avg_price})")

Main Features

1. Stock Information (PSXTicker)

Create a ticker object for any stock symbol:

ticker = pypsx_toolkit.PSXTicker("OGDC")

Available Properties:

  • ticker.info - Get company information (price, sector, volume, etc.)
  • ticker.snapshot - Get comprehensive snapshot data from all tabs (OHLCV, bid/ask, circuit breaker, ranges, ratios, etc.)

Available Methods:

  • ticker.market_watch() - Get current market watch row for this stock
  • ticker.sector() - Get sector-level information
  • ticker.history(period="1y", interval="1d") - Get historical data
  • ticker.intraday() - Get intraday trades (last ~2 days)
  • ticker.get_historical(start_date, end_date) - Get full OHLCV data for date range
  • ticker.dividends() - Get dividend information (external source)
  • ticker.announcements() - Get company announcements
  • ticker.orderbook() - Get trading board data (bid/ask prices)

2. Market Data Functions

# Full market watch
market_watch = pypsx_toolkit.market_watch()

# Top performers
performers = pypsx_toolkit.top_performers()  # Returns dict with "top_gainers", "top_decliners", "top_actives"

# Sector summary
sectors = pypsx_toolkit.sector_summary()

# Trading board (order book)
orderbook = pypsx_toolkit.trading_board()

# Get detailed quote data for a symbol (OHLCV, bid/ask, PE ratio, 52-week range, etc.)
quote = pypsx_toolkit.get_quote("OGDC")
print(quote)

# Get quotes for multiple symbols
quotes = pypsx_toolkit.get_quote_batch(["OGDC", "PPL", "KEL"])
for symbol, quote_df in quotes.items():
    if quote_df is not None:
        print(f"{symbol}: {quote_df}")

# Get company fundamentals (business description, financials, ratios, equity profile)
fundamentals = pypsx_toolkit.get_company_fundamentals("OGDC")
print(fundamentals.head())
# Returns DataFrame with CATEGORY, METRIC, VALUE columns
# Categories include: Profile, Governance, Financials Annual, Financials Quarterly, Ratios, Equity Profile

# Get all symbols
symbols = pypsx_toolkit.get_symbols()

3. Batch Downloads

# Download multiple symbols at once
df = pypsx_toolkit.download(["OGDC", "PPL", "KEL"], period="1y", interval="1d")
print(df.head())

# Get intraday data for multiple symbols
intraday_multi = pypsx_toolkit.get_intraday_multiple(["OGDC", "PPL"])
print(intraday_multi.head())

Charting

The library doesn't ship built-in chart helpers — plot any DataFrame it returns directly with matplotlib:

import matplotlib.pyplot as plt
import pypsx_toolkit

df = pypsx_toolkit.PSXTicker("OGDC").history(period="1y", interval="1d")

fig, ax = plt.subplots(figsize=(11, 4))
ax.plot(df.index, df["CLOSE"], color="tab:blue", linewidth=1)
ax.set_title("OGDC — 1Y Close Price")
ax.grid(alpha=0.3)
plt.tight_layout()
plt.show()

Analysis and Statistics

PyPSX Toolkit includes comprehensive analysis tools for stock data, available from pypsx_toolkit.analysis.

Statistical Analysis

from pypsx_toolkit.analysis import returns, volatility, correlation, sharpe_ratio

ticker = pypsx_toolkit.PSXTicker("OGDC")
df = ticker.history(period="1y")

# Calculate returns
rets = returns(df)
print(rets.head())

# Calculate volatility
vol = volatility(df)
print(vol.head())

# Calculate Sharpe ratio
sharpe = sharpe_ratio(df)
print(f"Sharpe Ratio: {sharpe:.3f}")

Technical Indicators

from pypsx_toolkit.analysis import moving_average, rsi, macd, bollinger_bands, exponential_moving_average

ticker = pypsx_toolkit.PSXTicker("OGDC")
df = ticker.history(period="1y")

# Moving averages
df['SMA20'] = moving_average(df, window=20)
df['EMA12'] = exponential_moving_average(df, window=12)

# RSI (supports both 'period' and 'window' parameter names)
df['RSI'] = rsi(df, period=14)

# MACD
macd_line, signal, histogram = macd(df)
df['MACD'] = macd_line
df['Signal'] = signal

# Bollinger Bands
ma, upper, lower = bollinger_bands(df, window=20)
df['BB_Upper'] = upper
df['BB_Lower'] = lower

Automated Insights

from pypsx_toolkit.analysis import interpret_stock, quick_analysis

ticker = pypsx_toolkit.PSXTicker("OGDC")
df = ticker.history(period="1y")

# Generate comprehensive insights
insights = interpret_stock(df, "OGDC")
print("Insights:")
for insight in insights['insights']:
    print(f"  - {insight}")

# Quick analysis
analysis = quick_analysis(df, "OGDC")
print(f"Trading Signal: {analysis['trading_signal']}")
print(f"Sharpe Ratio: {analysis['key_metrics']['sharpe_ratio']:.3f}")
print(f"Max Drawdown: {analysis['key_metrics']['max_drawdown']:.3f}")
print(f"Total Return: {analysis['key_metrics']['total_return']:.2%}")

# Get trading signals directly
from pypsx_toolkit.analysis import generate_trading_signals
signals = generate_trading_signals(df, "OGDC")
print(f"Primary Signal: {signals['primary_signal']}")
print(f"Confidence: {signals['confidence']:.2%}")

Available Analysis Functions:

All analysis functions are available from pypsx_toolkit.analysis:

  • Statistics: returns(), volatility(), correlation(), beta(), correlation_matrix()
  • Indicators: moving_average(), rsi(), macd(), bollinger_bands(), stochastic(), williams_r(), atr(), adx(), cci(), obv(), vwap()
  • Performance: sharpe_ratio(), sortino_ratio(), calmar_ratio(), drawdown(), max_drawdown(), information_ratio(), treynor_ratio()
  • Insights: interpret_stock(), quick_analysis(), portfolio_analysis(), market_sentiment_analysis(), generate_trading_signals()

Import them like: from pypsx_toolkit.analysis import sharpe_ratio, rsi

Market Analysis and Breakdowns

Indices Breakdown

Get a comprehensive breakdown of all PSX indices with constituent counts and statistics:

import pypsx_toolkit

# Get indices breakdown
breakdown = pypsx_toolkit.get_indices_breakdown()

print(f"Total Indices: {breakdown['total_indices']}")
print(f"Total Symbols Analyzed: {breakdown['total_symbols_analyzed']}")
print(f"Unique Symbols: {breakdown['unique_symbols']}")

# Print breakdown
for idx, count, stats in breakdown['indices']:
    current = stats.get('current', 'N/A')
    change_pct = stats.get('percentage_change', 'N/A')
    print(f"{idx}: {count} symbols (Current: {current}, Change: {change_pct}%)")

Output includes:

  • Total number of indices
  • Constituent count for each index
  • Index statistics (Current value, Change, Change %)
  • Total symbols analyzed (with duplicates across indices)
  • Unique symbols across all indices

Sector Breakdown

Get a comprehensive breakdown of all PSX sectors with company counts and computed averages:

import pypsx_toolkit

# Get sector breakdown
breakdown = pypsx_toolkit.get_sector_breakdown()

print(f"Total Sectors: {breakdown['total_sectors']}")
print(f"Total Companies: {breakdown['total_companies']}")

# Print breakdown
for sector in breakdown['sectors'][:10]:  # Top 10 sectors
    name = sector['name']
    count = sector['company_count']
    code = sector['code']
    avg_price = sector['averages'].get('current', 0)
    avg_change = sector['averages'].get('change_%', 0)
    advances = sector['advances']
    declines = sector['declines']

    print(f"{name} (Code: {code}):")
    print(f"  Companies: {count}")
    print(f"  Avg Price: {avg_price:.2f}")
    print(f"  Avg Change %: {avg_change:.2f}%")
    print(f"  Advances: {advances}, Declines: {declines}")
    print()

Output includes:

  • Total number of sectors
  • Company count per sector
  • Average prices, volumes, changes per sector
  • Sector-level statistics (advances, declines, turnover)
  • Total companies across all sectors

Advanced Usage

Company Information

import pypsx_toolkit

ticker = pypsx_toolkit.PSXTicker("OGDC")

# Get detailed quote data (includes OHLCV, bid/ask prices, PE ratio, 52-week range, VAR, etc.)
quote = pypsx_toolkit.get_quote("OGDC")
print(quote)
# Output includes: OPEN, HIGH, LOW, VOLUME, BID_PRICE, ASK_PRICE, PE_RATIO, VAR, HAIRCUT, etc.

# Get quotes for multiple symbols
quotes = pypsx_toolkit.get_quote_batch(["OGDC", "PPL", "KEL"])
for symbol, quote_df in quotes.items():
    if quote_df is not None:
        print(f"{symbol} Quote:")
        print(quote_df)

# Get company fundamentals (business description, financials, ratios, equity profile)
fundamentals = pypsx_toolkit.get_company_fundamentals("OGDC")
print(fundamentals.head())

# Get comprehensive snapshot data from all tabs (most holistic approach)
snapshot = pypsx_toolkit.get_snapshot("BOP")
print(snapshot['REG'])  # REG tab contains: OHLCV, circuit breaker, ranges, bid/ask, ratios, etc.
# Or use ticker.snapshot property:
ticker = pypsx_toolkit.PSXTicker("BOP")
snap = ticker.snapshot
print(f"Open: {snap['REG']['Open']}")
print(f"52-Week Range: {snap['REG']['52-WEEK RANGE ^']}")

# Get announcements
announcements = ticker.announcements()
print(announcements.head())

# Get dividends
dividends = ticker.dividends()
print(dividends)

# Get order book
orderbook = ticker.orderbook()
print(orderbook)

Custom Date Ranges

ticker = pypsx_toolkit.PSXTicker("OGDC")

# Get historical data for specific date range
historical = ticker.get_historical(
    start_date="2024-01-01",
    end_date="2024-12-31"
)
print(historical.head())

Examples

Example 1: Find Top Volume Stocks

import pypsx_toolkit

# Get market watch
mw = pypsx_toolkit.market_watch()

# Sort by volume and get top 5
top_volume = mw.nlargest(5, "Volume")[['Current', 'Change', 'Volume']]
print(top_volume)

Example 2: Compare Stock Performance

import pypsx_toolkit
import matplotlib.pyplot as plt

symbols = ["OGDC", "PPL", "KEL"]
fig, ax = plt.subplots(figsize=(11, 4))
for symbol in symbols:
    df = pypsx_toolkit.PSXTicker(symbol).history(period="6mo", interval="1d")
    ax.plot(df.index, df["CLOSE"] / df["CLOSE"].iloc[0], label=symbol)

ax.set_title("Normalized Close Price — 6 Months")
ax.legend()
ax.grid(alpha=0.3)
plt.tight_layout()
plt.show()

Example 3: Technical Analysis

import pypsx_toolkit
from pypsx_toolkit.analysis import rsi, macd, bollinger_bands

ticker = pypsx_toolkit.PSXTicker("OGDC")
df = ticker.history(period="1y")

# Add technical indicators
df['RSI'] = rsi(df, period=14)
macd_line, signal, _ = macd(df)
df['MACD'] = macd_line
df['Signal'] = signal

ma, upper, lower = bollinger_bands(df)
df['BB_Upper'] = upper
df['BB_Lower'] = lower

# Simple trading signal (SMA crossover)
df['SMA20'] = df['CLOSE'].rolling(20).mean()
df['SMA50'] = df['CLOSE'].rolling(50).mean()
df['Signal'] = (df['SMA20'] > df['SMA50']).astype(int)

print(df[['CLOSE', 'RSI', 'MACD', 'Signal']].tail())

Example 4: Portfolio Analysis

import pypsx_toolkit
from pypsx_toolkit.analysis import portfolio_analysis

# Create a portfolio
portfolio = {
    "OGDC": pypsx_toolkit.PSXTicker("OGDC").history(period="1y"),
    "PPL": pypsx_toolkit.PSXTicker("PPL").history(period="1y"),
    "KEL": pypsx_toolkit.PSXTicker("KEL").history(period="1y"),
}

# Analyze portfolio
analysis = portfolio_analysis(portfolio)
print(f"Avg Correlation: {analysis['portfolio_metrics']['avg_correlation']:.3f}")
print(f"Avg Volatility: {analysis['portfolio_metrics']['avg_volatility']:.3f}")
print(f"Best Performer: {analysis['portfolio_metrics']['best_performer']}")
print(f"Market Sentiment: {analysis['market_sentiment']} ({analysis['sentiment_strength']})")
for insight in analysis["portfolio_insights"]:
    print(f"  - {insight}")

API Reference

PSXTicker Class

ticker = pypsx_toolkit.PSXTicker(symbol: str)

# Properties
ticker.info                    # Dict with company info
ticker.snapshot                # Dict with comprehensive snapshot data from all tabs
ticker.fast_info              # Quick metrics dict

# Methods
ticker.history(period="1y", interval="1d")    # Historical data
ticker.intraday()                             # Intraday trades
ticker.get_historical(start_date, end_date)   # Full OHLCV data
ticker.market_watch()                         # Market watch row
ticker.sector()                               # Sector information
ticker.orderbook()                            # Trading board data
ticker.dividends()                            # DataFrame with dividends
ticker.announcements()                        # DataFrame with announcements

Market Functions

pypsx_toolkit.market_watch()           # Full market watch DataFrame
pypsx_toolkit.top_performers()         # Dict: {top_gainers, top_decliners, top_actives}
pypsx_toolkit.sector_summary()         # Sector summary DataFrame
pypsx_toolkit.get_indices()            # Indices overview DataFrame
pypsx_toolkit.get_indices_breakdown() # Complete indices breakdown with counts and stats
pypsx_toolkit.get_sector_breakdown()  # Complete sector breakdown with company counts and averages
pypsx_toolkit.get_symbols()            # List of all stock symbols
pypsx_toolkit.trading_board()          # Trading board DataFrame

# Quote functions - Get detailed quote data (OHLCV, bid/ask, PE ratio, 52-week range, etc.)
pypsx_toolkit.get_quote(symbol)                  # Get detailed quote for a single symbol
pypsx_toolkit.get_quote_batch(symbols)           # Get quotes for multiple symbols (returns dict)

# Company fundamentals - Get comprehensive company data (business description, financials, ratios, etc.)
pypsx_toolkit.get_company_fundamentals(symbol)   # Get company fundamentals (returns DataFrame)

# Snapshot - Get comprehensive snapshot data from all tabs (most holistic approach)
pypsx_toolkit.get_snapshot(symbol)              # Get snapshot data from all tabs (returns dict with tab names as keys)
# Or use ticker.snapshot property for easier access

Download Functions

pypsx_toolkit.download(symbols, period="1y", interval="1d")    # Batch download
pypsx_toolkit.get_intraday_multiple(symbols)                   # Multiple intraday
pypsx_toolkit.get_historical(symbol, start_date, end_date)    # Historical OHLCV

Backward Compatibility

The library maintains backward compatibility:

  • pypsx_toolkit.Ticker is an alias for pypsx_toolkit.PSXTicker
  • pypsx_toolkit.PSXSymbol is also available (legacy)

Notes

  • Dividends: PSX doesn't provide a dividends endpoint. The dividends property uses an external data source.
  • Data Availability: Some data may not be available when the market is closed.
  • Symbol Names: Use official PSX symbols (e.g., "OGDC", "PPL", "KEL").

License

Proprietary — All rights reserved. Unauthorized use, copying, or distribution is prohibited.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pypsx_toolkit-3.0.1-cp312-cp312-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.12Windows x86-64

pypsx_toolkit-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pypsx_toolkit-3.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

pypsx_toolkit-3.0.1-cp311-cp311-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.11Windows x86-64

pypsx_toolkit-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pypsx_toolkit-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pypsx_toolkit-3.0.1-cp310-cp310-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.10Windows x86-64

pypsx_toolkit-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pypsx_toolkit-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

Details for the file pypsx_toolkit-3.0.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.0.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b287cc1e903c494c5759557789226608e39fd85a0e6bac3de1b0cd6cf58218f9
MD5 fcf1d3fee450b36dd1545fcef671ea69
BLAKE2b-256 77c46f235f0d7412bdd0f06491efc74f0ecfbbf9e94972e043cf6e43b2e81aff

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypsx_toolkit-3.0.1-cp312-cp312-win_amd64.whl:

Publisher: workflow.yml on pypsx/libraries

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

File details

Details for the file pypsx_toolkit-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d081bd0b2bb5d006ee0c9d66993fb9173b5e13083c974af8bbbdbd504c5f0902
MD5 d854bb2d4d980b84d846490590974391
BLAKE2b-256 d7d63275e731e28242b18b7e11f27aef79fa39d62bd5037ad8f725abe01f52e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypsx_toolkit-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on pypsx/libraries

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

File details

Details for the file pypsx_toolkit-3.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 27f51189a05ea03108e94bb2755136bf9c1c2e45e03ef9f075513deaa63bf29a
MD5 27061a8e25fcd4ee3c87cf62958d2095
BLAKE2b-256 0c9ba63eb50691ec6bd639eceb0d67fc49bd1a10fd1603932d61992180df41ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypsx_toolkit-3.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: workflow.yml on pypsx/libraries

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

File details

Details for the file pypsx_toolkit-3.0.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.0.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 94a37c6d967a93af39053e61afff5574aae1698c744a3e788e5c45335473505f
MD5 230d333f1cc2592d55076be0f1c4a0b6
BLAKE2b-256 c4d7d18bbcbd6dfe7610cc74e6eed36a3581e573e9f9bb4d044e43bb62665a9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypsx_toolkit-3.0.1-cp311-cp311-win_amd64.whl:

Publisher: workflow.yml on pypsx/libraries

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

File details

Details for the file pypsx_toolkit-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6223f84abc440ad22a2d41533c6dfef450d57a25f559161b9d83bd5264a69d6d
MD5 aded5b18f532ea3fba7bc3f5af3b6aed
BLAKE2b-256 06a1726c7d14d79ecc47388c487f9297a6afc35458a841134764253b0a883a42

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypsx_toolkit-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on pypsx/libraries

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

File details

Details for the file pypsx_toolkit-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d496f9970aa70b5bc977640ea6f2c25d0fba5479280453452379119110a591ed
MD5 9093377ba3b9c79b17105ee13e2230d1
BLAKE2b-256 84b407bf6ee3d8d24c1f1502fa7e84f4fa5a8a52ec12ee2e814fa33b558acb9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypsx_toolkit-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: workflow.yml on pypsx/libraries

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

File details

Details for the file pypsx_toolkit-3.0.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.0.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 722c4ec5bc37c1e12c5d26f653b075c97c2107b441d7ab7bc474bae38806741c
MD5 5f24acc7cb3fcae67c44115fa32f9b4c
BLAKE2b-256 97639e60adf1e550f0a86b13de1a336f7232c401a024cbcb4fe4bece8ab8bc30

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypsx_toolkit-3.0.1-cp310-cp310-win_amd64.whl:

Publisher: workflow.yml on pypsx/libraries

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

File details

Details for the file pypsx_toolkit-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 80feeb39d6133f72fbe460351294316e78fac075f7d1647b21bb7e397f20df58
MD5 2d016e9a70e5c6dabc019bc68eda564f
BLAKE2b-256 41547726a247c0bc948713a835272560291afeabd45e228c648d3f1f9412094d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypsx_toolkit-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on pypsx/libraries

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

File details

Details for the file pypsx_toolkit-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 698ad93cbf5effab13a14c7a9ed9b6c788cb8b1c950cf69bd8e52dd622b20aba
MD5 8cbfbe9bb489e04c240c756c969c9605
BLAKE2b-256 446a9965c855f85e716902735a18b5755147b8cf59d1564971a9e7828fbf5239

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypsx_toolkit-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: workflow.yml on pypsx/libraries

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 Sentry Error logging StatusPage Status page