Skip to content
Snippets Groups Projects
Commit a4a1fb1c authored by Dominique Benielli's avatar Dominique Benielli
Browse files

version toml

parent f856c929
No related branches found
No related tags found
No related merge requests found
File moved
include *.md
include multiview_platform/examples*
include LICENSE
\ No newline at end of file
summit:0.0.1
......@@ -50,7 +50,7 @@ def getStamp(date, multimodal_version):
""" Return the corrected formated stamp """
stamp = open("copyrightstamp.txt").read()
stamp = stamp.replace("DATE", date)
stamp = stamp.replace("MULTIMODAL_VERSION", multimodal_version)
stamp = stamp.replace("SUMMIT_VERSION", summit_version)
stamp = stamp.replace('\n', '\n# ')
stamp = "# " + stamp
stamp = stamp.replace("# \n", "#\n")
......@@ -64,14 +64,14 @@ def getVersionsAndDate():
v_text_formted = '{"' + v_text.replace('\n', '","').replace(':', '":"')
v_text_formted += '"}'
v_dict = eval(v_text_formted)
return (time.strftime("%Y"), v_dict['multimodal'])
return (time.strftime("%Y"), v_dict['summit'])
def writeStamp():
""" Write a copyright stamp on all files """
stamp = getStamp(*getVersionsAndDate())
files = findFiles(os.path.join(os.path.dirname(os.path.abspath(__file__)),
"multimodal"))
"summit"))
for filename in files:
fileStamping(filename, stamp)
fileStamping("setup.py", stamp)
......@@ -80,7 +80,7 @@ def writeStamp():
def eraseStamp():
""" Erase a copyright stamp from all files """
files = findFiles(os.path.join(os.path.dirname(os.path.abspath(__file__)),
"multimodal"))
"summit"))
for filename in files:
fileUnStamping(filename)
fileUnStamping("setup.py")
......
[build-system]
requires = ["setuptools>=42", "wheel", "numpy"]
build-backend = "setuptools.build_meta"
[project]
name = 'summit-multi-learn'
dynamic = ["version", 'dependencies', "license"]
requires-python = '>=3.6'
readme = {file = "README.rst", content-type = "text/x-rst"}
description = "Supervised MultiModal Integration Tool"
authors = [
{name = "Baptiste Bauvin", email = "baptiste.bauvin.work@gmail.com"}
]
keywords = ['machine learning, supervised learning, classification, tool, multiview learning, monoview learning']
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Science/Research',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Topic :: Scientific/Engineering',
'Topic :: Scientific/Engineering :: Artificial Intelligence',
'Topic :: Machine Learning',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX :: Linux',
'Operating System :: MacOS :: MacOS X',
]
[project.optional-dependencies]
test = ['pytest', 'pytest-cov']
doc = ['sphinx==5.0', 'numpydoc', 'sphinx_gallery', "sphinx_rtd_theme"]
[project.urls]
Homepage = 'https://github.com/multi-learn/summit'
Documentation = 'https://multi-learn.github.io/summit/'
Issues = '"https://github.com/multi-learn/summit/issues'
[tool.setuptools.dynamic]
dependencies = {file = ["requirements.txt"]}
[tool.setuptools.packages.find]
where = ["."]
......@@ -13,3 +13,6 @@ matplotlib>=3.1.1
tabulate>=0.8.6
pyscm-ml>=1.0.0
imbalanced-learn>=0.10.1
scikit-multimodallearn==0.0.3
# Dépendances depuis des dépôts Git
randomscm @ git+https://github.com/thibgo/randomscm.git@v0.0.0-alpha
......@@ -2,102 +2,122 @@
#Extracting requrements from requirements.txt
with open('requirements.txt') as f:
requirements = f.read().splitlines()
# from Cython.Build import cythonize
import os, re
import shutil
from distutils.command.clean import clean as _clean
from distutils.dir_util import remove_tree
from distutils.command.sdist import sdist
from setuptools import setup, find_packages
USE_COPYRIGHT = True
try:
from copyright import writeStamp, eraseStamp
except ImportError:
USE_COPYRIGHT = False
# --------------------------------------------------------------------
# Clean target redefinition - force clean everything supprimer de la liste '^core\.*$',
relist = ['^.*~$', '^#.*#$', '^.*\.aux$', '^.*\.pyc$', '^.*\.o$']
reclean = []
###################
# Get Summit version
####################
def get_version():
v_text = open('VERSION').read().strip()
v_text_formted = '{"' + v_text.replace('\n', '","').replace(':', '":"')
v_text_formted += '"}'
v_dict = eval(v_text_formted)
return v_dict["summit"]
########################
# Set Summit __version__
########################
def set_version(summit_dir, version):
filename = os.path.join(summit_dir, '__init__.py')
buf = ""
for line in open(filename, "rb"):
if not line.decode("utf8").startswith("__version__ ="):
buf += line.decode("utf8")
f = open(filename, "wb")
f.write(buf.encode("utf8"))
f.write(('__version__ = "%s"\n' % version).encode("utf8"))
for restring in relist:
reclean.append(re.compile(restring))
def wselect(args, dirname, names):
for n in names:
for rev in reclean:
if (rev.match(n)):
os.remove("%s/%s" %(dirname, n))
break
class clean(_clean):
def walkAndClean(self):
os.walk("..", wselect, [])
pass
def run(self):
clean.run(self)
if os.path.exists('build'):
shutil.rmtree('build')
for dirpath, dirnames, filenames in os.walk('multimodal'):
for filename in filenames:
if (filename.endswith('.so') or
filename.endswith('.pyd') or
filename.endswith('.dll') or
filename.endswith('.pyc')):
os.unlink(os.path.join(dirpath, filename))
for dirname in dirnames:
if dirname == '__pycache__':
shutil.rmtree(os.path.join(dirpath, dirname))
##############################
# Custom sdist command
##############################
class m_sdist(sdist):
""" Build source package
WARNING : The stamping must be done on an default utf8 machine !
"""
def run(self):
if USE_COPYRIGHT:
writeStamp()
sdist.run(self)
# eraseStamp()
else:
sdist.run(self)
# Ceci n'est qu'un appel de fonction. Mais il est trèèèèèèèèèèès long
# et il comporte beaucoup de paramètres
def setup_package():
setup(
# le nom de votre bibliothèque, tel qu'il apparaitre sur pypi
name='summit',
# la version du code
version=0.0,
python_requires = '>=3.5',
# 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.
author_email="baptiste.bauvin@lis-lab.fr",
# Une description courte
description="Supervised MultiModal Integration Tool",
# Une description longue, sera affichée pour présenter la lib
# Généralement on dump le README ici
long_description=open('README.rst').read(),
# 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= ,
group = 'multi-learn'
name = group +'-summit'
version = get_version()
summit_dir = 'summit'
set_version(summit_dir, version)
here = os.path.abspath(os.path.dirname(__file__))
# Or 'README.rst', depending on your format
long_description_content_type = 'text/x-rst'
with open(os.path.join(here, 'README.rst'), encoding='utf-8') as readme:
long_description = readme.read()
#url = 'https://github.com/{}/{}'.format(group, name)
#project_urls = {
# 'Documentation': 'https://{}.github.io/{}/'.format(group, name),
# 'Source': url,
# 'Tracker': '{}/issues'.format(url)}
packages = find_packages(exclude=['*.test'])
setup(version=version,
packages=packages,
long_description=long_description,
# Active la prise en compte du fichier MANIFEST.in
include_package_data=True,
# dependency_links=['https://github.com/aldro61/pyscm.git#egg=pyscm'],
# Une url qui pointe vers la page officielle de votre lib
url='http://gitlab.lis-lab.fr/baptiste.bauvin/summit/',
install_requires=requirements,
extras_require={
'dev': ['pytest', 'pytest-cov'],
'doc': ['sphinx >= 3.0.2', 'numpydoc', 'docutils', 'sphinx-autoapi',
'sphinx_rtd_theme']},
# 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".
# entry_points={
# 'console_scripts': [
# 'exec_multiview = summit.execute:exec',
# ],
# },
# 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
# ext_modules=cythonize(
# "summit/multiview_platform/monoview/additions/_custom_criterion.pyx"),
license="BSD-3-Clause",
license_files="LICENSE"
)
if __name__ == "__main__":
......
__version__ = "0.0.0.0"
from . import multiview_platform, execute
__version__ = "0.0.1"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment