Source code for creopyson.windchill

"""Windchill module.

Connect to Windchill server, use workspaces (create/delete/list)
List files and checkout status.

"""


[docs] def authorize(client, user, password): """Set user's Windchill login/password. Args: client (obj): creopyson Client user (str): user name password (str): password Returns: None """ data = {"user": user, "password": password} return client._creoson_post("windchill", "authorize", data)
[docs] def clear_workspace(client, workspace=None, filenames=None): """Clear a workspace on the active server. Args: client (obj): creopyson Client workspace (str, optionnal): Workspace name. Default is current workspace. filenames (str|list, optionnal): List of files to delete from the workspace. Default: All files are deleted. Returns: None """ active_workspace = client.windchill_get_workspace() data = {"workspace": active_workspace} if workspace is not None: data["workspace"] = workspace if filenames is not None: data["filenames"] = filenames return client._creoson_post("windchill", "clear_workspace", data)
[docs] def create_workspace(client, workspace, context_name): """Create a workspace on the active server. Args: client (obj): creopyson Client workspace (str): Workspace name context_name (str): Context name Returns: None """ data = {"workspace": workspace, "context": context_name} return client._creoson_post("windchill", "create_workspace", data)
[docs] def delete_workspace(client, workspace): """Delete a workspace on the active server. Args: client (obj): creopyson Client workspace (str): Workspace name Returns: None """ data = {"workspace": workspace} return client._creoson_post("windchill", "delete_workspace", data)
[docs] def file_checked_out(client, filename, workspace=None): """Check whether a file is checked out in a workspace on the active server. Args: client (obj): creopyson Client filename (str): File name workspace (str, optionnal): Workspace name. Default is current workspace. Returns: Boolean: Whether the file is checked out in the workspace. """ active_workspace = client.windchill_get_workspace() data = {"workspace": active_workspace, "filename": filename} if workspace is not None: data["workspace"] = workspace return client._creoson_post("windchill", "file_checked_out", data, "checked_out")
[docs] def get_workspace(client): """Retrieve the name of the active workspace on the active server. Args: client (obj): creopyson Client Returns: str: Active Workspace name. """ return client._creoson_post("windchill", "get_workspace", key_data="workspace")
[docs] def list_workspace_files(client, workspace=None, filename=None): """Get a list of files in a workspace on the active server. Args: client (obj): creopyson Client workspace (str, optionnal): Workspace name. Default is current workspace. filename (str, optional): File name or search. Default is all files. ex: `*.asm`, `screw_*.prt` Returns: list: List of files in the workspace correspnding to the data. """ active_workspace = client.windchill_get_workspace() data = {"workspace": active_workspace, "filename": "*"} if workspace is not None: data["workspace"] = workspace if filename is not None: data["filename"] = filename return client._creoson_post("windchill", "list_workspace_files", data, "filelist")
[docs] def list_workspaces(client): """Get a list of workspaces the user can access on the active server. Args: client (obj): creopyson Client Returns: list: List of workspaces """ return client._creoson_post("windchill", "list_workspaces", key_data="workspaces")
[docs] def server_exists(client, server_url): """Check whether a server exists. Args: client (obj): creopyson Client server_url (str): server URL or Alias Returns: Boolean: Whether the server exists """ data = {"server_url": server_url} return client._creoson_post("windchill", "server_exists", data, "exists")
[docs] def set_server(client, server_url): """Select a Windchill server. Args: client (obj): creopyson Client server_url (str): server URL or Alias Returns: None """ data = {"server_url": server_url} return client._creoson_post("windchill", "set_server", data)
[docs] def set_workspace(client, workspace): """Select a workspace on the active server. Args: client (obj): creopyson Client workspace (str): Workspace name Returns: None """ data = {"workspace": workspace} return client._creoson_post("windchill", "set_workspace", data)
[docs] def workspace_exists(client, workspace): """Check whether a workspace exists on the active server. Args: client (obj): creopyson Client workspace (str): Workspace name Returns: Boolean: Whether the workspace exists """ data = {"workspace": workspace} return client._creoson_post("windchill", "workspace_exists", data, "exists")