# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _filesys
else:
    import _filesys

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

_swig_new_instance_method = _filesys.SWIG_PyInstanceMethod_New
_swig_new_static_method = _filesys.SWIG_PyStaticMethod_New

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


import gphoto2.abilities_list
import gphoto2.camera
import gphoto2.context
import gphoto2.file
import gphoto2.list
import gphoto2.port_info_list
import gphoto2.port_log
import gphoto2.result
import gphoto2.version
import gphoto2.widget
class _CameraFilesystem(object):
    r"""
    The internal camera filesystem structure.  

    The internals of the CameraFilesystem are only visible to gphoto2. You
    can only access them using the functions provided by gphoto2.
    """

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        r"""
        __init__(self) -> _CameraFilesystem
        The internal camera filesystem structure.  

        The internals of the CameraFilesystem are only visible to gphoto2. You
        can only access them using the functions provided by gphoto2.
        """
        _filesys._CameraFilesystem_swiginit(self, _filesys.new__CameraFilesystem())
    __swig_destroy__ = _filesys.delete__CameraFilesystem

# Register _CameraFilesystem in _filesys:
_filesys._CameraFilesystem_swigregister(_CameraFilesystem)

GP_FILE_INFO_NONE = _filesys.GP_FILE_INFO_NONE

GP_FILE_INFO_TYPE = _filesys.GP_FILE_INFO_TYPE

GP_FILE_INFO_SIZE = _filesys.GP_FILE_INFO_SIZE

GP_FILE_INFO_WIDTH = _filesys.GP_FILE_INFO_WIDTH

GP_FILE_INFO_HEIGHT = _filesys.GP_FILE_INFO_HEIGHT

GP_FILE_INFO_PERMISSIONS = _filesys.GP_FILE_INFO_PERMISSIONS

GP_FILE_INFO_STATUS = _filesys.GP_FILE_INFO_STATUS

GP_FILE_INFO_MTIME = _filesys.GP_FILE_INFO_MTIME

GP_FILE_INFO_ALL = _filesys.GP_FILE_INFO_ALL

GP_FILE_PERM_NONE = _filesys.GP_FILE_PERM_NONE

GP_FILE_PERM_READ = _filesys.GP_FILE_PERM_READ

GP_FILE_PERM_DELETE = _filesys.GP_FILE_PERM_DELETE

GP_FILE_PERM_ALL = _filesys.GP_FILE_PERM_ALL

GP_FILE_STATUS_NOT_DOWNLOADED = _filesys.GP_FILE_STATUS_NOT_DOWNLOADED

GP_FILE_STATUS_DOWNLOADED = _filesys.GP_FILE_STATUS_DOWNLOADED

class CameraFileInfoFile(object):
    r"""
    File information of a regular file.  

    Contains information a regular file with fields being set depending on
    the bitmask in the fields member.  

    C++ includes: gphoto2-filesys.h
    """

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    fields = property(_filesys.CameraFileInfoFile_fields_get, doc=r"""fields""")
    status = property(_filesys.CameraFileInfoFile_status_get, doc=r"""status""")
    size = property(_filesys.CameraFileInfoFile_size_get, doc=r"""size""")
    type = property(_filesys.CameraFileInfoFile_type_get, doc=r"""type""")
    width = property(_filesys.CameraFileInfoFile_width_get, doc=r"""width""")
    height = property(_filesys.CameraFileInfoFile_height_get, doc=r"""height""")
    permissions = property(_filesys.CameraFileInfoFile_permissions_get, doc=r"""permissions""")
    mtime = property(_filesys.CameraFileInfoFile_mtime_get, doc=r"""mtime""")
    __swig_destroy__ = _filesys.delete_CameraFileInfoFile

# Register CameraFileInfoFile in _filesys:
_filesys.CameraFileInfoFile_swigregister(CameraFileInfoFile)

class CameraFileInfoPreview(object):
    r"""
    File information of a preview file.  

    Contains information of a preview file with fields being set depending
    on the bitmask in the fields member.  

    C++ includes: gphoto2-filesys.h
    """

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    fields = property(_filesys.CameraFileInfoPreview_fields_get, doc=r"""fields""")
    status = property(_filesys.CameraFileInfoPreview_status_get, doc=r"""status""")
    size = property(_filesys.CameraFileInfoPreview_size_get, doc=r"""size""")
    type = property(_filesys.CameraFileInfoPreview_type_get, doc=r"""type""")
    width = property(_filesys.CameraFileInfoPreview_width_get, doc=r"""width""")
    height = property(_filesys.CameraFileInfoPreview_height_get, doc=r"""height""")
    __swig_destroy__ = _filesys.delete_CameraFileInfoPreview

# Register CameraFileInfoPreview in _filesys:
_filesys.CameraFileInfoPreview_swigregister(CameraFileInfoPreview)

class CameraFileInfoAudio(object):
    r"""
    File information of an audio file.  

    Contains information of an audio file with fields being set depending on
    the bitmask in the fields member.  

    C++ includes: gphoto2-filesys.h
    """

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    fields = property(_filesys.CameraFileInfoAudio_fields_get, doc=r"""fields""")
    status = property(_filesys.CameraFileInfoAudio_status_get, doc=r"""status""")
    size = property(_filesys.CameraFileInfoAudio_size_get, doc=r"""size""")
    type = property(_filesys.CameraFileInfoAudio_type_get, doc=r"""type""")
    __swig_destroy__ = _filesys.delete_CameraFileInfoAudio

# Register CameraFileInfoAudio in _filesys:
_filesys.CameraFileInfoAudio_swigregister(CameraFileInfoAudio)

class CameraFileInfo(object):
    r"""
    File information structure.  

    Contains the normal, preview and audio file information structures for a
    specific file.  

    C++ includes: gphoto2-filesys.h
    """

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    preview = property(_filesys.CameraFileInfo_preview_get, doc=r"""preview""")
    file = property(_filesys.CameraFileInfo_file_get, doc=r"""file""")
    audio = property(_filesys.CameraFileInfo_audio_get, doc=r"""audio""")
    __swig_destroy__ = _filesys.delete_CameraFileInfo

# Register CameraFileInfo in _filesys:
_filesys.CameraFileInfo_swigregister(CameraFileInfo)

GP_STORAGEINFO_BASE = _filesys.GP_STORAGEINFO_BASE

GP_STORAGEINFO_LABEL = _filesys.GP_STORAGEINFO_LABEL

GP_STORAGEINFO_DESCRIPTION = _filesys.GP_STORAGEINFO_DESCRIPTION

GP_STORAGEINFO_ACCESS = _filesys.GP_STORAGEINFO_ACCESS

GP_STORAGEINFO_STORAGETYPE = _filesys.GP_STORAGEINFO_STORAGETYPE

GP_STORAGEINFO_FILESYSTEMTYPE = _filesys.GP_STORAGEINFO_FILESYSTEMTYPE

GP_STORAGEINFO_MAXCAPACITY = _filesys.GP_STORAGEINFO_MAXCAPACITY

GP_STORAGEINFO_FREESPACEKBYTES = _filesys.GP_STORAGEINFO_FREESPACEKBYTES

GP_STORAGEINFO_FREESPACEIMAGES = _filesys.GP_STORAGEINFO_FREESPACEIMAGES

GP_STORAGEINFO_ST_UNKNOWN = _filesys.GP_STORAGEINFO_ST_UNKNOWN

GP_STORAGEINFO_ST_FIXED_ROM = _filesys.GP_STORAGEINFO_ST_FIXED_ROM

GP_STORAGEINFO_ST_REMOVABLE_ROM = _filesys.GP_STORAGEINFO_ST_REMOVABLE_ROM

GP_STORAGEINFO_ST_FIXED_RAM = _filesys.GP_STORAGEINFO_ST_FIXED_RAM

GP_STORAGEINFO_ST_REMOVABLE_RAM = _filesys.GP_STORAGEINFO_ST_REMOVABLE_RAM

GP_STORAGEINFO_AC_READWRITE = _filesys.GP_STORAGEINFO_AC_READWRITE

GP_STORAGEINFO_AC_READONLY = _filesys.GP_STORAGEINFO_AC_READONLY

GP_STORAGEINFO_AC_READONLY_WITH_DELETE = _filesys.GP_STORAGEINFO_AC_READONLY_WITH_DELETE

GP_STORAGEINFO_FST_UNDEFINED = _filesys.GP_STORAGEINFO_FST_UNDEFINED

GP_STORAGEINFO_FST_GENERICFLAT = _filesys.GP_STORAGEINFO_FST_GENERICFLAT

GP_STORAGEINFO_FST_GENERICHIERARCHICAL = _filesys.GP_STORAGEINFO_FST_GENERICHIERARCHICAL

GP_STORAGEINFO_FST_DCF = _filesys.GP_STORAGEINFO_FST_DCF

class CameraStorageInformation(object):
    r"""
    Storage information structue.  

    This structure contains the information of a specific camera storage.
    Only the members as specified by the *fields* member are valid.  

    C++ includes: gphoto2-filesys.h
    """

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    fields = property(_filesys.CameraStorageInformation_fields_get, doc=r"""fields""")
    basedir = property(_filesys.CameraStorageInformation_basedir_get, doc=r"""basedir""")
    label = property(_filesys.CameraStorageInformation_label_get, doc=r"""label""")
    description = property(_filesys.CameraStorageInformation_description_get, doc=r"""description""")
    type = property(_filesys.CameraStorageInformation_type_get, doc=r"""type""")
    fstype = property(_filesys.CameraStorageInformation_fstype_get, doc=r"""fstype""")
    access = property(_filesys.CameraStorageInformation_access_get, doc=r"""access""")
    capacitykbytes = property(_filesys.CameraStorageInformation_capacitykbytes_get, doc=r"""capacitykbytes""")
    freekbytes = property(_filesys.CameraStorageInformation_freekbytes_get, doc=r"""freekbytes""")
    freeimages = property(_filesys.CameraStorageInformation_freeimages_get, doc=r"""freeimages""")
    __swig_destroy__ = _filesys.delete_CameraStorageInformation

