diff --git a/src/diffcalc_api/__init__.py b/src/diffcalc_api/__init__.py index f5f5d90..c8ba73b 100644 --- a/src/diffcalc_api/__init__.py +++ b/src/diffcalc_api/__init__.py @@ -1,6 +1,6 @@ """API to expose diffcalc-core methods.""" -from . import config, core_types, database, openapi, server +from . import config, database, openapi, server from ._version_git import __version__ -__all__ = ["__version__", "server", "config", "database", "core_types", "openapi"] +__all__ = ["__version__", "server", "config", "database", "openapi"] diff --git a/src/diffcalc_api/core_types.py b/src/diffcalc_api/core_types.py deleted file mode 100644 index e01f190..0000000 --- a/src/diffcalc_api/core_types.py +++ /dev/null @@ -1,51 +0,0 @@ -"""Exposes types of diffcalc-core objects.""" - -from dataclasses import dataclass -from typing import Optional - - -@dataclass -class Position: - """Diffractometer angles in degrees. - - Similar to diffcalc.hkl.geometry.Position - """ - - mu: float - delta: float - nu: float - eta: float - chi: float - phi: float - - -@dataclass -class Orientation: - """Reference orientation of the sample. - - Similar to diffcalc.ub.reference.Orientation - """ - - h: float - k: float - l: float - x: float - y: float - z: float - pos: Position - tag: Optional[str] - - -@dataclass -class Reflection: - """Reference reflection of the sample. - - Similar to diffcalc.ub.reference.Reflection - """ - - h: float - k: float - l: float - pos: Position - energy: float - tag: Optional[str] diff --git a/src/diffcalc_api/models/response.py b/src/diffcalc_api/models/response.py index 0c74ee1..d9a1c50 100644 --- a/src/diffcalc_api/models/response.py +++ b/src/diffcalc_api/models/response.py @@ -1,10 +1,16 @@ """Pydantic models relating to all endpoint responses.""" -from typing import Dict, List +from dataclasses import dataclass +from typing import Dict, List, Optional from pydantic import BaseModel -from diffcalc_api.core_types import Orientation, Reflection -from diffcalc_api.models.ub import HklModel, MiscutModel, SphericalCoordinates, XyzModel +from diffcalc_api.models.ub import ( + HklModel, + MiscutModel, + PositionModel, + SphericalCoordinates, + XyzModel, +) class InfoResponse(BaseModel): @@ -83,6 +89,38 @@ class MiscutResponse(BaseModel): payload: MiscutModel +@dataclass +class Orientation: + """Reference orientation of the sample. + + Similar to diffcalc.ub.reference.Orientation + """ + + h: float + k: float + l: float + x: float + y: float + z: float + pos: PositionModel + tag: Optional[str] + + +@dataclass +class Reflection: + """Reference reflection of the sample. + + Similar to diffcalc.ub.reference.Reflection + """ + + h: float + k: float + l: float + pos: PositionModel + energy: float + tag: Optional[str] + + class ReflectionResponse(BaseModel): """Response for any operation returning a reflection.""" diff --git a/src/diffcalc_api/routes/ub.py b/src/diffcalc_api/routes/ub.py index 6a3758a..07e69d3 100644 --- a/src/diffcalc_api/routes/ub.py +++ b/src/diffcalc_api/routes/ub.py @@ -4,7 +4,6 @@ from fastapi import APIRouter, Body, Depends, Query -from diffcalc_api.core_types import Orientation, Position, Reflection from diffcalc_api.errors.ub import ( BothTagAndIdxProvidedError, InvalidSetLatticeParamsError, @@ -15,8 +14,10 @@ ArrayResponse, InfoResponse, MiscutResponse, + Orientation, OrientationResponse, ReciprocalSpaceResponse, + Reflection, ReflectionResponse, SphericalResponse, StringResponse, @@ -100,7 +101,7 @@ async def get_reflection( ref.h, ref.k, ref.l, - Position(**ref.pos.asdict), + PositionModel(**ref.pos.asdict), ref.energy, ref.tag, ) @@ -246,7 +247,7 @@ async def get_orientation( orient.x, orient.y, orient.z, - Position(**orient.pos.asdict), + PositionModel(**orient.pos.asdict), orient.tag if orient.tag is not None else "", ) return OrientationResponse(payload=orientation)