-
Denis Arrivault authoredDenis Arrivault authored
setup.py 5.33 KiB
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ######### COPYRIGHT #########
#
# Copyright(c) 2016-2018
# -----------------
#
# * LabEx Archimède: http://labex-archimede.univ-amu.fr/
# * Laboratoire d'Informatique et Systèmes : http://www.lis-lab.fr/
#
# Contributors:
# ------------
#
# * François Denis <francois.denis_AT_lis-lab.fr>
# * Rémi Eyraud <remi.eyraud_AT_lis-lab.fr>
# * Denis Arrivault <contact.dev_AT_lis-lab.fr>
# * Dominique Benielli <dominique.benielli_AT_univ-amu.fr>
#
# Description:
# -----------
#
# scitkit-splearn is a toolbox in
# python for spectral learning algorithms.
#
# Version:
# -------
#
# * splearn version = 1.1.0
#
# Licence:
# -------
#
# License: 3-clause BSD
#
#
# ######### COPYRIGHT #########
from __future__ import print_function
import os
import sys
import shutil
# Always prefer setuptools over distutils
try:
from setuptools import setup
from setuptools.command.clean import clean
from setuptools.command.sdist import sdist
except ImportError:
from distutils.core import setup
from distutils.command.clean import clean
from distutils.command.sdist import sdist
USE_COPYRIGHT = True
try:
from copyright import writeStamp, eraseStamp
except ImportError:
USE_COPYRIGHT = False
###################
# Get scikit-splearn version
####################
def get_version():
v_text = open('VERSION').read().strip()
v_text_formted = '{"' + v_text.replace('\n', '","').replace(':', '":"')
v_text_formted += '"}'
v_dict = eval(v_text_formted)
return v_dict["splearn"]
########################
# Set ltfat __version__
########################
def set_version(splearn_dir, version):
filename = os.path.join(splearn_dir, '__init__.py')
buf = ""
for line in open(filename, "rb"):
if not line.decode("utf8").startswith("__version__ ="):
buf += line.decode("utf8")
f = open(filename, "wb")
f.write(buf.encode("utf8"))
f.write(('__version__ = "%s"\n' % version).encode("utf8"))
######################
# Custom clean command
######################
class m_clean(clean):
""" Remove build directories, and compiled file in the source tree"""
def run(self):
clean.run(self)
if os.path.exists('build'):
shutil.rmtree('build')
for dirpath, dirnames, filenames in os.walk('splearn'):
for filename in filenames:
if (filename.endswith('.so') or
filename.endswith('.pyd') or
filename.endswith('.dll') or
filename.endswith('.pyc')):
os.unlink(os.path.join(dirpath, filename))
for dirname in dirnames:
if dirname == '__pycache__':
shutil.rmtree(os.path.join(dirpath, dirname))
##############################
# Custom sdist command
##############################
class m_sdist(sdist):
""" Build source package
WARNING : The stamping must be done on an default utf8 machine !
"""
def run(self):
if USE_COPYRIGHT:
writeStamp()
sdist.run(self)
# eraseStamp()
else:
sdist.run(self)
##########################
# File path read command
##########################
def read(*paths):
"""Build a file path from *paths* and return the contents."""
with open(os.path.join(*paths), 'r', encoding='utf-8') as f:
return f.read()
####################
# Setup method
####################
def setup_package():
""" Setup function"""
# set version
VERSION = get_version()
splearn_dir = 'splearn'
set_version(splearn_dir, VERSION)
setup(name="scikit-splearn",
version=VERSION,
description='Python module for spectral learning of weighted automata',
long_description=(read('README.rst') + '\n\n' +
read('HISTORY.rst') + '\n\n' +
read('AUTHORS.rst')),
packages=["splearn", "splearn.datasets", "splearn.tests", "splearn.tests.datasets"],
package_data={'splearn.tests.datasets': ['*.*']},
url="https://gitlab.lif.univ-mrs.fr/dominique.benielli/scikit-splearn.git",
license='new BSD',
author='François Denis and Rémi Eyraud and Denis Arrivault and Dominique Benielli',
author_email='francois.denis@lif.univ-mrs.fr ' +
'remi.eyraud[A]lif.uni-mrs.fr.antispam' +
'denis.arrivault@lif.univ-mrs.fr ' +
'dominique.benielli@univ-amu.fr ',
cmdclass={'clean': m_clean, 'sdist': m_sdist},
classifiers=['Development Status :: 5 - Production/Stable',
'Intended Audience :: Science/Research',
'Intended Audience :: Developers',
'Natural Language :: English',
'License :: OSI Approved :: BSD License',
'Operating System :: MacOS :: MacOS X',
'Operating System :: POSIX :: Linux',
'Programming Language :: Python :: 3.4',
'Topic :: Scientific/Engineering',
'Topic :: Scientific/Engineering :: Mathematics'
],
install_requires=['numpy>=1.8', 'scipy>=0.16', 'six>=1.10', 'scikit-learn>=0.17.1'],
)
if __name__ == "__main__":
setup_package()