Skip to content

Commit bbf6956

Browse files
committed
'backports.entry_points_selectable' no longer needed as a package dependency
1 parent 55fda57 commit bbf6956

File tree

9 files changed

+23
-33
lines changed

9 files changed

+23
-33
lines changed

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ classifiers = [
2929
"Programming Language :: Python :: 3.12",
3030
]
3131
dependencies = [
32-
"backports.entry_points_selectable",
3332
"defusedxml", # For safely parsing XML files
3433
"pydantic>=2",
3534
"pydantic-settings",

src/murfey/client/context.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
from __future__ import annotations
22

33
import logging
4+
from importlib.metadata import entry_points
45
from pathlib import Path
56
from typing import Any, Dict, List, NamedTuple
67

7-
from backports.entry_points_selectable import entry_points
8-
98
from murfey.client.instance_environment import MurfeyInstanceEnvironment
109

1110
logger = logging.getLogger("murfey.client.context")

src/murfey/server/api/clem.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
import re
44
import traceback
55
from ast import literal_eval
6-
from importlib.metadata import EntryPoint # type hinting only
6+
from importlib.metadata import (
7+
EntryPoint, # type hinting only
8+
entry_points,
9+
)
710
from logging import getLogger
811
from pathlib import Path
912
from typing import Literal, Optional, Type, Union
1013

11-
from backports.entry_points_selectable import entry_points
1214
from fastapi import APIRouter
1315
from pydantic import BaseModel, field_validator
1416
from sqlalchemy.exc import NoResultFound
@@ -752,9 +754,7 @@ def process_raw_lifs(
752754
try:
753755
# Try and load relevant Murfey workflow
754756
workflow: EntryPoint = list(
755-
entry_points().select(
756-
group="murfey.workflows", name="clem.process_raw_lifs"
757-
)
757+
entry_points(group="murfey.workflows", name="clem.process_raw_lifs")
758758
)[0]
759759
except IndexError:
760760
raise RuntimeError("The relevant Murfey workflow was not found")
@@ -792,9 +792,7 @@ def process_raw_tiffs(
792792
try:
793793
# Try and load relevant Murfey workflow
794794
workflow: EntryPoint = list(
795-
entry_points().select(
796-
group="murfey.workflows", name="clem.process_raw_tiffs"
797-
)
795+
entry_points(group="murfey.workflows", name="clem.process_raw_tiffs")
798796
)[0]
799797
except IndexError:
800798
raise RuntimeError("The relevant Murfey workflow was not found")
@@ -853,7 +851,7 @@ def align_and_merge_stacks(
853851
try:
854852
# Try and load relevant Murfey workflow
855853
workflow: EntryPoint = list(
856-
entry_points().select(group="murfey.workflows", name="clem.align_and_merge")
854+
entry_points(group="murfey.workflows", name="clem.align_and_merge")
857855
)[0]
858856
except IndexError:
859857
raise RuntimeError("The relevant Murfey workflow was not found")

src/murfey/server/feedback.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,15 @@
1313
import time
1414
from datetime import datetime
1515
from functools import partial
16-
from importlib.metadata import EntryPoint # For type hinting only
16+
from importlib.metadata import (
17+
EntryPoint, # For type hinting only
18+
entry_points,
19+
)
1720
from pathlib import Path
1821
from typing import Dict, List, NamedTuple, Tuple
1922

2023
import mrcfile
2124
import numpy as np
22-
from backports.entry_points_selectable import entry_points
2325
from sqlalchemy import func
2426
from sqlalchemy.exc import (
2527
InvalidRequestError,
@@ -2193,14 +2195,10 @@ def feedback_callback(header: dict, message: dict, _db=murfey_db) -> None:
21932195
if murfey.server._transport_object:
21942196
murfey.server._transport_object.transport.ack(header)
21952197
return None
2196-
elif (
2197-
message["register"] in entry_points().select(group="murfey.workflows").names
2198-
):
2198+
elif message["register"] in entry_points(group="murfey.workflows").names:
21992199
# Search for corresponding workflow
22002200
workflows: list[EntryPoint] = list(
2201-
entry_points().select(
2202-
group="murfey.workflows", name=message["register"]
2203-
)
2201+
entry_points(group="murfey.workflows", name=message["register"])
22042202
) # Returns either 1 item or empty list
22052203
if not workflows:
22062204
logger.error(f"No workflow found for {sanitise(message['register'])}")

src/murfey/server/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
from __future__ import annotations
22

33
import logging
4+
from importlib.metadata import entry_points
45

5-
from backports.entry_points_selectable import entry_points
66
from fastapi import FastAPI
77
from fastapi.middleware.cors import CORSMiddleware
88
from fastapi.staticfiles import StaticFiles

src/murfey/util/config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
import os
44
import socket
55
from functools import lru_cache
6+
from importlib.metadata import entry_points
67
from pathlib import Path
78
from typing import Any, Literal, Optional
89

910
import yaml
10-
from backports.entry_points_selectable import entry_points
1111
from pydantic import BaseModel, ConfigDict, RootModel, ValidationInfo, field_validator
1212
from pydantic_settings import BaseSettings
1313

@@ -270,6 +270,6 @@ def get_extended_machine_config(
270270
)
271271
if not machine_config:
272272
return None
273-
model = entry_points().select(group="murfey.config", name=extension_name)[0].load()
273+
model = entry_points(group="murfey.config", name=extension_name)[0].load()
274274
data = getattr(machine_config, extension_name, {})
275275
return model(**data)

src/murfey/workflows/register_atlas_update.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import logging
2+
from importlib.metadata import entry_points
23

3-
from backports.entry_points_selectable import entry_points
44
from sqlmodel.orm.session import Session as SQLModelSession
55

66
from murfey.server import _transport_object
@@ -25,9 +25,7 @@ def run(
2525
message["atlas_pixel_size"],
2626
message["sample"],
2727
)
28-
if dcg_hooks := entry_points().select(
29-
group="murfey.hooks", name="data_collection_group"
30-
):
28+
if dcg_hooks := entry_points(group="murfey.hooks", name="data_collection_group"):
3129
try:
3230
for hook in dcg_hooks:
3331
hook.load()(message["dcgid"], session_id=message["session_id"])

src/murfey/workflows/register_data_collection_group.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import logging
22
import time
3+
from importlib.metadata import entry_points
34

45
import ispyb.sqlalchemy._auto_db_schema as ISPyBDB
5-
from backports.entry_points_selectable import entry_points
66
from sqlmodel import select
77
from sqlmodel.orm.session import Session as SQLModelSession
88

@@ -87,9 +87,7 @@ def run(
8787
)
8888
return {"success": False, "requeue": True}
8989

90-
if dcg_hooks := entry_points().select(
91-
group="murfey.hooks", name="data_collection_group"
92-
):
90+
if dcg_hooks := entry_points(group="murfey.hooks", name="data_collection_group"):
9391
try:
9492
for hook in dcg_hooks:
9593
hook.load()(dcgid, session_id=message["session_id"])

tests/server/test_feedback.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
from importlib.metadata import entry_points
12
from unittest.mock import MagicMock
23

34
import pytest
4-
from backports.entry_points_selectable import entry_points
55
from pytest_mock import MockerFixture
66

77
feedback_callback_params_matrix = (
@@ -46,7 +46,7 @@ def test_feedback_callback(
4646
mock_sql_session.return_value = mock_murfey_db
4747

4848
# Load the entry point and patch the executable it calls
49-
eps = list(entry_points().select(group="murfey.workflows", name=entry_point_name))
49+
eps = list(entry_points(group="murfey.workflows", name=entry_point_name))
5050
assert len(eps) == 1 # Entry point should be present and unique
5151
mock_function = mocker.patch(eps[0].value.replace(":", "."))
5252

0 commit comments

Comments
 (0)