degal/config.py
author Tero Marttila <terom@fixme.fi>
Sun, 14 Jun 2009 16:34:40 +0300
changeset 111 ecceaf23c969
parent 109 66a01c0806f1
child 117 a2e4562deaab
permissions -rw-r--r--
make loading exif metadata optional
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
67
01220ae43902 add log_level config setting
Tero Marttila <terom@fixme.fi>
parents: 60
diff changeset
     5
import logging
01220ae43902 add log_level config setting
Tero Marttila <terom@fixme.fi>
parents: 60
diff changeset
     6
51
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
class Configuration (object) :
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
        Various configuration settings
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
    """
67
01220ae43902 add log_level config setting
Tero Marttila <terom@fixme.fi>
parents: 60
diff changeset
    11
    ## runtime settings
01220ae43902 add log_level config setting
Tero Marttila <terom@fixme.fi>
parents: 60
diff changeset
    12
60
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    13
    # the path to the gallery
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    14
    gallery_path        = "."
87
a7a18893730d implement up-to-date checking for commands.main, and add --force-update option
Tero Marttila <terom@fixme.fi>
parents: 77
diff changeset
    15
    
a7a18893730d implement up-to-date checking for commands.main, and add --force-update option
Tero Marttila <terom@fixme.fi>
parents: 77
diff changeset
    16
    # force-update items
101
698dc68a985d split --force-update into --force-thumb/--force-html options, implement for main
Tero Marttila <terom@fixme.fi>
parents: 87
diff changeset
    17
    force_thumb         = False
698dc68a985d split --force-update into --force-thumb/--force-html options, implement for main
Tero Marttila <terom@fixme.fi>
parents: 87
diff changeset
    18
    force_html          = False
60
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    19
67
01220ae43902 add log_level config setting
Tero Marttila <terom@fixme.fi>
parents: 60
diff changeset
    20
    # minimum logging level
01220ae43902 add log_level config setting
Tero Marttila <terom@fixme.fi>
parents: 60
diff changeset
    21
    log_level           = logging.INFO
01220ae43902 add log_level config setting
Tero Marttila <terom@fixme.fi>
parents: 60
diff changeset
    22
01220ae43902 add log_level config setting
Tero Marttila <terom@fixme.fi>
parents: 60
diff changeset
    23
    ## detailed configuration
51
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
    # the name of the gallery
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
    gallery_title       = "Image Gallery"
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
    # recognized image extensions
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
    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
    29
    
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
    # subdirectory used for generated thumbnails/previews
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
    thumb_dir           = 'thumbs'
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
    preview_dir         = 'previews'
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
    # size of generated thumbnails/previews
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
    thumb_size          = (160, 120)
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
    preview_size        = (640, 480)
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
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
    38
    # 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
    39
    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
    40
    
111
ecceaf23c969 make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents: 109
diff changeset
    41
    # load Exif data for images
ecceaf23c969 make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents: 109
diff changeset
    42
    # this may be slow
ecceaf23c969 make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents: 109
diff changeset
    43
    exif_enabled        = False
ecceaf23c969 make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents: 109
diff changeset
    44
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
    45
    # 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
    46
    # 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
    47
    # 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
    48
    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
    49
        # 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
    50
        ("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
    51
        ("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
    52
        ("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
    53
        ("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
    54
        ("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
    55
        ("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
    56
        ("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
    57
        ("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
    58
        ("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
    59
        ("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
    60
        ("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
    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
    
60
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    63
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    64
    ### 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
    65
    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
    66
        """
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
    67
            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
    68
        """
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
    69
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
    70
        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
    71