From ce5e3fe73eb69aea88f647141bc1821a4efc0ed3 Mon Sep 17 00:00:00 2001 From: Fabian Zills Date: Mon, 24 Jun 2024 21:13:53 -0400 Subject: [PATCH 1/3] load files from url --- zndraw/tasks/__init__.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/zndraw/tasks/__init__.py b/zndraw/tasks/__init__.py index 5928495cf..370c68826 100644 --- a/zndraw/tasks/__init__.py +++ b/zndraw/tasks/__init__.py @@ -8,6 +8,8 @@ import znsocket from celery import shared_task from flask import current_app +import urllib.request +from io import StringIO from zndraw.base import FileIO from zndraw.bonds import ASEComputeBonds @@ -45,6 +47,14 @@ def _generator(): raise ImportError( "You need to install ZnH5MD to use the remote feature (or `pip install zndraw[all]`)." ) from err + elif file_io.name.startswith(("http", "https")): + format = file_io.name.split(".")[-1] + format = format if format != "xyz" else "extxyz" + content = urllib.request.urlopen(file_io.name).read().decode("utf-8") + stream = StringIO(content) + + generator = ase.io.iread(stream, format=format) + else: generator = ase.io.iread(file_io.name) From 556c118b89bc0d74138ff03e328941f217390d1f Mon Sep 17 00:00:00 2001 From: Fabian Zills Date: Mon, 24 Jun 2024 21:15:40 -0400 Subject: [PATCH 2/3] test loading from URL --- tests/test_tasks.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 tests/test_tasks.py diff --git a/tests/test_tasks.py b/tests/test_tasks.py new file mode 100644 index 000000000..a77c7916d --- /dev/null +++ b/tests/test_tasks.py @@ -0,0 +1,10 @@ +from zndraw.tasks import get_generator_from_filename, FileIO +import ase + + +def test_get_generator_from_filename(): + file = FileIO(name="https://raw.githubusercontent.com/LarsSchaaf/Guaranteed-Non-Local-Molecular-Dataset/main/gnl-dataset/GNL-v0.2/gnl-v0.2-test.xyz") + generator = get_generator_from_filename(file) + + assert isinstance(next(iter(generator)), ase.Atoms) + From d47c51463a664b723ac5057241479b78025aaebd Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 25 Jun 2024 01:17:10 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/test_tasks.py | 10 ++++++---- zndraw/tasks/__init__.py | 6 +++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/tests/test_tasks.py b/tests/test_tasks.py index a77c7916d..d6d4bdaa5 100644 --- a/tests/test_tasks.py +++ b/tests/test_tasks.py @@ -1,10 +1,12 @@ -from zndraw.tasks import get_generator_from_filename, FileIO import ase +from zndraw.tasks import FileIO, get_generator_from_filename + def test_get_generator_from_filename(): - file = FileIO(name="https://raw.githubusercontent.com/LarsSchaaf/Guaranteed-Non-Local-Molecular-Dataset/main/gnl-dataset/GNL-v0.2/gnl-v0.2-test.xyz") + file = FileIO( + name="https://raw.githubusercontent.com/LarsSchaaf/Guaranteed-Non-Local-Molecular-Dataset/main/gnl-dataset/GNL-v0.2/gnl-v0.2-test.xyz" + ) generator = get_generator_from_filename(file) - - assert isinstance(next(iter(generator)), ase.Atoms) + assert isinstance(next(iter(generator)), ase.Atoms) diff --git a/zndraw/tasks/__init__.py b/zndraw/tasks/__init__.py index 370c68826..da33aeeb0 100644 --- a/zndraw/tasks/__init__.py +++ b/zndraw/tasks/__init__.py @@ -1,5 +1,7 @@ import logging import typing as t +import urllib.request +from io import StringIO import ase.io import socketio.exceptions @@ -8,8 +10,6 @@ import znsocket from celery import shared_task from flask import current_app -import urllib.request -from io import StringIO from zndraw.base import FileIO from zndraw.bonds import ASEComputeBonds @@ -52,7 +52,7 @@ def _generator(): format = format if format != "xyz" else "extxyz" content = urllib.request.urlopen(file_io.name).read().decode("utf-8") stream = StringIO(content) - + generator = ase.io.iread(stream, format=format) else: