Skip to content

Releases: SafeerAhmad211/avs-framework

v0.1.1 — packaging, metadata, and first archived release

Choose a tag to compare

@SafeerAhmad211 SafeerAhmad211 released this 05 Aug 11:35

Packaging and infrastructure only. No functional or numerical change — every statistical method produces byte-identical output to v0.1.0.

pip install --upgrade avs-framework

This is the first release archived to Zenodo, and therefore the first with a citable DOI.

Fixed

  • License metadata rendered as the full MIT license text on PyPI. Declaring license = { file = "LICENSE" } embedded the entire license body into the distribution's License field, which PyPI displayed verbatim. Replaced with the PEP 639 SPDX expression, producing License-Expression: MIT under metadata version 2.4. The redundant License :: OSI Approved :: MIT License classifier is removed, as PEP 639 disallows pairing a classifier with an expression.

Changed

  • GitHub Actions bumped off the deprecated Node 20 runtime: checkout v4 → v7, setup-python v5 → v7, upload-artifact v4 → v7, download-artifact v4 → v8.
  • Build backend pinned to hatchling>=1.27, where PEP 639 support landed.

Added

  • .zenodo.json, so the archive record carries curated title, authorship, description, and keywords rather than values inferred from the repository, and declares the PyPI distribution as a related identifier.

Full detail in CHANGELOG.md.

v0.1.0 — first packaged release

Choose a tag to compare

@SafeerAhmad211 SafeerAhmad211 released this 05 Aug 11:12

First packaged release of the AVS Framework — the open-source statistical engine for the Audit and Security pillars.

Install:

pip install avs-framework

Added

  • AVSAdverseImpactAudit — adverse impact analysis implementing the four-fifths rule (29 C.F.R. 1607.4D), the pooled two-proportion Z-test, and Fisher's exact test, with four-level severity classification separating practical from statistical significance.
  • AVSNameSwapTest — black-box name-swap bias test for resume scoring models, using fully synthetic resumes.
  • AVSDriftDetector — chi-square demographic composition drift, Kolmogorov-Smirnov score distribution drift, and per-group selection-rate drift.
  • min_expected_cell_count — public helper exposing the gate that selects between the normal approximation and Fisher's exact test.
  • CITATION.cff for machine-readable citation metadata.
  • Test suite at 100% statement coverage, run against Python 3.10–3.13 in CI.

Fixed

  • Fisher's exact test selection gate. Previously evaluated expected cell counts using the reference group's own selection rate, examining only the comparison group's two cells. Now uses the pooled selection proportion across all four cells of the 2×2 table. Small reference groups are no longer masked by large comparison groups, so some small-sample analyses will correctly report Fisher's exact p-values where they previously reported normal-approximation values.
  • NumPy scalars leaked through the public API. AuditFinding fields and AVSDriftDetector return values held numpy.bool_ and numpy.float64 rather than Python natives, so results failed to serialize with json.dumps and identity comparisons such as result is True returned False. All public return values are now Python scalars.
  • Division by zero in demographic drift detection. A category present in the current period but absent from the baseline produced an expected count of zero and a RuntimeWarning. A newly appearing category is now reported directly as significant drift.

Changed

  • Restructured to an installable src/avs_framework/ layout. Imports change from from src.avs_audit import ... to from avs_framework import ...; modules renamed avs_auditaudit, avs_securitysecurity, avs_driftdrift.
  • Minimum supported Python raised to 3.10.

Full detail in CHANGELOG.md.