1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
# -*- coding: utf-8 -*-
########################################################################
#
# License: BSD 3-clause
# Created: September 22, 2010
# Author: Francesc Alted - faltet@gmail.com
#
########################################################################
# flake8: noqa
from __future__ import print_function
import os
import sys
import io
from skbuild import setup
from textwrap import dedent
if __name__ == '__main__':
with io.open('README.rst', encoding='utf-8') as f:
long_description = f.read()
try:
import cpuinfo
cpu_info = cpuinfo.get_cpu_info()
except Exception:
# newer cpuinfo versions fail to import on unsupported architectures
cpu_info = None
########### Check versions ##########
def exit_with_error(message):
print('ERROR: %s' % message)
sys.exit(1)
# Check for Python
if sys.version_info[0] == 3:
if sys.version_info[1] < 6:
exit_with_error("You need Python 3.6 or greater to install blosc!")
else:
exit_with_error("You need Python 3.6 or greater to install blosc!")
########### End of checks ##########
# Read the long_description from README.rst
with open('README.rst') as f:
long_description = f.read()
# Blosc version
VERSION = open('VERSION').read().strip()
# Create the version.py file
open('blosc/version.py', 'w').write('__version__ = "%s"\n' % VERSION)
def cmake_bool(cond):
return 'ON' if cond else 'OFF'
classifiers = dedent("""\
Development Status :: 5 - Production/Stable
Intended Audience :: Developers
Intended Audience :: Information Technology
Intended Audience :: Science/Research
License :: OSI Approved :: BSD License
Programming Language :: Python
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Topic :: Software Development :: Libraries :: Python Modules
Topic :: System :: Archiving :: Compression
Operating System :: Microsoft :: Windows
Operating System :: Unix
""")
setup(name = "blosc",
version = VERSION,
description = 'Blosc data compressor',
long_description = long_description,
classifiers = [c for c in classifiers.split("\n") if c],
author = 'Francesc Alted, Valentin Haenel',
author_email = 'faltet@gmail.com, valentin@haenel.co',
maintainer = 'Francesc Alted, Valentin Haenel',
maintainer_email = 'faltet@gmail.com, valentin@haenel.co',
url = 'http://github.com/blosc/python-blosc',
license = 'https://opensource.org/licenses/BSD-3-Clause',
platforms = ['any'],
cmake_args = [
'-DBLOSC_DIR:PATH=%s' % os.environ.get('BLOSC_DIR', ''),
'-DDEACTIVATE_SSE2:BOOL=%s' % cmake_bool(('DISABLE_BLOSC_SSE2' in os.environ) or (cpu_info is None) or ('flags' not in cpu_info) or ('sse2' not in cpu_info['flags'])),
'-DDEACTIVATE_AVX2:BOOL=%s' % cmake_bool(('DISABLE_BLOSC_AVX2' in os.environ) or (cpu_info is None) or ('flags' not in cpu_info) or ('avx2' not in cpu_info['flags'])),
'-DDEACTIVATE_LZ4:BOOL=%s' % cmake_bool(not int(os.environ.get('INCLUDE_LZ4', '1'))),
# Snappy is disabled by default
'-DDEACTIVATE_SNAPPY:BOOL=%s' % cmake_bool(not int(os.environ.get('INCLUDE_SNAPPY', '0'))),
'-DDEACTIVATE_ZLIB:BOOL=%s' % cmake_bool(not int(os.environ.get('INCLUDE_ZLIB', '1'))),
'-DDEACTIVATE_ZSTD:BOOL=%s' % cmake_bool(not int(os.environ.get('INCLUDE_ZSTD', '1'))),
],
setup_requires=['scikit-build'],
tests_require=['numpy', 'psutil'],
packages = ['blosc'],
)
elif __name__ == '__mp_main__':
# This occurs from `cpuinfo 4.0.0` using multiprocessing to interrogate the
# CPUID flags
# https://github.com/workhorsy/py-cpuinfo/issues/108
pass
|