Show More
@@ -450,71 +450,6 b" When status is 'error', the following extra fields are present::" | |||||
450 | When status is 'abort', there are for now no additional data fields. This |
|
450 | When status is 'abort', there are for now no additional data fields. This | |
451 | happens when the kernel was interrupted by a signal. |
|
451 | happens when the kernel was interrupted by a signal. | |
452 |
|
452 | |||
453 | Kernel attribute access |
|
|||
454 | ----------------------- |
|
|||
455 |
|
||||
456 | .. warning:: |
|
|||
457 |
|
||||
458 | This part of the messaging spec is not actually implemented in the kernel |
|
|||
459 | yet. |
|
|||
460 |
|
||||
461 | While this protocol does not specify full RPC access to arbitrary methods of |
|
|||
462 | the kernel object, the kernel does allow read (and in some cases write) access |
|
|||
463 | to certain attributes. |
|
|||
464 |
|
||||
465 | The policy for which attributes can be read is: any attribute of the kernel, or |
|
|||
466 | its sub-objects, that belongs to a :class:`Configurable` object and has been |
|
|||
467 | declared at the class-level with Traits validation, is in principle accessible |
|
|||
468 | as long as its name does not begin with a leading underscore. The attribute |
|
|||
469 | itself will have metadata indicating whether it allows remote read and/or write |
|
|||
470 | access. The message spec follows for attribute read and write requests. |
|
|||
471 |
|
||||
472 | Message type: ``getattr_request``:: |
|
|||
473 |
|
||||
474 | content = { |
|
|||
475 | # The (possibly dotted) name of the attribute |
|
|||
476 | 'name' : str, |
|
|||
477 | } |
|
|||
478 |
|
||||
479 | When a ``getattr_request`` fails, there are two possible error types: |
|
|||
480 |
|
||||
481 | - AttributeError: this type of error was raised when trying to access the |
|
|||
482 | given name by the kernel itself. This means that the attribute likely |
|
|||
483 | doesn't exist. |
|
|||
484 |
|
||||
485 | - AccessError: the attribute exists but its value is not readable remotely. |
|
|||
486 |
|
||||
487 |
|
||||
488 | Message type: ``getattr_reply``:: |
|
|||
489 |
|
||||
490 | content = { |
|
|||
491 | # One of ['ok', 'AttributeError', 'AccessError']. |
|
|||
492 | 'status' : str, |
|
|||
493 | # If status is 'ok', a JSON object. |
|
|||
494 | 'value' : object, |
|
|||
495 | } |
|
|||
496 |
|
||||
497 | Message type: ``setattr_request``:: |
|
|||
498 |
|
||||
499 | content = { |
|
|||
500 | # The (possibly dotted) name of the attribute |
|
|||
501 | 'name' : str, |
|
|||
502 |
|
||||
503 | # A JSON-encoded object, that will be validated by the Traits |
|
|||
504 | # information in the kernel |
|
|||
505 | 'value' : object, |
|
|||
506 | } |
|
|||
507 |
|
||||
508 | When a ``setattr_request`` fails, there are also two possible error types with |
|
|||
509 | similar meanings as those of the ``getattr_request`` case, but for writing. |
|
|||
510 |
|
||||
511 | Message type: ``setattr_reply``:: |
|
|||
512 |
|
||||
513 | content = { |
|
|||
514 | # One of ['ok', 'AttributeError', 'AccessError']. |
|
|||
515 | 'status' : str, |
|
|||
516 | } |
|
|||
517 |
|
||||
518 |
|
453 | |||
519 |
|
|
454 | ||
520 | Object information |
|
455 | Object information | |
@@ -1018,39 +953,6 b' Message type: ``status``::' | |||||
1018 | execution_state : ('busy', 'idle', 'starting') |
|
953 | execution_state : ('busy', 'idle', 'starting') | |
1019 | } |
|
954 | } | |
1020 |
|
955 | |||
1021 | Kernel crashes |
|
|||
1022 | -------------- |
|
|||
1023 |
|
||||
1024 | When the kernel has an unexpected exception, caught by the last-resort |
|
|||
1025 | sys.excepthook, we should broadcast the crash handler's output before exiting. |
|
|||
1026 | This will allow clients to notice that a kernel died, inform the user and |
|
|||
1027 | propose further actions. |
|
|||
1028 |
|
||||
1029 | Message type: ``crash``:: |
|
|||
1030 |
|
||||
1031 | content = { |
|
|||
1032 | # Similarly to the 'error' case for execute_reply messages, this will |
|
|||
1033 | # contain ename, evalue and traceback fields. |
|
|||
1034 |
|
||||
1035 | # An additional field with supplementary information such as where to |
|
|||
1036 | # send the crash message |
|
|||
1037 | 'info' : str, |
|
|||
1038 | } |
|
|||
1039 |
|
||||
1040 |
|
||||
1041 | Future ideas |
|
|||
1042 | ------------ |
|
|||
1043 |
|
||||
1044 | Other potential message types, currently unimplemented, listed below as ideas. |
|
|||
1045 |
|
||||
1046 | Message type: ``file``:: |
|
|||
1047 |
|
||||
1048 | content = { |
|
|||
1049 | 'path' : 'cool.jpg', |
|
|||
1050 | 'mimetype' : str, |
|
|||
1051 | 'data' : str, |
|
|||
1052 | } |
|
|||
1053 |
|
||||
1054 |
|
956 | |||
1055 | Messages on the stdin ROUTER/DEALER sockets |
|
957 | Messages on the stdin ROUTER/DEALER sockets | |
1056 | =========================================== |
|
958 | =========================================== |
General Comments 0
You need to be logged in to leave comments.
Login now