Skip to content

Commit 8bd267a

Browse files
authored
Migrate client-side utility functions to a separate module (#563)
* Migrated client-side only functions to murfey.util.client * Added logic to 'read_config()' to look for a file under 'MURFEY_CLIENT_CONFIGURATION' first before defaulting to looking for 'MURFEY_CLIENT_CONFIG_HOME' and then the default home * Added unit tests for most of the migrated functions
1 parent e150506 commit 8bd267a

File tree

20 files changed

+444
-330
lines changed

20 files changed

+444
-330
lines changed

src/murfey/client/__init__.py

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import argparse
44
import configparser
5-
6-
# import json
75
import logging
86
import os
97
import platform
@@ -12,57 +10,26 @@
1210
import time
1311
import webbrowser
1412
from datetime import datetime
15-
from functools import partial
1613
from pathlib import Path
1714
from queue import Queue
1815
from typing import List, Literal
1916
from urllib.parse import ParseResult, urlparse
2017

2118
import requests
22-
23-
# from multiprocessing import Process, Queue
2419
from rich.prompt import Confirm
2520

26-
import murfey.client.rsync
2721
import murfey.client.update
2822
import murfey.client.watchdir
2923
import murfey.client.websocket
3024
from murfey.client.customlogging import CustomHandler, DirectableRichHandler
3125
from murfey.client.instance_environment import MurfeyInstanceEnvironment
3226
from murfey.client.tui.app import MurfeyTUI
3327
from murfey.client.tui.status_bar import StatusBar
34-
from murfey.util import _get_visit_list
35-
36-
# from asyncio import Queue
37-
38-
39-
# from rich.prompt import Prompt
40-
28+
from murfey.util.client import _get_visit_list, authorised_requests, read_config
4129

4230
log = logging.getLogger("murfey.client")
4331

44-
45-
def read_config() -> configparser.ConfigParser:
46-
config = configparser.ConfigParser()
47-
try:
48-
mcch = os.environ.get("MURFEY_CLIENT_CONFIG_HOME")
49-
murfey_client_config_home = Path(mcch) if mcch else Path.home()
50-
with open(murfey_client_config_home / ".murfey") as configfile:
51-
config.read_file(configfile)
52-
except FileNotFoundError:
53-
log.warning(
54-
f"Murfey client configuration file {murfey_client_config_home / '.murfey'} not found"
55-
)
56-
if "Murfey" not in config:
57-
config["Murfey"] = {}
58-
return config
59-
60-
61-
token = read_config()["Murfey"].get("token", "")
62-
63-
requests.get = partial(requests.get, headers={"Authorization": f"Bearer {token}"})
64-
requests.post = partial(requests.post, headers={"Authorization": f"Bearer {token}"})
65-
requests.delete = partial(requests.delete, headers={"Authorization": f"Bearer {token}"})
32+
requests.get, requests.post, requests.put, requests.delete = authorised_requests()
6633

6734

6835
def write_config(config: configparser.ConfigParser):

src/murfey/client/analyser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from murfey.client.instance_environment import MurfeyInstanceEnvironment
2323
from murfey.client.rsync import RSyncerUpdate, TransferResult
2424
from murfey.client.tui.forms import FormDependency
25-
from murfey.util import Observer, get_machine_config_client
25+
from murfey.util.client import Observer, get_machine_config_client
2626
from murfey.util.mdoc import get_block
2727
from murfey.util.models import PreprocessingParametersTomo, ProcessingParametersSPA
2828

src/murfey/client/contexts/clem.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
from murfey.client.context import Context
1616
from murfey.client.instance_environment import MurfeyInstanceEnvironment
17-
from murfey.util import capture_post, get_machine_config_client
17+
from murfey.util.client import capture_post, get_machine_config_client
1818

1919
# Create logger object
2020
logger = logging.getLogger("murfey.client.contexts.clem")

src/murfey/client/contexts/fib.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
from murfey.client.context import Context
1212
from murfey.client.instance_environment import MurfeyInstanceEnvironment
13-
from murfey.util import authorised_requests
13+
from murfey.util.client import authorised_requests
1414

1515
logger = logging.getLogger("murfey.client.contexts.fib")
1616

src/murfey/client/contexts/spa.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
MurfeyID,
1616
MurfeyInstanceEnvironment,
1717
)
18-
from murfey.util import (
18+
from murfey.util.client import (
1919
authorised_requests,
2020
capture_get,
2121
capture_post,

src/murfey/client/contexts/spa_metadata.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@
88
from murfey.client.context import Context
99
from murfey.client.contexts.spa import _file_transferred_to, _get_source
1010
from murfey.client.instance_environment import MurfeyInstanceEnvironment, SampleInfo
11-
from murfey.util import authorised_requests, capture_post, get_machine_config_client
11+
from murfey.util.client import (
12+
authorised_requests,
13+
capture_post,
14+
get_machine_config_client,
15+
)
1216
from murfey.util.spa_metadata import (
1317
FoilHoleInfo,
1418
get_grid_square_atlas_positions,

src/murfey/client/contexts/tomo.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@
1717
MurfeyID,
1818
MurfeyInstanceEnvironment,
1919
)
20-
from murfey.util import authorised_requests, capture_post, get_machine_config_client
20+
from murfey.util.client import (
21+
authorised_requests,
22+
capture_post,
23+
get_machine_config_client,
24+
)
2125
from murfey.util.mdoc import get_block, get_global_data, get_num_blocks
2226
from murfey.util.tomo import midpoint
2327

src/murfey/client/multigrid_control.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
from murfey.client.rsync import RSyncer, RSyncerUpdate, TransferResult
2121
from murfey.client.tui.screens import determine_default_destination
2222
from murfey.client.watchdir import DirWatcher
23-
from murfey.util import capture_post, get_machine_config_client, posix_path
23+
from murfey.util import posix_path
24+
from murfey.util.client import capture_post, get_machine_config_client
2425

2526
log = logging.getLogger("murfey.client.mutligrid_control")
2627

src/murfey/client/rsync.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from urllib.parse import ParseResult
2020

2121
from murfey.client.tui.status_bar import StatusBar
22-
from murfey.util import Observer
22+
from murfey.util.client import Observer
2323

2424
logger = logging.getLogger("murfey.client.rsync")
2525

src/murfey/client/tui/app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333
from murfey.client.tui.status_bar import StatusBar
3434
from murfey.client.watchdir import DirWatcher
3535
from murfey.client.watchdir_multigrid import MultigridDirWatcher
36-
from murfey.util import (
36+
from murfey.util import posix_path
37+
from murfey.util.client import (
3738
capture_post,
3839
get_machine_config_client,
39-
posix_path,
4040
read_config,
4141
set_default_acquisition_output,
4242
)

0 commit comments

Comments
 (0)