from setuptools import setup, find_packages, Extension, Command from distutils.command.build_clib import build_clib as _build_clib from distutils import log from setuptools.command.develop import develop as _develop import sys if sys.version_info < (3,6): sys.exit('Sorry, Python < 3.6 is not supported') class develop(_develop): def install_for_development(self): self.run_command('build_clib') super().install_for_development() class build_sqlite_ext(_build_clib): def build_libraries(self, libraries): for (lib_name, build_info) in libraries: sources = build_info.get('sources') if sources is None or not isinstance(sources, (list, tuple)): raise DistutilsSetupError( "in 'libraries' option (library '%s'), " "'sources' must be present and must be " "a list of source filenames" % lib_name) sources = list(sources) log.info("building '%s' library", lib_name) macros = build_info.get('macros') include_dirs = build_info.get('include_dirs') objects = self.compiler.compile(sources, output_dir=self.build_temp, macros=macros, include_dirs=include_dirs, debug=self.debug) self.compiler.link_shared_object(objects, lib_name, output_dir=self.build_clib, debug=self.debug) setup( name='archivist', version='0.1', packages=find_packages(), include_package_data=True, cmdclass={'build_clib': build_sqlite_ext, 'develop': develop}, libraries=[('closure', {'sources': ['closure.c']})], package_data={'archivist' : ['sqlext/*']}, install_requires=[ 'Click>=6.6', 'peewee>=2.10.0', 'python-magic>=0.4' ], entry_points=''' [console_scripts] archivist=archivist.cli:cli ''', zip_safe = False )