Skip to content

FilesNamespace

pymoonraker.api.FilesNamespace

File and directory management.

Auto-generated from schema/moonraker_api.yaml.

Source code in src/pymoonraker/api/_generated.py
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
class FilesNamespace:
    """File and directory management.

    Auto-generated from schema/moonraker_api.yaml.
    """

    def __init__(self, client: MoonrakerClient) -> None:
        self._client = client

    async def list(self, root: str | None = None) -> builtins.list[FileItem]:
        """List files in a root directory.

        Args:
            root: Root directory (default: gcodes)

        """
        params: dict[str, Any] = {}
        if root is not None:
            params["root"] = root
        raw = await self._client.call("server.files.list", params)
        return [FileItem.model_validate(item) for item in raw]

    async def roots(self) -> builtins.list[FileRoot]:
        """List all registered file root directories."""
        raw = await self._client.call("server.files.roots")
        return [FileRoot.model_validate(item) for item in raw]

    async def metadata(self, filename: str) -> FileMetadata:
        """Get detailed metadata for a G-code file.

        Args:
            filename: Path to the file relative to its root

        """
        params: dict[str, Any] = {}
        params["filename"] = filename
        raw = await self._client.call("server.files.metadata", params)
        return FileMetadata.model_validate(raw)

    async def create_directory(self, path: str) -> FileActionResponse:
        """Create a new directory.

        Args:
            path: Directory path to create

        """
        params: dict[str, Any] = {}
        params["path"] = path
        raw = await self._client.call("server.files.directory", params)
        return FileActionResponse.model_validate(raw)

    async def delete_directory(self, path: str, force: bool | None = None) -> FileActionResponse:
        """Delete a directory.

        Args:
            path: Directory path to delete
            force: Force delete non-empty directory

        """
        params: dict[str, Any] = {}
        params["path"] = path
        if force is not None:
            params["force"] = force
        raw = await self._client.call("server.files.delete_directory", params)
        return FileActionResponse.model_validate(raw)

    async def move(self, source: str, dest: str) -> FileMoveResponse:
        """Move or rename a file or directory.

        Args:
            source: Source path
            dest: Destination path

        """
        params: dict[str, Any] = {}
        params["source"] = source
        params["dest"] = dest
        raw = await self._client.call("server.files.move", params)
        return FileMoveResponse.model_validate(raw)

    async def copy(self, source: str, dest: str) -> FileActionResponse:
        """Copy a file or directory.

        Args:
            source: Source path
            dest: Destination path

        """
        params: dict[str, Any] = {}
        params["source"] = source
        params["dest"] = dest
        raw = await self._client.call("server.files.copy", params)
        return FileActionResponse.model_validate(raw)

    async def delete_file(self, root: str, path: str) -> FileActionResponse:
        """Delete a file.

        Args:
            root: File root
            path: File path relative to root

        """
        params: dict[str, Any] = {}
        params["root"] = root
        params["path"] = path
        raw = await self._client.call("server.files.delete_file", params)
        return FileActionResponse.model_validate(raw)

copy async

copy(source: str, dest: str) -> FileActionResponse

Copy a file or directory.

Parameters:

Name Type Description Default
source str

Source path

required
dest str

Destination path

required
Source code in src/pymoonraker/api/_generated.py
320
321
322
323
324
325
326
327
328
329
330
331
332
async def copy(self, source: str, dest: str) -> FileActionResponse:
    """Copy a file or directory.

    Args:
        source: Source path
        dest: Destination path

    """
    params: dict[str, Any] = {}
    params["source"] = source
    params["dest"] = dest
    raw = await self._client.call("server.files.copy", params)
    return FileActionResponse.model_validate(raw)

create_directory async

create_directory(path: str) -> FileActionResponse

Create a new directory.

Parameters:

Name Type Description Default
path str

Directory path to create

