Skip to main content

PureSkill.gg Data Science Development Kit

PyPI GitHub Actions

The shared Python toolkit behind PureSkill.gg’s Counter-Strike data pipeline. It reads parsed matches (CSDS: a JSON manifest plus one parquet file per channel) from S3 or disk into pandas, consumes SQS work queues, loads models from S3 or SageMaker, builds multi-match datasets (“tomes”), and exports AWS Data Exchange revisions. It is a library only: every bucket, queue and dataset is an argument you pass in.

Installation

Requires Python 3.11 or later.

$ uv add pureskillgg-dsdk

The s3_xgboost model type needs the xgboost extra:

$ uv add "pureskillgg-dsdk[xgboost]"

Reading tomes into polars (get_dataframe(library="polars") and scan()) needs the polars extra:

$ uv add "pureskillgg-dsdk[polars]"

Usage

Read CSDS channels into DataFrames:

from pureskillgg_dsdk import DsReaderS3, GameDsLoader

reader = DsReaderS3(bucket="my-csds-bucket", manifest_key="path/to/match/csds")
loader = GameDsLoader(reader=reader)

deaths = loader.get_channel(
    {"channel": "player_death", "columns": ["round", "tick", "attacker_id"]}
)
data = loader.get_channels([{"channel": "header"}, {"channel": "round_end"}])

DsReaderFs(root_path=..., manifest_key=...) reads the same layout from disk. Leave out columns to read every column.

Consume an SQS queue:

import structlog
from pureskillgg_dsdk import SqsConsumer

async def handler(content, metadata):
    # content is the message's parsed JSON body.
    return True  # Delete the message. False leaves it for the redrive policy.

consumer = SqsConsumer(
    queue="my-queue", handler=handler, log=structlog.get_logger(), concurrency=4
)
consumer.run()  # Blocks. consumer.start() schedules it on a running loop.

Modules

Module

Main exports

Used by

ds_io

GameDsLoader, DsReaderS3, DsReaderFs

csgo-coach, csgo-ppp, igl-pipeline’s coach_evaluate runner

sqs

SqsConsumer, DeleteMessage, SqsJsonMessageTranslator

csgo-coach, csgo-ppp

ds_models

create_ds_models: SageMaker endpoints, and scikit-learn, XGBoost, DataFrame and hashmap models stored on S3

csgo-coach

tome

TomeCuratorFs, create_tome_curator

the makenew-pyskill template’s notebooks

adx

get_adx_dataset_revisions, download_adx_dataset_revision, extract_adx_zips, and the export_* and *_auto_exporting_* functions

the makenew-pyskill template’s notebooks

pureskillgg-csgo-dsdk uses this package in its tests only.

Documentation

Development

You need Python 3, uv and Git LFS (the test fixtures are in LFS).

$ git clone https://github.com/pureskillgg/dsdk.git
$ cd dsdk
$ git lfs install
$ git lfs pull
$ uv sync

The tasks are in the Makefile: make lint, make test, make watch (tests on every change) and make format.

Publishing

Set the new version with uv version <version> (or uv version --bump patch), then run make version. It commits pyproject.toml and uv.lock and pushes a signed v* tag, which triggers the publish workflow. Or run the version workflow by hand with a version number or a bump (patch, minor, major); it does both steps.

Publishing needs the PYPI_API_TOKEN repository secret. The version and format workflows also need GH_USER, GH_TOKEN, GIT_USER_NAME, GIT_USER_EMAIL, GPG_PRIVATE_KEY and GPG_PASSPHRASE.

License

MIT. See LICENSE.txt.

Metadata

Release files for pureskillgg-dsdk 4.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pureskillgg-dsdk 4.1.2
File Size Uploaded Provenance Actions
pureskillgg_dsdk-4.1.2.tar.gz 85.9 kB Without provenance Details for pureskillgg_dsdk-4.1.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pureskillgg-dsdk 4.1.2
File Interpreter ABI Platform Actions
pureskillgg_dsdk-4.1.2-py3-none-any.whl Python 3 none any Details for pureskillgg_dsdk-4.1.2-py3-none-any.whl

Total release size: 197.8 kB

Release files / pureskillgg_dsdk-4.1.2.tar.gz

Download URL pureskillgg_dsdk-4.1.2.tar.gz
Size 85.9 kB
Tags Source
SHA-256 checksum
How to use checksums
dc8228fb74241331ec3033f6c3ba61e5ea1608e3b7167b780ea045e0f005e494
BLAKE2b-256 checksum
How to use checksums
f2122c8127e72deea2347225f306c2fcedba6190fa5714512f66a1a4a19100f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pureskillgg_dsdk-4.1.2-py3-none-any.whl

Download URL pureskillgg_dsdk-4.1.2-py3-none-any.whl
Size 111.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6bcbf1835c3f26d3ec9a9cf91b04c849d9b0307f524575642d2aad5862d568fe
BLAKE2b-256 checksum
How to use checksums
49e2da14bfeabaebba45e51d767a115d8ac737a8e43d7bccb26286fd254abef1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for pureskillgg-dsdk 4.1.2

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

4.1.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page