File: setup.py

package info (click to toggle)
python-efilter 1.5-2~bpo8%2B1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-backports
  • size: 596 kB
  • sloc: python: 4,342; makefile: 51
file content (142 lines) | stat: -rwxr-xr-x 4,346 bytes parent folder | download | duplicates (3)
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#!/usr/bin/env python

import sys

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

try:
    from setuptools.commands.bdist_rpm import bdist_rpm
except ImportError:
    from distutils.command.bdist_rpm import bdist_rpm

try:
    from setuptools.command.sdist import sdist
except ImportError:
    from distutils.command.sdist import sdist

# Change PYTHONPATH to include efilter so that we can get the version.
sys.path.insert(0, ".")

try:
    from efilter.version import get_txt_version, get_version
except ImportError:
    # If we can't import EFILTER then we can't generate version from git, but
    # can still just read the version file.
    def get_version(_=None):
        return get_txt_version()

    def get_txt_version():
        try:
            with open("version.txt", "r") as fp:
                return fp.read().strip()
        except IOError:
            return None


__version__ = get_txt_version()


class BdistRPMCommand(bdist_rpm):
    """Custom handler for the bdist_rpm command."""

    def _make_spec_file(self):
        """Generates the text of an RPM spec file.

        Returns:
          A list of strings containing the lines of text.
        """
        # Note that bdist_rpm can be an old style class.
        if issubclass(BdistRPMCommand, object):
            spec_file = super(BdistRPMCommand, self)._make_spec_file()
        else:
            spec_file = bdist_rpm._make_spec_file(self)

        if sys.version_info[0] < 3:
            python_package = "python"
        else:
            python_package = "python3"

        description = []
        summary = ""
        in_description = False

        python_spec_file = []
        for line in spec_file:
            if line.startswith("Summary: "):
                summary = line

            elif line.startswith("BuildRequires: "):
                line = "BuildRequires: {0:s}-setuptools".format(python_package)

            elif line.startswith("Requires: "):
                if python_package == "python3":
                    line = line.replace("python", "python3")

            elif line.startswith("%description"):
                in_description = True

            elif line.startswith("%files"):
                line = "%files -f INSTALLED_FILES -n {0:s}-%{{name}}".format(
                    python_package)

            elif line.startswith("%prep"):
                in_description = False

                python_spec_file.append(
                    "%package -n {0:s}-%{{name}}".format(python_package))
                python_spec_file.append("{0:s}".format(summary))
                python_spec_file.append("")
                python_spec_file.append(
                    "%description -n {0:s}-%{{name}}".format(python_package))
                python_spec_file.extend(description)

            elif in_description:
                # Ignore leading white lines in the description.
                if not description and not line:
                    continue

                description.append(line)

            python_spec_file.append(line)

        return python_spec_file


class SDistCommand(sdist):
    """Custom handler for the sdist command."""

    def run(self):
        global __version__
        __version__ = get_version(False)
        with open("version.txt", "w") as fd:
            fd.write(__version__)

        # Need to use old style super class invocation here for
        # backwards compatibility.
        sdist.run(self)


setup(name="efilter",
      version=__version__,
      description="EFILTER query language",
      long_description=(
          "EFILTER is a general-purpose destructuring and search language "
          "implemented in Python, and suitable for integration with any "
          "Python project that requires a search function for some of its "
          "data."),
      license="Apache 2.0",
      author="Adam Sindelar",
      author_email="adam.sindelar@gmail.com",
      url="https://github.com/google/dotty/",
      packages=find_packages(exclude=["efilter_tests*"]),
      package_dir={"efilter": "efilter"},
      cmdclass={
          "bdist_rpm": BdistRPMCommand,
          "sdist": SDistCommand},
      install_requires=[
          "python-dateutil > 2",
          "pytz >= 2011k",
          "six >= 1.4.0"])