required
Source code in src/pymoonraker/api/_generated.py
279
280
281
282
283
284
285
286
287
288
289
async def create_directory(self, path: str) -> FileActionResponse:
    """Create a new directory.

    Args:
        path: Directory path to create

    """
    params: dict[str, Any] = {}
    params["path"] = path
    raw = await self._client.call("server.files.directory", params)
    return FileActionResponse.model_validate(raw)

delete_directory async

delete_directory(path: str, force: bool | None = None) -> FileActionResponse

Delete a directory.

Parameters:

Name Type Description Default
path str

Directory path to delete

required
force bool | None

Force delete non-empty directory

None
Source code in src/pymoonraker/api/_generated.py
291
292
293
294
295
296
297
298
299
300
301
302
303
304
async def delete_directory(self, path: str, force: bool | None = None) -> FileActionResponse:
    """Delete a directory.

    Args:
        path: Directory path to delete
        force: Force delete non-empty directory

    """
    params: dict[str, Any] = {}
    params["path"] = path
    if force is not None:
        params["force"] = force
    raw = await self._client.call("server.files.delete_directory", params)
    return FileActionResponse.model_validate(raw)

delete_file async

delete_file(root: str, path: str) -> FileActionResponse

Delete a file.

Parameters:

Name Type Description Default
root str

File root

required
path str

File path relative to root

required
Source code in src/pymoonraker/api/_generated.py
334
335
336
337
338
339
340
341
342
343
344
345
346
async def delete_file(self, root: str, path: str) -> FileActionResponse:
    """Delete a file.

    Args:
        root: File root
        path: File path relative to root

    """
    params: dict[str, Any] = {}
    params["root"] = root
    params["path"] = path
    raw = await self._client.call("server.files.delete_file", params)
    return FileActionResponse.model_validate(raw)

list async

list(root: str | None = None) -> builtins.list[FileItem]

List files in a root directory.

Parameters:

Name Type Description Default
root str | None

Root directory (default: gcodes)

None
Source code in src/pymoonraker/api/_generated.py
249
250
251
252
253
254
255
256
257
258
259
260
async def list(self, root: str | None = None) -> builtins.list[FileItem]:
    """List files in a root directory.

    Args:
        root: Root directory (default: gcodes)

    """
    params: dict[str, Any] = {}
    if root is not None:
        params["root"] = root
    raw = await self._client.call("server.files.list", params)
    return [FileItem.model_validate(item) for item in raw]

metadata async

metadata(filename: str) -> FileMetadata

Get detailed metadata for a G-code file.

Parameters:

Name Type Description Default
filename str

Path to the file relative to its root

required
Source code in src/pymoonraker/api/_generated.py
267
268
269
270
271
272
273
274
275
276
277
async def metadata(self, filename: str) -> FileMetadata:
    """Get detailed metadata for a G-code file.

    Args:
        filename: Path to the file relative to its root

    """
    params: dict[str, Any] = {}
    params["filename"] = filename
    raw = await self._client.call("server.files.metadata", params)
    return FileMetadata.model_validate(raw)

move async

move(source: str, dest: str) -> FileMoveResponse

Move or rename a file or directory.

Parameters:

Name Type Description Default
source str

Source path

required
dest str

Destination path

required
Source code in src/pymoonraker/api/_generated.py
306
307
308
309
310
311
312
313
314
315
316
317
318
async def move(self, source: str, dest: str) -> FileMoveResponse:
    """Move or rename a file or directory.

    Args:
        source: Source path
        dest: Destination path

    """
    params: dict[str, Any] = {}
    params["source"] = source
    params["dest"] = dest
    raw = await self._client.call("server.files.move", params)
    return FileMoveResponse.model_validate(raw)

roots async

roots() -> builtins.list[FileRoot]

List all registered file root directories.

Source code in src/pymoonraker/api/_generated.py
262
263
264
265
async def roots(self) -> builtins.list[FileRoot]:
    """List all registered file root directories."""
    raw = await self._client.call("server.files.roots")
    return [FileRoot.model_validate(item) for item in raw]