Our Python API includes some convenience methods for creating "webdavclient3" clients, and building webdav file paths.
First, make sure you have the webdavclient3 library installed:
$ pip install webdavclient3Then you can use your APIWrapper to create a client:
from labkey.api_wrapper import APIWrapper
domain = "localhost:8080"
container = "MyContainer"
api = APIWrapper(domain, container)
webdav_client = api.server_context.webdav_client()The webdav_client method has a single optional argument, webdav_options, a dict that you can use to pass any options
that you would pass to the webdavclient3 library.
If you are using API Key authentication with your APIWrapper we will automatically configure the WebDav Client to use
API Key authentication with your API Key. If you are using a .netrc file for authentication it should automatically
detect your .netrc file and authenticate using those credentials.
If you are using the webdavclient3 library you'll still need to know the appropriate WebDav path in order to access
your files. We provide a utility method, webdav_path to make it easier to construct LabKey WebDav paths. The method
takes two keyword arguments, container_path, and file_name.
from labkey.api_wrapper import APIWrapper
domain = "localhost:8080"
container = "MyContainer"
api = APIWrapper(domain, container)
webdav_client = api.server_context.webdav_client()
# Constructs a webdav path to "MyContainer"
path = api.server_context.webdav_path()
print(webdav_client.info(path))
# Constructs a webdav path to the "data.txt" file in "MyContainer"
path = api.server_context.webdav_path(file_name='data.txt')
print(webdav_client.info(path))
# Constructs a webdav path to the "data.txt" file in "other_container"
path = api.server_context.webdav_path(container_path="other_container", file_name="data.txt")
print(webdav_client.info(path))