degal/config.py
author Tero Marttila <terom@fixme.fi>
Fri, 05 Jun 2009 21:46:43 +0300
changeset 60 406da27a4be2
parent 57 8d06e0283b88
child 67 01220ae43902
permissions -rw-r--r--
do some filesystem.Path stuff, and read_only mode
51
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
"""
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
    Configuration
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
"""
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
class Configuration (object) :
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
    """
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
        Various configuration settings
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
    """
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
60
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    10
    # the path to the gallery
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    11
    gallery_path        = "."
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    12
51
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
    # the name of the gallery
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
    gallery_title       = "Image Gallery"
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
    # recognized image extensions
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
    image_exts          = ('jpg', 'jpeg', 'png', 'gif', 'bmp')
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
    
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
    # subdirectory used for generated thumbnails/previews
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
    thumb_dir           = 'thumbs'
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
    preview_dir         = 'previews'
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
    # size of generated thumbnails/previews
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
    thumb_size          = (160, 120)
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
    preview_size        = (640, 480)
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
57
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    27
    # number of images displayed per folder page
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    28
    images_per_page     = 50
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    29
    
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    30
    # exif tags used in output
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    31
    # Copyright (C) 2008, Santtu Pajukanta <santtu@pajukanta.fi>
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    32
    # XXX: import from dexif?
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    33
    exif_tags           = [
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    34
        # TODO Create date is in a useless format, needs some strptime love
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    35
        ("CreateDate",              "Create date"               ),
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    36
        ("Model",                   "Camera model"              ),
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    37
        ("Aperture",                "Aperture"                  ),
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    38
        ("ExposureMode",            "Exposure mode"             ),
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    39
        ("ExposureCompensation",    "Exposure compensation"     ),
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    40
        ("ExposureTime",            "Exposure time"             ),
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    41
        ("Flash",                   "Flash mode"                ),
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    42
        ("ISO",                     "ISO"                       ),
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    43
        ("ShootingMode",            "Shooting mode"             ),
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    44
        ("LensType",                "Lens type"                 ),
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    45
        ("FocalLength",             "Focal length"              )
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    46
    ]
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    47
    
60
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    48
    ## runtime settings
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    49
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    50
    # do not modify anything
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    51
    read_only           = False
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    52
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    53
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    54
    ### functions
57
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    55
    def is_image (self, file) :
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    56
        """
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    57
            Tests if the given File is an image, based on its file extension
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    58
        """
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    59
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    60
        return file.matchext(self.image_exts)
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    61
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    62
    # XXX: move elsewhere?
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    63
    def get_renderer (self) :
8d06e0283b88 start implementing new Image stuff, tie in RenderMachine into the new Image class, assoicated config stuff
Tero Marttila <terom@fixme.fi>
parents: 51
diff changeset
    64
        return render.RenderMachine(self)