[pkg] Drop custom install_lib command and use include_package_data instead
authorDenis Laxalde <denis.laxalde@logilab.fr>
Wed, 24 Jan 2018 11:34:44 +0100
changeset 12252 64c4edac1706
parent 12251 fd7086b701de
child 12253 9165f4b7426b
[pkg] Drop custom install_lib command and use include_package_data instead The custom install_lib command appeared to be meant to install package data, as declared in __pkginfo__.py. Let's rely on setuptools' include_package_data[1] option to handle this. [1]: http://setuptools.readthedocs.io/en/latest/setuptools.html#including-data-files
cubicweb/__pkginfo__.py
setup.py
--- a/cubicweb/__pkginfo__.py	Wed Jan 24 14:45:26 2018 +0100
+++ b/cubicweb/__pkginfo__.py	Wed Jan 24 11:34:44 2018 +0100
@@ -45,13 +45,6 @@
 
 scripts = [s for s in glob.glob(join('bin', 'cubicweb-*'))
            if not s.endswith('.bat')]
-include_dirs = [join('test', 'data'),
-                join('server', 'test', 'data'),
-                join('hooks', 'test', 'data'),
-                join('web', 'test', 'data'),
-                join('devtools', 'data'),
-                join('devtools', 'test', 'data'),
-                'schemas', 'skeleton']
 
 
 _server_migration_dir = join(modname, 'misc', 'migration')
--- a/setup.py	Wed Jan 24 14:45:26 2018 +0100
+++ b/setup.py	Wed Jan 24 11:34:44 2018 +0100
@@ -24,11 +24,9 @@
 import io
 import os
 import sys
-import shutil
 from os.path import dirname, exists, isdir, join
 
 from setuptools import setup
-from setuptools.command import develop, install_lib
 from distutils.command import install_data
 
 here = dirname(__file__)
@@ -52,13 +50,9 @@
 # import optional features
 distname = __pkginfo__['distname']
 scripts = __pkginfo__['scripts']
-include_dirs = __pkginfo__['include_dirs']
 data_files = __pkginfo__['data_files']
 package_data = __pkginfo__['package_data']
 
-BASE_BLACKLIST = ('CVS', 'dist', 'build', '__buildlog')
-IGNORED_EXTENSIONS = ('.pyc', '.pyo', '.elc')
-
 
 def ensure_scripts(linux_scripts):
     """
@@ -89,66 +83,6 @@
                 result += get_packages(absfile, result[-1])
     return result
 
-def export(from_dir, to_dir,
-           blacklist=BASE_BLACKLIST,
-           ignore_ext=IGNORED_EXTENSIONS,
-           verbose=True):
-    try:
-        os.mkdir(to_dir)
-    except OSError as ex:
-        # file exists ?
-        import errno
-        if ex.errno != errno.EEXIST:
-            raise
-    else:
-        if verbose:
-            print('created %s directory' % to_dir)
-    for dirpath, dirnames, filenames in os.walk(from_dir):
-        for norecurs in blacklist:
-            try:
-                dirnames.remove(norecurs)
-            except ValueError:
-                pass
-            else:
-                if verbose:
-                    print('not recursing in %s' % join(dirpath, norecurs))
-        for dirname in dirnames:
-            src = join(dirpath, dirname)
-            dest = to_dir + src[len(from_dir):]
-            if not exists(dest):
-                if verbose:
-                    print('creating %s directory' % dest)
-                os.mkdir(dest)
-        for filename in filenames:
-            # don't include binary files
-            src = join(dirpath, filename)
-            dest = to_dir + src[len(from_dir):]
-            if filename[-4:] in ignore_ext:
-                continue
-            if filename[-1] == '~':
-                continue
-            if exists(dest):
-                os.remove(dest)
-            if verbose:
-                print('copying %s to %s' % (src, dest))
-            shutil.copy2(src, dest)
-
-
-class MyInstallLib(install_lib.install_lib):
-    """extend install_lib command to handle  package __init__.py and
-    include_dirs variable if necessary
-    """
-    def run(self):
-        """overridden from install_lib class"""
-        install_lib.install_lib.run(self)
-        # create Products.__init__.py if needed
-        # manually install included directories if any
-        if include_dirs:
-            for directory in include_dirs:
-                src = join(modname, directory)
-                dest = join(self.install_dir, src)
-                export(src, dest, verbose=self.verbose)
-
 
 # re-enable copying data files in sys.prefix
 # overwrite install_data to use sys.prefix instead of the egg directory
@@ -191,6 +125,7 @@
     package_data=package_data,
     scripts=ensure_scripts(scripts),
     data_files=data_files,
+    include_package_data=True,
     install_requires=[
         'six >= 1.4.0',
         'logilab-common >= 1.4.0',
@@ -243,7 +178,6 @@
         ],
     },
     cmdclass={
-        'install_lib': MyInstallLib,
         'install_data': MyInstallData,
     },
     zip_safe=False,