Releases: SafeerAhmad211/avs-framework
Releases · SafeerAhmad211/avs-framework
Release list
v0.1.1 — packaging, metadata, and first archived release
Packaging and infrastructure only. No functional or numerical change — every statistical method produces byte-identical output to v0.1.0.
pip install --upgrade avs-frameworkThis 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'sLicensefield, which PyPI displayed verbatim. Replaced with the PEP 639 SPDX expression, producingLicense-Expression: MITunder metadata version 2.4. The redundantLicense :: OSI Approved :: MIT Licenseclassifier is removed, as PEP 639 disallows pairing a classifier with an expression.
Changed
- GitHub Actions bumped off the deprecated Node 20 runtime:
checkoutv4 → v7,setup-pythonv5 → v7,upload-artifactv4 → v7,download-artifactv4 → 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
First packaged release of the AVS Framework — the open-source statistical engine for the Audit and Security pillars.
Install:
pip install avs-frameworkAdded
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.cfffor 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.
AuditFindingfields andAVSDriftDetectorreturn values heldnumpy.bool_andnumpy.float64rather than Python natives, so results failed to serialize withjson.dumpsand identity comparisons such asresult is TruereturnedFalse. 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 fromfrom src.avs_audit import ...tofrom avs_framework import ...; modules renamedavs_audit→audit,avs_security→security,avs_drift→drift. - Minimum supported Python raised to 3.10.
Full detail in CHANGELOG.md.