gapit 0.2.2__py3-none-any.whl
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.
- gapit/__init__.py +3 -0
- gapit/blast.py +239 -0
- gapit/cli.py +128 -0
- gapit/cmd_db.py +113 -0
- gapit/cmd_db_build.py +72 -0
- gapit/cmd_db_install.py +126 -0
- gapit/cmd_db_outdated.py +51 -0
- gapit/cmd_db_search.py +66 -0
- gapit/cmd_screen.py +214 -0
- gapit/cmd_summary.py +65 -0
- gapit/config.py +51 -0
- gapit/data/snapshots/card.tar.gz +0 -0
- gapit/data/snapshots/vfdb.tar.gz +0 -0
- gapit/db.py +226 -0
- gapit/db_build_ops.py +210 -0
- gapit/db_ops.py +128 -0
- gapit/db_query_ops.py +252 -0
- gapit/dbbuild.py +207 -0
- gapit/dbcodec.py +117 -0
- gapit/dispatch.py +31 -0
- gapit/errors.py +87 -0
- gapit/fasta.py +123 -0
- gapit/formats/__init__.py +1 -0
- gapit/formats/json.py +309 -0
- gapit/formats/md.py +190 -0
- gapit/formats/schemas.py +30 -0
- gapit/formats/summary.py +103 -0
- gapit/formats/tsv.py +45 -0
- gapit/hits.py +107 -0
- gapit/mcp.py +158 -0
- gapit/mcp_schemas.py +123 -0
- gapit/mcp_tools.py +289 -0
- gapit/minimap.py +20 -0
- gapit/minimap2_run.py +114 -0
- gapit/paf.py +115 -0
- gapit/proctools.py +24 -0
- gapit/providers/__init__.py +39 -0
- gapit/providers/argannot.py +94 -0
- gapit/providers/bacmet2.py +59 -0
- gapit/providers/card.py +150 -0
- gapit/providers/common.py +245 -0
- gapit/providers/ecoh.py +63 -0
- gapit/providers/ecoli_vf.py +74 -0
- gapit/providers/megares.py +71 -0
- gapit/providers/ncbi.py +103 -0
- gapit/providers/plasmidfinder.py +69 -0
- gapit/providers/resfinder.py +123 -0
- gapit/providers/snapshots.py +119 -0
- gapit/providers/upec_expec_vf.py +85 -0
- gapit/providers/vfdb.py +92 -0
- gapit/providers/victors.py +109 -0
- gapit/py.typed +0 -0
- gapit/reads.py +221 -0
- gapit/records.py +152 -0
- gapit/report.py +25 -0
- gapit/screening.py +145 -0
- gapit/screening_reads.py +255 -0
- gapit/seqconvert.py +203 -0
- gapit/summary.py +151 -0
- gapit-0.2.2.dist-info/METADATA +183 -0
- gapit-0.2.2.dist-info/RECORD +64 -0
- gapit-0.2.2.dist-info/WHEEL +4 -0
- gapit-0.2.2.dist-info/entry_points.txt +3 -0
- gapit-0.2.2.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: gapit
|
|
3
|
+
Version: 0.2.2
|
|
4
|
+
Summary: Mass screening of contigs for antimicrobial resistance and virulence genes — agent-first Python reimplementation of abricate
|
|
5
|
+
Project-URL: Homepage, https://github.com/indexofire/gapit
|
|
6
|
+
Project-URL: Documentation, https://indexofire.github.io/gapit/
|
|
7
|
+
Project-URL: Changelog, https://github.com/indexofire/gapit/blob/main/CHANGELOG.md
|
|
8
|
+
Project-URL: Source, https://github.com/indexofire/gapit
|
|
9
|
+
Project-URL: Issues, https://github.com/indexofire/gapit/issues
|
|
10
|
+
Author-email: indexofire <indexofire@gmail.com>
|
|
11
|
+
License-Expression: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: AMR,bioinformatics,blast,genomics,virulence
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Intended Audience :: Science/Research
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: MacOS
|
|
18
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
25
|
+
Requires-Python: >=3.11
|
|
26
|
+
Requires-Dist: pydantic>=2.7
|
|
27
|
+
Requires-Dist: rich>=13
|
|
28
|
+
Requires-Dist: typer>=0.12
|
|
29
|
+
Description-Content-Type: text/markdown
|
|
30
|
+
|
|
31
|
+
# gapit
|
|
32
|
+
|
|
33
|
+
Mass screening of contigs and reads for antimicrobial resistance and virulence genes. An
|
|
34
|
+
agent-first Python reimplementation of [abricate](https://github.com/tseemann/abricate):
|
|
35
|
+
byte-compatible TSV plus first-class JSON and Markdown.
|
|
36
|
+
|
|
37
|
+
## Why gapit
|
|
38
|
+
|
|
39
|
+
- **Drop-in abricate replacement.** Same BLAST pipeline, same hit rules, abricate-format
|
|
40
|
+
TSV on stdout. Parity with abricate 1.4.0 is a release gate, checked by diffing gene
|
|
41
|
+
calls against real abricate (`pixi run -e parity parity`).
|
|
42
|
+
- **Machine-readable by design.** Versioned output schemas (`gapit.report/1`,
|
|
43
|
+
`gapit.reads/1`, `gapit.summary/1`), self-describing via `gapit schema`, typed JSON error
|
|
44
|
+
envelopes on stderr, documented exit codes. An agent can discover the whole contract
|
|
45
|
+
without reading docs.
|
|
46
|
+
- **Reads, not just contigs.** `gapit screen --r1/--r2` screens FASTQ through minimap2, and
|
|
47
|
+
`--r1` accepts assembly FASTA directly (content-detected, `map-ont` forced) for a fast
|
|
48
|
+
presence survey. abricate cannot screen raw reads.
|
|
49
|
+
|
|
50
|
+
## Install
|
|
51
|
+
|
|
52
|
+
[pixi](https://pixi.sh) manages the environment, including the external binaries
|
|
53
|
+
(BLAST+, minimap2):
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
git clone https://github.com/indexofire/gapit.git
|
|
57
|
+
cd gapit
|
|
58
|
+
pixi install
|
|
59
|
+
pixi run gapit --version
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The package supports Python 3.11+; the dev environment pins 3.14.
|
|
63
|
+
|
|
64
|
+
## Quick start
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Screen contigs (abricate-compatible TSV on stdout, --db defaults to ncbi)
|
|
68
|
+
gapit screen contigs.fa --db ncbi
|
|
69
|
+
|
|
70
|
+
# Agent- and human-readable outputs
|
|
71
|
+
gapit screen contigs.fa --db ncbi --format json
|
|
72
|
+
gapit screen contigs.fa --format md
|
|
73
|
+
|
|
74
|
+
# Screen FASTQ reads; --read-type picks the minimap2 preset
|
|
75
|
+
gapit screen --r1 sample_R1.fastq.gz --r2 sample_R2.fastq.gz --read-type sr --db card
|
|
76
|
+
gapit screen --r1 ont_reads.fastq.gz --read-type map-ont --format json
|
|
77
|
+
|
|
78
|
+
# Summarize report tables into a gene presence/absence matrix
|
|
79
|
+
gapit summary *.tsv
|
|
80
|
+
|
|
81
|
+
# Databases: card + vfdb install offline from bundled snapshots, others fetch on demand
|
|
82
|
+
gapit db fetch
|
|
83
|
+
gapit db fetch ncbi
|
|
84
|
+
gapit db list
|
|
85
|
+
gapit db outdated # flag stale databases and newer bundled snapshots
|
|
86
|
+
gapit db search "tet(M)" # look up genes across every installed database
|
|
87
|
+
gapit db build mydb my_genes.fa --tsv my_meta.tsv # custom db from any FASTA
|
|
88
|
+
|
|
89
|
+
# Introspection
|
|
90
|
+
gapit list # installed databases (abricate --list compatible)
|
|
91
|
+
gapit schema report # JSON Schema of gapit.report/1
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Contig screening follows abricate defaults (`--minid 80`, `--mincov 80`). Reads-mode
|
|
95
|
+
presence defaults to 90% alignment breadth (`--min-breadth 90`).
|
|
96
|
+
|
|
97
|
+
## Databases
|
|
98
|
+
|
|
99
|
+
A database is a directory under the datadir, resolved from `$GAPIT_DATADIR`, then
|
|
100
|
+
`~/.local/share/gapit/db` (override per call with `--datadir`). Twelve providers exist;
|
|
101
|
+
`card` and `vfdb` ship inside the wheel and install with zero network, the rest download
|
|
102
|
+
from upstream when fetched.
|
|
103
|
+
|
|
104
|
+
| Name | Content | dbtype |
|
|
105
|
+
|---|---|---|
|
|
106
|
+
| `ncbi` | NCBI AMRFinderPlus curated AMR (default db) | nucl |
|
|
107
|
+
| `card` | CARD protein homolog resistance models | nucl |
|
|
108
|
+
| `resfinder` | CGE ResFinder acquired resistance genes | nucl |
|
|
109
|
+
| `argannot` | ARG-ANNOT acquired resistance genes | nucl |
|
|
110
|
+
| `plasmidfinder` | CGE PlasmidFinder replicons | nucl |
|
|
111
|
+
| `megares` | MEGARes antimicrobial resistance genes | nucl |
|
|
112
|
+
| `ecoh` | E. coli O and H antigens (srst2 EcOH) | nucl |
|
|
113
|
+
| `vfdb` | VFDB virulence factors (set A, nucleotide) | nucl |
|
|
114
|
+
| `ecoli_vf` | E. coli virulence factors | nucl |
|
|
115
|
+
| `bacmet2` | BacMet2 biocide/resistance genes (protein) | prot |
|
|
116
|
+
| `victors` | Victors virulence factors | nucl |
|
|
117
|
+
| `upec_expec_vf` | UPEC/ExPEC virulence genes | nucl |
|
|
118
|
+
|
|
119
|
+
gapit also reads datadirs built by abricate itself (legacy `~~~` headers). The reverse
|
|
120
|
+
does not hold: gapit-native databases use the `gapit/v1` header format (see SPEC.md §11),
|
|
121
|
+
which abricate cannot read. Protein databases such as `bacmet2` screen through blastx.
|
|
122
|
+
|
|
123
|
+
## Output contract
|
|
124
|
+
|
|
125
|
+
- **stdout purity.** Data on stdout, diagnostics on stderr, always. `--quiet` silences
|
|
126
|
+
stderr only.
|
|
127
|
+
- **Deterministic.** Stable sort orders, fixed tool parameters, no wall-clock timestamps
|
|
128
|
+
inside data payloads.
|
|
129
|
+
- **Errors** print a JSON envelope to stderr and exit nonzero:
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
{"schema": "gapit.error/1", "code": "...", "message": "...", "context": {...}}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
| Exit code | Meaning |
|
|
136
|
+
|---|---|
|
|
137
|
+
| 0 | success |
|
|
138
|
+
| 1 | unexpected error |
|
|
139
|
+
| 2 | usage error |
|
|
140
|
+
| 3 | missing dependency |
|
|
141
|
+
| 4 | database error |
|
|
142
|
+
| 5 | input error |
|
|
143
|
+
|
|
144
|
+
## MCP server
|
|
145
|
+
|
|
146
|
+
gapit ships an MCP (Model Context Protocol) stdio server so agent runtimes can
|
|
147
|
+
screen assemblies without parsing CLI output: `gapit mcp` or the `gapit-mcp`
|
|
148
|
+
console script speaks newline-delimited JSON-RPC 2.0 on stdin/stdout (no extra
|
|
149
|
+
dependencies — the protocol is hand-rolled). It exposes nine tools:
|
|
150
|
+
`screen` (gapit.report/1 by default; `aligner minimap2` for a fast assembly
|
|
151
|
+
survey), `screen_reads` (FASTQ via minimap2, gapit.reads/1), `summary`
|
|
152
|
+
(gapit.summary/1), `schema`, `db_list`, plus the database tools `db_fetch`,
|
|
153
|
+
`db_build`, `db_search`, and `db_outdated` so an agent can self-provision
|
|
154
|
+
and inspect databases mid-session.
|
|
155
|
+
Tool failures return `isError: true` with the `gapit.error/1` envelope as text.
|
|
156
|
+
Register it with an MCP client:
|
|
157
|
+
|
|
158
|
+
```json
|
|
159
|
+
{"mcpServers": {"gapit": {"command": "gapit-mcp"}}}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Development
|
|
163
|
+
|
|
164
|
+
| Task | Runs |
|
|
165
|
+
|---|---|
|
|
166
|
+
| `pixi run lint` | ruff check |
|
|
167
|
+
| `pixi run fmt` | ruff format |
|
|
168
|
+
| `pixi run typecheck` | basedpyright (strict) |
|
|
169
|
+
| `pixi run test` | pytest, 374 offline tests |
|
|
170
|
+
| `pixi run -e parity parity` | byte-diff screening vs real abricate |
|
|
171
|
+
| `pixi run -e parity summary-parity` | byte-diff summary vs real abricate |
|
|
172
|
+
|
|
173
|
+
User documentation lives in [`docs/index.md`](docs/index.md), rendered at
|
|
174
|
+
<https://indexofire.github.io/gapit/>.
|
|
175
|
+
|
|
176
|
+
`SPEC.md` is the parity contract, `PLAN.md` the roadmap, `AGENTS.md` the contributor
|
|
177
|
+
guide, `CHANGELOG.md` the change history.
|
|
178
|
+
|
|
179
|
+
## License
|
|
180
|
+
|
|
181
|
+
gapit is MIT-licensed. It is a behavioral reimplementation of abricate (GPL-2.0) and
|
|
182
|
+
copies no Perl code; abricate itself remains GPL-2.0. Bundled database content retains
|
|
183
|
+
its original upstream licenses (SPEC.md §9).
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
gapit/__init__.py,sha256=npy8tLO68kPYUyXgBsYuFbzzd9AvxXloH74thCKEVnU,88
|
|
2
|
+
gapit/blast.py,sha256=gyZs-7qpSWXFMJ3ioYjFi1_CRCj2K701z8VKn23X0iQ,7324
|
|
3
|
+
gapit/cli.py,sha256=igE1dxq3WNtiaDFRUCGJxnQkVih61VRyoHt2ODCWWks,3871
|
|
4
|
+
gapit/cmd_db.py,sha256=o8tSQkLTL6sab_HJKzS07EPgDFTXBCAtv1wQ4btELiI,4268
|
|
5
|
+
gapit/cmd_db_build.py,sha256=YRyrO-4d9RIEhN900HV6-5llP-ktTmkiQr7-M2ClqOw,2205
|
|
6
|
+
gapit/cmd_db_install.py,sha256=8G4vb4RiKWu0PvprT7RNWLJQS5yyNhI0vUikPRQmgBY,4354
|
|
7
|
+
gapit/cmd_db_outdated.py,sha256=UDDps01d4VCtGjcnfehvGas5GprwzEI2V4NFempgQLE,1700
|
|
8
|
+
gapit/cmd_db_search.py,sha256=DXKgYVjxq2GBPhOYi0MrjK2u5Bp07SCrqK96vUYYz8g,2064
|
|
9
|
+
gapit/cmd_screen.py,sha256=Yc7bXv1eMSUnPno9Wm3cBLsQZQEBQrCsJvXeQ9yTDII,7324
|
|
10
|
+
gapit/cmd_summary.py,sha256=GTYCLco1A4ReNReDhe-HTQMN9TwPmXhiiUz_eHmLewY,2350
|
|
11
|
+
gapit/config.py,sha256=5MIkCNpaepiLcPfIHcD3j37DCPArq7fOQsklQDuLQjw,1748
|
|
12
|
+
gapit/db.py,sha256=iWbFQGZUoNIMovYXXa08DBEpFfrwqUz7oPai194Qiac,7605
|
|
13
|
+
gapit/db_build_ops.py,sha256=D2oqK9w-P7FtW9edqIALuPYhPy8WkRDb4uQ0CHcTmCc,8118
|
|
14
|
+
gapit/db_ops.py,sha256=rtqkMkPjQzBVMpEJ3B5BczT7GwlqVW2qO5K2Ul-5qCo,4298
|
|
15
|
+
gapit/db_query_ops.py,sha256=psFCO-oHKmQA_9O1cB6Di2pLmFVTxe8r30sVJtahqa0,8877
|
|
16
|
+
gapit/dbbuild.py,sha256=1hpeExTeYaoZX6tkGT-tSu8k-25X6WTNKjDBZwfVc4g,8646
|
|
17
|
+
gapit/dbcodec.py,sha256=R3zpGdQzYmWScXzFNxqdBxVyXGO1W2NeRa4EN7FHxrM,4352
|
|
18
|
+
gapit/dispatch.py,sha256=Wsr80ir-6PlCGCXv0ke_hwPsRqugKxNRjpIcf2Zwc9Y,975
|
|
19
|
+
gapit/errors.py,sha256=mgnjfrkKUeSGF_jWNY5Y6EdSASadqLd98syMCUQ9mO8,2495
|
|
20
|
+
gapit/fasta.py,sha256=Yp0TYHIETdgQCJdRUEiRdH73DXqAc_rcavpXz2H4obE,4827
|
|
21
|
+
gapit/hits.py,sha256=Rz6OhNT1eDJt8WN-LJ7pXXqTLkxpJFmGwLoHIROX7uE,3961
|
|
22
|
+
gapit/mcp.py,sha256=qTwNwgROWw1UWqvE9MgmBMJY9YLymolF66y0IcbySlU,6128
|
|
23
|
+
gapit/mcp_schemas.py,sha256=Iui7BVHMV5QqA2wGyoOGygaVJkzvPjBedmaLYupLVo8,5024
|
|
24
|
+
gapit/mcp_tools.py,sha256=H2PSr57Q2JVBGAZqssoCWcnoBYzAkXST9QrpxO8NC6I,10641
|
|
25
|
+
gapit/minimap.py,sha256=D02SblppMQO2xXXBPn1qkwMrm3NGffoUDjQAGywAa2Q,766
|
|
26
|
+
gapit/minimap2_run.py,sha256=kybiGQzOT6e9Hk4sUsn4KCEUmPTE0iET8G_Bt4rd43w,4415
|
|
27
|
+
gapit/paf.py,sha256=BeF0aPssqtkFB5y72sp5MceMYocx6ahynb61mgsqyqc,3970
|
|
28
|
+
gapit/proctools.py,sha256=MiNCxf3exIgvO7AE-4v1nKf3P-OXgIpcr2MSpQOLfX8,806
|
|
29
|
+
gapit/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
+
gapit/reads.py,sha256=mS3-BfR5_faDkTHZPuZtkfmGenbdrLxn_dZQQEqbwnY,7508
|
|
31
|
+
gapit/records.py,sha256=-y_jX33m6Lho2E2nKRL4VAgl7YhUkkIdBOa8koDKq3Q,5334
|
|
32
|
+
gapit/report.py,sha256=JCFfUynaE9u48BXAhBl3SVPcM4GMFp-UMvOC5GYmpn0,677
|
|
33
|
+
gapit/screening.py,sha256=SuNBI0j3gt8RsGkAUu0jAYPpWfczdJi7fWfWvQ_A4x8,5318
|
|
34
|
+
gapit/screening_reads.py,sha256=frEaYTOWnIc4eV2i0_ixnfTMNitS-frb9kOgz5TMi7w,9395
|
|
35
|
+
gapit/seqconvert.py,sha256=X8OQKCHuoEe6Ymy6EHAetc2cJsOLw_M922EoaNuRN5g,8076
|
|
36
|
+
gapit/summary.py,sha256=0FC4hGA5Xe8LUk1f6obh0PU6-ATRhgxJ-pXBGLAqX4s,5413
|
|
37
|
+
gapit/data/snapshots/card.tar.gz,sha256=ZYOMjU8WCSP7-MKWwPmGvVtV9_W1oVp7vrNUErlF4CU,778549
|
|
38
|
+
gapit/data/snapshots/vfdb.tar.gz,sha256=4YMiajFNmeUW1cYs8cG-0jX4LxVuNCrMjDpULqYseg4,1877853
|
|
39
|
+
gapit/formats/__init__.py,sha256=Vm0CRfUcoFVCFUW5fm0cIOkc5EijTvFD_A9dLrQp1Z0,89
|
|
40
|
+
gapit/formats/json.py,sha256=2t9ZZ0p16vqUHZTiMx7ygE-fAVb4vpq3Ie3sDtgZDkM,8986
|
|
41
|
+
gapit/formats/md.py,sha256=CFYsB0JixOECruqF0CyOXOKCyqnBsJsvTFFheJrPWS4,5693
|
|
42
|
+
gapit/formats/schemas.py,sha256=EzlT009nrY0QVz2R4vP1TQ9FbgdbjxsEYYDQIt0aBQ8,961
|
|
43
|
+
gapit/formats/summary.py,sha256=4o8g58rHwwZqrtGb6f-cp1-aecE4sgk-j83s7jXR9ok,3708
|
|
44
|
+
gapit/formats/tsv.py,sha256=xT9QkYdwxwU_wK1d4T7zOcSXvh2t6zb5xuIQel0-z74,1737
|
|
45
|
+
gapit/providers/__init__.py,sha256=aO6z2RsYHLlMeZlNybMuujaXeuhZNjvQ2UYyuEyMhyQ,1245
|
|
46
|
+
gapit/providers/argannot.py,sha256=DUfRJiRdhGv0oISr_iEhUv50frzAlzx4QXSo6Ixdl-k,3784
|
|
47
|
+
gapit/providers/bacmet2.py,sha256=uQuGV_H6h-JKKVkxRXA-YJB1vRLuSBPDRXeUsGW8fqc,2195
|
|
48
|
+
gapit/providers/card.py,sha256=-5Fm8pvkfElKPF8JMqib_2th6bTwHQJE_8vBYM6-GoA,5879
|
|
49
|
+
gapit/providers/common.py,sha256=ji6g-p4JaMHDRI8_6siYntUrLBY-5z5i5IsxloVIMa8,9784
|
|
50
|
+
gapit/providers/ecoh.py,sha256=3EoDbMqetrg5UwRbHrZS0ziOJxkQ4nD7N3KCyn7fezs,2332
|
|
51
|
+
gapit/providers/ecoli_vf.py,sha256=E-8Oxy7d2bPE3EWL5Z7j_KhVRgt-L9ls0M6BAxOOH0k,2849
|
|
52
|
+
gapit/providers/megares.py,sha256=B8IH_EGG1WFGFhy4A8M3_rjqRxJWH-GBVwiinuJze-c,2862
|
|
53
|
+
gapit/providers/ncbi.py,sha256=ziP7FBtO7pZBybgIfSrr8-7TO99Ggjd5z9xSeY_c_as,3953
|
|
54
|
+
gapit/providers/plasmidfinder.py,sha256=F7eFcHl0lg8wEk_ec1ug4dqIMYDem8fZnaj_d4BxQcE,2740
|
|
55
|
+
gapit/providers/resfinder.py,sha256=V1jyfIbHZQ-JdUlFI2PLhskf8MOv5q-fH1GsooEPItk,5144
|
|
56
|
+
gapit/providers/snapshots.py,sha256=KlTkmSJ5eCFw3AfHzMvtzRxcrSIQYf3pJwC_eRtURIs,4902
|
|
57
|
+
gapit/providers/upec_expec_vf.py,sha256=ZYdnKln-aXqxruHjnc_OMut9fgb3HR3yR-nwRv6X-lY,3035
|
|
58
|
+
gapit/providers/vfdb.py,sha256=00R9LrJ--Wj258xfvXI_HNZN9yNdBl1xgDgdW1Awe1s,3389
|
|
59
|
+
gapit/providers/victors.py,sha256=ljy5ORYgcnTFFe8zxD7HMrg4nwAhhTsyhmwfPtK3SbE,4316
|
|
60
|
+
gapit-0.2.2.dist-info/METADATA,sha256=cgkVLiAsyiiKyzw6bbyoRkaPCpJ9zjgKPDfMhRWe4Go,7426
|
|
61
|
+
gapit-0.2.2.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
62
|
+
gapit-0.2.2.dist-info/entry_points.txt,sha256=ZQFVrkUS1WgnRjxqbvK8tE0lPLmauKu5t2KSvjXlgxg,67
|
|
63
|
+
gapit-0.2.2.dist-info/licenses/LICENSE,sha256=BRqfGirnTzDMG2sCEWjasDGFmbGA0r9gQT_65tTsih4,1067
|
|
64
|
+
gapit-0.2.2.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 indexofire
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|