bitspark-bitwire 0.5.0__tar.gz → 0.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. {bitspark_bitwire-0.5.0/src/bitspark_bitwire.egg-info → bitspark_bitwire-0.7.0}/PKG-INFO +10 -1
  2. bitspark_bitwire-0.7.0/README.md +19 -0
  3. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/pyproject.toml +1 -1
  4. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0/src/bitspark_bitwire.egg-info}/PKG-INFO +10 -1
  5. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/src/bitwire/__init__.py +15 -0
  6. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/tests/typecheck.py +12 -0
  7. bitspark_bitwire-0.5.0/README.md +0 -10
  8. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/LICENSE +0 -0
  9. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/MANIFEST.in +0 -0
  10. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/NOTICE +0 -0
  11. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/check.py +0 -0
  12. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/requirements-dev.txt +0 -0
  13. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/setup.cfg +0 -0
  14. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/src/bitspark_bitwire.egg-info/SOURCES.txt +0 -0
  15. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/src/bitspark_bitwire.egg-info/dependency_links.txt +0 -0
  16. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/src/bitspark_bitwire.egg-info/top_level.txt +0 -0
  17. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/src/bitwire/ontos.py +0 -0
  18. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/src/bitwire/py.typed +0 -0
  19. {bitspark_bitwire-0.5.0 → bitspark_bitwire-0.7.0}/tests/test_consumer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bitspark-bitwire
3
- Version: 0.5.0
3
+ Version: 0.7.0
4
4
  Summary: Addressless wires and addressed access over ontos values
5
5
  Author: Bitspark
6
6
  License-Expression: Apache-2.0
@@ -28,3 +28,12 @@ values (a nominal interface in Java), not opaque route access.
28
28
  See the repository's docs/wire/contract.md and docs/wire/carriers.md. Version 0.5.0
29
29
  is a clean breaking replacement; compilation and packaged consumers check the
30
30
  native surface, while bitruntime supplies independently tested implementations.
31
+
32
+ The public hydrated declarations add recursive atoms, tuples and send-only live
33
+ wires above the ground boundary. HydratedEndpoint retains receive/lifetime
34
+ ownership; its wire view conveys only sending. Arrival context is established by
35
+ composition outside the message. Runtime construction and recognition enforce
36
+ finite immutable tuples, ground canonicalization and owned capability identity;
37
+ implementing a native interface alone does not make a foreign object exportable.
38
+ See [hydrated native contracts](../../docs/wire/hydrated-native.md) and
39
+ [decision 0019](../../docs/decisions/0019-hydrated-wire-protocol.md).
@@ -0,0 +1,19 @@
1
+ # py wire presentation
2
+
3
+ Addressless Wire sends a ground ontos value. Endpoint adds receive ownership and
4
+ closure. AddressedWire adds an exact byte-path argument; AddressedEndpoint carries
5
+ that layer over one endpoint. WireNode is the complete deixis structure over Wire
6
+ values (a nominal interface in Java), not opaque route access.
7
+
8
+ See the repository's docs/wire/contract.md and docs/wire/carriers.md. Version 0.5.0
9
+ is a clean breaking replacement; compilation and packaged consumers check the
10
+ native surface, while bitruntime supplies independently tested implementations.
11
+
12
+ The public hydrated declarations add recursive atoms, tuples and send-only live
13
+ wires above the ground boundary. HydratedEndpoint retains receive/lifetime
14
+ ownership; its wire view conveys only sending. Arrival context is established by
15
+ composition outside the message. Runtime construction and recognition enforce
16
+ finite immutable tuples, ground canonicalization and owned capability identity;
17
+ implementing a native interface alone does not make a foreign object exportable.
18
+ See [hydrated native contracts](../../docs/wire/hydrated-native.md) and
19
+ [decision 0019](../../docs/decisions/0019-hydrated-wire-protocol.md).
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "bitspark-bitwire"
7
- version = "0.5.0"
7
+ version = "0.7.0"
8
8
  description = "Addressless wires and addressed access over ontos values"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bitspark-bitwire
