SAMP (pyvo.samp
)¶
SAMP, the Simple Application Messaging Protocol, lets you send and receive tables, datasets, or points of interest between various clients on a desktop.
While the main SAMP support still resides in astropy (it might be moved over to pyvo in later versions), there are a few wrapper functions in pyvo that make a few common SAMP tasks simpler or more robust.
Most importantly, pyvo lets you manage the SAMP connection in a context manager, which means you will not have to remember to close your connections to avoid ugly artefacts in the SAMP hub.
In addition, there are convenience functions for sending out data; in all
cases, you can pass a client_name
to only send a message to the
specific client; a simple way to obtain client names is to inspect
TOPCAT’s SAMP status if you use TOPCAT’s built-in SAMP hub. If, on the
other hand, you pass None
as client_name
(or omit the
parameter), you will send a broadcast.
Sending tables has the additional difficulty over sending other datasets that you will have to make the table data accessible to the receiving client. The solution chosen by pyvo.samp at this time will only work if the sending and receiving applications share a file system. This seems a reasonable expectation and saves a bit of a potential security headache.
Using pyvo.samp, sending an astropy table t
to TOPCAT would look
like this:
import pyvo
with pyvo.samp.connection(client_name="pyvo magic") as conn:
pyvo.samp.send_table_to(
conn,
t,
name="my-results",
client_name="topcat")
Reference/API¶
pyvo.samp Module¶
A module with helpers for broadcasting results to samp clients
Functions¶
|
returns the SAMP id of the client with samp.name samp_name. |
|
sends astropy_table via SAMP. |
|
sends SAMP messages to load data. |
|
asks a spectrum client to open a remote spectrum via SAMP. |
|
asks an image client to open a remote image via SAMP. |
|
a context manager making astropy_table available under a (file) URL for the controlled section. |
|
a context manager to give the controlled block a SAMP connection. |