setup.py 4.28 KB
Newer Older
1
# -*- coding: utf-8 -*-
2
#Extracting requrements from requirements.txt
Baptiste Bauvin's avatar
Baptiste Bauvin committed
3
4
# with open('requirements.txt') as f:
#     requirements = f.read().splitlines()
5

Dominique Benielli's avatar
Dominique Benielli committed
6
# from Cython.Build import cythonize
Baptiste Bauvin's avatar
Baptiste Bauvin committed
7
from setuptools import setup, find_packages
8
9
10
11


# Ceci n'est qu'un appel de fonction. Mais il est trèèèèèèèèèèès long
# et il comporte beaucoup de paramètres
Dominique Benielli's avatar
wip    
Dominique Benielli committed
12
13
def setup_package():
    setup(
14
15

    # le nom de votre bibliothèque, tel qu'il apparaitre sur pypi
Baptiste Bauvin's avatar
Doc    
Baptiste Bauvin committed
16
    name='summit',
17
18

    # la version du code
19
    version=0.0,
Dominique Benielli's avatar
Dominique Benielli committed
20
    python_requires = '>=3.5',
21
22
23
24
25
26
27
28
29
30
31
32
33
    # Liste les packages à insérer dans la distribution
    # plutôt que de le faire à la main, on utilise la foncton
    # find_packages() de setuptools qui va cherche tous les packages
    # python recursivement dans le dossier courant.
    # C'est pour cette raison que l'on a tout mis dans un seul dossier:
    # on peut ainsi utiliser cette fonction facilement
    packages=find_packages(),

    # votre pti nom
    author="Baptiste Bauvin",

    # Votre email, sachant qu'il sera publique visible, avec tous les risques
    # que ça implique.
Baptiste Bauvin's avatar
Baptiste Bauvin committed
34
    author_email="baptiste.bauvin@lis-lab.fr",
35
36

    # Une description courte
Baptiste Bauvin's avatar
Doc    
Baptiste Bauvin committed
37
    description="Supervised MultiModal Integration Tool",
38
39
40

    # Une description longue, sera affichée pour présenter la lib
    # Généralement on dump le README ici
Baptiste Bauvin's avatar
Baptiste Bauvin committed
41
    long_description=open('README.rst').read(),
42
43
44
45
46
47
48
49
50
51
52
53
54

    # Vous pouvez rajouter une liste de dépendances pour votre lib
    # et même préciser une version. A l'installation, Python essayera de
    # les télécharger et les installer.
    #
    # Ex: ["gunicorn", "docutils >= 0.3", "lxml==0.5a7"]
    #
    # Dans notre cas on en a pas besoin, donc je le commente, mais je le
    # laisse pour que vous sachiez que ça existe car c'est très utile.
    # install_requires= ,

    # Active la prise en compte du fichier MANIFEST.in
    include_package_data=True,
55
    # dependency_links=['https://github.com/aldro61/pyscm.git#egg=pyscm'],
56
    # Une url qui pointe vers la page officielle de votre lib
Baptiste Bauvin's avatar
Doc    
Baptiste Bauvin committed
57
    url='http://gitlab.lis-lab.fr/baptiste.bauvin/summit/',
Baptiste Bauvin's avatar
Baptiste Bauvin committed
58
59
60
61
62
63
    install_requires=['h5py>=2.9.0', 'joblib>=0.13.2', 'numpy>=1.16.4',
                      'pyparsing>=2.4.0', 'python-dateutil>=2.8.0',
                      'scikit-learn>=0.19.0', 'scipy>=1.3.0', 'six>=1.12.0',
                      'pandas>=0.23.3', 'pyyaml>=3.12', 'plotly>=4.2.1',
                      'matplotlib>=3.1.1', 'tabulate>=0.8.6', 'pyscm-ml>=1.0.0',
                      'git+https://github.com/thibgo/randomscm/archive/refs/tags/v0.0.0-alpha.zip'],
Baptiste Bauvin's avatar
Baptiste Bauvin committed
64
    extras_require={
Baptiste Bauvin's avatar
Baptiste Bauvin committed
65
            'dev': ['pytest', 'pytest-cov'],
Baptiste Bauvin's avatar
Baptiste Bauvin committed
66
67
            'doc': ['sphinx >= 3.0.2', 'numpydoc', 'docutils', 'sphinx-autoapi',
                    'sphinx_rtd_theme']},
68

69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
    # Il est d'usage de mettre quelques metadata à propos de sa lib
    # Pour que les robots puissent facilement la classer.
    # La liste des marqueurs autorisées est longue:
    # https://pypi.python.org/pypi?%3Aaction=list_classifiers.
    #
    # Il n'y a pas vraiment de règle pour le contenu. Chacun fait un peu
    # comme il le sent. Il y en a qui ne mettent rien.
    classifiers=[
        "Programming Language :: Python",
        "Development Status :: 1 - Planning",
        "License :: OSI Approved",
        "Natural Language :: French",
        "Operating System :: OS Independent",
        "Programming Language :: Python :: 2/3",
        "Topic :: Machine Learning",
    ],

    # C'est un système de plugin, mais on s'en sert presque exclusivement
    # Pour créer des commandes, comme "django-admin".
    # Par exemple, si on veut créer la fabuleuse commande "proclame-sm", on
    # va faire pointer ce nom vers la fonction proclamer(). La commande sera
    # créé automatiquement.
    # La syntaxe est "nom-de-commande-a-creer = package.module:fonction".
Baptiste Bauvin's avatar
Baptiste Bauvin committed
92
93
94
95
96
    # entry_points={
    #     'console_scripts': [
    #         'exec_multiview = summit.execute:exec',
    #     ],
    # },
97
98
99
100
101
102
103

    # A fournir uniquement si votre licence n'est pas listée dans "classifiers"
    # ce qui est notre cas
    license="GNUGPL",

    # Il y a encore une chiée de paramètres possibles, mais avec ça vous
    # couvrez 90% des besoins
Dominique Benielli's avatar
Dominique Benielli committed
104
    # ext_modules=cythonize(
Baptiste Bauvin's avatar
Baptiste Bauvin committed
105
    #     "summit/multiview_platform/monoview/additions/_custom_criterion.pyx"),
Baptiste Bauvin's avatar
Baptiste Bauvin committed
106
)
Dominique Benielli's avatar
wip    
Dominique Benielli committed
107
108
109

if __name__ == "__main__":
    setup_package()