Changeset 1256

Show
Ignore:
Timestamp:
07/23/09 13:54:33 (12 months ago)
Author:
dane
Message:

apply patch from mishok13 to improve font and plugin registration code from #398, but does not close #398 because auto-registration is maintained for now

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/bindings/python/mapnik/__init__.py

    r1210 r1256  
    4242""" 
    4343 
    44 from sys import getdlopenflags,setdlopenflags 
     44import os 
     45from sys import getdlopenflags, setdlopenflags 
    4546try: 
    4647    from dl import RTLD_NOW, RTLD_GLOBAL 
     
    378379    return '%s.%s.%s' % ( major_version, minor_version,patch_level) 
    379380 
    380 #register datasources 
    381 from mapnik import DatasourceCache 
    382 DatasourceCache.instance().register_datasources('%s' % inputpluginspath) 
    383 #register some fonts 
    384 from mapnik import FontEngine 
    385 from glob import glob 
    386 fonts = glob('%s/*.ttf' % fontscollectionpath) 
    387 if len( fonts ) == 0: 
    388     print "### WARNING: No ttf files found in '%s'." % fontscollectionpath 
    389 else: 
    390     map(FontEngine.instance().register_font, fonts) 
     381def register_plugins(path=inputpluginspath): 
     382    """Register plugins located by specified path""" 
     383    DatasourceCache.instance().register_datasources(path) 
     384 
     385def register_fonts(path=fontscollectionpath): 
     386    """Recursively register fonts using path argument as base directory""" 
     387    for dirpath, _, filenames in os.walk(path): 
     388        for filename in filenames: 
     389            if os.path.splitext(filename)[1] == '.ttf': 
     390                FontEngine.instance().register_font(os.path.join(dirpath, filename)) 
     391 
     392# auto-register known plugins and fonts 
     393register_plugins() 
     394register_fonts() 
    391395 
    392396#set dlopen flags back to the original