veridist 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- veridist-1.0.0/CHANGELOG.md +106 -0
- veridist-1.0.0/KNOWN_LIMITS.de.md +38 -0
- veridist-1.0.0/KNOWN_LIMITS.fa.md +34 -0
- veridist-1.0.0/KNOWN_LIMITS.md +35 -0
- veridist-1.0.0/LICENSE +45 -0
- veridist-1.0.0/MANIFEST.in +9 -0
- veridist-1.0.0/PKG-INFO +143 -0
- veridist-1.0.0/README.de.md +115 -0
- veridist-1.0.0/README.fa.md +123 -0
- veridist-1.0.0/README.md +109 -0
- veridist-1.0.0/pyproject.toml +110 -0
- veridist-1.0.0/setup.cfg +4 -0
- veridist-1.0.0/src/veridist/__init__.py +32 -0
- veridist-1.0.0/src/veridist/adapters/__init__.py +1 -0
- veridist-1.0.0/src/veridist/adapters/csv_lifetimes.py +587 -0
- veridist-1.0.0/src/veridist/domain/__init__.py +5 -0
- veridist-1.0.0/src/veridist/domain/lifetimes.py +47 -0
- veridist-1.0.0/src/veridist/engine/__init__.py +176 -0
- veridist-1.0.0/src/veridist/engine/checkpoint.py +470 -0
- veridist-1.0.0/src/veridist/engine/data_source.py +224 -0
- veridist-1.0.0/src/veridist/engine/delivery.py +492 -0
- veridist-1.0.0/src/veridist/engine/errors.py +141 -0
- veridist-1.0.0/src/veridist/engine/outcome.py +292 -0
- veridist-1.0.0/src/veridist/engine/pass_budget.py +106 -0
- veridist-1.0.0/src/veridist/engine/provenance.py +619 -0
- veridist-1.0.0/src/veridist/engine/resume.py +150 -0
- veridist-1.0.0/src/veridist/engine/retry.py +304 -0
- veridist-1.0.0/src/veridist/engine/streaming.py +101 -0
- veridist-1.0.0/src/veridist/execution.py +413 -0
- veridist-1.0.0/src/veridist/families/__init__.py +45 -0
- veridist-1.0.0/src/veridist/families/_reliability.py +75 -0
- veridist-1.0.0/src/veridist/families/exponential.py +257 -0
- veridist-1.0.0/src/veridist/families/lognormal.py +156 -0
- veridist-1.0.0/src/veridist/families/registry.py +297 -0
- veridist-1.0.0/src/veridist/families/weibull.py +127 -0
- veridist-1.0.0/src/veridist/inference.py +239 -0
- veridist-1.0.0/src/veridist/py.typed +1 -0
- veridist-1.0.0/src/veridist/reporting/__init__.py +5 -0
- veridist-1.0.0/src/veridist/reporting/exponential.py +303 -0
- veridist-1.0.0/src/veridist/statistics/__init__.py +27 -0
- veridist-1.0.0/src/veridist/statistics/distributions.py +256 -0
- veridist-1.0.0/src/veridist/statistics/exponential.py +199 -0
- veridist-1.0.0/src/veridist/statistics/log_density.py +363 -0
- veridist-1.0.0/src/veridist/statistics/log_likelihood.py +344 -0
- veridist-1.0.0/src/veridist.egg-info/PKG-INFO +143 -0
- veridist-1.0.0/src/veridist.egg-info/SOURCES.txt +47 -0
- veridist-1.0.0/src/veridist.egg-info/dependency_links.txt +1 -0
- veridist-1.0.0/src/veridist.egg-info/requires.txt +24 -0
- veridist-1.0.0/src/veridist.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Veridist changelog
|
|
2
|
+
|
|
3
|
+
This changelog covers only the nested `veridist` package. The repository-root
|
|
4
|
+
legacy changelog describes the frozen `distfit_pro` history and is not a
|
|
5
|
+
Veridist release record.
|
|
6
|
+
|
|
7
|
+
## [1.0.0] - 2026-09-11
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Candidate-bound execution evidence for complete, retry-resume, and
|
|
12
|
+
cancellation scenarios at 10k, 100k, and 1m rows on Linux, macOS, and
|
|
13
|
+
Windows. The release gate validates all 27 collected cells and their source
|
|
14
|
+
and result digests.
|
|
15
|
+
- Reproducible release validation that builds artifacts twice, canonicalizes
|
|
16
|
+
archive metadata, verifies byte equality, and retains the validated wheel
|
|
17
|
+
and source distribution.
|
|
18
|
+
- Isolated PyPI Trusted Publishing through GitHub OIDC and the protected
|
|
19
|
+
`pypi` environment. Published GitHub Release assets are the only artifacts
|
|
20
|
+
eligible for upload.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- Checkpointed CSV execution persists bounded adapter chunks in one
|
|
25
|
+
transaction and retains a committed prefix on cancellation for nonzero-
|
|
26
|
+
cursor resume.
|
|
27
|
+
|
|
28
|
+
### Quality
|
|
29
|
+
|
|
30
|
+
- Python 3.11 through 3.14, documentation, RTL browser, package, 95%
|
|
31
|
+
coverage, and fail-closed mutation gates remain release requirements.
|
|
32
|
+
|
|
33
|
+
## [0.9.1] - 2026-09-11
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- Checkpointed CSV execution commits bounded adapter chunks instead of opening
|
|
38
|
+
a SQLite transaction for every row. Cancellation persists the completed
|
|
39
|
+
prefix for nonzero-cursor resume.
|
|
40
|
+
- Candidate-bound 1.0 evidence collection verifies complete, resumed, and
|
|
41
|
+
cancelled 10k, 100k, and 1m-row runs on Linux, macOS, and Windows and rejects
|
|
42
|
+
digest drift.
|
|
43
|
+
- Citation File Format, Zenodo, and conda-forge release metadata is
|
|
44
|
+
version-aligned and validated in CI.
|
|
45
|
+
|
|
46
|
+
### Quality
|
|
47
|
+
|
|
48
|
+
- The 95% global line and branch coverage contract remains enforced; the
|
|
49
|
+
execution-module denominator is frozen at 179 statements and 70 branches.
|
|
50
|
+
- Competitive source-lock validation remains outside the package release gate
|
|
51
|
+
while ADR-0014 is Proposed; competitive drafts remain non-publishable.
|
|
52
|
+
|
|
53
|
+
## [0.9.0] - 2026-09-11
|
|
54
|
+
|
|
55
|
+
### Added
|
|
56
|
+
|
|
57
|
+
- Durable local SQLite checkpoints with generation-based compare-and-swap,
|
|
58
|
+
corruption detection, source-revision checks, and resumable exponential CSV
|
|
59
|
+
and canonical-chunk execution.
|
|
60
|
+
- Fixed-location Weibull-minimum and lognormal MLE cells for exact and
|
|
61
|
+
independently right-censored lifetimes, including typed failures and
|
|
62
|
+
frequency-weight contracts.
|
|
63
|
+
- Scalar CDF, survival, quantile, and caller-owned RNG sampling operations for
|
|
64
|
+
the declared continuous-family registry.
|
|
65
|
+
- AIC/BIC, adequacy-gated model selection, and refit Monte Carlo KS, AD, and
|
|
66
|
+
CvM goodness-of-fit for the uncensored exponential cell. Monte Carlo output
|
|
67
|
+
reports requested, successful, and failed refits plus sampling uncertainty.
|
|
68
|
+
|
|
69
|
+
### Quality
|
|
70
|
+
|
|
71
|
+
- Python 3.11 through 3.14 CI, package, documentation, RTL browser, coverage,
|
|
72
|
+
and fail-closed mutation gates pass on the release line.
|
|
73
|
+
- The inference module is registered with 129 statements and 46 branches and
|
|
74
|
+
is fully exercised by its contract and calibration tests.
|
|
75
|
+
|
|
76
|
+
### Known limits
|
|
77
|
+
|
|
78
|
+
See [Known limits](KNOWN_LIMITS.md). Inference remains limited to uncensored
|
|
79
|
+
exponential samples, checkpoints remain local SQLite, operations are scalar,
|
|
80
|
+
and no general performance, RSS, or universal best-fit claim is made.
|
|
81
|
+
|
|
82
|
+
## [0.5.0] - 2026-09-10
|
|
83
|
+
|
|
84
|
+
### Available in the candidate scope
|
|
85
|
+
|
|
86
|
+
- A strict UTF-8 CSV adapter for fixed-location, rate-only exponential MLE
|
|
87
|
+
with exact and independently right-censored lifetimes.
|
|
88
|
+
- Scalar log-density evaluation for normal, gamma, Weibull-minimum,
|
|
89
|
+
lognormal, and right-Gumbel families.
|
|
90
|
+
- Exact-state streaming log-likelihood reduction through the public
|
|
91
|
+
`IterableDataSource` contract.
|
|
92
|
+
- Bounded delivery that charges queued payload and active consumer leases.
|
|
93
|
+
- English, Persian, and German package documentation with Persian RTL checks.
|
|
94
|
+
- Candidate-bound coverage, mutation, scale-evidence, and release-validation
|
|
95
|
+
workflows.
|
|
96
|
+
|
|
97
|
+
### Release status
|
|
98
|
+
|
|
99
|
+
The package version is `0.5.0`. Its candidate-specific ADR-0020 gates passed
|
|
100
|
+
on the exact release candidate; retained CI and scale artifacts bind to that
|
|
101
|
+
candidate SHA.
|
|
102
|
+
|
|
103
|
+
### Known limits
|
|
104
|
+
|
|
105
|
+
See [Known limits](KNOWN_LIMITS.md). These limits are part of the release
|
|
106
|
+
contract and constrain every public 0.5 claim.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Bekannte Grenzen von Veridist 0.9
|
|
2
|
+
|
|
3
|
+
Dieses Dokument definiert die Release-Grenze 0.9 für Paketversion `1.0.0`.
|
|
4
|
+
|
|
5
|
+
- `FIT-CSV-EXP`: Der strikte CSV-Pfad passt nur ein Exponentialmodell mit
|
|
6
|
+
festem Ort und Rate für exakte und unabhängig rechtszensierte Lebensdauern
|
|
7
|
+
an. Weibull-Minimum und Lognormal sind über typisierte Lebensdauerobjekte,
|
|
8
|
+
nicht über eine allgemeine Datei-API, verfügbar. Analytische Gewichte,
|
|
9
|
+
Kovariaten, Trunkierung, Links- und Intervallzensierung sowie freie
|
|
10
|
+
Ortsparameter bleiben nicht unterstützt.
|
|
11
|
+
- `CSV-STRICT`: Der mitgelieferte Dateiadapter akzeptiert nur UTF-8-CSV mit
|
|
12
|
+
exakt `time,event_observed`; `1` bezeichnet ein exaktes Ereignis und `0`
|
|
13
|
+
unabhängige Rechtszensierung. Er ist kein allgemeiner CSV- oder
|
|
14
|
+
Tabellenkalkulationsleser.
|
|
15
|
+
- `SCALAR-FAMILIES`: Normal-, Gamma-, Weibull-Minimum-, Lognormal- und
|
|
16
|
+
Rechts-Gumbel-Familien bieten skalare Log-Dichte-, CDF-, Survival-, Quantil-
|
|
17
|
+
und Sampling-Operationen. Arrays, eine einheitliche Fit-API und Inferenz für
|
|
18
|
+
jede registrierte Familie fehlen.
|
|
19
|
+
- `STREAM-SOURCE`: `IterableDataSource` adaptiert Chunk-Iterables des Aufrufers.
|
|
20
|
+
Das Paket enthält keinen Parquet-, Arrow-, Dataframe-, Datenbank- oder
|
|
21
|
+
Netzwerkadapter. Dauerhafte Fortsetzung ist auf den strikten Lebensdauer-CSV-
|
|
22
|
+
Pfad und lokales SQLite begrenzt; ein verteilter Checkpoint-Store fehlt.
|
|
23
|
+
- `INFERENCE-EXP`: Refit-Monte-Carlo-KS/AD/CvM und adequacy-gesteuerte Auswahl
|
|
24
|
+
gelten nur für endliche positive unzensierte Exponentialstichproben. Es gibt
|
|
25
|
+
keine Bootstrap-Auswahlstabilität oder Kalibrierungsbehauptung außerhalb des
|
|
26
|
+
geprüften Gitters.
|
|
27
|
+
- `MEMORY-BOUND`: Die Liefergrenze umfasst Nutzdaten in der Warteschlange und
|
|
28
|
+
aktive Verbraucher-Leases bis zur ausdrücklichen Freigabe. Sie ist eine
|
|
29
|
+
logische Grenze für gehaltene Nutzdaten, keine portable RSS-Obergrenze.
|
|
30
|
+
- `SCALE-EVIDENCE`: Messungen gelten nur für den exakten Adapter, die Familie,
|
|
31
|
+
Arbeitslast, Plattform, Python-Version, Chunk-Grenze und Kandidaten-SHA. Sie
|
|
32
|
+
belegen weder universellen Durchsatz noch allgemeine Big-Data-Unterstützung
|
|
33
|
+
oder eine breite Out-of-Core-Fähigkeit.
|
|
34
|
+
- `LICENSE`: Das Paket verwendet BUSL-1.1 mit der in `LICENSE` beschriebenen
|
|
35
|
+
zusätzlichen Apache-2.0-Nutzungserlaubnis und wechselt am 2030-09-05 zu
|
|
36
|
+
Apache-2.0.
|
|
37
|
+
|
|
38
|
+
[English](KNOWN_LIMITS.md) | [فارسی](KNOWN_LIMITS.fa.md)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# محدودیتهای شناختهشدهٔ Veridist 0.9
|
|
2
|
+
|
|
3
|
+
این سند مرز انتشار 0.9 برای نسخهٔ بستهٔ `1.0.0` را تعریف میکند.
|
|
4
|
+
|
|
5
|
+
- `FIT-CSV-EXP`: مسیر CSV فقط مدل نمایی با مکان ثابت و پارامتر نرخ را برای
|
|
6
|
+
طولعمرهای دقیق و مستقلِ راستسانسورشده برازش میدهد. برازش Weibull-minimum
|
|
7
|
+
و Lognormal با اشیای طولعمر نوعدار قابلفراخوانی است و API عمومی فایل نیست.
|
|
8
|
+
وزن تحلیلی، متغیر کمکی، truncation، چپسانسوری، سانسور بازهای و مکان آزاد
|
|
9
|
+
پشتیبانی نمیشوند.
|
|
10
|
+
- `CSV-STRICT`: adapter فایل همراه بسته فقط CSV با UTF-8 و دقیقاً دو ستون
|
|
11
|
+
`time,event_observed` را میپذیرد؛ `1` رخداد دقیق و `0` راستسانسوری مستقل
|
|
12
|
+
است. این یک CSV reader یا spreadsheet reader عمومی نیست.
|
|
13
|
+
- `SCALAR-FAMILIES`: خانوادههای normal، gamma، Weibull-minimum، lognormal و
|
|
14
|
+
right-Gumbel عملیات اسکالر log-density، CDF، survival، quantile و sampling
|
|
15
|
+
دارند. ارزیابی array، API یکنواخت برازش و استنباط برای همهٔ خانوادهها ارائه
|
|
16
|
+
نمیشود.
|
|
17
|
+
- `STREAM-SOURCE`: `IterableDataSource`، iterableهای chunk متعلق به فراخواننده
|
|
18
|
+
را سازگار میکند. adapter برای Parquet، Arrow، dataframe، database یا network
|
|
19
|
+
همراه بسته نیست. ادامهٔ پایدار به مسیر CSV طولعمر سختگیرانه و SQLite محلی
|
|
20
|
+
محدود است و checkpoint توزیعشده نیست.
|
|
21
|
+
- `INFERENCE-EXP`: آزمونهای KS/AD/CvM با Monte Carlo و refit و انتخاب
|
|
22
|
+
adequacy-gated فقط برای نمونههای نمایی مثبت، متناهی و بدون سانسور هستند.
|
|
23
|
+
ثبات انتخاب bootstrap یا calibration بیرون از grid آزمودهشده ادعا نمیشود.
|
|
24
|
+
- `MEMORY-BOUND`: کران delivery، payload صف و lease فعال مصرفکننده را تا
|
|
25
|
+
release صریح محاسبه میکند. این کران منطقی payload نگهداریشده است، نه سقف
|
|
26
|
+
قابلحمل RSS.
|
|
27
|
+
- `SCALE-EVIDENCE`: اندازهگیری فقط برای adapter، خانواده، workload، platform،
|
|
28
|
+
نسخهٔ Python، حد chunk و SHA همان candidate معتبر است. این شواهد throughput
|
|
29
|
+
همگانی، پشتیبانی generic big-data یا قابلیت گستردهٔ out-of-core را ثابت
|
|
30
|
+
نمیکنند.
|
|
31
|
+
- `LICENSE`: مجوز بسته BUSL-1.1 با مجوز استفادهٔ اضافی Apache-2.0 مندرج در
|
|
32
|
+
`LICENSE` است و در 2030-09-05 به Apache-2.0 تغییر میکند.
|
|
33
|
+
|
|
34
|
+
[English](KNOWN_LIMITS.md) | [Deutsch](KNOWN_LIMITS.de.md)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Known limits for Veridist 0.9
|
|
2
|
+
|
|
3
|
+
This document defines the 0.9 release boundary for package version `1.0.0`.
|
|
4
|
+
|
|
5
|
+
- `FIT-CSV-EXP`: the strict CSV path fits only a fixed-location, rate-only
|
|
6
|
+
exponential model over exact and independently right-censored lifetimes.
|
|
7
|
+
Weibull-minimum and lognormal fits are callable over typed lifetime objects,
|
|
8
|
+
not through a general file-fitting API. Analytic weights, covariates,
|
|
9
|
+
truncation, left censoring, interval censoring, and free location parameters
|
|
10
|
+
remain unsupported.
|
|
11
|
+
- `CSV-STRICT`: the bundled file adapter accepts only UTF-8 CSV with exactly
|
|
12
|
+
`time,event_observed`, where `1` is an exact event and `0` is independent
|
|
13
|
+
right censoring. It is not a general CSV or spreadsheet reader.
|
|
14
|
+
- `SCALAR-FAMILIES`: normal, gamma, Weibull-minimum, lognormal, and
|
|
15
|
+
right-Gumbel expose scalar log-density, CDF, survival, quantile, and sampling
|
|
16
|
+
operations. They do not expose array evaluation, a uniform fitting API, or
|
|
17
|
+
inference for every registered family.
|
|
18
|
+
- `STREAM-SOURCE`: `IterableDataSource` adapts caller-owned chunk iterables.
|
|
19
|
+
The package bundles no Parquet, Arrow, dataframe, database, or network
|
|
20
|
+
adapter. Durable resume is limited to the strict lifetime CSV path and local
|
|
21
|
+
SQLite; it is not a distributed checkpoint store.
|
|
22
|
+
- `INFERENCE-EXP`: refit Monte Carlo KS/AD/CvM and adequacy-gated selection are
|
|
23
|
+
limited to finite positive uncensored exponential samples. There is no
|
|
24
|
+
bootstrap selection stability or calibration claim outside the tested grid.
|
|
25
|
+
- `MEMORY-BOUND`: the delivery bound covers queued payload and active consumer
|
|
26
|
+
leases until explicit release. It is a logical retained-payload bound, not a
|
|
27
|
+
portable RSS ceiling.
|
|
28
|
+
- `SCALE-EVIDENCE`: measurements apply only to their exact adapter, family,
|
|
29
|
+
workload, platform, Python version, chunk limit, and candidate SHA. They do
|
|
30
|
+
not establish universal throughput, generic big-data support, or a broad
|
|
31
|
+
out-of-core capability.
|
|
32
|
+
- `LICENSE`: the package uses BUSL-1.1 with the Apache-2.0 additional-use grant
|
|
33
|
+
stated in `LICENSE`; it changes to Apache-2.0 on 2030-09-05.
|
|
34
|
+
|
|
35
|
+
[فارسی](KNOWN_LIMITS.fa.md) | [Deutsch](KNOWN_LIMITS.de.md)
|
veridist-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Business Source License 1.1
|
|
2
|
+
|
|
3
|
+
Parameters:
|
|
4
|
+
|
|
5
|
+
Licensor: Ali Sadeghi Aghili
|
|
6
|
+
Licensed Work: py-distfit-pro
|
|
7
|
+
Additional Use Grant: You may make production use of the Licensed Work under the terms of the Apache License, Version 2.0, provided Your use is for personal, non-commercial purposes only.
|
|
8
|
+
"Personal, non-commercial purposes" means: (a) academic research and education; (b) internal business analytics not offered as a service to third parties; (c) personal projects and experimentation; (d) non-profit and open-source community work.
|
|
9
|
+
If Your use includes offering the Licensed Work to third parties on a hosted or embedded basis in order to compete with the Licensor's paid version of the Licensed Work, the Apache-2.0 grant does not apply and You must obtain a separate commercial license from the Licensor.
|
|
10
|
+
Change Date: 2030-09-05
|
|
11
|
+
Change License: Apache License, Version 2.0
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Terms
|
|
15
|
+
|
|
16
|
+
The Licensor hereby grants you the right to copy, modify, create derivative works, redistribute, and make non-production use of the Licensed Work.
|
|
17
|
+
|
|
18
|
+
The Licensor grants you the rights set forth in the Additional Use Grant.
|
|
19
|
+
|
|
20
|
+
If You breach any of the terms in this License, Your rights under this License shall terminate immediately.
|
|
21
|
+
|
|
22
|
+
If You have properly taken all steps required to comply with this License, the Licensor grants you the rights set forth in the Additional Use Grant.
|
|
23
|
+
|
|
24
|
+
The Licensed Work is protected by copyright and other intellectual property laws. The Licensor reserves all rights not expressly granted in this License.
|
|
25
|
+
|
|
26
|
+
The Licensed Work is provided "AS IS" without warranty of any kind, express or implied. The Licensor is not liable for any damages or claims arising out of the use of the Licensed Work.
|
|
27
|
+
|
|
28
|
+
This License is governed by the laws of the jurisdiction in which the Licensor is located, without regard to conflict of law principles.
|
|
29
|
+
|
|
30
|
+
For the avoidance of doubt, this License does not grant any rights under patent, trademark, or other intellectual property rights that may be applicable to the Licensed Work.
|
|
31
|
+
|
|
32
|
+
The Change Date is the date on which the Licensed Work will become available under the terms of the Change License.
|
|
33
|
+
|
|
34
|
+
The Change License is the license that will apply to the Licensed Work on the Change Date.
|
|
35
|
+
|
|
36
|
+
On the Change Date, this License will be automatically replaced by the Change License.
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
Notice
|
|
40
|
+
|
|
41
|
+
Business Source License 1.1 is a template license published by MariaDB plc. The parameters above are set by the Licensor.
|
|
42
|
+
|
|
43
|
+
For more information, see https://mariadb.com/bsl11/
|
|
44
|
+
|
|
45
|
+
SPDX-License-Identifier: BUSL-1.1
|
veridist-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: veridist
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Evidence-first distribution fitting with explicit execution contracts
|
|
5
|
+
Author-email: Ali Sadeghi Aghili <alisadeghiaghili@gmail.com>
|
|
6
|
+
License-Expression: BUSL-1.1
|
|
7
|
+
Project-URL: Homepage, https://github.com/alisadeghiaghili/veridist
|
|
8
|
+
Project-URL: Documentation, https://github.com/alisadeghiaghili/veridist/tree/main/python/docs
|
|
9
|
+
Project-URL: Repository, https://github.com/alisadeghiaghili/veridist
|
|
10
|
+
Project-URL: Issues, https://github.com/alisadeghiaghili/veridist/issues
|
|
11
|
+
Requires-Python: >=3.11
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Requires-Dist: numpy<3,>=1.26
|
|
15
|
+
Provides-Extra: test
|
|
16
|
+
Requires-Dist: coverage[toml]>=7.6; extra == "test"
|
|
17
|
+
Requires-Dist: mpmath==1.3.0; extra == "test"
|
|
18
|
+
Requires-Dist: PyYAML<7,>=6; extra == "test"
|
|
19
|
+
Requires-Dist: pytest>=8.3; extra == "test"
|
|
20
|
+
Requires-Dist: pytest-cov<8,>=6; extra == "test"
|
|
21
|
+
Provides-Extra: mutation
|
|
22
|
+
Requires-Dist: mutmut==3.7.0; extra == "mutation"
|
|
23
|
+
Requires-Dist: pytest>=8.3; extra == "mutation"
|
|
24
|
+
Provides-Extra: browser
|
|
25
|
+
Requires-Dist: playwright==1.62.0; extra == "browser"
|
|
26
|
+
Provides-Extra: lint
|
|
27
|
+
Requires-Dist: mypy>=1.13; extra == "lint"
|
|
28
|
+
Requires-Dist: ruff>=0.8; extra == "lint"
|
|
29
|
+
Provides-Extra: docs
|
|
30
|
+
Requires-Dist: Sphinx<9,>=8.2; extra == "docs"
|
|
31
|
+
Requires-Dist: myst-parser<5,>=4; extra == "docs"
|
|
32
|
+
Requires-Dist: sphinx-intl<3,>=2.3; extra == "docs"
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
|
|
35
|
+
# veridist
|
|
36
|
+
|
|
37
|
+
[English](https://github.com/alisadeghiaghili/veridist/blob/main/python/README.md) | [فارسی](https://github.com/alisadeghiaghili/veridist/blob/main/python/README.fa.md) | [Deutsch](https://github.com/alisadeghiaghili/veridist/blob/main/python/README.de.md)
|
|
38
|
+
|
|
39
|
+
## Status
|
|
40
|
+
|
|
41
|
+
`veridist` 1.0.0 is an evidence-backed public contract release.
|
|
42
|
+
It specifies and tests bounded delivery, replayability, pass budgets,
|
|
43
|
+
transactional retry, checkpoint compatibility, typed failures, execution
|
|
44
|
+
outcomes, and redacted provenance.
|
|
45
|
+
|
|
46
|
+
This build includes fixed-location Exponential, Weibull-minimum, and Lognormal
|
|
47
|
+
MLE cells for exact and independently right-censored lifetimes. They provide
|
|
48
|
+
point estimates when finite solutions exist and typed failures otherwise.
|
|
49
|
+
The uncensored exponential cell also has refit Monte Carlo KS, AD, and CvM
|
|
50
|
+
goodness-of-fit, AIC/BIC, calibration summaries, and adequacy-gated selection.
|
|
51
|
+
Inference is restricted to that declared cell and requires a caller-owned NumPy
|
|
52
|
+
generator.
|
|
53
|
+
Its public CSV path is strict: UTF-8 CSV with exactly `time,event_observed`,
|
|
54
|
+
event token `1`, and right-censoring token `0`. It executes one iterator pass
|
|
55
|
+
with a declared logical retained-payload chunk budget and returns a closed,
|
|
56
|
+
typed execution result. This is not a generic CSV reader or a portable RSS,
|
|
57
|
+
throughput, cancellation, retry, checkpoint, or broad out-of-core claim.
|
|
58
|
+
Retained evidence establishes bounded internal payload only for the measured
|
|
59
|
+
10k/100k/1m by 32KiB/64KiB/128KiB matrix; it does not establish a general
|
|
60
|
+
big-data or high-throughput capability.
|
|
61
|
+
|
|
62
|
+
`IterableDataSource` is the reusable public stream adapter for caller-owned
|
|
63
|
+
chunk iterables. Its immutable metadata explicitly declares one-pass or
|
|
64
|
+
replayable acquisition: a single-pass source fails with a typed pass-budget
|
|
65
|
+
error if acquired twice, while a replayable source requires an iterator
|
|
66
|
+
factory. `BoundedChunkBuffer` charges queued and consumer-held chunks until
|
|
67
|
+
`BufferedChunk.release()`; callers must release received chunks, normally in
|
|
68
|
+
`finally`. The only shipped file adapter remains the strict CSV lifetime
|
|
69
|
+
adapter—this does not add generic CSV, Parquet, Arrow, dataframe, database,
|
|
70
|
+
or broad out-of-core adapters.
|
|
71
|
+
|
|
72
|
+
For a sequential pure reducer, `veridist.engine.SQLiteCheckpointStore` provides
|
|
73
|
+
durable local checkpoint state with generation-based compare-and-swap and
|
|
74
|
+
cross-process SQLite locking. It is limited to one host and a local filesystem;
|
|
75
|
+
`fit_exponential_checkpointed_csv` supports explicit source-revision-bound
|
|
76
|
+
resume for the strict lifetime CSV path.
|
|
77
|
+
|
|
78
|
+
The separate scalar surface exposes immutable `FAMILY_REGISTRY` metadata for
|
|
79
|
+
normal, gamma, Weibull-minimum, lognormal, and right-Gumbel; scalar
|
|
80
|
+
`evaluate_log_density`, CDF, survival, quantile, and caller-owned RNG sampling
|
|
81
|
+
operations; and
|
|
82
|
+
exact-state `reduce_log_likelihood_chunks`. These operations are scalar and the
|
|
83
|
+
fit/inference capability matrix remains narrower than the operation registry.
|
|
84
|
+
The reducer represents successful binary64 terms exactly and rounds
|
|
85
|
+
the final total once; its unsigned-64 count cap implies a 2162-bit exact-total
|
|
86
|
+
bound. Its retained 10k/100k/1m evidence is scoped to tested normal streams.
|
|
87
|
+
|
|
88
|
+
Candidate scale measurement is deliberately manual: the `veridist-scale-evidence`
|
|
89
|
+
workflow first binds a clean, full candidate SHA and runs the evidence contracts,
|
|
90
|
+
then measures the public iterable likelihood and strict CSV/exponential paths on
|
|
91
|
+
Linux and Windows. It retains artifacts only after their own fail-closed SHA and
|
|
92
|
+
schema validation. Merely having this workflow, or a historical artifact, is not
|
|
93
|
+
evidence for a new candidate and is not a throughput or RSS claim.
|
|
94
|
+
|
|
95
|
+
## Install an evaluation build
|
|
96
|
+
|
|
97
|
+
Install from the nested source project after cloning the repository:
|
|
98
|
+
|
|
99
|
+
```console
|
|
100
|
+
git clone https://github.com/alisadeghiaghili/veridist.git
|
|
101
|
+
cd veridist/python
|
|
102
|
+
python -m pip install .
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Or install a wheel that you built or obtained from a specific verified run:
|
|
106
|
+
|
|
107
|
+
```console
|
|
108
|
+
python -m pip install /path/to/veridist-1.0.0-py3-none-any.whl
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
The project does not direct users to install an unreleased package name from a
|
|
112
|
+
public index.
|
|
113
|
+
|
|
114
|
+
## Try the experimental vertical
|
|
115
|
+
|
|
116
|
+
```python
|
|
117
|
+
from pathlib import Path
|
|
118
|
+
from tempfile import TemporaryDirectory
|
|
119
|
+
from veridist import CsvLifetimeLimits, CsvLifetimeSchema, PublicSourceId, fit_exponential_csv
|
|
120
|
+
from veridist.families import ExponentialFitSuccess
|
|
121
|
+
|
|
122
|
+
with TemporaryDirectory() as directory:
|
|
123
|
+
path = Path(directory) / "lifetimes.csv"
|
|
124
|
+
path.write_text("time,event_observed\n1,1\n1,0\n", encoding="utf-8")
|
|
125
|
+
fit = fit_exponential_csv(
|
|
126
|
+
path, schema=CsvLifetimeSchema("time", "event_observed"),
|
|
127
|
+
source_id=PublicSourceId("src_0123456789abcdef0123456789abcdef"),
|
|
128
|
+
limits=CsvLifetimeLimits(32768, 32768),
|
|
129
|
+
).fit
|
|
130
|
+
assert isinstance(fit, ExponentialFitSuccess)
|
|
131
|
+
assert fit.rate == 0.5
|
|
132
|
+
assert fit.inference == "not_provided"
|
|
133
|
+
assert fit.censoring_assumption == "independent_right_censoring"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
See the [documentation toolchain](docs/README.md) and the repository's
|
|
137
|
+
[evidence ledger](../docs/v1-readiness.md) for implemented checks and explicit
|
|
138
|
+
limits.
|
|
139
|
+
|
|
140
|
+
## License
|
|
141
|
+
|
|
142
|
+
BUSL-1.1 with an Apache-2.0 additional-use grant for personal,
|
|
143
|
+
non-commercial use; see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# veridist
|
|
2
|
+
|
|
3
|
+
[English](https://github.com/alisadeghiaghili/veridist/blob/main/python/README.md) | [فارسی](https://github.com/alisadeghiaghili/veridist/blob/main/python/README.fa.md) | [Deutsch](https://github.com/alisadeghiaghili/veridist/blob/main/python/README.de.md)
|
|
4
|
+
|
|
5
|
+
## Status
|
|
6
|
+
|
|
7
|
+
`veridist` 1.0.0 ist eine öffentlich dokumentierte Vertragsversion mit überprüfbaren Nachweisen.
|
|
8
|
+
Der aktuelle Stand spezifiziert und testet begrenzte Datenlieferung,
|
|
9
|
+
Wiederholbarkeit, Pass-Budgets, transaktionale Wiederholungen,
|
|
10
|
+
Checkpoint-Kompatibilität, typisierte Fehler, Ausführungsergebnisse und
|
|
11
|
+
redigierte Provenienz.
|
|
12
|
+
|
|
13
|
+
Dieser Stand enthält Exponential-, Weibull-Minimum- und Lognormal-MLE-Zellen mit
|
|
14
|
+
festem Ort für exakte und unabhängig rechtszensierte Lebensdauern. Wenn eine
|
|
15
|
+
endliche Lösung existiert, wird eine Punktschätzung zurückgegeben; andernfalls
|
|
16
|
+
entstehen typisierte Fehlschläge. Für die unzensierte Exponentialzelle gibt es
|
|
17
|
+
außerdem Refit-Monte-Carlo-KS-, AD- und CvM-Tests, AIC/BIC,
|
|
18
|
+
Kalibrierungszusammenfassungen und adequacy-gesteuerte Auswahl. Diese Inferenz
|
|
19
|
+
ist auf diese deklarierte Zelle und einen aufruferseitigen Generator begrenzt.
|
|
20
|
+
Der öffentliche CSV-Pfad ist strikt: UTF-8-CSV mit exakt
|
|
21
|
+
`time,event_observed`, Ereignis-Token `1` und Rechtszensur-Token `0`. Er führt
|
|
22
|
+
einen Iterator-Durchlauf mit einem deklarierten logischen Budget für behaltene
|
|
23
|
+
Payloads aus und gibt ein geschlossenes, typisiertes Ausführungsergebnis zurück.
|
|
24
|
+
Dies ist keine Behauptung über allgemeines CSV, portable RSS-Grenzen,
|
|
25
|
+
Durchsatz, Abbruch, Retry, Checkpoints oder breite Out-of-Core-Unterstützung.
|
|
26
|
+
Die hinterlegte Evidenz belegt begrenzte interne Payload nur für die gemessene
|
|
27
|
+
Matrix aus 10k/100k/1m Zeilen und 32KiB/64KiB/128KiB; daraus folgt keine
|
|
28
|
+
allgemeine Big-Data- oder Hochdurchsatzfähigkeit.
|
|
29
|
+
|
|
30
|
+
`IterableDataSource` ist der wiederverwendbare öffentliche Stream-Adapter für
|
|
31
|
+
aufruferseitige Chunk-Iterables. Seine unveränderlichen Metadaten erklären
|
|
32
|
+
Einmaligkeit oder Wiederholbarkeit ausdrücklich: Eine zweite Akquisition einer
|
|
33
|
+
Einmalquelle schlägt mit einem typisierten Pass-Budget-Fehler fehl; eine
|
|
34
|
+
wiederholbare Quelle benötigt eine Iterator-Factory. `BoundedChunkBuffer`
|
|
35
|
+
berechnet Bytes für eingereihte und vom Consumer gehaltene Chunks bis
|
|
36
|
+
`BufferedChunk.release()`; empfangene Chunks müssen, üblicherweise in
|
|
37
|
+
`finally`, freigegeben werden. Der einzige ausgelieferte Datei-Adapter bleibt
|
|
38
|
+
der strikte CSV-Lebensdauer-Adapter. Dies ergänzt weder allgemeines CSV noch
|
|
39
|
+
Parquet-, Arrow-, Dataframe-, Datenbank- oder breite Out-of-Core-Adapter.
|
|
40
|
+
|
|
41
|
+
Die separate skalare Oberfläche bietet unveränderliche `FAMILY_REGISTRY`-
|
|
42
|
+
Metadaten für Normal-, Gamma-, Weibull-Minimum-, Lognormal- und Rechts-Gumbel-
|
|
43
|
+
Familien, die skalare `evaluate_log_density` und die exakte Zustandsreduktion
|
|
44
|
+
`reduce_log_likelihood_chunks`. Sie ist keine generische Anpassungs-,
|
|
45
|
+
Inferenz-, Anpassungsgüte-, Ranking-, Array- oder Zensierungs-API.
|
|
46
|
+
Erfolgreiche binary64-Terme werden exakt repräsentiert; die Endsumme wird
|
|
47
|
+
einmal gerundet. Die unsigned-64-Zählgrenze ergibt eine 2162-Bit-Grenze für die
|
|
48
|
+
exakte Summe. Die Evidenz für 10k/100k/1m gilt nur für getestete Normalströme.
|
|
49
|
+
|
|
50
|
+
Die Scale-Messung eines Kandidaten ist bewusst manuell: Der Workflow
|
|
51
|
+
`veridist-scale-evidence` bindet zunächst den vollständigen SHA eines sauberen
|
|
52
|
+
Kandidaten und führt die Evidenzverträge aus. Erst dann misst er den öffentlichen
|
|
53
|
+
Iterable-Likelihood-Pfad und den strikten CSV/Exponential-Pfad unter Linux und
|
|
54
|
+
Windows. Artefakte werden erst nach ihrer eigenen fail-closed SHA- und
|
|
55
|
+
Schema-Validierung aufbewahrt. Das bloße Vorhandensein dieses Workflows oder eines
|
|
56
|
+
historischen Artefakts ist kein Beleg für einen neuen Kandidaten und keine
|
|
57
|
+
Durchsatz- oder RSS-Behauptung.
|
|
58
|
+
|
|
59
|
+
## Evaluierungsstand installieren
|
|
60
|
+
|
|
61
|
+
Nach dem Klonen wird das verschachtelte Python-Projekt installiert:
|
|
62
|
+
|
|
63
|
+
```console
|
|
64
|
+
git clone https://github.com/alisadeghiaghili/veridist.git
|
|
65
|
+
cd veridist/python
|
|
66
|
+
python -m pip install .
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Alternativ kann ein selbst gebautes oder aus einem bestimmten geprüften Lauf
|
|
70
|
+
bezogenes Wheel installiert werden:
|
|
71
|
+
|
|
72
|
+
```console
|
|
73
|
+
python -m pip install /path/to/veridist-1.0.0-py3-none-any.whl
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Das Projekt fordert nicht zur Installation eines unveröffentlichten
|
|
77
|
+
Paketnamens aus einem öffentlichen Index auf.
|
|
78
|
+
|
|
79
|
+
## Experimentelle Vertikale ausprobieren
|
|
80
|
+
|
|
81
|
+
```python
|
|
82
|
+
from pathlib import Path
|
|
83
|
+
from tempfile import TemporaryDirectory
|
|
84
|
+
from veridist import CsvLifetimeLimits, CsvLifetimeSchema, PublicSourceId, fit_exponential_csv
|
|
85
|
+
from veridist.families import ExponentialFitSuccess
|
|
86
|
+
|
|
87
|
+
with TemporaryDirectory() as directory:
|
|
88
|
+
path = Path(directory) / "lifetimes.csv"
|
|
89
|
+
path.write_text("time,event_observed\n1,1\n1,0\n", encoding="utf-8")
|
|
90
|
+
fit = fit_exponential_csv(
|
|
91
|
+
path, schema=CsvLifetimeSchema("time", "event_observed"),
|
|
92
|
+
source_id=PublicSourceId("src_0123456789abcdef0123456789abcdef"),
|
|
93
|
+
limits=CsvLifetimeLimits(32768, 32768),
|
|
94
|
+
).fit
|
|
95
|
+
assert isinstance(fit, ExponentialFitSuccess)
|
|
96
|
+
assert fit.rate == 0.5
|
|
97
|
+
assert fit.inference == "not_provided"
|
|
98
|
+
assert fit.censoring_assumption == "independent_right_censoring"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Weitere Einzelheiten stehen in der
|
|
102
|
+
[Dokumentations-Toolchain](docs/README.md) und im
|
|
103
|
+
[Evidenzregister](../docs/v1-readiness.md). Dort werden implementierte Prüfungen
|
|
104
|
+
und ausdrückliche Grenzen getrennt ausgewiesen.
|
|
105
|
+
|
|
106
|
+
## Lizenz
|
|
107
|
+
|
|
108
|
+
BUSL-1.1 mit einer zusätzlichen Apache-2.0-Nutzungserlaubnis für persönliche,
|
|
109
|
+
nicht-kommerzielle Nutzung; siehe [LICENSE](LICENSE).
|
|
110
|
+
Für einen sequentiellen, nebenwirkungsfreien Reducer bietet
|
|
111
|
+
`veridist.engine.SQLiteCheckpointStore` dauerhaften lokalen Checkpoint-Zustand
|
|
112
|
+
mit generationsbasiertem Compare-and-Swap und SQLite-Sperren zwischen
|
|
113
|
+
Prozessen. Der Umfang ist auf einen Rechner und ein lokales Dateisystem
|
|
114
|
+
beschränkt; der strikte CSV-Adapter verspricht noch kein automatisches
|
|
115
|
+
Checkpoint-Replay.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# veridist
|
|
2
|
+
|
|
3
|
+
[English](https://github.com/alisadeghiaghili/veridist/blob/main/python/README.md) | [فارسی](https://github.com/alisadeghiaghili/veridist/blob/main/python/README.fa.md) | [Deutsch](https://github.com/alisadeghiaghili/veridist/blob/main/python/README.de.md)
|
|
4
|
+
|
|
5
|
+
<div lang="fa" dir="rtl">
|
|
6
|
+
|
|
7
|
+
## وضعیت
|
|
8
|
+
|
|
9
|
+
`veridist` با نسخهٔ 1.0.0 یک انتشار عمومی با شواهد قابلبازبینی است.
|
|
10
|
+
این نسخه قراردادهای تحویل کراندار، بازپخشپذیری، بودجهٔ گذر، تلاش مجدد
|
|
11
|
+
تراکنشی، سازگاری checkpoint، شکستهای نوعدار، پیامدهای اجرا و منشأ دادهٔ
|
|
12
|
+
پالایششده از اطلاعات حساس را تعریف و آزمایش میکند.
|
|
13
|
+
|
|
14
|
+
این نسخه سلولهای MLE نمایی، Weibull-minimum و Lognormal با مکان ثابت برای
|
|
15
|
+
طول عمرهای دقیق و راستسانسورشدهٔ مستقل دارد. هرگاه راهحل متناهی وجود داشته
|
|
16
|
+
باشد، برآورد نقطهای برمیگرداند و در غیر این صورت شکستهای نوعدار میدهد.
|
|
17
|
+
برای سلول نمایی بدون سانسور، آزمونهای KS، AD و CvM با Monte Carlo و refit،
|
|
18
|
+
AIC/BIC، خلاصهٔ calibration و انتخاب مدل adequacy-gated نیز ارائه میشود؛ این
|
|
19
|
+
استنباط به همین سلول اعلامشده و generator متعلق به فراخواننده محدود است.
|
|
20
|
+
مسیر CSV عمومی آن سختگیرانه است: CSV با UTF-8 و دقیقاً سرستونهای
|
|
21
|
+
`time,event_observed`، توکن رخداد `1` و توکن راستسانسوری `0`. این مسیر یک
|
|
22
|
+
گذر از iterator با بودجهٔ منطقی payload نگهداشتهشده اجرا و نتیجهٔ اجرایی
|
|
23
|
+
بسته و نوعدار برمیگرداند. شواهد نگهداریشده فقط payload داخلی کراندار را
|
|
24
|
+
برای ماتریس اندازهگیریشدهٔ 10k/100k/1m ردیف و بودجههای
|
|
25
|
+
32KiB/64KiB/128KiB نشان میدهند؛ از آنها پشتیبانی عمومی از دادهٔ بزرگ یا
|
|
26
|
+
توان عملیاتی بالا نتیجه نمیشود. این ادعای سقف RSS قابلحمل، لغو، retry،
|
|
27
|
+
checkpoint یا برونحافظهای عمومی هم نیست.
|
|
28
|
+
|
|
29
|
+
`IterableDataSource` آداپتور عمومیِ قابلاستفادهمجدد برای iterableهای chunk
|
|
30
|
+
متعلق به فراخواننده است. فرادادهٔ تغییرناپذیر آن تکگذر یا بازپخشپذیر بودن را
|
|
31
|
+
صریح اعلام میکند: دریافت دوبارهٔ منبع تکگذر با خطای نوعدار بودجهٔ گذر شکست
|
|
32
|
+
میخورد و منبع بازپخشپذیر به iterator factory نیاز دارد. `BoundedChunkBuffer`
|
|
33
|
+
بایتهای chunkهای صفشده و در اختیار مصرفکننده را تا `BufferedChunk.release()`
|
|
34
|
+
حساب میکند؛ فراخواننده باید chunk دریافتشده را، معمولاً در `finally`، آزاد کند.
|
|
35
|
+
تنها آداپتور فایلِ ارائهشده همچنان آداپتور سختگیرانهٔ طولعمر CSV است؛ این
|
|
36
|
+
قابلیت آداپتورهای عمومی CSV، Parquet، Arrow، dataframe یا out-of-core نیست.
|
|
37
|
+
|
|
38
|
+
برای یک reducer خالص و ترتیبی، `veridist.engine.SQLiteCheckpointStore` وضعیت
|
|
39
|
+
checkpoint محلی پایدار را با compare-and-swap نسلی و قفلگذاری SQLite بین
|
|
40
|
+
فرایندها فراهم میکند. این قابلیت فقط برای یک میزبان و filesystem محلی است؛
|
|
41
|
+
`fit_exponential_checkpointed_csv` ادامهٔ صریح و وابسته به source revision را
|
|
42
|
+
برای مسیر CSV طولعمر سختگیرانه فراهم میکند.
|
|
43
|
+
این کار ادعای CSV عمومی، Parquet، Arrow، dataframe، پایگاهداده یا out-of-core
|
|
44
|
+
گسترده ایجاد نمیکند.
|
|
45
|
+
|
|
46
|
+
سطح اسکالر جداگانه فرادادههای تغییرناپذیر `FAMILY_REGISTRY` را برای پنج خانوادهٔ `normal`، `gamma`، `weibull_min`، `lognormal` و `gumbel_right`، عملیات `evaluate_log_density`، CDF، survival، quantile و نمونهگیری با RNG متعلق به فراخواننده و کاهشدهندهٔ حالتِ دقیق `reduce_log_likelihood_chunks` دارد. عملیات آرایهای نیستند و ماتریس برازش و استنباط از registry محدودتر است. هر چگالیِ لگاریتمی binary64 موفق متناهی است؛ کاهشدهنده آن را بهصورت تعداد صحیحِ دقیقِ واحدهای زیرنرمال انباشته میکند و فقط مجموع نهایی را یکبار به binary64 گرد میکند. کران شمارش unsigned-64 به کران ۲۱۶۲ بیت برای مجموع صحیحِ دقیق میانجامد. شواهد ۱۰k/۱۰۰k/۱m فقط مخصوص جریانهای `normal` آزمایششده است.
|
|
47
|
+
|
|
48
|
+
اندازهگیری scale برای candidate عمداً دستی است: workflow با نام
|
|
49
|
+
`veridist-scale-evidence` ابتدا SHA کامل و checkout تمیزِ candidate را bind و
|
|
50
|
+
قراردادهای شواهد را اجرا میکند؛ سپس مسیر likelihood با iterable عمومی و مسیر
|
|
51
|
+
سختگیرانهٔ CSV/نمایی را روی Linux و Windows اندازه میگیرد. artifact فقط پس از
|
|
52
|
+
اعتبارسنجی fail-closedِ SHA و schema خود نگهداری میشود. وجود این workflow یا
|
|
53
|
+
artifact تاریخی بهتنهایی شاهد یک candidate تازه نیست و ادعای throughput یا RSS
|
|
54
|
+
ایجاد نمیکند.
|
|
55
|
+
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
<div lang="fa" dir="rtl">
|
|
59
|
+
|
|
60
|
+
## نصب نسخهٔ ارزیابی
|
|
61
|
+
|
|
62
|
+
پس از clone کردن مخزن، پروژهٔ تودرتوی Python را نصب کنید:
|
|
63
|
+
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
```console
|
|
67
|
+
git clone https://github.com/alisadeghiaghili/veridist.git
|
|
68
|
+
cd veridist/python
|
|
69
|
+
python -m pip install .
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
<div lang="fa" dir="rtl">
|
|
73
|
+
|
|
74
|
+
یا wheel مشخصی را که خودتان ساختهاید یا از یک اجرای تأییدشده گرفتهاید نصب
|
|
75
|
+
کنید:
|
|
76
|
+
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
```console
|
|
80
|
+
python -m pip install /path/to/veridist-1.0.0-py3-none-any.whl
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
<div lang="fa" dir="rtl">
|
|
84
|
+
|
|
85
|
+
این پروژه کاربران را به نصب نام یک بستهٔ منتشرنشده از public index هدایت
|
|
86
|
+
نمیکند.
|
|
87
|
+
|
|
88
|
+
## آزمودن عمودی آزمایشی
|
|
89
|
+
|
|
90
|
+
</div>
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
from pathlib import Path
|
|
94
|
+
from tempfile import TemporaryDirectory
|
|
95
|
+
from veridist import CsvLifetimeLimits, CsvLifetimeSchema, PublicSourceId, fit_exponential_csv
|
|
96
|
+
from veridist.families import ExponentialFitSuccess
|
|
97
|
+
|
|
98
|
+
with TemporaryDirectory() as directory:
|
|
99
|
+
path = Path(directory) / "lifetimes.csv"
|
|
100
|
+
path.write_text("time,event_observed\n1,1\n1,0\n", encoding="utf-8")
|
|
101
|
+
fit = fit_exponential_csv(
|
|
102
|
+
path, schema=CsvLifetimeSchema("time", "event_observed"),
|
|
103
|
+
source_id=PublicSourceId("src_0123456789abcdef0123456789abcdef"),
|
|
104
|
+
limits=CsvLifetimeLimits(32768, 32768),
|
|
105
|
+
).fit
|
|
106
|
+
assert isinstance(fit, ExponentialFitSuccess)
|
|
107
|
+
assert fit.rate == 0.5
|
|
108
|
+
assert fit.inference == "not_provided"
|
|
109
|
+
assert fit.censoring_assumption == "independent_right_censoring"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
<div lang="fa" dir="rtl">
|
|
113
|
+
|
|
114
|
+
برای جزئیات، [زنجیرهٔ مستندسازی](docs/README.md) و
|
|
115
|
+
[دفتر شواهد](../docs/v1-readiness.md) را ببینید؛ قابلیتهای پیادهشده و
|
|
116
|
+
محدودیتها در آنها جدا شدهاند.
|
|
117
|
+
|
|
118
|
+
## مجوز
|
|
119
|
+
|
|
120
|
+
BUSL-1.1 با مجوز استفادهٔ اضافی Apache-2.0 برای استفادهٔ شخصی و غیرتجاری؛
|
|
121
|
+
متن کامل در [LICENSE](LICENSE) است.
|
|
122
|
+
|
|
123
|
+
</div>
|