From a1a162190b0ecb4333748d4c238fca0a121132ef Mon Sep 17 00:00:00 2001 From: ab604 Date: Thu, 23 Oct 2025 18:44:38 +0100 Subject: [PATCH 1/6] Fix Aspera key filename to match actual key file The code was looking for 'aspera_tokenauth_id_rsa' but the actual key file is named 'asperaweb_id_dsa.openssh'. This caused authentication failures when downloading files via Aspera protocol. Fixes authentication prompt issue when using aspera protocol. --- pridepy/files/files.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pridepy/files/files.py b/pridepy/files/files.py index ba0c639..0d590ef 100644 --- a/pridepy/files/files.py +++ b/pridepy/files/files.py @@ -284,7 +284,7 @@ def download_files_from_aspera( """ ascp_path = Files.get_ascp_binary() key_full_path = importlib.resources.files("pridepy").joinpath( - "aspera/key/aspera_tokenauth_id_rsa" + "aspera/key/asperaweb_id_dsa.openssh" ) key_path = os.path.abspath(key_full_path) for file in file_list_json: From 107c3a88005f093baa77e8241b34a1cdca9163ba Mon Sep 17 00:00:00 2001 From: Yasset Perez-Riverol Date: Fri, 12 Dec 2025 16:30:07 +0000 Subject: [PATCH 2/6] Bump version from 0.0.10 to 0.0.11 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 870d8cb..752924d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pridepy" -version = "0.0.10" +version = "0.0.11" description = "Python Client library for PRIDE Rest API" authors = [ "PRIDE Team ", From fbd30d43366c69a93a11600f09bb46fe33f96a93 Mon Sep 17 00:00:00 2001 From: Selvakumar Kamatchinathan <33631243+selvaebi@users.noreply.github.com> Date: Mon, 22 Dec 2025 12:59:53 +0530 Subject: [PATCH 3/6] Update aspera_tokenauth_id_rsa new key --- pridepy/aspera/key/aspera_tokenauth_id_rsa | 76 ++++++++-------------- 1 file changed, 27 insertions(+), 49 deletions(-) diff --git a/pridepy/aspera/key/aspera_tokenauth_id_rsa b/pridepy/aspera/key/aspera_tokenauth_id_rsa index d5945f3..31ca55d 100644 --- a/pridepy/aspera/key/aspera_tokenauth_id_rsa +++ b/pridepy/aspera/key/aspera_tokenauth_id_rsa @@ -1,49 +1,27 @@ ------BEGIN OPENSSH PRIVATE KEY----- -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 -VrDBOxh0ODDRAAAAAAEC ------END OPENSSH PRIVATE KEY----- +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA3k3TTTgZ9R9HezmJ3Q5RBdy5cJpS4jF6ULUMA228KVCa++CM +9O4b0J8QoaZBnMX4jcIRB4kd9e+PwJjUcDwHGpL+41YSl46Vnic7gOuRxLDo2nwm +8YU+zJ0Qlz0faO7AlzfyGAwSinsapCg07pnfvbQwmACLFLs3MOiKZrUZzGufTw9P +MVkClxxMUANjzdgIqvOFEENcCYtNyt1uGCvo5A1gIKiRJWtuk8WKea9zvF5EAmIw +YnEmbUELtWsnMoHDERmcsrGPlSwNxWpPQYeluy2InlNQgZyMNduAqevJDQwf2SXZ +7kzxQ/HmHzVRKWSVmE9ZQ5vzGrnOWghVdSffwQIDAQABAoIBAA7Nv3O9t+rNI7E2 +xnHAVZBun7G6MSlLcrIDsHJdASH+MmfyDujzn0oQAadGH0ntnAzynrgx/xsE0j2Y +39K+iJmSLuOcNH4/ukJvKeT+qvUec88y49QDE8jD79omcZxHA+++A8LqsORkaMSE +QewetpnXMUI6DQj7I6R/49GNn1NvuoN3mx7ID9wBOGHtvTRPgYSASXOsCaqCq7eq +mzdYD1Hg45ozZHOXVQBXbJ6cRx7EDyI2ggyQTj4C2EqHRHhViTI/U3JwGXl5skFr +M26TyUyT+i+stHwUjgkiK05nD/cWLgaE/untGHkkzSCRehxaUiYCHmWIoFlyxMMm +lbcW2g0CgYEA82JG1y01A4Sut/jmVseAI99juU2aoSH7xsvuPBYga19YIHW5hkbH +Kw9wYgHKeu+qhDY/ZZBSib3CXn+TU5rSe6rfffkOF8ATXLXCgvlJsVwEYHVhFNe7 +wuUkpVqKAU3Ai6QNxE45cozUxXicZttfqDoKAUoutJuyUkAQaOvEMCUCgYEA6dPR +IWYiK3FzM94nFpzN9DFNMSslH/DaWPGhFXk8vTXb3JpgsumQl9QGQ8lVPsbL5J5y +heSXQSUok+CYI2Qup2RRv3pMpORwtbA8RWzCPI8RiAc5WNgVe/LOB8EZWEmacEg3 +KaWl7U074MPGFh4v8/3z5up7boD1QkxdcLLT4G0CgYEAwx36pO79HUD1wU+tecye +kiO5Ewl/+cYAzzMWXt1uSCY7xGocveVoLsFF24yMA1q4XR4QXSACy6JxfMjSF6h7 +LeGjIp7UCX5XB3A/7DhmN+YJLDtuBQOe53REmLuo/7qRrmFrGAGOVKNKwLUczej5 +GyjMdJRANVLM9tudTEAXHHECgYB8FGvAdmshdIV2e6dwZ2se7t6Qfd2ocm3bjvU0 +6O3jVeZCzSUNK8YP23IrnHYA5wshWTdad7AP4MEEn8T72tiq+SAsJKDxS0vIDiod +iRYVfrIF5hd3Xssfx/uuv7hMUlqCxL+I+R7wqvBgWGMQL5qwtg0sdzdir0n2kYFw +IWUvjQKBgQCweTjm1yJ+lBwTW0akOZktSkO2TQaT0pISvcD6z1iBjLrCKiFBxPrw +I6tTCNC8DaT+7XKq4wHoulRANBURwEj3Eo0Bv/3C81pfoJGlRQc8+2PQRnuJdU+l +Vb5et4rzOM5BMM//TPjdHTq8A78+NghKVdPrzTgbgIUjHDKVyz8Usg== +-----END RSA PRIVATE KEY----- From 52b2c335cf30bf30ebf28e6a80d101885ab12a3e Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 23 Jan 2026 09:22:05 +0000 Subject: [PATCH 4/6] Remove upper bound on plotly dependency to allow version 6.x The caret constraint (^5.18.0) was limiting plotly to <6.0.0, causing dependency conflicts for users who want to use plotly 6.x. The codebase only uses stable, basic plotly APIs (go.Bar and plotly.offline.plot) that are compatible with both plotly 5.x and 6.x. https://claude.ai/code/session_01VuwA6zF7mR9zPdgY2Fn8Nn --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 752924d..09b192c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,7 +48,7 @@ python = "^3.9" requests = "^2.31.0" ratelimit = "^2.2.1" click = "^8.1.7" -plotly = "^5.18.0" +plotly = ">=5.18.0" tqdm = "^4.66.1" boto3 = "^1.34.0" botocore = "^1.34.0" From ad11ca6e7ddb74f28889570aa9966512e71523af Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 23 Jan 2026 09:27:19 +0000 Subject: [PATCH 5/6] Remove unused statistics module and plotly dependency The statistics module was orphaned code that was never integrated into the CLI or exported from the package. Removing it eliminates the plotly dependency entirely, reducing install conflicts for users. Removed: - pridepy/statistics/ directory - plotly from pyproject.toml, requirements.txt, environment.yml, recipe/meta.yaml https://claude.ai/code/session_01VuwA6zF7mR9zPdgY2Fn8Nn --- environment.yml | 1 - pridepy/statistics/__init__.py | 0 pridepy/statistics/statistics.py | 48 -------------------------------- pyproject.toml | 1 - recipe/meta.yaml | 1 - requirements.txt | 1 - 6 files changed, 52 deletions(-) delete mode 100644 pridepy/statistics/__init__.py delete mode 100644 pridepy/statistics/statistics.py diff --git a/environment.yml b/environment.yml index 746fe16..1a1d94d 100644 --- a/environment.yml +++ b/environment.yml @@ -9,7 +9,6 @@ dependencies: - click - pytest - setuptools - - plotly - boto3 - botocore - tqdm diff --git a/pridepy/statistics/__init__.py b/pridepy/statistics/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/pridepy/statistics/statistics.py b/pridepy/statistics/statistics.py deleted file mode 100644 index ddd3f98..0000000 --- a/pridepy/statistics/statistics.py +++ /dev/null @@ -1,48 +0,0 @@ -import plotly -import plotly.graph_objs as go - -from pridepy.util.api_handling import Util - -base_url = "https://www.ebi.ac.uk/pride/ws/archive/v3/" - - -class Statistics: - """ - Statistics class supports to produce charts on PRIDE submission statistics. - """ - - @staticmethod - def plot_monthly_submissions(output_filename): - """ - Plot monthly submission as a bar chart and save into a file - :param output_filename: html output file - :return: - """ - - # get monthly submission data from API - request_url = base_url + "stats/submissions-monthly" - headers = {"Accept": "application/JSON"} - - response = Util.get_api_call(request_url, headers) - response_body = response.json() - - # sort data by past to present - data = [ - go.Bar( - x=[d[0] for d in response_body][::-1], - y=[d[1] for d in response_body][::-1], - ) - ] - - # plot the data in a bar chart - plotly.offline.plot(data, filename=output_filename, auto_open=True) - - @staticmethod - def plot_submissions_by_instrument(output_filename): - """ - Plot submissions by instruments to visualise the pecentage of submission from different instruments. - :param output_filename: - :return: html output file - """ - # Todo - pass diff --git a/pyproject.toml b/pyproject.toml index 09b192c..699c831 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,7 +48,6 @@ python = "^3.9" requests = "^2.31.0" ratelimit = "^2.2.1" click = "^8.1.7" -plotly = ">=5.18.0" tqdm = "^4.66.1" boto3 = "^1.34.0" botocore = "^1.34.0" diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f4178cc..d6ac116 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -26,7 +26,6 @@ requirements: - click~=8.1.7 - pytest~=8.0.2 - setuptools - - plotly~=5.22.0 - boto3~=1.34.61 - botocore~=1.34.74 - tqdm diff --git a/requirements.txt b/requirements.txt index 6750e0a..3bae141 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,6 @@ ratelimit click pytest setuptools -plotly boto3 botocore tqdm From 7b5d5ab1de07c5641942a452fe8e4905df614090 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 23 Jan 2026 09:45:14 +0000 Subject: [PATCH 6/6] Bump version to 0.0.12 https://claude.ai/code/session_01VuwA6zF7mR9zPdgY2Fn8Nn --- pyproject.toml | 2 +- recipe/meta.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 699c831..04f5804 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pridepy" -version = "0.0.11" +version = "0.0.12" description = "Python Client library for PRIDE Rest API" authors = [ "PRIDE Team ", diff --git a/recipe/meta.yaml b/recipe/meta.yaml index d6ac116..bef43a0 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,7 +1,7 @@ # recipe/meta.yaml package: name: pridepy - version: "0.0.8" + version: "0.0.12" source: path: ../