#!/usr/bin/env python
# -*- coding: utf-8 -*-


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

import codecs
import os
import re

root_dir = os.path.abspath(os.path.dirname(__file__))

def get_build_number():
    fname = 'build.info'
    if os.path.isfile(fname):
        with open(fname) as f:
            build_number = f.read()
            build_number = re.sub("[^a-z0-9]+","", build_number, flags=re.IGNORECASE)
            return '.' + build_number

    return ''

def get_version(package_name):
    build_number = get_build_number()

    version_re = re.compile(r"^__version__ = [\"']([\w_.-]+)[\"']$")
    package_components = package_name.split('.')
    init_path = os.path.join(root_dir, *(package_components + ['__init__.py']))
    with codecs.open(init_path, 'r', 'utf-8') as f:
        for line in f:
            match = version_re.match(line[:-1])
            if match:
                return match.groups()[0]+build_number

    return '0.1.0' + build_number

with open('README.rst') as readme_file:
    readme = readme_file.read()

with open('HISTORY.rst') as history_file:
    history = history_file.read().replace('.. :changelog:', '')

requirements = [
    # TODO: put package requirements here
]

test_requirements = [
    # TODO: put package test requirements here
]

setup(
    name='pymaybe',
    version=get_version('pymaybe'),
    description="A Python implementation of the Maybe pattern.",
    long_description=readme + '\n\n' + history,
    author="Eran Kampf",
    author_email='eran@ekampf.com',
    url='https://github.com/ekampf/pymaybe',
    packages=[
        'pymaybe',
    ],
    package_dir={'pymaybe': 'pymaybe'},
    include_package_data=True,
    install_requires=requirements,
    setup_requires=['flake8'],
    license="BSD",
    zip_safe=False,
    keywords='pymaybe',
    classifiers=[
        'Development Status :: 5 - Production/Stable',
        'Intended Audience :: Developers',
        'License :: OSI Approved :: BSD License',
        'Natural Language :: English',
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.5",
        "Programming Language :: Python :: 2.6",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.3",
        "Programming Language :: Python :: 3.4",
    ],
    test_suite='tests',
    tests_require=test_requirements
)

@@ -489,32 +489,44 @@
  + build_number%0A
+            
 %0A    return ''%0A%0A
@@ -524,16 +524,20 @@
 turn ''%0A
+    
 %0Adef get
@@ -598,16 +598,20 @@
 umber()%0A
+    
 %0A    ver
@@ -1783,39 +1783,8 @@
 ts,%0A
-    setup_requires=%5B'flake8'%5D,%0A
     

Revert "Flake8 requirement"