Changeset 70 for branches

Show
Ignore:
Timestamp:
11/07/07 18:02:12 (1 year ago)
Author:
amcgregor
Message:

Removed dependance on TurboGears' find_package_data.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/3.0/setup.py

    r68 r70  
    66import sys 
    77from setuptools import setup, find_packages 
    8 from turbogears.finddata import find_package_data 
    98 
    109if sys.version_info <= (2, 3): 
     
    1312import os 
    1413execfile(os.path.join("turbomail", "release.py")) 
     14 
     15def find_package_data( package='', where='.', only_in_packages=True): 
     16    """Finds static resources in package. Adapted from turbogears.finddata."""   
     17    out = {} 
     18    exclude = ('*.py', '*.pyc', '*~', '.*', '*.bak', '*.swp*') 
     19    exclude_directories = ('.*', 'CVS', '_darcs', './build', './dist', 'EGG-INFO', '*.egg-info') 
     20    stack = [(convert_path(where), '', package, only_in_packages)] 
     21    while stack: 
     22        where, prefix, package, only_in_packages = stack.pop(0) 
     23        for name in os.listdir(where): 
     24            fn = os.path.join(where, name) 
     25            if os.path.isdir(fn): 
     26                bad_name = False 
     27                for pattern in exclude_directories: 
     28                    if (fnmatchcase(name, pattern) 
     29                        or fn.lower() == pattern.lower()): 
     30                        bad_name = True 
     31                        print >> sys.stderr, ( 
     32                            "Directory %s ignored by pattern %s" 
     33                            % (fn, pattern)) 
     34                        break 
     35                if bad_name: 
     36                    continue 
     37                if os.path.isfile(os.path.join(fn, '__init__.py')): 
     38                    if not package: 
     39                        new_package = name 
     40                    else: 
     41                        new_package = package + '.' + name 
     42                    stack.append((fn, '', new_package, False)) 
     43                else: 
     44                    stack.append((fn, prefix + name + '/', package, only_in_packages)) 
     45            elif package or not only_in_packages: 
     46                # is a file 
     47                bad_name = False 
     48                for pattern in exclude: 
     49                    if (fnmatchcase(name, pattern) 
     50                        or fn.lower() == pattern.lower()): 
     51                        bad_name = True 
     52                        print >> sys.stderr, ( 
     53                            "File %s ignored by pattern %s" 
     54                            % (fn, pattern)) 
     55                        break 
     56                if bad_name: 
     57                    continue 
     58                out.setdefault(package, []).append(prefix+name) 
     59    return out 
    1560 
    1661setup(