gentroutils 3.0.0__tar.gz → 3.1.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.
- {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/build.yaml +7 -4
- {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/tag.yaml +6 -2
- {gentroutils-3.0.0 → gentroutils-3.1.0}/CHANGELOG.md +174 -0
- gentroutils-3.1.0/Dockerfile +29 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/Makefile +4 -1
- {gentroutils-3.0.0 → gentroutils-3.1.0}/PKG-INFO +11 -7
- {gentroutils-3.0.0 → gentroutils-3.1.0}/README.md +9 -5
- {gentroutils-3.0.0 → gentroutils-3.1.0}/pyproject.toml +2 -2
- {gentroutils-3.0.0 → gentroutils-3.1.0}/uv.lock +2 -2
- gentroutils-3.0.0/Dockerfile +0 -16
- {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/labeler.yaml +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/pr.yaml +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/release.yaml +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/release_pr.yaml +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/.gitignore +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/.pre-commit-config.yaml +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/.vscode/extensions.json +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/.vscode/settings.json +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/LICENSE +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/commitlint.config.js +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/config.yaml +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/conftest.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/docs/00_prepare_tables_for_curation.R +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/docs/gwas_catalog_curation.md +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/setup.sh +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/__init__.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/errors.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/path/__init__.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/path/ftp.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/path/gcs.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/transfer/__init__.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/transfer/ftp_to_gcs.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/transfer/model.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/transfer/polars_to_gcs.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/parsers/__init__.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/parsers/curation.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/py.typed +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/tasks/__init__.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/tasks/crawl.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/tasks/curation.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/tasks/fetch.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/transfer.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/ftp/test/databases/gwas/summary_statistics/harmonised_list.txt +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/gsutil_list.txt +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/correct_curation.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_analysisFlag_type.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_analysisFlag_value.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_columns_curation.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_publicationTitle_type.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_pubmedId_type.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyId_type.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyId_value.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyType_type.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyType_value.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_traitFromSource_type.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/non_unique_studyId.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/null_value_in_studyId.tsv +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/test.h.tsv.gz +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/conftest.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/path/conftest.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/path/test_ftp.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/path/test_gcs.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/transfer/conftest.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/transfer/test_ftp_to_gcs.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/transfer/test_model.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/transfer/test_polars_to_gcs.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/parsers/conftest.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/parsers/test_curation.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/tasks/conftest.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/tasks/test_crawl_task.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/tasks/test_curation_task.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/tasks/test_fetch_task.py +0 -0
- {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/test_transfer.py +0 -0
|
@@ -8,11 +8,12 @@ env:
|
|
|
8
8
|
GCP_PROJECT_ID: "open-targets-genetics-dev"
|
|
9
9
|
GCP_REGION: "europe-west1"
|
|
10
10
|
TAG: "${{ github.ref_name }}"
|
|
11
|
-
REPO: "${{ github.event.
|
|
11
|
+
REPO: "${{ github.event.repository.name }}"
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
jobs:
|
|
15
15
|
push-to-ghcr-and-gar:
|
|
16
|
+
if: startsWith(github.ref, 'refs/tags/')
|
|
16
17
|
name: Build docker image and push to GHCR and GAR
|
|
17
18
|
runs-on: ubuntu-22.04
|
|
18
19
|
|
|
@@ -54,7 +55,9 @@ jobs:
|
|
|
54
55
|
name: Authenticate to Google Cloud
|
|
55
56
|
uses: google-github-actions/auth@v2
|
|
56
57
|
with:
|
|
58
|
+
token_format: access_token
|
|
57
59
|
project_id: ${{ env.GCP_PROJECT_ID }}
|
|
60
|
+
service_account: github-actions@open-targets-genetics-dev.iam.gserviceaccount.com
|
|
58
61
|
workload_identity_provider: projects/234703259993/locations/global/workloadIdentityPools/github/providers/opentargets
|
|
59
62
|
access_token_lifetime: 300s
|
|
60
63
|
|
|
@@ -75,13 +78,13 @@ jobs:
|
|
|
75
78
|
tags: |
|
|
76
79
|
ghcr.io/${{ github.repository }}:latest
|
|
77
80
|
ghcr.io/${{ github.repository }}:${{ env.TAG }}
|
|
78
|
-
${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/${{ env.REPO }}
|
|
79
|
-
${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/${{ env.REPO }}:${{ env.TAG }}
|
|
81
|
+
${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/opentargets/${{ env.REPO }}:latest
|
|
82
|
+
${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/opentargets/${{ env.REPO }}:${{ env.TAG }}
|
|
80
83
|
|
|
81
84
|
- id: generate-attestations
|
|
82
85
|
name: Generate artifact attestation
|
|
83
86
|
uses: actions/attest-build-provenance@v1
|
|
84
87
|
with:
|
|
85
|
-
subject-name: ${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/${{ env.REPO }}
|
|
88
|
+
subject-name: ${{ env.GCP_REGION }}-docker.pkg.dev/${{ env.GCP_PROJECT_ID }}/opentargets/${{ env.REPO }}
|
|
86
89
|
subject-digest: ${{ steps.push.outputs.digest }}
|
|
87
90
|
push-to-registry: true
|
|
@@ -4,12 +4,16 @@ on:
|
|
|
4
4
|
branches:
|
|
5
5
|
- dev
|
|
6
6
|
- main
|
|
7
|
+
tags-ignore: # Prevent running the action on the tag
|
|
8
|
+
- '*'
|
|
7
9
|
|
|
8
10
|
|
|
9
11
|
jobs:
|
|
10
12
|
create-tag:
|
|
11
|
-
# NOTE: only trigger the workflow when
|
|
12
|
-
if:
|
|
13
|
+
# NOTE: only trigger the workflow only when human user pushed to the branch (prevent self-triggering)
|
|
14
|
+
if: |
|
|
15
|
+
!contains(fromJSON('["github-actions[bot]", "semantic-release"]'), github.actor) &&
|
|
16
|
+
github.event.head_commit.author.name != 'semantic-release'
|
|
13
17
|
runs-on: ubuntu-latest
|
|
14
18
|
concurrency: release
|
|
15
19
|
environment: DEV
|
|
@@ -1,6 +1,180 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v3.1.0 (2025-09-02)
|
|
5
|
+
|
|
6
|
+
### Chores
|
|
7
|
+
|
|
8
|
+
- Trigger release process ([#36](https://github.com/opentargets/gentroutils/pull/36),
|
|
9
|
+
[`a90fdc7`](https://github.com/opentargets/gentroutils/commit/a90fdc7cd26dcb1263590f93f79bff6ccc867868))
|
|
10
|
+
|
|
11
|
+
* fix: update auth
|
|
12
|
+
|
|
13
|
+
* 3.0.1-dev.1
|
|
14
|
+
|
|
15
|
+
Automatically generated by python-semantic-release
|
|
16
|
+
|
|
17
|
+
* ci: add service account to impersonate
|
|
18
|
+
|
|
19
|
+
* 3.0.1-dev.2
|
|
20
|
+
|
|
21
|
+
* ci: prevent running create-tag on tag
|
|
22
|
+
|
|
23
|
+
* 3.0.1-dev.3
|
|
24
|
+
|
|
25
|
+
* ci: prevent running create-tag by semantic-release
|
|
26
|
+
|
|
27
|
+
* fix: workflow file
|
|
28
|
+
|
|
29
|
+
* 3.0.1-dev.4
|
|
30
|
+
|
|
31
|
+
* chore: update readme
|
|
32
|
+
|
|
33
|
+
* ci: run artifact build only from tag
|
|
34
|
+
|
|
35
|
+
* 3.0.1-dev.5
|
|
36
|
+
|
|
37
|
+
* ci: prevent tag action to run after semvar
|
|
38
|
+
|
|
39
|
+
* 3.0.1-dev.6
|
|
40
|
+
|
|
41
|
+
* build: remove obscured gcs scope from polars
|
|
42
|
+
|
|
43
|
+
* feat: rebuild docker image
|
|
44
|
+
|
|
45
|
+
* feat: add docker build command
|
|
46
|
+
|
|
47
|
+
* 3.1.0-dev.1
|
|
48
|
+
|
|
49
|
+
* ci: fix container name
|
|
50
|
+
|
|
51
|
+
* 3.1.0-dev.2
|
|
52
|
+
|
|
53
|
+
* ci: change image name structure for gcs
|
|
54
|
+
|
|
55
|
+
* 3.1.0-dev.3
|
|
56
|
+
|
|
57
|
+
* ci: update path to attestations
|
|
58
|
+
|
|
59
|
+
* 3.1.0-dev.4
|
|
60
|
+
|
|
61
|
+
* 3.1.0-dev.5
|
|
62
|
+
|
|
63
|
+
---------
|
|
64
|
+
|
|
65
|
+
Co-authored-by: Szymon Szyszkowski <69353402+project-defiant@users.noreply.github.com>
|
|
66
|
+
|
|
67
|
+
Co-authored-by: semantic-release <semantic-release>
|
|
68
|
+
|
|
69
|
+
Co-authored-by: project-defiant <szymonszyszkowski@gmail.com>
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
## v3.1.0-dev.5 (2025-08-29)
|
|
73
|
+
|
|
74
|
+
### Continuous Integration
|
|
75
|
+
|
|
76
|
+
- Update path to attestations
|
|
77
|
+
([`febea43`](https://github.com/opentargets/gentroutils/commit/febea4366fe94de09b82154d92b90baadfb08871))
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
## v3.1.0-dev.4 (2025-08-29)
|
|
81
|
+
|
|
82
|
+
### Continuous Integration
|
|
83
|
+
|
|
84
|
+
- Update path to attestations
|
|
85
|
+
([`55a80f1`](https://github.com/opentargets/gentroutils/commit/55a80f11838d6569f4919b730e291be665f33dad))
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
## v3.1.0-dev.3 (2025-08-29)
|
|
89
|
+
|
|
90
|
+
### Continuous Integration
|
|
91
|
+
|
|
92
|
+
- Change image name structure for gcs
|
|
93
|
+
([`88dbbbd`](https://github.com/opentargets/gentroutils/commit/88dbbbd7637bf7c9ec8c405a9811ad9e29416d48))
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
## v3.1.0-dev.2 (2025-08-29)
|
|
97
|
+
|
|
98
|
+
### Continuous Integration
|
|
99
|
+
|
|
100
|
+
- Fix container name
|
|
101
|
+
([`9c64ae1`](https://github.com/opentargets/gentroutils/commit/9c64ae1e4d43b1861625ef673df8edd7b5127b48))
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
## v3.1.0-dev.1 (2025-08-29)
|
|
105
|
+
|
|
106
|
+
### Build System
|
|
107
|
+
|
|
108
|
+
- Remove obscured gcs scope from polars
|
|
109
|
+
([`895bfed`](https://github.com/opentargets/gentroutils/commit/895bfed2486c6ca5123cc6908760020d832638ec))
|
|
110
|
+
|
|
111
|
+
### Features
|
|
112
|
+
|
|
113
|
+
- Add docker build command
|
|
114
|
+
([`8f42913`](https://github.com/opentargets/gentroutils/commit/8f42913c6c41b160a28ca230cb801dd2da0bebf1))
|
|
115
|
+
|
|
116
|
+
- Rebuild docker image
|
|
117
|
+
([`94f2a49`](https://github.com/opentargets/gentroutils/commit/94f2a49ccb25a8c9eb9238cd56ea75024e26ff50))
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
## v3.0.1-dev.6 (2025-08-29)
|
|
121
|
+
|
|
122
|
+
### Continuous Integration
|
|
123
|
+
|
|
124
|
+
- Prevent tag action to run after semvar
|
|
125
|
+
([`847e36b`](https://github.com/opentargets/gentroutils/commit/847e36ba4a5848116c2f6311849a1960dd55b34c))
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
## v3.0.1-dev.5 (2025-08-29)
|
|
129
|
+
|
|
130
|
+
### Chores
|
|
131
|
+
|
|
132
|
+
- Update readme
|
|
133
|
+
([`9e75c35`](https://github.com/opentargets/gentroutils/commit/9e75c35a4ed6113dae76ed9b0a67762fbcd882e3))
|
|
134
|
+
|
|
135
|
+
### Continuous Integration
|
|
136
|
+
|
|
137
|
+
- Run artifact build only from tag
|
|
138
|
+
([`4906b38`](https://github.com/opentargets/gentroutils/commit/4906b38c49d51a7b8a6a28cb12638ecc9a6fdc5e))
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
## v3.0.1-dev.4 (2025-08-29)
|
|
142
|
+
|
|
143
|
+
### Bug Fixes
|
|
144
|
+
|
|
145
|
+
- Workflow file
|
|
146
|
+
([`f840d55`](https://github.com/opentargets/gentroutils/commit/f840d555bbf4a8415c71b56b34d72393af8c8ebf))
|
|
147
|
+
|
|
148
|
+
### Continuous Integration
|
|
149
|
+
|
|
150
|
+
- Prevent running create-tag by semantic-release
|
|
151
|
+
([`57fb068`](https://github.com/opentargets/gentroutils/commit/57fb068a21bf86d048376ab0f4678694abeb2e71))
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
## v3.0.1-dev.3 (2025-08-29)
|
|
155
|
+
|
|
156
|
+
### Continuous Integration
|
|
157
|
+
|
|
158
|
+
- Prevent running create-tag on tag
|
|
159
|
+
([`963f657`](https://github.com/opentargets/gentroutils/commit/963f657221f2f08f20f1b20a371ad884d584bf0a))
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
## v3.0.1-dev.2 (2025-08-29)
|
|
163
|
+
|
|
164
|
+
### Continuous Integration
|
|
165
|
+
|
|
166
|
+
- Add service account to impersonate
|
|
167
|
+
([`05d5eb1`](https://github.com/opentargets/gentroutils/commit/05d5eb133efc9a5e3103397ff33233b543c1d2e2))
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
## v3.0.1-dev.1 (2025-08-28)
|
|
171
|
+
|
|
172
|
+
### Bug Fixes
|
|
173
|
+
|
|
174
|
+
- Update auth
|
|
175
|
+
([`a95b566`](https://github.com/opentargets/gentroutils/commit/a95b566a164d31ad36383fb99d7c88a5aec27b70))
|
|
176
|
+
|
|
177
|
+
|
|
4
178
|
## v3.0.0 (2025-08-28)
|
|
5
179
|
|
|
6
180
|
### Bug Fixes
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Description: Dockerfile for the gentroutils package
|
|
2
|
+
#
|
|
3
|
+
# To run locally, you must have a credentials file for GCP. Assuming you do,
|
|
4
|
+
# you can run the following command:
|
|
5
|
+
#
|
|
6
|
+
# docker run -v /path/to/credentials.json:/app/credentials.json \
|
|
7
|
+
# -e GOOGLE_APPLICATION_CREDENTIALS=/app/credentials.json \
|
|
8
|
+
# gentroutuls -s gwas_catalog_release
|
|
9
|
+
# By default the image uses the `config.yaml` file provided in the repository.
|
|
10
|
+
FROM rust:slim-trixie AS rust-builder
|
|
11
|
+
FROM python:3.13.7-slim-trixie
|
|
12
|
+
|
|
13
|
+
# Copy Rustc and Cargo from the rust-builder stage
|
|
14
|
+
# These are needed to install polars without compiling rust from source
|
|
15
|
+
COPY --from=rust-builder /usr/local/cargo/bin/rustc /usr/local/bin/rustc
|
|
16
|
+
COPY --from=rust-builder /usr/local/cargo/bin/cargo /usr/local/bin/cargo
|
|
17
|
+
|
|
18
|
+
# Copy Python source
|
|
19
|
+
COPY src /app/src
|
|
20
|
+
COPY pyproject.toml /app/pyproject.toml
|
|
21
|
+
COPY uv.lock /app/uv.lock
|
|
22
|
+
COPY README.md /app/README.md
|
|
23
|
+
COPY config.yaml /app/config.yaml
|
|
24
|
+
|
|
25
|
+
# Build the executable
|
|
26
|
+
WORKDIR /app
|
|
27
|
+
RUN python -m pip install .
|
|
28
|
+
|
|
29
|
+
ENTRYPOINT [ "gentroutils", "-c", "/app/config.yaml" ]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
SHELL := /bin/bash
|
|
2
2
|
.PHONY: $(shell sed -n -e '/^$$/ { n ; /^[^ .\#][^ ]*:/ { s/:.*$$// ; p ; } ; }' $(MAKEFILE_LIST))
|
|
3
|
-
VERSION := $$(grep '^version' pyproject.toml | sed 's%version = "\(.*\)"%\1%')
|
|
3
|
+
VERSION := $$(grep '^version' pyproject.toml | head -1 | sed 's%version = "\(.*\)"%\1%')
|
|
4
4
|
APP_NAME := $$(grep '^name' pyproject.toml | head -1 | sed 's%name = "\(.*\)"%\1%')
|
|
5
5
|
|
|
6
6
|
.DEFAULT_GOAL := help
|
|
@@ -41,3 +41,6 @@ check: lint format test type-check dep-check ## run all checks
|
|
|
41
41
|
|
|
42
42
|
help: ## This is help
|
|
43
43
|
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
|
44
|
+
|
|
45
|
+
build-docker: ## build docker image
|
|
46
|
+
docker build -t $(APP_NAME):$(VERSION) --no-cache -f Dockerfile .
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gentroutils
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.1.0
|
|
4
4
|
Summary: Open Targets python genetics utility CLI tools
|
|
5
5
|
Author-email: Szymon Szyszkowski <ss60@sanger.ac.uk>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -19,7 +19,7 @@ Requires-Dist: gcsfs>=2025.7.0
|
|
|
19
19
|
Requires-Dist: google-cloud-storage>=3.1.1
|
|
20
20
|
Requires-Dist: loguru>=0.7.3
|
|
21
21
|
Requires-Dist: opentargets-otter>=25.0.2
|
|
22
|
-
Requires-Dist: polars[fsspec
|
|
22
|
+
Requires-Dist: polars[fsspec]>=1.31.0
|
|
23
23
|
Requires-Dist: pydantic>=2.10.6
|
|
24
24
|
Requires-Dist: tqdm>=4.67.1
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
@@ -34,7 +34,7 @@ Set of Command Line Interface tools to process Open Targets Genetics GWAS data.
|
|
|
34
34
|
|
|
35
35
|
## Installation
|
|
36
36
|
|
|
37
|
-
```
|
|
37
|
+
```{bash}
|
|
38
38
|
pip install gentroutils
|
|
39
39
|
```
|
|
40
40
|
|
|
@@ -121,7 +121,8 @@ The list of tasks (defined in the `config.yaml` file) that can be run are:
|
|
|
121
121
|
|
|
122
122
|
This task fetches the latest GWAS Catalog release metadata from the `https://www.ebi.ac.uk/gwas/api/search/stats` endpoint and saves it to the specified destination.
|
|
123
123
|
|
|
124
|
-
> [!NOTE]
|
|
124
|
+
> [!NOTE]
|
|
125
|
+
> **Task parameters**
|
|
125
126
|
>
|
|
126
127
|
> - The `stats_uri` is used to fetch the latest release date and other metadata.
|
|
127
128
|
> - The `destination_template` is where the metadata will be saved, and it uses the `{release_date}` placeholder to specify the release date dynamically. By default it searches for the release directly in the stats_uri json output.
|
|
@@ -141,7 +142,8 @@ This task fetches the latest GWAS Catalog release metadata from the `https://www
|
|
|
141
142
|
|
|
142
143
|
This task fetches the GWAS Catalog associations file from the specified FTP server and saves it to the specified destination.
|
|
143
144
|
|
|
144
|
-
> [!NOTE]
|
|
145
|
+
> [!NOTE]
|
|
146
|
+
> **Task parameters**
|
|
145
147
|
>
|
|
146
148
|
> - The `stats_uri` is used to fetch the latest release date and other metadata.
|
|
147
149
|
> - The `source_template` is the URL of the GWAS Catalog associations file, which uses the `{release_date}` placeholder to specify the release date dynamically. The release date is fetched from the `stats_uri` endpoint.
|
|
@@ -162,7 +164,8 @@ This task fetches the GWAS Catalog associations file from the specified FTP serv
|
|
|
162
164
|
|
|
163
165
|
This task fetches the GWAS Catalog studies file from the specified FTP server and saves it to the specified destination.
|
|
164
166
|
|
|
165
|
-
> [!NOTE]
|
|
167
|
+
> [!NOTE]
|
|
168
|
+
> **Task parameters**
|
|
166
169
|
>
|
|
167
170
|
> - The `stats_uri` is used to fetch the latest release date and other metadata.
|
|
168
171
|
> - The `source_template` is the URL of the GWAS Catalog studies file, which uses the `{release_date}` placeholder to specify the release date dynamically. The release date is fetched from the `stats_uri` endpoint.
|
|
@@ -183,7 +186,8 @@ This task fetches the GWAS Catalog studies file from the specified FTP server an
|
|
|
183
186
|
|
|
184
187
|
This task fetches the GWAS Catalog ancestries file from the specified FTP server and saves it to the specified destination.
|
|
185
188
|
|
|
186
|
-
> [!NOTE]
|
|
189
|
+
> [!NOTE]
|
|
190
|
+
> **Task parameters**
|
|
187
191
|
>
|
|
188
192
|
> - The `stats_uri` is used to fetch the latest release date and other metadata.
|
|
189
193
|
> - The `source_template` is the URL of the GWAS Catalog ancestries file, which uses the `{release_date}` placeholder to specify the release date dynamically. The release date is fetched from the `stats_uri` endpoint.
|
|
@@ -8,7 +8,7 @@ Set of Command Line Interface tools to process Open Targets Genetics GWAS data.
|
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
11
|
-
```
|
|
11
|
+
```{bash}
|
|
12
12
|
pip install gentroutils
|
|
13
13
|
```
|
|
14
14
|
|
|
@@ -95,7 +95,8 @@ The list of tasks (defined in the `config.yaml` file) that can be run are:
|
|
|
95
95
|
|
|
96
96
|
This task fetches the latest GWAS Catalog release metadata from the `https://www.ebi.ac.uk/gwas/api/search/stats` endpoint and saves it to the specified destination.
|
|
97
97
|
|
|
98
|
-
> [!NOTE]
|
|
98
|
+
> [!NOTE]
|
|
99
|
+
> **Task parameters**
|
|
99
100
|
>
|
|
100
101
|
> - The `stats_uri` is used to fetch the latest release date and other metadata.
|
|
101
102
|
> - The `destination_template` is where the metadata will be saved, and it uses the `{release_date}` placeholder to specify the release date dynamically. By default it searches for the release directly in the stats_uri json output.
|
|
@@ -115,7 +116,8 @@ This task fetches the latest GWAS Catalog release metadata from the `https://www
|
|
|
115
116
|
|
|
116
117
|
This task fetches the GWAS Catalog associations file from the specified FTP server and saves it to the specified destination.
|
|
117
118
|
|
|
118
|
-
> [!NOTE]
|
|
119
|
+
> [!NOTE]
|
|
120
|
+
> **Task parameters**
|
|
119
121
|
>
|
|
120
122
|
> - The `stats_uri` is used to fetch the latest release date and other metadata.
|
|
121
123
|
> - The `source_template` is the URL of the GWAS Catalog associations file, which uses the `{release_date}` placeholder to specify the release date dynamically. The release date is fetched from the `stats_uri` endpoint.
|
|
@@ -136,7 +138,8 @@ This task fetches the GWAS Catalog associations file from the specified FTP serv
|
|
|
136
138
|
|
|
137
139
|
This task fetches the GWAS Catalog studies file from the specified FTP server and saves it to the specified destination.
|
|
138
140
|
|
|
139
|
-
> [!NOTE]
|
|
141
|
+
> [!NOTE]
|
|
142
|
+
> **Task parameters**
|
|
140
143
|
>
|
|
141
144
|
> - The `stats_uri` is used to fetch the latest release date and other metadata.
|
|
142
145
|
> - The `source_template` is the URL of the GWAS Catalog studies file, which uses the `{release_date}` placeholder to specify the release date dynamically. The release date is fetched from the `stats_uri` endpoint.
|
|
@@ -157,7 +160,8 @@ This task fetches the GWAS Catalog studies file from the specified FTP server an
|
|
|
157
160
|
|
|
158
161
|
This task fetches the GWAS Catalog ancestries file from the specified FTP server and saves it to the specified destination.
|
|
159
162
|
|
|
160
|
-
> [!NOTE]
|
|
163
|
+
> [!NOTE]
|
|
164
|
+
> **Task parameters**
|
|
161
165
|
>
|
|
162
166
|
> - The `stats_uri` is used to fetch the latest release date and other metadata.
|
|
163
167
|
> - The `source_template` is the URL of the GWAS Catalog ancestries file, which uses the `{release_date}` placeholder to specify the release date dynamically. The release date is fetched from the `stats_uri` endpoint.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
authors = [{ name = "Szymon Szyszkowski", email = "ss60@sanger.ac.uk" }]
|
|
3
3
|
name = "gentroutils"
|
|
4
|
-
version = "3.
|
|
4
|
+
version = "3.1.0"
|
|
5
5
|
description = "Open Targets python genetics utility CLI tools"
|
|
6
6
|
dependencies = [
|
|
7
7
|
"aiohttp>=3.11.18",
|
|
8
8
|
"aioftp>=0.25.1",
|
|
9
|
-
"polars[fsspec
|
|
9
|
+
"polars[fsspec]>=1.31.0",
|
|
10
10
|
"pydantic>=2.10.6",
|
|
11
11
|
"loguru>=0.7.3",
|
|
12
12
|
"tqdm>=4.67.1",
|
|
@@ -500,7 +500,7 @@ wheels = [
|
|
|
500
500
|
|
|
501
501
|
[[package]]
|
|
502
502
|
name = "gentroutils"
|
|
503
|
-
version = "3.
|
|
503
|
+
version = "3.1.0"
|
|
504
504
|
source = { editable = "." }
|
|
505
505
|
dependencies = [
|
|
506
506
|
{ name = "aioftp" },
|
|
@@ -558,7 +558,7 @@ requires-dist = [
|
|
|
558
558
|
{ name = "google-cloud-storage", specifier = ">=3.1.1" },
|
|
559
559
|
{ name = "loguru", specifier = ">=0.7.3" },
|
|
560
560
|
{ name = "opentargets-otter", specifier = ">=25.0.2" },
|
|
561
|
-
{ name = "polars", extras = ["fsspec"
|
|
561
|
+
{ name = "polars", extras = ["fsspec"], specifier = ">=1.31.0" },
|
|
562
562
|
{ name = "pydantic", specifier = ">=2.10.6" },
|
|
563
563
|
{ name = "tqdm", specifier = ">=4.67.1" },
|
|
564
564
|
]
|
gentroutils-3.0.0/Dockerfile
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# Description: Dockerfile for the gentroutils package
|
|
2
|
-
#
|
|
3
|
-
# To run locally, you must have a credentials file for GCP. Assuming you do,
|
|
4
|
-
# you can run the following command:
|
|
5
|
-
#
|
|
6
|
-
# docker run -v /path/to/credentials.json:/app/credentials.json -e GOOGLE_APPLICATION_CREDENTIALS=/app/credentials.json gentroutuls -s gwas_catalog_release
|
|
7
|
-
|
|
8
|
-
FROM python:3.13.1-alpine3.21
|
|
9
|
-
COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
|
|
10
|
-
|
|
11
|
-
ADD . /app
|
|
12
|
-
|
|
13
|
-
WORKDIR /app
|
|
14
|
-
RUN uv sync --frozen
|
|
15
|
-
|
|
16
|
-
ENTRYPOINT ["uv", "run", "gentroutils"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_analysisFlag_type.tsv
RENAMED
|
File without changes
|
{gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_analysisFlag_value.tsv
RENAMED
|
File without changes
|
{gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_columns_curation.tsv
RENAMED
|
File without changes
|
|
File without changes
|
{gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_pubmedId_type.tsv
RENAMED
|
File without changes
|
{gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyId_type.tsv
RENAMED
|
File without changes
|
{gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyId_value.tsv
RENAMED
|
File without changes
|
{gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyType_type.tsv
RENAMED
|
File without changes
|
{gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyType_value.tsv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/null_value_in_studyId.tsv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|