31 lines
927 B
Python
31 lines
927 B
Python
import gi
|
|
from typing import Callable
|
|
|
|
gi.require_version("AstalIO", "0.1")
|
|
gi.require_version("GObject", "2.0")
|
|
|
|
from gi.repository import AstalIO, GObject
|
|
|
|
def read_file(fp: str) -> str:
|
|
return AstalIO.read_file(fp)
|
|
|
|
def read_file_async(fp: str, callback: Callable[[str | None, Exception | None], None]) -> None:
|
|
try:
|
|
AstalIO.read_file_async(fp, lambda _, res: callback(AstalIO.read_file_finish(res), None))
|
|
|
|
except Exception as e:
|
|
callback(None, e)
|
|
|
|
def write_file(fp: str, content: str) -> None:
|
|
AstalIO.write_file(fp, content)
|
|
|
|
def write_file_async(fp: str, content: str, callback: Callable[[Exception], None]) -> None:
|
|
try:
|
|
AstalIO.write_file_async(fp, content, lambda _, res: AstalIO.write_file_finish(res))
|
|
|
|
except Exception as e:
|
|
callback(e)
|
|
|
|
def monitor_file(fp: str, callback: Callable[[str, int], None]) -> None:
|
|
return AstalIO.monitor_file(fp, callback)
|