Repository navigation
Feature transactional apis - #174
Conversation
…ssages, some minor conv APIs.
…g deadlock for specific types of async tasks.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## development #174 +/- ##
===============================================
+ Coverage 89.07% 90.53% +1.46%
===============================================
Files 27 32 +5
Lines 3533 4175 +642
===============================================
+ Hits 3147 3780 +633
- Misses 386 395 +9 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Covers the error, teardown and empty-answer branches that the feature tests never reach: conversation idempotence/immutable payloads/late inbound, the gather collector's filtering rules, the dispatch decorators' rejection paths and the sync handler bridge, the topology health queries on agents without a topology, the simulation world's container facade, the IPC stream framing and ownership rules, and the two untested scheduler branches. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Docstrings, comments, docs and the readme used em dashes for three distinct jobs: labelling a term, wrapping a parenthetical, and joining two clauses. Each is now spelled with the punctuation that says the same thing without the character: a colon for labels and definitions, parentheses or commas for asides, a semicolon or a conjunction for joined clauses. Prose only, so behaviour and RST structure are unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
|
||
| logger = logging.getLogger(__name__) | ||
|
|
||
| SIMULATION_ADDR = "simulation" |
There was a problem hiding this comment.
Its just a placeholder string, as the SimulationContainer is part of the Container class hierarchy.
| ``send_message`` queues messages with a delivery time computed by the | ||
| communication simulation; the world delivers them while stepping. | ||
| """ | ||
|
|
There was a problem hiding this comment.
Does this imply that every simulation is a communcation simulation? Can I only look at communication simulations this way, can i extend the simulation or can i swap the communication simulation ot for a different one? I am not sure how this is supposed to be used
Not every simulation with mango will be interested in message delays and packet loss between agents
There was a problem hiding this comment.
i would make the communication simulation as an instance of a simulation and put it in a folder like simulation/simulation_instances or we can talk about making a new mango library so that we can offer different instances their and the community could add their simulations there as well
because communication is a very relevant topic i think it would be fine to leave it in the mango package
There was a problem hiding this comment.
When messages are not delivered with a real time protocol like TCP or MQTT, the behavior of such a protocol must be simulated, always. Delays are not always of interest, in that case the default communication simulator can just return some static delays. Different CommunicationSimulation classes are already possible look at the communication.py, where the built-in simulator is a subclass of CommunicationSimulation. This entry point can be used to integrate own communication simulators.
| :class:`WorldRecording` / :class:`AgentsRecording` instances accessible | ||
| via ``world.data_collections`` and ``world.data_agent_collections``. | ||
| """ | ||
|
|
There was a problem hiding this comment.
I did not see this in the documentation, maybe add a short explanation and example to see when this is used best
There was a problem hiding this comment.
There are docs under Simulation World -> Data recording
| world.add_data_collector(_run) | ||
|
|
||
|
|
||
| def record_position( |
There was a problem hiding this comment.
maybe use this as an example in the documentation and make the function more general like record_key(); shouldn't this function just use the record_agent_having(key: "position") ?
There was a problem hiding this comment.
There are examples under Simulation World -> Data recording
| if container.inbox is not None: | ||
| await container.inbox.join() | ||
| for scheduled_task, task, _, _ in task_list: | ||
| # Do NOT skip this wait when the futures are already resolved. It looks |
There was a problem hiding this comment.
Add these kinds information to a common mistakes file in documentation?
There was a problem hiding this comment.
Its not a mistake users can make, only developers working on this highly specific code, so i think the comment is correct here.
PHRueh
left a comment
There was a problem hiding this comment.
I think the changes and additions will be very helpful and will close the issues RPC capability
#151 and [Roles] Subscribe to message type convenience method
#41
We already discussed to add the convenience methods to the handle_message of regular non-role agents
All other issues that i see are already featured in other issues (overview over all functions, structure of the documentation)
|
(Please smaller PRs in the future) |
No description provided.