smartem_backend.api_client#

Members

EntityConverter

Handles conversions between EPU data model and API request/response models.

SmartEMAPIClient

SmartEM API client that provides synchronous HTTP interface.

class smartem_backend.api_client.EntityConverter[source]#

Handles conversions between EPU data model and API request/response models. Separating this conversion logic keeps the main client code cleaner.

static acquisition_to_request(entity: AcquisitionData) AcquisitionCreateRequest[source]#

Convert EPU session data to acquisition request model

static grid_to_request(entity: GridData, lowmag: bool = False) GridCreateRequest[source]#

Convert Grid data to grid request model

static gridsquare_to_request(entity: GridSquareData, lowmag: bool = False) GridSquareCreateRequest[source]#

Convert GridSquareData to grid square request model

static foilhole_to_request(entity: FoilHoleData) FoilHoleCreateRequest[source]#

Convert FoilHoleData to foil hole request model

static micrograph_to_request(entity: MicrographData) MicrographCreateRequest[source]#

Convert MicrographData to micrograph request model

static atlas_to_request(entity: AtlasData) AtlasCreateRequest[source]#

Convert AtlasData to atlas request model

static atlas_tile_to_request(entity: AtlasTileData) AtlasTileCreateRequest[source]#

Convert AtlasTileData to atlas tile request model

static gridsquare_position_to_request(entity: AtlasTileGridSquarePositionData) GridSquarePositionRequest[source]#

Convert AtlasTileData to atlas tile request model

class smartem_backend.api_client.SmartEMAPIClient(base_url: str, timeout: float = 10.0, logger=None)[source]#

SmartEM API client that provides synchronous HTTP interface.

This client handles all API communication with the SmartEM Core API, provides data conversion between EPU data models and API request/response models, and maintains a cache of entity IDs.

Initialize the SmartEM API client

Parameters:
  • base_url – Base URL for the API

  • timeout – Request timeout in seconds

  • logger – Optional custom logger instance

close() None[source]#

Close the client connection

get_status() dict[str, object][source]#

Get API status information

get_health() dict[str, object][source]#

Get API health check information

get_acquisitions() list[AcquisitionResponse][source]#

Get all acquisitions

create_acquisition(acquisition: AcquisitionData) AcquisitionResponse[source]#

Create a new acquisition

get_acquisition(acquisition_uuid: str) AcquisitionResponse[source]#

Get a single acquisition by ID

update_acquisition(acquisition: AcquisitionData) AcquisitionResponse[source]#

Update an acquisition

delete_acquisition(acquisition_uuid: str) None[source]#

Delete an acquisition

get_grids() list[GridResponse][source]#

Get all grids

get_grid(grid_uuid: str) GridResponse[source]#

Get a single grid by ID

update_grid(grid: GridData) GridResponse[source]#

Update a grid

delete_grid(grid_uuid: str) None[source]#

Delete a grid

get_acquisition_grids(acquisition_uuid: str) list[GridResponse][source]#

Get all grids for a specific acquisition

create_acquisition_grid(grid: GridData) GridResponse[source]#

Create a new grid for a specific acquisition

get_atlases() list[AtlasResponse][source]#

Get all atlases

get_atlas(atlas_uuid: str) AtlasResponse[source]#

Get a single atlas by ID

update_atlas(atlas: AtlasData) AtlasResponse[source]#

Update an atlas

delete_atlas(atlas_uuid: str) None[source]#

Delete an atlas

get_grid_atlas(grid_uuid: str) AtlasResponse[source]#

Get the atlas for a specific grid

create_grid_atlas(atlas: AtlasData) AtlasResponse[source]#

Create a new atlas for a grid

get_atlas_tiles() list[AtlasTileResponse][source]#

Get all atlas tiles

get_atlas_tile(tile_uuid: str) AtlasTileResponse[source]#

Get a single atlas tile by ID

update_atlas_tile(tile: AtlasTileData) AtlasTileResponse[source]#

Update an atlas tile

delete_atlas_tile(tile_uuid: str) None[source]#

Delete an atlas tile

get_atlas_tiles_by_atlas(atlas_uuid: str) list[AtlasTileResponse][source]#

Get all tiles for a specific atlas

create_atlas_tile_for_atlas(tile: AtlasTileData) AtlasTileResponse[source]#

Create a new tile for a specific atlas

Link a grid square to a tile

get_gridsquares() list[GridSquareResponse][source]#

Get all grid squares

get_gridsquare(gridsquare_uuid: str) GridSquareResponse[source]#

Get a single grid square by ID

update_gridsquare(gridsquare: GridSquareData, lowmag: bool = False) GridSquareResponse[source]#

Update a grid square

delete_gridsquare(gridsquare_uuid: str) None[source]#

Delete a grid square

get_grid_gridsquares(grid_uuid: str) list[GridSquareResponse][source]#

Get all grid squares for a specific grid

create_grid_gridsquare(gridsquare: GridSquareData, lowmag: bool = False) GridSquareResponse[source]#

Create a new grid square for a specific grid

get_foilholes() list[FoilHoleResponse][source]#

Get all foil holes

get_foilhole(foilhole_uuid: str) FoilHoleResponse[source]#

Get a single foil hole by ID

update_foilhole(foilhole: FoilHoleData) FoilHoleResponse[source]#

Update a foil hole

delete_foilhole(foilhole_uuid: str) None[source]#

Delete a foil hole

get_gridsquare_foilholes(gridsquare_uuid: str) list[FoilHoleResponse][source]#

Get all foil holes for a specific grid square

create_gridsquare_foilhole(foilhole: FoilHoleData) FoilHoleResponse[source]#

Create a new foil hole for a specific grid square

get_micrographs() list[MicrographResponse][source]#

Get all micrographs

get_micrograph(micrograph_uuid: str) MicrographResponse[source]#

Get a single micrograph by ID

update_micrograph(micrograph: MicrographData) MicrographResponse[source]#

Update a micrograph

delete_micrograph(micrograph_id: str) None[source]#

Delete a micrograph

get_foilhole_micrographs(foilhole_id: str) list[MicrographResponse][source]#

Get all micrographs for a specific foil hole

create_foilhole_micrograph(micrograph: MicrographData) MicrographResponse[source]#

Create a new micrograph for a specific foil hole