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
  • 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

import pypsx_toolkit

ticker = pypsx_toolkit.PSXTicker("OGDC")

# Properties (no parentheses)
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("2024-01-01", "2024-12-31")     # 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

import pypsx_toolkit

symbols = ["OGDC", "HBL"]

pypsx_toolkit.download(symbols, period="1y", interval="1d")         # Batch download
pypsx_toolkit.get_intraday_multiple(symbols)                        # Multiple intraday
pypsx_toolkit.get_historical("OGDC", "2024-01-01", "2024-12-31")    # 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: dividend records use their own column naming, which differs from the conventions used elsewhere in the toolkit.
  • 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 Distribution

pypsx_toolkit-3.1.0.tar.gz (29.1 kB view details)

Uploaded Source

Built Distributions

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

pypsx_toolkit-3.1.0-cp314-cp314-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.14Windows x86-64

pypsx_toolkit-3.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pypsx_toolkit-3.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (12.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pypsx_toolkit-3.1.0-cp313-cp313-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.13Windows x86-64

pypsx_toolkit-3.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pypsx_toolkit-3.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (12.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

pypsx_toolkit-3.1.0-cp312-cp312-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.12Windows x86-64

pypsx_toolkit-3.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (13.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pypsx_toolkit-3.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (12.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pypsx_toolkit-3.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (11.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pypsx_toolkit-3.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (11.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file pypsx_toolkit-3.1.0.tar.gz.

File metadata

  • Download URL: pypsx_toolkit-3.1.0.tar.gz
  • Upload date:
  • Size: 29.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for pypsx_toolkit-3.1.0.tar.gz
Algorithm Hash digest
SHA256 cfaf5014c4caabecabe1cc70ff05ddacd1739186152525688e38ae3b5ddd4086
MD5 19d614ca0c7acd9a7627bb56b16cd985
BLAKE2b-256 ac551718f275833345080161b850f7ab1aded53b28136e3aa3cce13e8be0809b

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 daec44e92c3d70e785614cabc71284c925f7681f35a2474f24cb56216fd1fa36
MD5 881297ff3291dbc183c630e5f1b42187
BLAKE2b-256 b2548fe809da66a535c27dfefc6bc237ad739e5c557a8493f5c0e57f338d27a1

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1320d8183d1e403f62255257882299147f552a23be56fc29ec29439babccf510
MD5 3a87041da981df7629244d043f7fd4dd
BLAKE2b-256 d663d16a366e827eb79727e747478c2392958efb30c90c92dc394e915a3d77a5

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c4b616c2f903204aacb66340c2b567126b11291d6c7ec431f4a63b00cfb9b485
MD5 dfc49cb2d7900146117e8143b191cdab
BLAKE2b-256 a4ad52576bc055dbc843271bacbf2970a59c13cd8d0ef4b7f94fa350e57bab30

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 72190741f47aab18a6ecb79134f2c21f90b2ec8f4f596e2e6052eec0fe9a133f
MD5 572b45b18880c96c960e4e2549354830
BLAKE2b-256 1e68cf75c4a910fcab274d08330e7dd3867da6fa9cce007d0ee92f3ec34bc9f3

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5e4b97cd93fe324288228d8c99f649b0f8d74f8acea8ff321a0648dc76e59c0c
MD5 3c87934645c79b8450043c7250c32c20
BLAKE2b-256 19d2595befb1a7e8713bfd4e983f674d10076b91a3b24965c679066eac1aecbd

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 27b8a4f09184a93cf9586a5debdff4f937a80a2e0d324e0d8684f6e421c0f89e
MD5 e354652bc6e12cc737b98ecc1caf7bb6
BLAKE2b-256 e83ab3f640870329ca483e5d811ba13bce33fbed004fa6e803eaf86e57eaa9a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5c0ee18a46476d4342e94edd98f3e4ac8f56f43dd738843073242fd1dd4715c2
MD5 c53e10cf38910f0f9cdaf9ec6c3d379b
BLAKE2b-256 73564ab03a7b69cb868c3617d41e988cd5ff1d442c45cb0502f81aaf229a1254

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 14b2a0070b3c5790481b000d8b7dbc57fea60a888dcbbe694b1ff874d367ed64
MD5 96e1a0a4a3b6045be3b0f1cb2d86864d
BLAKE2b-256 2fb0b2d100c519a18f2a21495bf97ef516908137aaf822e255deabc4d77acdb4

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 96b107efcedc444a5b3cc725b487d4457af879cd02dfe7bf00f344a3d3c1e393
MD5 33ab68c7754b90f30dcb925038930c0a
BLAKE2b-256 bc166c2a295ada7fdc268a4f0efe811dbf0127794c7e9fd36365f6518243ff11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ac626e7a6aa962b07766fc619abdb3cd61d3d05de4d4f0d092915f2583c81e20
MD5 8a264e2071d7d3e97bf3c5ac78bf4252
BLAKE2b-256 9ab22d485dfda1502985e296c5d3be24593a059b8ea1ca75f69c562fee982c0b

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 baa0c7aeb1a4af0be16aea6c9db9214b918b4ab39d59b5b9a3c375cc5d7d59d6
MD5 7693635c265a3f365419319c2d1b2988
BLAKE2b-256 500a37ddf99a78df5543e7549bd3b4b9fb516accee74e5987302dd242013ee64

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8814a3449a63a7c567740dba7e0ba3136ca5fb447b474dc43051202f77003a99
MD5 2d989ab0683753611627c878379fa5fb
BLAKE2b-256 5a03776cfe82362fc019a82f4464bf156d79211b520f2a847f76975271e1478e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cdae373e102c0cbbdd4f3955eaa45bbb2e9a83bfe14807623f547000e7d6953b
MD5 353bbdbb314cea10674c4a48786b57c3
BLAKE2b-256 d80c1795848cfaf5c89afe95f0d1cda51120654c792ab41d624d4ed8c91cc410

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ccbbc59382688ddcb949e7e4fe3434f34e973677ee221b56bd094ad466b07df1
MD5 408d5f15805fe686d18681d1ea94aba7
BLAKE2b-256 b986bd77e64a0616c8c1c15d782c12fc1d4f4220046c821277c343f617ca9288

See more details on using hashes here.

File details

Details for the file pypsx_toolkit-3.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pypsx_toolkit-3.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 29b322ca90636b4eeefa237d3967e513a3093339604ddac9ac4d227a0478b02b
MD5 c4cd587341dc04214fbd70758f0accf5
BLAKE2b-256 ce3faa5cb3c5e4c113900bd256da62e1d0e0e7903a3a18301965a5bfe88282e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page