plexus.cli.procedure.lua_dsl.primitives.file module
File Primitive - File I/O operations for workflows.
Provides: - File.read(path) - Read file contents - File.write(path, content) - Write content to file - File.exists(path) - Check if file exists - File.size(path) - Get file size in bytes
- class plexus.cli.procedure.lua_dsl.primitives.file.FilePrimitive(base_path: str | None = None)
Bases:
objectHandles file operations for procedures.
Enables workflows to: - Read file contents - Write data to files - Check file existence - Get file metadata
Initialize File primitive.
- Args:
base_path: Optional base directory for relative paths (defaults to cwd)
- __init__(base_path: str | None = None)
Initialize File primitive.
- Args:
base_path: Optional base directory for relative paths (defaults to cwd)
- exists(path: str) bool
Check if file exists.
- Args:
path: File path to check (absolute or relative to base_path)
- Returns:
True if file exists, False otherwise
- Example (Lua):
- if File.exists(“cache.json”) then
local data = File.read(“cache.json”) Log.info(“Using cached data”)
- else
Log.info(“No cache found”)
end
- read(path: str) str
Read file contents as string.
- Args:
path: File path to read (absolute or relative to base_path)
- Returns:
File contents as string
- Raises:
FileNotFoundError: If file doesn’t exist IOError: If file cannot be read
- Example (Lua):
local config = File.read(“config.json”) Log.info(“Config loaded”, {length = #config})
- size(path: str) int
Get file size in bytes.
- Args:
path: File path to check (absolute or relative to base_path)
- Returns:
File size in bytes
- Raises:
FileNotFoundError: If file doesn’t exist
- Example (Lua):
local size = File.size(“data.csv”) Log.info(“File size”, {bytes = size, kb = size / 1024})
- write(path: str, content: str) bool
Write content to file.
- Args:
path: File path to write (absolute or relative to base_path) content: Content to write
- Returns:
True if successful
- Raises:
IOError: If file cannot be written
- Example (Lua):
local data = Json.encode({status = “complete”}) File.write(“output.json”, data) Log.info(“Data written”)