#!/usr/bin/env python

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup


from platform import python_version_tuple
import os
import re


LICENSE = open("LICENSE").read()


# strip links from the descripton on the PyPI
if python_version_tuple()[0] >= '3':
    LONG_DESCRIPTION = open("README.rst", "r", encoding="utf-8").read().replace("`_", "`")
else:
    LONG_DESCRIPTION = open("README.rst", "r").read().replace("`_", "`")

# strip Build Status from the PyPI package
if python_version_tuple()[:2] >= ('2', '7'):
    LONG_DESCRIPTION = re.sub("^Build status\n(.*\n){7}", "", LONG_DESCRIPTION, flags=re.M)


install_options = os.environ.get("TABULATE_INSTALL","").split(",")
libonly_flags = set(["lib-only", "libonly", "no-cli", "without-cli"])
if libonly_flags.intersection(install_options):
    console_scripts = []
else:
    console_scripts = ['tabulate = tabulate:_main']


setup(name='tabulate',
      version='0.7.6-dev',
      description='Pretty-print tabular data',
      long_description=LONG_DESCRIPTION,
      author='Sergey Astanin',
      author_email='s.astanin@gmail.com',
      url='https://bitbucket.org/astanin/python-tabulate',
      license=LICENSE,
      classifiers= [ "Development Status :: 4 - Beta",
                     "License :: OSI Approved :: MIT License",
                     "Operating System :: OS Independent",
                     "Programming Language :: Python :: 2.6",
                     "Programming Language :: Python :: 2.7",
                     "Programming Language :: Python :: 3.2",
                     "Programming Language :: Python :: 3.3",
                     "Programming Language :: Python :: 3.4",
                     "Topic :: Software Development :: Libraries" ],
      py_modules = ['tabulate'],
      entry_points = {'console_scripts': console_scripts},
      test_suite = 'nose.collector')

@@ -154,17 +154,40 @@
 on_tuple
+, python_implementation
 %0A
-
 import o
@@ -532,16 +532,25 @@
 package%0A
+try:%0A    
 if pytho
@@ -594,96 +594,309 @@
     
-LONG_DESCRIPTION = re.sub(%22%5EBuild status%5Cn(.*%5Cn)%7B7%7D%22, %22%22, LONG_DESCRIPTION, flags=re.M)%0A
+    status_re = %22%5EBuild status%5Cn(.*%5Cn)%7B7%7D%22%0A        LONG_DESCRIPTION = re.sub(status_re, %22%22, LONG_DESCRIPTION, flags=re.M)%0Aexcept TypeError:%0A    if python_implementation() == %22IronPython%22:%0A        # IronPython doesn't support flags in re.sub (IronPython issue #923)%0A        pass%0A    else:%0A        raise
 %0A%0Ain

fix #56: workaround for missing re.sub flags support in IronPython