pkpy.pyi 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from typing import Self, Literal
  2. from vmath import vec2, vec2i
  3. class TValue[T]:
  4. def __new__(cls, value: T) -> Self: ...
  5. @property
  6. def value(self) -> T: ...
  7. # TValue_int = TValue[int]
  8. # TValue_float = TValue[float]
  9. # TValue_vec2i = TValue[vec2i]
  10. # TValue_vec2 = TValue[vec2]
  11. configmacros: dict[str, int]
  12. def memory_usage() -> str:
  13. """Return a summary of the memory usage."""
  14. def is_user_defined_type(t: type) -> bool:
  15. """Check if a type is user-defined. This means the type was created by executing python `class` statement."""
  16. def enable_full_buffering_mode() -> None:
  17. """Enable full buffering mode for ASCII drawings."""
  18. def currentvm() -> int:
  19. """Return the current VM index."""
  20. def watchdog_begin(timeout: int):
  21. """Begin the watchdog with `timeout` in milliseconds.
  22. `PK_ENABLE_WATCHDOG` must be defined to `1` to use this feature.
  23. You need to call `watchdog_end()` later.
  24. If `timeout` is reached, `TimeoutError` will be raised.
  25. """
  26. def watchdog_end() -> None:
  27. """End the watchdog after a call to `watchdog_begin()`."""
  28. def profiler_begin() -> None: ...
  29. def profiler_end() -> None: ...
  30. def profiler_reset() -> None: ...
  31. def profiler_report() -> dict[str, list[list]]: ...
  32. class ComputeThread:
  33. def __init__(self, vm_index: Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]): ...
  34. @property
  35. def is_done(self) -> bool:
  36. """Check if the current job is done."""
  37. def wait_for_done(self) -> None:
  38. """Wait for the current job to finish."""
  39. def last_error(self) -> str | None: ...
  40. def last_retval(self): ...
  41. def submit_exec(self, source: str) -> None:
  42. """Submit a job to execute some source code."""
  43. def submit_eval(self, source: str) -> None:
  44. """Submit a job to evaluate some source code."""
  45. def submit_call(self, eval_src: str, *args, **kwargs) -> None:
  46. """Submit a job to call a function with arguments."""
  47. def exec(self, source: str) -> None:
  48. """Directly execute some source code."""
  49. def eval(self, source: str):
  50. """Directly evaluate some source code."""