Integrate Conductor Interface for py-slang Runner #56
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR integrates the Conductor Interface into the py-slang project, enabling standardized communication between the py-slang runner and the Source Academy frontend.
Adapted the Conductor Interface from source-academy/conductor, including the following directories:
src/conductor/
src/common/
src/conduit/
I modified README.md to include acknowledgements to the author of the conductor. Additionally, each adapted file includes a header comment indicating its origin from the conductor repository.
The conductor-related folders were directly copied from the repository. I did not modify that part of the code and did not know much about it (I just know it works will now).
The part I designed and implemented is the connection layer—mainly:
src/runner/pyRunner.ts:
This introduces the runCSEMachine function, which wraps the evaluate function and returns a standardized Result using CSEResultPromise.
src/index.ts:
Exports runInContext, which converts Python code into an ESTree AST and runs it through runCSEMachine.
Initializes the Conductor plugin with initialise(PyEvaluator).