The Python binding (kpy/): klammertext.Machine from a script
Assembled from klammertext-dev ed13dfaa5b7a. kpy/klammertext.cpp is a CPython extension module giving a Python script an instance of the Machine class -- ktext in-process, set up through the same functions the command uses. Errors map one-to-one to Python exceptions under the C++ names; an @eval's Python exception is chained as __cause__. Built by make -C mac, found through PYTHONPATH (env/runtime.env sets it), tested by tst/kpy_test.sh. Three engine changes came with it: Error::message(), set_command_state(), and the @eval error report carrying its traceback. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Uv7KWxafinDPraswEf4GsC
This commit is contained in:
1 parent
e4f1307aa9
commit
760fda5470
17 files changed
+1241
-78
No files matched your search
@@ -17,6 +17,14 @@ public:
|
||||
, m_loc(locator)
|
||||
{}
|
||||
|
||||
// The report text as the commands print it -- the header naming the
|
||||
// command and the error kind, the location when there is one, and the
|
||||
// description justified to 80 columns -- WITHOUT colour or the
|
||||
// surrounding newlines. print_message() writes exactly this to stderr;
|
||||
// the Python binding (kpy/) makes it the exception's str(), which is
|
||||
// why the two are one function: an error reads the same from a script
|
||||
// as from ktext. const: the former print_message mutated m_desc.
|
||||
std::string message(const std::string& epilog="") const;
|
||||
void print_message(const std::string& epilog="");
|
||||
|
||||
std::string m_type {};
|
||||
|
||||
Reference in new issue
Block a user