Newer
Older
#!usr/bin/env python
# -*- coding: utf-8 -*-
# Filename: setup.py
"""
KM3BUU setup script.
"""
import os
import tempfile
from os.path import dirname
from setuptools import setup, find_packages
from setuptools.command.install import install
from setuptools.command.develop import develop
from setuptools.command.egg_info import egg_info
PACKAGE_NAME = 'km3buu'
URL = 'https://git.km3net.de/simulation/km3buu'
DESCRIPTION = 'GiBUU tools for KM3NeT'
__author__ = 'Johannes Schumann'
__email__ = 'jschumann@km3net.de'
with open('requirements.txt') as fobj:
REQUIREMENTS = [l.strip() for l in fobj.readlines()]
def _build_image():
ofile = tempfile.TemporaryFile()
retval = os.system("cd %s; make buildremote > %s" %
(dirname(__file__), ofile.name))
if retval != 0:
with open(ofile.name, 'r') as f:
msg = f.read()
raise EnvironmentError(msg)
class CustomInstallCmd(install):
def run(self):
install.run(self)
_build_image()
class CustomDevelopCmd(develop):
def run(self):
develop.run(self)
_build_image()
class CustomEggInfoCmd(egg_info):
def run(self):
egg_info.run(self)
_build_image()
setup(
name=PACKAGE_NAME,
url=URL,
description=DESCRIPTION,
author=__author__,
author_email=__email__,
packages=find_packages(),
include_package_data=True,
platforms='any',
cmdclass={
'install': CustomInstallCmd,
'develop': CustomDevelopCmd,
'egg_info': CustomEggInfoCmd
},
setup_requires=['setuptools_scm'],
use_scm_version={
'write_to': '{}/version.txt'.format(PACKAGE_NAME),
'tag_regex': r'^(?P<prefix>v)?(?P<version>[^\+]+)(?P<suffix>.*)?$',
},
install_requires=REQUIREMENTS,
python_requires='>=3.0',
classifiers=[
'Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'Intended Audience :: Science/Research',
'Programming Language :: Python',
],
)