Rename token type to `NDToken` in the style of `nptyping`
							parent
							
								
									65cdcf08f7
								
							
						
					
					
						commit
						478792ec10
					
				|  | @ -109,7 +109,7 @@ class SharedInt: | ||||||
|                 log.warning(f'Shm for {name} already unlinked?') |                 log.warning(f'Shm for {name} already unlinked?') | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class _NpToken(Struct, frozen=True): | class NDToken(Struct, frozen=True): | ||||||
|     ''' |     ''' | ||||||
|     Internal represenation of a shared memory ``numpy`` array "token" |     Internal represenation of a shared memory ``numpy`` array "token" | ||||||
|     which can be used to key and load a system (OS) wide shm entry |     which can be used to key and load a system (OS) wide shm entry | ||||||
|  | @ -137,18 +137,18 @@ class _NpToken(Struct, frozen=True): | ||||||
|         return self.to_dict() |         return self.to_dict() | ||||||
| 
 | 
 | ||||||
|     @classmethod |     @classmethod | ||||||
|     def from_msg(cls, msg: dict) -> _NpToken: |     def from_msg(cls, msg: dict) -> NDToken: | ||||||
|         if isinstance(msg, _NpToken): |         if isinstance(msg, NDToken): | ||||||
|             return msg |             return msg | ||||||
| 
 | 
 | ||||||
|         # TODO: native struct decoding |         # TODO: native struct decoding | ||||||
|         # return _token_dec.decode(msg) |         # return _token_dec.decode(msg) | ||||||
| 
 | 
 | ||||||
|         msg['dtype_descr'] = tuple(map(tuple, msg['dtype_descr'])) |         msg['dtype_descr'] = tuple(map(tuple, msg['dtype_descr'])) | ||||||
|         return _NpToken(**msg) |         return NDToken(**msg) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # _token_dec = msgspec.msgpack.Decoder(_NpToken) | # _token_dec = msgspec.msgpack.Decoder(NDToken) | ||||||
| 
 | 
 | ||||||
| # TODO: this api? | # TODO: this api? | ||||||
| # _known_tokens = tractor.ActorVar('_shm_tokens', {}) | # _known_tokens = tractor.ActorVar('_shm_tokens', {}) | ||||||
|  | @ -156,10 +156,10 @@ class _NpToken(Struct, frozen=True): | ||||||
| # _known_tokens = trio.RunVar('shms', {}) | # _known_tokens = trio.RunVar('shms', {}) | ||||||
| 
 | 
 | ||||||
| # process-local store of keys to tokens | # process-local store of keys to tokens | ||||||
| _known_tokens: dict[str, _NpToken] = {} | _known_tokens: dict[str, NDToken] = {} | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_shm_token(key: str) -> _NpToken | None: | def get_shm_token(key: str) -> NDToken | None: | ||||||
|     ''' |     ''' | ||||||
|     Convenience func to check if a token |     Convenience func to check if a token | ||||||
|     for the provided key is known by this process. |     for the provided key is known by this process. | ||||||
|  | @ -175,13 +175,13 @@ def _make_token( | ||||||
|     size: int, |     size: int, | ||||||
|     dtype: np.dtype, |     dtype: np.dtype, | ||||||
| 
 | 
 | ||||||
| ) -> _NpToken: | ) -> NDToken: | ||||||
|     ''' |     ''' | ||||||
|     Create a serializable token that can be used |     Create a serializable token that can be used | ||||||
|     to access a shared array. |     to access a shared array. | ||||||
| 
 | 
 | ||||||
|     ''' |     ''' | ||||||
|     return _NpToken( |     return NDToken( | ||||||
|         shm_name=key, |         shm_name=key, | ||||||
|         shm_first_index_name=key + "_first", |         shm_first_index_name=key + "_first", | ||||||
|         shm_last_index_name=key + "_last", |         shm_last_index_name=key + "_last", | ||||||
|  | @ -231,8 +231,8 @@ class ShmArray: | ||||||
|     # TODO: ringbuf api? |     # TODO: ringbuf api? | ||||||
| 
 | 
 | ||||||
|     @property |     @property | ||||||
|     def _token(self) -> _NpToken: |     def _token(self) -> NDToken: | ||||||
|         return _NpToken( |         return NDToken( | ||||||
|             shm_name=self._shm.name, |             shm_name=self._shm.name, | ||||||
|             shm_first_index_name=self._first._shm.name, |             shm_first_index_name=self._first._shm.name, | ||||||
|             shm_last_index_name=self._last._shm.name, |             shm_last_index_name=self._last._shm.name, | ||||||
|  | @ -557,11 +557,11 @@ def attach_shm_ndarray( | ||||||
|     access are constructed. |     access are constructed. | ||||||
| 
 | 
 | ||||||
|     ''' |     ''' | ||||||
|     token = _NpToken.from_msg(token) |     token = NDToken.from_msg(token) | ||||||
|     key = token.shm_name |     key = token.shm_name | ||||||
| 
 | 
 | ||||||
|     if key in _known_tokens: |     if key in _known_tokens: | ||||||
|         assert _NpToken.from_msg(_known_tokens[key]) == token, "WTF" |         assert NDToken.from_msg(_known_tokens[key]) == token, "WTF" | ||||||
| 
 | 
 | ||||||
|     # XXX: ugh, looks like due to the ``shm_open()`` C api we can't |     # XXX: ugh, looks like due to the ``shm_open()`` C api we can't | ||||||
|     # actually place files in a subdir, see discussion here: |     # actually place files in a subdir, see discussion here: | ||||||
|  | @ -649,10 +649,10 @@ def maybe_open_shm_ndarray( | ||||||
|     running in **this** process. Systems where multiple actors may seek |     running in **this** process. Systems where multiple actors may seek | ||||||
|     to access a common block can use this function to attempt to acquire |     to access a common block can use this function to attempt to acquire | ||||||
|     a token as discovered by the actors who have previously stored |     a token as discovered by the actors who have previously stored | ||||||
|     a "key" -> ``_NpToken`` map in an actor local (aka python global) |     a "key" -> ``NDToken`` map in an actor local (aka python global) | ||||||
|     variable. |     variable. | ||||||
| 
 | 
 | ||||||
|     If you know the explicit ``_NpToken`` for your memory segment instead |     If you know the explicit ``NDToken`` for your memory segment instead | ||||||
|     use ``attach_shm_array``. |     use ``attach_shm_array``. | ||||||
| 
 | 
 | ||||||
|     ''' |     ''' | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue