setup.py 9.96 KB
Newer Older
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
#!/usr/bin/env python
# vim: set fileencoding=utf-8 :
# Andre Anjos <andre.anjos@idiap.ch>
# Mon 16 Apr 08:18:08 2012 CEST
#
# Copyright (C) Idiap Research Institute, Martigny, Switzerland
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

# This file contains the python (distutils/setuptools) instructions so your
# package can be installed on **any** host system. It defines some basic
# information like the package name for instance, or its homepage.
#
# It also defines which other packages this python package depends on and that
# are required for this package's operation. The python subsystem will make
# sure all dependent packages are installed or will install them for you upon
# the installation of this package.
#
# The 'buildout' system we use here will go further and wrap this package in
# such a way to create an isolated python working environment. Buildout will
# make sure that dependencies which are not yet installed do get installed, but
# **without** requiring administrative privileges on the host system. This
# allows you to test your package with new python dependencies w/o requiring
# administrative interventions.

36
from setuptools import setup, dist
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
37

Manuel Günther's avatar
Manuel Günther committed
38
39
dist.Distribution(dict(setup_requires=['bob.extension']))

40
from bob.extension.utils import load_requirements, find_packages
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
41

Manuel Günther's avatar
Manuel Günther committed
42
install_requires = load_requirements()
43
44
45
46
47
48
49

# The only thing we do in this file is to call the setup() function with all
# parameters that define our package.
setup(

    # This is the basic information about your project. Modify all this
    # information before releasing code publicly.
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
50
51
52
    name='bob.bio.face',
    version=open("version.txt").read().rstrip(),
    description='Tools for running face recognition experiments',
53

Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
54
    url='https://gitlab.idiap.ch/bob/bob.bio.face',
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
55
56
57
58
    license='BSD',
    author='Manuel Gunther',
    author_email='siebenkopf@googlemail.com',
    keywords='bob, biometric recognition, evaluation',
59
60
61

    # If you have a better, long description of your package, place it on the
    # 'doc' directory and then hook it here
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
62
    long_description=open('README.rst').read(),
63
64

    # This line is required for any distutils based packaging.
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
65
66
    packages=find_packages(),
    include_package_data=True,
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
67
    zip_safe=False,
68
69
70
71
72
73

    # This line defines which packages should be installed when you "install"
    # this package. All packages that are mentioned here, but are not installed
    # on the current system will be installed locally and only visible to the
    # scripts of this package. Don't worry - You won't need administrative
    # privileges when using buildout.
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
74
    install_requires=install_requires,
75
76
77
78
79
80
81
82
83
84

    # Your project should be called something like 'bob.<foo>' or
    # 'bob.<foo>.<bar>'. To implement this correctly and still get all your
    # packages to be imported w/o problems, you need to implement namespaces
    # on the various levels of the package and declare them here. See more
    # about this here:
    # http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
    #
    # Our database packages are good examples of namespace implementations
    # using several layers. You can check them out here:
Amir MOHAMMADI's avatar
Amir MOHAMMADI committed
85
    # https://gitlab.idiap.ch/bob/bob/wikis/Packages
86

87
88
89
90
91
92
93
94
95
96
97
98
99
100
101

    # This entry defines which scripts you will have inside the 'bin' directory
    # once you install the package (or run 'bin/buildout'). The order of each
    # entry under 'console_scripts' is like this:
    #   script-name-at-bin-directory = module.at.your.library:function
    #
    # The module.at.your.library is the python file within your library, using
    # the python syntax for directories (i.e., a '.' instead of '/' or '\').
    # This syntax also omits the '.py' extension of the filename. So, a file
    # installed under 'example/foo.py' that contains a function which
    # implements the 'main()' function of particular script you want to have
    # should be referred as 'example.foo:main'.
    #
    # In this simple example we will create a single program that will print
    # the version of bob.
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
102
103
104
105
106
107
108
109
110
    entry_points={

        # scripts should be declared using this entry:
        'console_scripts': [
            'baselines.py      = bob.bio.face.script.baselines:main',
            'display_face_annotations.py = bob.bio.face.script.display_face_annotations:main'
        ],

        'bob.bio.database': [
111
            'arface            = bob.bio.face.config.database.arface:database',
112
            'atnt              = bob.bio.face.config.database.atnt:database',
113
114
115
116
            'banca             = bob.bio.face.config.database.banca_english:database',
            'caspeal           = bob.bio.face.config.database.caspeal:database',
            'frgc              = bob.bio.face.config.database.frgc:database',
            'gbu               = bob.bio.face.config.database.gbu:database',
117
            'ijba              = bob.bio.face.config.database.ijba:database',
118
119
120
121
122
123
124
125
            'lfw-restricted    = bob.bio.face.config.database.lfw_restricted:database',
            'lfw-unrestricted  = bob.bio.face.config.database.lfw_unrestricted:database',
            'mobio-male        = bob.bio.face.config.database.mobio_male:database',  # MOBIO gender-dependent training
            'mobio-female      = bob.bio.face.config.database.mobio_female:database',  # MOBIO gender-dependent training
            'multipie          = bob.bio.face.config.database.multipie:database',
            'multipie-pose     = bob.bio.face.config.database.multipie_pose:database',
            'scface            = bob.bio.face.config.database.scface:database',
            'xm2vts            = bob.bio.face.config.database.xm2vts:database',
126
127
            'replay-img-licit  = bob.bio.face.config.database.replay:replay_licit',
            'replay-img-spoof  = bob.bio.face.config.database.replay:replay_spoof',
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
        ],

        'bob.bio.preprocessor': [
            'base              = bob.bio.face.config.preprocessor.base:preprocessor',  # simple color conversion
            'face-crop-eyes    = bob.bio.face.config.preprocessor.face_crop_eyes:preprocessor',  # face crop
            'landmark-detect   = bob.bio.face.config.preprocessor.face_detect:preprocessor',
            # face detection + landmark detection + cropping
            'face-detect       = bob.bio.face.config.preprocessor.face_detect:preprocessor_no_eyes',
            # face detection + cropping

            'inorm-lbp-crop    = bob.bio.face.config.preprocessor.inorm_lbp:preprocessor',  # face crop + inorm-lbp
            'tan-triggs-crop   = bob.bio.face.config.preprocessor.tan_triggs:preprocessor',  # face crop + Tan&Triggs
            'histogram-crop    = bob.bio.face.config.preprocessor.histogram_equalization:preprocessor',
            # face crop + histogram equalization
            'self-quotient-crop= bob.bio.face.config.preprocessor.self_quotient_image:preprocessor',
            # face crop + self quotient image

            'inorm-lbp-landmark = bob.bio.face.config.preprocessor.inorm_lbp:preprocessor_landmark',
            # face detection + landmark detection + cropping + inorm-lbp
            'tan-triggs-landmark = bob.bio.face.config.preprocessor.tan_triggs:preprocessor_landmark',
            # face detection + landmark detection + cropping + Tan&Triggs
            'histogram-landmark = bob.bio.face.config.preprocessor.histogram_equalization:preprocessor_landmark',
            # face detection + landmark detection + cropping + histogram equalization
            'self-quotient-landmark = bob.bio.face.config.preprocessor.self_quotient_image:preprocessor_landmark',
            # face detection + landmark detection + cropping + self quotient image

            'inorm-lbp         = bob.bio.face.config.preprocessor.inorm_lbp:preprocessor_no_crop',
            # inorm-lbp w/o face-crop
            'tan-triggs        = bob.bio.face.config.preprocessor.tan_triggs:preprocessor_no_crop',
            # Tan&Triggs w/o face-crop
            'histogram         = bob.bio.face.config.preprocessor.histogram_equalization:preprocessor_no_crop',
            # histogram equalization w/o face-crop
            'self-quotient     = bob.bio.face.config.preprocessor.self_quotient_image:preprocessor_no_crop',
            # self quotient image w/o face-crop
        ],

        'bob.bio.extractor': [
            'dct-blocks        = bob.bio.face.config.extractor.dct_blocks:extractor',  # DCT blocks
            'grid-graph        = bob.bio.face.config.extractor.grid_graph:extractor',  # Grid graph
            'lgbphs            = bob.bio.face.config.extractor.lgbphs:extractor',  # LGBPHS
            'eigenface         = bob.bio.face.config.extractor.eigenface:extractor',  # Eigenface
        ],

        'bob.bio.algorithm': [
            'gabor-jet         = bob.bio.face.config.algorithm.gabor_jet:algorithm',  # Gabor jet comparison
            'histogram         = bob.bio.face.config.algorithm.histogram:algorithm',  # LGBPHS histograms
            'bic-jets          = bob.bio.face.config.algorithm.bic_jets:algorithm',  # BIC on gabor jets
        ],
    },
177
178
179
180

    # Classifiers are important if you plan to distribute this package through
    # PyPI. You can find the complete list of classifiers that are valid and
    # useful here (http://pypi.python.org/pypi?%3Aaction=list_classifiers).
Tiago de Freitas Pereira's avatar
Tiago de Freitas Pereira committed
181
182
183
184
185
186
187
188
    classifiers=[
        'Framework :: Bob',
        'Development Status :: 3 - Alpha',
        'Intended Audience :: Developers',
        'License :: OSI Approved :: BSD License',
        'Natural Language :: English',
        'Programming Language :: Python',
        'Topic :: Scientific/Engineering :: Artificial Intelligence',
189
190
    ],
)