3
- Version: 0.5.0
3
+ Version: 0.7.0
4
4
  Summary: Addressless wires and addressed access over ontos values
5
5
  Author: Bitspark
6
6
  License-Expression: Apache-2.0
@@ -28,3 +28,12 @@ values (a nominal interface in Java), not opaque route access.
28
28
  See the repository's docs/wire/contract.md and docs/wire/carriers.md. Version 0.5.0
29
29
  is a clean breaking replacement; compilation and packaged consumers check the
30
30
  native surface, while bitruntime supplies independently tested implementations.
31
+
32
+ The public hydrated declarations add recursive atoms, tuples and send-only live
33
+ wires above the ground boundary. HydratedEndpoint retains receive/lifetime
34
+ ownership; its wire view conveys only sending. Arrival context is established by
35
+ composition outside the message. Runtime construction and recognition enforce
36
+ finite immutable tuples, ground canonicalization and owned capability identity;
37
+ implementing a native interface alone does not make a foreign object exportable.
38
+ See [hydrated native contracts](../../docs/wire/hydrated-native.md) and
39
+ [decision 0019](../../docs/decisions/0019-hydrated-wire-protocol.md).
@@ -33,3 +33,18 @@ class DeixisNode(Protocol[T]):
33
33
  WireNode = DeixisNode[Wire]
34
34
  __all__ = ['Atom', 'Tuple', 'Value', 'atom', 'tuple_', 'equals', 'Path', 'Termination',
35
35
  'Wire', 'Endpoint', 'AddressedWire', 'AddressedEndpoint', 'WireNode', 'Parts', 'DeixisNode']
36
+
37
+ # These are declarations, not runtime recognition or constructors.
38
+ ReceivedContext = object
39
+ class HydratedTuple(Protocol):
40
+ def items(self) -> tuple[HydratedValue, ...]: ...
41
+ class HydratedWire(Protocol):
42
+ async def send(self, message: HydratedValue) -> None: ...
43
+ HydratedValue = Atom | Tuple | HydratedTuple | HydratedWire
44
+ class HydratedEndpoint(HydratedWire, Protocol):
45
+ @property
46
+ def wire(self) -> HydratedWire: ...
47
+ def receive(self, handler: Callable[[HydratedValue, ReceivedContext], None]) -> Callable[[], None]: ...
48
+ async def closed(self) -> Termination: ...
49
+ async def close(self) -> None: ...
50
+ __all__ += ['HydratedValue', 'HydratedTuple', 'HydratedWire', 'HydratedEndpoint', 'ReceivedContext']
@@ -12,3 +12,15 @@ async def consume(endpoint: Endpoint, addressed: AddressedEndpoint) -> None:
12
12
  await addressed.closed()
13
13
  await endpoint.close()
14
14
  await endpoint.closed()
15
+
16
+ from bitwire import HydratedWire, HydratedEndpoint, HydratedValue, ReceivedContext
17
+ async def hydrated_surface(owner: HydratedEndpoint, sender: HydratedWire) -> None:
18
+ value: HydratedValue = Tuple((Atom(),))
19
+ def receiver(message: HydratedValue, context: ReceivedContext) -> None:
20
+ pass
21
+ detach = owner.receive(receiver)
22
+ await sender.send(value)
23
+ await sender.send(owner.wire)
24
+ detach()
25
+ await owner.close()
26
+ await owner.closed()
@@ -1,10 +0,0 @@
1
- # py wire presentation
2
-
3
- Addressless Wire sends a ground ontos value. Endpoint adds receive ownership and
4
- closure. AddressedWire adds an exact byte-path argument; AddressedEndpoint carries
5
- that layer over one endpoint. WireNode is the complete deixis structure over Wire
6
- values (a nominal interface in Java), not opaque route access.
7
-
8
- See the repository's docs/wire/contract.md and docs/wire/carriers.md. Version 0.5.0
9
- is a clean breaking replacement; compilation and packaged consumers check the
10
- native surface, while bitruntime supplies independently tested implementations.