# Register CameraStorageInformation in _filesys:
_filesys.CameraStorageInformation_swigregister(CameraStorageInformation)

gp_filesystem_new = _filesys.gp_filesystem_new
gp_filesystem_append = _filesys.gp_filesystem_append
gp_filesystem_set_info_noop = _filesys.gp_filesystem_set_info_noop
gp_filesystem_set_file_noop = _filesys.gp_filesystem_set_file_noop
gp_filesystem_delete_file_noop = _filesys.gp_filesystem_delete_file_noop
gp_filesystem_reset = _filesys.gp_filesystem_reset
gp_filesystem_count = _filesys.gp_filesystem_count
gp_filesystem_name = _filesys.gp_filesystem_name
gp_filesystem_get_folder = _filesys.gp_filesystem_get_folder
gp_filesystem_number = _filesys.gp_filesystem_number
gp_filesystem_list_files = _filesys.gp_filesystem_list_files
gp_filesystem_list_folders = _filesys.gp_filesystem_list_folders
gp_filesystem_get_info = _filesys.gp_filesystem_get_info
gp_filesystem_set_info = _filesys.gp_filesystem_set_info
gp_filesystem_get_file = _filesys.gp_filesystem_get_file
gp_filesystem_read_file = _filesys.gp_filesystem_read_file
gp_filesystem_delete_file = _filesys.gp_filesystem_delete_file
class _CameraFilesystemFuncs(object):
    r"""Proxy of C _CameraFilesystemFuncs struct."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    file_list_func = property(_filesys._CameraFilesystemFuncs_file_list_func_get, doc=r"""
    file_list_func
    List available files in the specified folder.  

    This function is a CameraFilesystem method.
    """)
    folder_list_func = property(_filesys._CameraFilesystemFuncs_folder_list_func_get, doc=r"""
    folder_list_func
    List available folders in the specified folder.  

    This function is a CameraFilesystem method.
    """)
    put_file_func = property(_filesys._CameraFilesystemFuncs_put_file_func_get, doc=r"""
    put_file_func
    Put a file onto the camera.  

    This function is a CameraFilesystem method.
    """)
    delete_all_func = property(_filesys._CameraFilesystemFuncs_delete_all_func_get, doc=r"""
    delete_all_func
    Delete all files from the camera.  

    This function is a CameraFilesystem method.
    """)
    get_info_func = property(_filesys._CameraFilesystemFuncs_get_info_func_get, doc=r"""
    get_info_func
    Get the file info here and write it to space provided by caller.  

    Parameters
    ----------
    * `info` :  
        Space provided by caller in which file info is written.  

    This function is a CameraFilesystem method.
    """)
    set_info_func = property(_filesys._CameraFilesystemFuncs_set_info_func_get, doc=r"""
    set_info_func
    FIXME.  

    This function is a CameraFilesystem method.
    """)
    make_dir_func = property(_filesys._CameraFilesystemFuncs_make_dir_func_get, doc=r"""make_dir_func""")
    remove_dir_func = property(_filesys._CameraFilesystemFuncs_remove_dir_func_get, doc=r"""remove_dir_func""")
    get_file_func = property(_filesys._CameraFilesystemFuncs_get_file_func_get, doc=r"""
    get_file_func
    Get the file from the camera.  

    This function is a CameraFilesystem method.
    """)
    read_file_func = property(_filesys._CameraFilesystemFuncs_read_file_func_get, doc=r"""read_file_func""")
    del_file_func = property(_filesys._CameraFilesystemFuncs_del_file_func_get, doc=r"""del_file_func""")
    storage_info_func = property(_filesys._CameraFilesystemFuncs_storage_info_func_get, doc=r"""
    storage_info_func
    Get information on all available storages in the camera.  

    This function is a CameraFilesystem method.
    """)
    unused = property(_filesys._CameraFilesystemFuncs_unused_get, doc=r"""unused""")
    __swig_destroy__ = _filesys.delete__CameraFilesystemFuncs

# Register _CameraFilesystemFuncs in _filesys:
_filesys._CameraFilesystemFuncs_swigregister(_CameraFilesystemFuncs)

gp_filesystem_set_funcs = _filesys.gp_filesystem_set_funcs
gp_filesystem_put_file = _filesys.gp_filesystem_put_file
gp_filesystem_delete_all = _filesys.gp_filesystem_delete_all
gp_filesystem_make_dir = _filesys.gp_filesystem_make_dir
gp_filesystem_remove_dir = _filesys.gp_filesystem_remove_dir
gp_filesystem_dump = _filesys.gp_filesystem_dump


