Skip to main content

Utilities for Standard Ranklist (srk).

Project description

algoux-standard-ranklist-utils

Python utilities for Standard Ranklist (srk).

Supported srk versions: >=0.3.0 <0.4.0.

Install

pip install algoux-standard-ranklist-utils

Usage Sample

from standard_ranklist_utils import diagnose_ranklist, format_time_duration, patch_ranklist, resolve_text, sort_rows

format_time_duration([1.5, "h"], "min")  # 90
resolve_text({"fallback": "English", "zh-CN": "中文"}, ["zh-CN"])  # 中文
sort_rows(ranklist["rows"], ranklist.get("sorter", {}).get("config"))
diagnostics = diagnose_ranklist(ranklist)
patched = patch_ranklist(ranklist, {"type": "srk-patch", "version": 1, "operations": []})

Utilities

formatters

  • format_time_duration: Convert an srk TimeDuration between ms, s, min, h, and d.
  • pre_zero_fill: Left-pad a number with zeroes for fixed-width display.
  • sec_to_time_str: Format elapsed seconds as a ranklist time string such as 1:02:03 or 1D 1:02:03.
  • number_to_alphabet: Convert a zero-based problem index to an alphabetic alias such as A, Z, or AA.
  • alphabet_to_number: Convert an alphabetic problem alias back to a zero-based index.

resolvers

  • resolve_text: Resolve plain or i18n srk text using explicit language preferences and fallback text.
  • resolve_contributor: Parse a contributor string into name, optional email, and optional url.
  • resolve_color: Normalize an srk color value to a CSS color string.
  • resolve_theme_color: Expand a single color or theme color object into explicit light and dark colors.
  • resolve_style: Resolve text/background style colors and auto-pick readable text color when needed.
  • resolve_user_markers: Resolve a user's marker IDs to marker definitions from the ranklist config.

ranklist

  • sort_rows: Sort rows by ICPC solved count descending and penalty time ascending, with optional ranking-time precision.
  • regenerate_ranklist_by_solutions: Rebuild rows, scores, sorting, and problem statistics from solution tetrads.
  • regenerate_rows_by_incremental_solutions: Apply incremental solution tetrads to existing rows and re-sort them.
  • convert_to_static_ranklist: Add precomputed per-series rank values and segment indexes to each row.

diagnostics and patch

  • diagnose_ranklist: Inspect SRK completeness/correctness and return structured issues plus repair suggestions.
  • patch_ranklist: Apply a pure srk-patch object to a deep-copied ranklist.
  • create_ranklist_patch_from_diagnostics: Convert diagnostic suggestions into an applicable srk-patch.

Project details


Download files

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

Source Distribution

algoux_standard_ranklist_utils-0.3.3.tar.gz (31.4 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file algoux_standard_ranklist_utils-0.3.3.tar.gz.

File metadata

File hashes

Hashes for algoux_standard_ranklist_utils-0.3.3.tar.gz
Algorithm Hash digest
SHA256 2022cb10370b2920a6dc6917aa7fcf9c269bbfab57e70d37b7b9e6454c1eb4be
MD5 3fe067a7c758e89836b4f94a8328587a
BLAKE2b-256 23bac41bef47450da38858082e24422a626dbca4859e2d2cc1a2cac4ef8b8181

See more details on using hashes here.

Provenance

The following attestation bundles were made for algoux_standard_ranklist_utils-0.3.3.tar.gz:

Publisher: release.yml on algoux/standard-ranklist-utils

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

File details

Details for the file algoux_standard_ranklist_utils-0.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for algoux_standard_ranklist_utils-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5628df843e9dcef7c8db405ce8fb77cc109aeb1e9c5061f6c1de8463725e2b94
MD5 bc162a0a5e22b0875e2daed06ae16f19
BLAKE2b-256 e1cd1e935b4998c2a7dc9d60f0bc36541406101d409f18a6bb4f45839ed90814

See more details on using hashes here.

Provenance

The following attestation bundles were made for algoux_standard_ranklist_utils-0.3.3-py3-none-any.whl:

Publisher: release.yml on algoux/standard-ranklist-utils

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

Supported by

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