[REF] setup: cleanup and linting of setup.py, reworked MANIFEST, added requirements.txt
This commit is contained in:
parent
d9b739e8f6
commit
735924878f
29
MANIFEST.in
29
MANIFEST.in
|
@ -1,9 +1,20 @@
|
|||
graft debian
|
||||
graft doc
|
||||
graft setup
|
||||
graft openerp
|
||||
include README.md
|
||||
include LICENSE
|
||||
include openerp-*
|
||||
include odoo*
|
||||
global-exclude *pyc *~ # Exclude possible garbage from previous graft.
|
||||
recursive-include * *.css
|
||||
recursive-include * *.csv
|
||||
recursive-include * *.gif
|
||||
recursive-include * *.html
|
||||
recursive-include * *.jpeg
|
||||
recursive-include * *.jpg
|
||||
recursive-include * *.js
|
||||
recursive-include * *.md
|
||||
recursive-include * *.png
|
||||
recursive-include * *.po
|
||||
recursive-include * *.rng
|
||||
recursive-include * *.rst
|
||||
recursive-include * *.sass
|
||||
recursive-include * *.sql
|
||||
recursive-include * *.txt
|
||||
recursive-include * *.ttf
|
||||
recursive-include * *.woff
|
||||
recursive-include * *.xml
|
||||
recursive-include * *.yml
|
||||
recursive-exclude * *.py[co]
|
|
@ -0,0 +1,41 @@
|
|||
Babel==1.3
|
||||
Jinja2==2.7.3
|
||||
Mako==1.0.0
|
||||
MarkupSafe==0.23
|
||||
Pillow==2.5.1
|
||||
http://download.gna.org/pychart/PyChart-1.39.tar.gz
|
||||
PyYAML==3.11
|
||||
Werkzeug==0.9.6
|
||||
argparse==1.2.1
|
||||
decorator==3.4.0
|
||||
docutils==0.12
|
||||
feedparser==5.1.3
|
||||
gdata==2.0.18
|
||||
gevent==1.0.1
|
||||
greenlet==0.4.2
|
||||
lxml==3.3.5
|
||||
mock==1.0.1
|
||||
passlib==1.6.2
|
||||
psutil==2.1.1
|
||||
psycogreen==1.0
|
||||
psycopg2==2.5.3
|
||||
pyPdf==1.13
|
||||
pydot==1.0.2
|
||||
pyparsing==1.5.7
|
||||
pyserial==2.7
|
||||
python-dateutil==1.5
|
||||
python-ldap==2.4.15
|
||||
python-openid==2.2.5
|
||||
python-stdnum==0.9
|
||||
pytz==2014.4
|
||||
pyusb==1.0.0b1
|
||||
qrcode==5.0.1
|
||||
reportlab==3.1.8
|
||||
requests==2.3.0
|
||||
simplejson==3.5.3
|
||||
six==1.7.3
|
||||
unittest2==0.5.1
|
||||
vatnumber==1.2
|
||||
vobject==0.6.6
|
||||
wsgiref==0.1.2
|
||||
xlwt==0.7.5
|
319
setup.py
319
setup.py
|
@ -1,200 +1,169 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# 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 Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import glob, os, re, setuptools, sys
|
||||
from os.path import join
|
||||
import os
|
||||
import re
|
||||
from glob import glob
|
||||
from setuptools import find_packages, setup
|
||||
from os.path import join, dirname
|
||||
|
||||
|
||||
execfile(join(dirname(__file__), 'openerp', 'release.py')) # Load release variables
|
||||
lib_name = 'openerp'
|
||||
|
||||
|
||||
def py2exe_datafiles():
|
||||
data_files = {}
|
||||
data_files['Microsoft.VC90.CRT'] = glob('C:\Microsoft.VC90.CRT\*.*')
|
||||
|
||||
# List all data files
|
||||
def data():
|
||||
r = {}
|
||||
for root, dirnames, filenames in os.walk('openerp'):
|
||||
for filename in filenames:
|
||||
if not re.match(r'.*(\.pyc|\.pyo|\~)$', filename):
|
||||
r.setdefault(root, []).append(os.path.join(root, filename))
|
||||
data_files.setdefault(root, []).append(join(root, filename))
|
||||
|
||||
if os.name == 'nt':
|
||||
r["Microsoft.VC90.CRT"] = glob.glob('C:\Microsoft.VC90.CRT\*.*')
|
||||
import babel
|
||||
data_files['babel/localedata'] = glob(join(dirname(babel.__file__), 'localedata', '*'))
|
||||
others = ['global.dat', 'numbers.py', 'support.py', 'plural.py']
|
||||
data_files['babel'] = map(lambda f: join(dirname(babel.__file__), f), others)
|
||||
others = ['frontend.py', 'mofile.py']
|
||||
data_files['babel/messages'] = map(lambda f: join(dirname(babel.__file__), 'messages', f), others)
|
||||
|
||||
import babel
|
||||
# Add data, but also some .py files py2exe won't include automatically.
|
||||
# TODO This should probably go under `packages`, instead of `data`,
|
||||
# but this will work fine (especially since we don't use the ZIP file
|
||||
# approach).
|
||||
r["babel/localedata"] = glob.glob(os.path.join(os.path.dirname(babel.__file__), "localedata", '*'))
|
||||
others = ['global.dat', 'numbers.py', 'support.py', 'plural.py']
|
||||
r["babel"] = map(lambda f: os.path.join(os.path.dirname(babel.__file__), f), others)
|
||||
others = ['frontend.py', 'mofile.py']
|
||||
r["babel/messages"] = map(lambda f: os.path.join(os.path.dirname(babel.__file__), "messages", f), 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 pytz
|
||||
tzdir = os.path.dirname(pytz.__file__)
|
||||
for root, _, filenames in os.walk(os.path.join(tzdir, "zoneinfo")):
|
||||
base = os.path.join('pytz', root[len(tzdir) + 1:])
|
||||
r[base] = [os.path.join(root, f) for f in filenames]
|
||||
import docutils
|
||||
dudir = dirname(docutils.__file__)
|
||||
for root, _, filenames in os.walk(dudir):
|
||||
base = join('docutils', root[len(dudir) + 1:])
|
||||
data_files[base] = [join(root, f) for f in filenames if not f.endswith(('.py', '.pyc', '.pyo'))]
|
||||
|
||||
import docutils
|
||||
dudir = os.path.dirname(docutils.__file__)
|
||||
for root, _, filenames in os.walk(dudir):
|
||||
base = os.path.join('docutils', root[len(dudir) + 1:])
|
||||
r[base] = [os.path.join(root, f) for f in filenames if not f.endswith(('.py', '.pyc', '.pyo'))]
|
||||
return data_files.items()
|
||||
|
||||
return r.items()
|
||||
|
||||
def gen_manifest():
|
||||
file_list="\n".join(data())
|
||||
open('MANIFEST','w').write(file_list)
|
||||
|
||||
if os.name == 'nt':
|
||||
sys.path.append("C:\Microsoft.VC90.CRT")
|
||||
|
||||
def py2exe_options():
|
||||
if os.name == 'nt':
|
||||
import py2exe
|
||||
return {
|
||||
"console" : [ { "script": "openerp-server", "icon_resources": [(1, join("install","openerp-icon.ico"))], },
|
||||
{ "script": "openerp-gevent" },
|
||||
{ "script": "odoo.py" },
|
||||
'console': [
|
||||
{'script': 'odoo.py'},
|
||||
{'script': 'openerp-gevent'},
|
||||
{'script': 'openerp-server', 'icon_resources': [
|
||||
(1, join('setup', 'win32', 'static', 'pixmaps', 'openerp-icon.ico'))
|
||||
]},
|
||||
],
|
||||
'options' : {
|
||||
"py2exe": {
|
||||
"skip_archive": 1,
|
||||
"optimize": 0, # keep the assert running, because the integrated tests rely on them.
|
||||
"dist_dir": 'dist',
|
||||
"packages": [
|
||||
"HTMLParser",
|
||||
"PIL",
|
||||
"asynchat", "asyncore",
|
||||
"commands",
|
||||
"dateutil",
|
||||
"decimal",
|
||||
"decorator",
|
||||
"docutils",
|
||||
"email",
|
||||
"encodings",
|
||||
"imaplib",
|
||||
"jinja2",
|
||||
"lxml", "lxml._elementpath", "lxml.builder", "lxml.etree", "lxml.objectify",
|
||||
"mako",
|
||||
"markupsafe", # dependence of jinja2 and mako
|
||||
"mock",
|
||||
"openerp",
|
||||
"passlib",
|
||||
"poplib",
|
||||
"psutil",
|
||||
"pychart",
|
||||
"pydot",
|
||||
"pyparsing",
|
||||
"pytz",
|
||||
"reportlab",
|
||||
"requests",
|
||||
"select",
|
||||
"simplejson",
|
||||
"smtplib",
|
||||
"uuid",
|
||||
"vatnumber",
|
||||
"vobject",
|
||||
"win32service", "win32serviceutil",
|
||||
"xlwt",
|
||||
"xml", "xml.dom",
|
||||
"yaml",
|
||||
'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',
|
||||
'openerp',
|
||||
'openid',
|
||||
'PIL',
|
||||
'poplib',
|
||||
'psutil',
|
||||
'pychart',
|
||||
'pydot',
|
||||
'pyparsing',
|
||||
'pyPdf',
|
||||
'pytz',
|
||||
'reportlab',
|
||||
'requests',
|
||||
'select',
|
||||
'simplejson',
|
||||
'smtplib',
|
||||
'uuid',
|
||||
'vatnumber',
|
||||
'vobject',
|
||||
'win32service', 'win32serviceutil',
|
||||
'xlwt',
|
||||
'xml', 'xml.dom',
|
||||
'yaml',
|
||||
],
|
||||
"excludes" : ["Tkconstants","Tkinter","tcl"],
|
||||
'excludes': ['Tkconstants', 'Tkinter', 'tcl'],
|
||||
}
|
||||
}
|
||||
},
|
||||
'data_files': py2exe_datafiles()
|
||||
}
|
||||
else:
|
||||
return {}
|
||||
|
||||
execfile(join(os.path.dirname(__file__), 'openerp', 'release.py'))
|
||||
|
||||
# Notes for OpenERP developer on windows:
|
||||
#
|
||||
# To setup a windows developer evironement install python2.7 then pip and use
|
||||
# "pip install <depencey>" for every dependency listed below.
|
||||
#
|
||||
# Dependecies that requires DLLs are not installable with pip install, for
|
||||
# them we added comments with links where you can find the installers.
|
||||
#
|
||||
# OpenERP on windows also require the pywin32, the binary can be found at
|
||||
# http://pywin32.sf.net
|
||||
#
|
||||
# Both python2.7 32bits and 64bits are known to work.
|
||||
|
||||
setuptools.setup(
|
||||
name = 'openerp',
|
||||
version = version,
|
||||
description = description,
|
||||
long_description = long_desc,
|
||||
url = url,
|
||||
author = author,
|
||||
author_email = author_email,
|
||||
classifiers = filter(None, classifiers.split("\n")),
|
||||
license = license,
|
||||
scripts = ['openerp-server', 'openerp-gevent', 'odoo.py'],
|
||||
data_files = data(),
|
||||
packages = setuptools.find_packages(),
|
||||
dependency_links = ['http://download.gna.org/pychart/'],
|
||||
#include_package_data = True,
|
||||
install_requires = [
|
||||
'pychart', # not on pypi, use: pip install http://download.gna.org/pychart/PyChart-1.39.tar.gz
|
||||
'babel >= 1.0',
|
||||
'decorator',
|
||||
'docutils',
|
||||
'feedparser',
|
||||
'gdata',
|
||||
'gevent',
|
||||
'psycogreen',
|
||||
'Jinja2',
|
||||
'lxml', # windows binary http://www.lfd.uci.edu/~gohlke/pythonlibs/
|
||||
'mako',
|
||||
'mock',
|
||||
'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',
|
||||
'pyparsing < 2',
|
||||
'pyserial',
|
||||
'python-dateutil < 2',
|
||||
'python-ldap', # optional
|
||||
'python-openid',
|
||||
'pytz',
|
||||
'pyusb >= 1.0.0b1',
|
||||
'pyyaml',
|
||||
'qrcode',
|
||||
'reportlab', # windows binary pypi.python.org/pypi/reportlab
|
||||
'requests',
|
||||
'simplejson',
|
||||
'unittest2',
|
||||
'vatnumber',
|
||||
'vobject',
|
||||
'werkzeug',
|
||||
'xlwt',
|
||||
],
|
||||
extras_require = {
|
||||
'SSL' : ['pyopenssl'],
|
||||
},
|
||||
tests_require = ['unittest2', 'mock'],
|
||||
**py2exe_options()
|
||||
setup(
|
||||
name='openerp',
|
||||
version=version,
|
||||
description=description,
|
||||
long_description=long_desc,
|
||||
url=url,
|
||||
author=author,
|
||||
author_email=author_email,
|
||||
classifiers=filter(None, classifiers.split('\n')),
|
||||
license=license,
|
||||
scripts=['openerp-server', 'openerp-gevent', 'odoo.py'],
|
||||
packages=find_packages(),
|
||||
package_dir={'%s' % lib_name: 'openerp'},
|
||||
include_package_data=True,
|
||||
dependency_links=['http://download.gna.org/pychart/'],
|
||||
install_requires=[
|
||||
'babel >= 1.0',
|
||||
'decorator',
|
||||
'docutils',
|
||||
'feedparser',
|
||||
'gevent',
|
||||
'Jinja2',
|
||||
'lxml', # windows binary http://www.lfd.uci.edu/~gohlke/pythonlibs/
|
||||
'mako',
|
||||
'mock',
|
||||
'passlib',
|
||||
'pillow', # windows binary http://www.lfd.uci.edu/~gohlke/pythonlibs/
|
||||
'psutil', # windows binary code.google.com/p/psutil/downloads/list
|
||||
'psycogreen',
|
||||
'psycopg2 >= 2.2',
|
||||
'pychart', # not on pypi, use: pip install http://download.gna.org/pychart/PyChart-1.39.tar.gz
|
||||
'pydot',
|
||||
'pyparsing < 2',
|
||||
'pypdf',
|
||||
'pyserial',
|
||||
'python-dateutil',
|
||||
'python-ldap', # optional
|
||||
'python-openid',
|
||||
'pytz',
|
||||
'pyusb >= 1.0.0b1',
|
||||
'pyyaml',
|
||||
'qrcode',
|
||||
'reportlab', # windows binary pypi.python.org/pypi/reportlab
|
||||
'requests',
|
||||
'simplejson',
|
||||
'unittest2',
|
||||
'vatnumber',
|
||||
'vobject',
|
||||
'werkzeug',
|
||||
'xlwt',
|
||||
],
|
||||
extras_require={
|
||||
'SSL': ['pyopenssl'],
|
||||
},
|
||||
tests_require=[
|
||||
'unittest2',
|
||||
'mock',
|
||||
],
|
||||
**py2exe_options()
|
||||
)
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
Loading…
Reference in New Issue