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.
Files changed (73) hide show
  1. {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/build.yaml +7 -4
  2. {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/tag.yaml +6 -2
  3. {gentroutils-3.0.0 → gentroutils-3.1.0}/CHANGELOG.md +174 -0
  4. gentroutils-3.1.0/Dockerfile +29 -0
  5. {gentroutils-3.0.0 → gentroutils-3.1.0}/Makefile +4 -1
  6. {gentroutils-3.0.0 → gentroutils-3.1.0}/PKG-INFO +11 -7
  7. {gentroutils-3.0.0 → gentroutils-3.1.0}/README.md +9 -5
  8. {gentroutils-3.0.0 → gentroutils-3.1.0}/pyproject.toml +2 -2
  9. {gentroutils-3.0.0 → gentroutils-3.1.0}/uv.lock +2 -2
  10. gentroutils-3.0.0/Dockerfile +0 -16
  11. {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/labeler.yaml +0 -0
  12. {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/pr.yaml +0 -0
  13. {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/release.yaml +0 -0
  14. {gentroutils-3.0.0 → gentroutils-3.1.0}/.github/workflows/release_pr.yaml +0 -0
  15. {gentroutils-3.0.0 → gentroutils-3.1.0}/.gitignore +0 -0
  16. {gentroutils-3.0.0 → gentroutils-3.1.0}/.pre-commit-config.yaml +0 -0
  17. {gentroutils-3.0.0 → gentroutils-3.1.0}/.vscode/extensions.json +0 -0
  18. {gentroutils-3.0.0 → gentroutils-3.1.0}/.vscode/settings.json +0 -0
  19. {gentroutils-3.0.0 → gentroutils-3.1.0}/LICENSE +0 -0
  20. {gentroutils-3.0.0 → gentroutils-3.1.0}/commitlint.config.js +0 -0
  21. {gentroutils-3.0.0 → gentroutils-3.1.0}/config.yaml +0 -0
  22. {gentroutils-3.0.0 → gentroutils-3.1.0}/conftest.py +0 -0
  23. {gentroutils-3.0.0 → gentroutils-3.1.0}/docs/00_prepare_tables_for_curation.R +0 -0
  24. {gentroutils-3.0.0 → gentroutils-3.1.0}/docs/gwas_catalog_curation.md +0 -0
  25. {gentroutils-3.0.0 → gentroutils-3.1.0}/setup.sh +0 -0
  26. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/__init__.py +0 -0
  27. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/errors.py +0 -0
  28. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/path/__init__.py +0 -0
  29. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/path/ftp.py +0 -0
  30. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/path/gcs.py +0 -0
  31. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/transfer/__init__.py +0 -0
  32. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/transfer/ftp_to_gcs.py +0 -0
  33. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/transfer/model.py +0 -0
  34. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/io/transfer/polars_to_gcs.py +0 -0
  35. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/parsers/__init__.py +0 -0
  36. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/parsers/curation.py +0 -0
  37. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/py.typed +0 -0
  38. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/tasks/__init__.py +0 -0
  39. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/tasks/crawl.py +0 -0
  40. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/tasks/curation.py +0 -0
  41. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/tasks/fetch.py +0 -0
  42. {gentroutils-3.0.0 → gentroutils-3.1.0}/src/gentroutils/transfer.py +0 -0
  43. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/ftp/test/databases/gwas/summary_statistics/harmonised_list.txt +0 -0
  44. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/gsutil_list.txt +0 -0
  45. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/correct_curation.tsv +0 -0
  46. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_analysisFlag_type.tsv +0 -0
  47. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_analysisFlag_value.tsv +0 -0
  48. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_columns_curation.tsv +0 -0
  49. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_publicationTitle_type.tsv +0 -0
  50. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_pubmedId_type.tsv +0 -0
  51. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyId_type.tsv +0 -0
  52. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyId_value.tsv +0 -0
  53. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyType_type.tsv +0 -0
  54. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_studyType_value.tsv +0 -0
  55. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/incorrect_traitFromSource_type.tsv +0 -0
  56. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/non_unique_studyId.tsv +0 -0
  57. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/manual_curation/null_value_in_studyId.tsv +0 -0
  58. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/data/test.h.tsv.gz +0 -0
  59. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/conftest.py +0 -0
  60. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/path/conftest.py +0 -0
  61. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/path/test_ftp.py +0 -0
  62. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/path/test_gcs.py +0 -0
  63. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/transfer/conftest.py +0 -0
  64. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/transfer/test_ftp_to_gcs.py +0 -0
  65. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/transfer/test_model.py +0 -0
  66. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/io/transfer/test_polars_to_gcs.py +0 -0
  67. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/parsers/conftest.py +0 -0
  68. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/parsers/test_curation.py +0 -0
  69. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/tasks/conftest.py +0 -0
  70. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/tasks/test_crawl_task.py +0 -0
  71. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/tasks/test_curation_task.py +0 -0
  72. {gentroutils-3.0.0 → gentroutils-3.1.0}/tests/tasks/test_fetch_task.py +0 -0
  73. {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.repository_name }}"
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 }}/${{ env.REPO }}:latest
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 }}/${{ 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 the commit is not from the GitHubActions bot (prevent self-triggering)
12
- if: github.event.commits[0].author.name != 'github-actions[botg]'
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.0.0
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,gcs]>=1.31.0
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] > **Task parameters**
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] > **Task parameters**
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] > **Task parameters**
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] > **Task parameters**
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] > **Task parameters**
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] > **Task parameters**
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] > **Task parameters**
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] > **Task parameters**
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.0.0"
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,gcs]>=1.31.0",
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.0.0"
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", "gcs"], specifier = ">=1.31.0" },
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
  ]
@@ -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