Files
odoo_source/setup.py
T
Christophe Monniez bb14c41663 [REF] core: Remove psycogreen dependency
Purpose:
    The psycogreen module is unmaintained. Last source update was in
    2015 and last pypi package was in 2012. Odoo only use a small
    part of the psycogreen module that could be written directly in
    the odoo code. This commit reproduce the small function from
    psycogreen used in ODoo and remove all depencies from it.
    Also the copyright and license are honored and the documentation
    is updated accordingly.

    pypi pckage: https://pypi.python.org/pypi/psycogreen
    bitbucket repos: https://bitbucket.org/dvarrazzo/psycogreen/
2017-10-09 18:56:57 +02:00

182 lines
5.6 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import re
from glob import glob
from setuptools import find_packages, setup
from os.path import join, dirname
exec(open(join(dirname(__file__), 'odoo', 'release.py'), 'rb').read()) # Load release variables
lib_name = 'odoo'
def py2exe_datafiles():
data_files = {}
data_files['Microsoft.VC90.CRT'] = glob('C:\Microsoft.VC90.CRT\*.*')
for root, dirnames, filenames in os.walk('odoo'):
for filename in filenames:
if not re.match(r'.*(\.pyc|\.pyo|\~)$', filename):
data_files.setdefault(root, []).append(join(root, filename))
import babel
data_files['babel/localedata'] = glob(join(dirname(babel.__file__), 'localedata', '*'))
others = ['global.dat', 'numbers.py', 'support.py', 'plural.py']
data_files['babel'] = [join(dirname(babel.__file__), f) for f in others]
others = ['frontend.py', 'mofile.py']
data_files['babel/messages'] = [join(dirname(babel.__file__), 'messages', f) for f in others]
import pytz
tzdir = dirname(pytz.__file__)
for root, _, filenames in os.walk(join(tzdir, 'zoneinfo')):
base = join('pytz', root[len(tzdir) + 1:])
data_files[base] = [join(root, f) for f in filenames]
import docutils
import passlib
import reportlab
import requests
data_mapping = ((docutils, 'docutils'),
(passlib, 'passlib'),
(reportlab, 'reportlab'),
(requests, 'requests'))
for mod, datadir in data_mapping:
basedir = dirname(mod.__file__)
for root, _, filenames in os.walk(basedir):
base = join(datadir, root[len(basedir) + 1:])
data_files[base] = [join(root, f)
for f in filenames
if not f.endswith(('.py', '.pyc', '.pyo'))]
return list(data_files.items())
def py2exe_options():
if os.name == 'nt':
import py2exe
return {
'console': [
{'script': 'odoo-bin', 'icon_resources': [
(1, join('setup', 'win32', 'static', 'pixmaps', 'openerp-icon.ico'))
]},
],
'options': {
'py2exe': {
'skip_archive': 1,
'optimize': 0, # Keep the assert running as the integrated tests rely on them.
'dist_dir': 'dist',
'packages': [
'asynchat', 'asyncore',
'commands',
'dateutil',
'decimal',
'decorator',
'docutils',
'email',
'encodings',
'HTMLParser',
'imaplib',
'jinja2',
'lxml', 'lxml._elementpath', 'lxml.builder', 'lxml.etree', 'lxml.objectify',
'mako',
'markupsafe',
'mock',
'ofxparse',
'odoo',
'openid',
'passlib',
'PIL',
'poplib',
'psutil',
'pychart',
'pydot',
'pyparsing',
'PyPDF2',
'pytz',
'reportlab',
'requests',
'select',
'smtplib',
'suds',
'uuid',
'vatnumber',
'vobject',
'win32service', 'win32serviceutil',
'xlrd',
'xlsxwriter',
'xlwt',
'xml', 'xml.dom',
'yaml',
],
'excludes': ['Tkconstants', 'Tkinter', 'tcl'],
}
},
'data_files': py2exe_datafiles()
}
else:
return {}
setup(
name='odoo',
version=version,
description=description,
long_description=long_desc,
url=url,
author=author,
author_email=author_email,
classifiers=[c for c in classifiers.split('\n') if c],
license=license,
scripts=['setup/odoo'],
packages=find_packages(),
package_dir={'%s' % lib_name: 'odoo'},
include_package_data=True,
install_requires=[
'babel >= 1.0',
'decorator',
'docutils',
'feedparser',
'gevent',
'html2text',
'Jinja2',
'lxml', # windows binary http://www.lfd.uci.edu/~gohlke/pythonlibs/
'mako',
'mock',
'ofxparse',
'passlib',
'pillow', # windows binary http://www.lfd.uci.edu/~gohlke/pythonlibs/
'psutil', # windows binary code.google.com/p/psutil/downloads/list
'psycopg2 >= 2.2',
'pydot',
'pyldap', # optional
'pyparsing',
'pypdf2',
'pyserial',
'python-dateutil',
'python-openid',
'pytz',
'pyusb >= 1.0.0b1',
'pyyaml',
'qrcode',
'reportlab', # windows binary pypi.python.org/pypi/reportlab
'requests',
'suds-jurko',
'vatnumber',
'vobject',
'werkzeug',
'xlsxwriter',
'xlwt',
],
python_requires='>=3.5',
extras_require={
'SSL': ['pyopenssl'],
},
tests_require=[
'mock',
],
**py2exe_options()
)