# Path: devicecloud/sci.py
# class DeviceTarget(TargetABC):
#     """Target a specific device"""
# 
#     def __init__(self, device_id):
#         self._device_id = device_id
# 
#     def to_xml(self):
#         return '<device id="{}"/>'.format(self._device_id)
# 
# Path: devicecloud/apibase.py
# class SCIAPIBase(object):
#     """Base class for API classes using SCI to communicate
# 
#     :type _sci_api: devicecloud.sci.ServerCommandInterfaceAPI
#     """
#     def __init__(self, sci_api):
#         self._sci_api = sci_api


import base64
import xml.etree.ElementTree as ET
import six
from collections import namedtuple
from devicecloud.sci import DeviceTarget
from devicecloud.apibase import SCIAPIBase
    """

    def __init__(self, fssapi, device_id, path, last_modified):
        self._fssapi = fssapi
        self.device_id = device_id
        self.path = path
        self.last_modified = last_modified

    def list_contents(self):
        """List the contents of this directory

        :return: A LsInfo object that contains directories and files
        :rtype: :class:`~.LsInfo` or :class:`~.ErrorInfo`

        Here is an example usage::

            # let dirinfo be a DirectoryInfo object
            ldata = dirinfo.list_contents()
            if isinstance(ldata, ErrorInfo):
                # Do some error handling
                logger.warn("Error listing file info: (%s) %s", ldata.errno, ldata.message)
            # It's of type LsInfo
            else:
                # Look at all the files
                for finfo in ldata.files:
                    logger.info("Found file %s of size %s", finfo.path, finfo.size)
                # Look at all the directories
                for dinfo in ldata.directories:
                    logger.info("Found directory %s of last modified %s", dinfo.path, dinfo.last_modified)
        """

# Path: devicecloud/sci.py
# class DeviceTarget(TargetABC):
#     """Target a specific device"""
# 
#     def __init__(self, device_id):
#         self._device_id = device_id
# 
#     def to_xml(self):
#         return '<device id="{}"/>'.format(self._device_id)
# 
# Path: devicecloud/apibase.py
# class SCIAPIBase(object):
#     """Base class for API classes using SCI to communicate
# 
#     :type _sci_api: devicecloud.sci.ServerCommandInterfaceAPI
#     """
#     def __init__(self, sci_api):
#         self._sci_api = sci_api


# Path: devicecloud/file_system_service.py
import base64
import xml.etree.ElementTree as ET
import six
from collections import namedtuple
from devicecloud.sci import DeviceTarget
from devicecloud.apibase import SCIAPIBase

    """

    def __init__(self, fssapi, device_id, path, last_modified):
        self._fssapi = fssapi
        self.device_id = device_id
        self.path = path
        self.last_modified = last_modified

    def list_contents(self):
        """List the contents of this directory

        :return: A LsInfo object that contains directories and files
        :rtype: :class:`~.LsInfo` or :class:`~.ErrorInfo`

        Here is an example usage::

            # let dirinfo be a DirectoryInfo object
            ldata = dirinfo.list_contents()
            if isinstance(ldata, ErrorInfo):
                # Do some error handling
                logger.warn("Error listing file info: (%s) %s", ldata.errno, ldata.message)
            # It's of type LsInfo
            else:
                # Look at all the files
                for finfo in ldata.files:
                    logger.info("Found file %s of size %s", finfo.path, finfo.size)
                # Look at all the directories
                for dinfo in ldata.directories:
                    logger.info("Found directory %s of last modified %s", dinfo.path, dinfo.last_modified)
        """

        target = DeviceTarget(self.device_id)