degal/config.py
author Tero Marttila <terom@fixme.fi>
Sun, 14 Jun 2009 20:05:11 +0300
changeset 117 a2e4562deaab
parent 111 ecceaf23c969
child 118 60b126ff0b74
permissions -rw-r--r--
implement concurrency... :)
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
117
a2e4562deaab implement concurrency... :)
Tero Marttila <terom@fixme.fi>
parents: 111
diff changeset
    23
    # number of threads to use for concurrency
a2e4562deaab implement concurrency... :)
Tero Marttila <terom@fixme.fi>
parents: 111
diff changeset
    24
    thread_count        = 2
a2e4562deaab implement concurrency... :)
Tero Marttila <terom@fixme.fi>
parents: 111
diff changeset
    25
67
01220ae43902 add log_level config setting
Tero Marttila <terom@fixme.fi>
parents: 60
diff changeset
    26
    ## detailed configuration
51
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
    # the name of the gallery
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
    gallery_title       = "Image Gallery"
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
    # recognized image extensions
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
    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
    32
    
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
    # subdirectory used for generated thumbnails/previews
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
    thumb_dir           = 'thumbs'
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
    preview_dir         = 'previews'
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
    # size of generated thumbnails/previews
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
    thumb_size          = (160, 120)
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    39
    preview_size        = (640, 480)
0f39cb5e4b11 start writing new structure, with config, render, filesystem modules
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
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
    41
    # 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
    42
    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
    43
    
111
ecceaf23c969 make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents: 109
diff changeset
    44
    # load Exif data for images
ecceaf23c969 make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents: 109
diff changeset
    45
    # this may be slow
ecceaf23c969 make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents: 109
diff changeset
    46
    exif_enabled        = False
ecceaf23c969 make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents: 109
diff changeset
    47
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
    48
    # 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
    49
    # 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
    50
    # 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
    51
    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
    52
        # 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
    53
        ("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
    54
        ("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
    55
        ("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
    56
        ("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
    57
        ("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
    58
        ("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
    59
        ("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
    60
        ("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
    61
        ("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
    62
        ("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
    63
        ("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
    64
    ]
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
    
60
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    66
406da27a4be2 do some filesystem.Path stuff, and read_only mode
Tero Marttila <terom@fixme.fi>
parents: 57
diff changeset
    67
    ### 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
    68
    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
    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
            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
    71
        """
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
    72
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
    73
        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
    74