Closed griffinmilsap closed 1 year ago
@griffinmilsap I'm starting to think that ezmsg shutdown
should still be included with a confirmation step to make sure the user is doing so intentionally. Additionally, it may be possible to check how many graph connections are still active at that time and notify the user before confirmation prompt.
The alternative is that a user may still maliciously kill a running server with a kill -9
command, so I'm not sure exactly what we are gaining by removing this command entirely.
ezmsg.core v3.3.0
asyncio.sleep(0)
after every publish. Note: this halves performance of the perf test, but maintains flow without constant backpressure warnings for systems that publish really fastezmsg.util
ezmsg.util.messages.axisarray
--AxisArray
fully fleshed outxarray
-likesel
andisel
functionality for slices along dimensionsStampedMessage
ezmsg.util.terminate
--TerminateOnTotal
(messages received) andTerminateOnTimeout
units introducedezmsg.util.messagecodec
-- RefactoredJSONEncoder
andJSONDecoder
forezmsg.util.messagelogger
. This codec now properly serializes/deserializes message dataclasses just likepickle
, but with a human-readable plaintext message log format! NB.MessageEncoder
andMessageDecoder
moved here fromezmsg.util.messagelogger
and the json file format has changed ever-so-slightly (and backward compatibly) to support this.ezmsg.util.messagereplay
-- Introduces aMessageReplay
unit that can deserialize and publish messages from message files written byMessageLogger
. Also introduces aMessageCollector
that just saves all received messages to a list in theSTATE
; can be accessed after execution completes from a notebook if run in the main process.ezmsg.util.messagequeue
-- HUGE enhancement that allowsezmsg
systems to run with "squishiness" and "leakiness" -- allowing your system to accumulate a backlog of messages (that leaks if/when you want) to prevent a slow downstream unit from backing up your whole system.ez.run
force_single_process
keyword argument which tries to run provided components all in one process -- particularly useful for notebook operationGraphServer
andSHMServer
Enhancements$EZMSG_GRAPHSERVER_ADDR
and$EZMSG_SHMSERVER_ADDR
(strings formatted ashostname:12345
) environment variables -- and if defined,ezmsg
will force a connection to these addresses.GraphServer
,SHMServer
are 25978 and 25979 respectively. If the environment variables are not defined,ezmsg
will first check these reserved ports on127.0.0.1
and try to connect to servers running there. theezmsg start
command starts servers on the default ports and is a handy way for multiple systems on the same PC to dynamically interact with each-otherezmsg
will force-start new servers on unoccupied ports starting from 10000 (or$EZMSG_SERVER_PORT_START
) -- but avoiding default ports for the services.ezmsg start
now reports forked PIDezmsg graphviz
writes a DOT-formatted graph specification to stdout; can be piped tographviz
to visualize the current running graph.__version__
attribute toezmsg.version
fixpip install
ezmsg
will always start a new threaded eventloop for tasks; because of@ez.main
codeKeyboardInterrupt
handling (especially on Windows)Unit.Initialize()
and creation ofState
is now called from the task thread (andasyncio
synchronization primitives will automatically be associated with the correct event loopGraphServer
andSHMServer
; reduced redundant code between these services significantly as well.WindowsSelectorEventLoop
on Windows forasyncio
.ResourceWarnings
resolved; allasyncio
operations now threadsafe-ly implemented.ConnectionResetError
andBrokenPipeError
on shutdown.Settings
now decorated with@dataclass_transform
and type-checking should resolve settings fields appropriately.ezmsg
's FIRST non-stdlib dependency;typing_extensions
which is required to backport this typing PEP to Python 3.8.typing_extensions
has no external deps and is pure-python; unlikely to break in the future.Settings
classes no-longer automatically generateunsafe_hash
functions. This behavior can be reintroduced by creating your owndataclass
definition withunsafe_hash=True, frozen=True
and inheriting fromSettings
.ezmsg.testing
Extensions
ezmsg.sigproc v1.2.0
AxisArrays
ezmsg.sigproc.spectral
newaxis
accumulation for batchingTimeseriesMessage
deletedTSMessage
is now a function that returns a properly formattedAxisArray
ezmsg.websocket v1.1.1
__version__
attributeezmsg.websocket
toezmsg.websocket.units
pyproject.toml
ezmsg.zmq v1.1.1
__version__
attributeezmsg.zmq.sender
andezmsg.zmq.poller
toezmsg.zmq.units
pyproject.toml