author | Sylvain Thénault <sylvain.thenault@logilab.fr> |
Thu, 19 Jan 2017 11:12:35 +0100 | |
branch | 3.24 |
changeset 11907 | 3be141d6c82c |
parent 11882 | ccf61228a802 |
child 11929 | fcbd6b251d81 |
child 12075 | 10d3bf220be2 |
permissions | -rw-r--r-- |
0 | 1 |
#!/usr/bin/env python |
6491
ee9a10b6620e
pylint option update
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6327
diff
changeset
|
2 |
# pylint: disable=W0142,W0403,W0404,W0613,W0622,W0622,W0704,R0904,C0103,E0611 |
0 | 3 |
# |
7879
9aae456abab5
[pylint] fix pylint detected errors and tweak it so that pylint -E will be much less verbose next time (+ update some copyrights on the way)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6836
diff
changeset
|
4 |
# copyright 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
5421
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
5 |
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
6 |
# |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
7 |
# This file is part of CubicWeb. |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
8 |
# |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
9 |
# CubicWeb is free software: you can redistribute it and/or modify it under the |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
10 |
# terms of the GNU Lesser General Public License as published by the Free |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
11 |
# Software Foundation, either version 2.1 of the License, or (at your option) |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
12 |
# any later version. |
0 | 13 |
# |
5424
8ecbcbff9777
replace logilab-common by CubicWeb in disclaimer
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
5421
diff
changeset
|
14 |
# CubicWeb is distributed in the hope that it will be useful, but WITHOUT |
0 | 15 |
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
5421
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
16 |
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
17 |
# details. |
0 | 18 |
# |
5421
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
19 |
# You should have received a copy of the GNU Lesser General Public License along |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
20 |
# with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
21 |
"""Generic Setup script, takes package info from __pkginfo__.py file |
8167de96c523
proper licensing information (LGPL-2.1). Hope I get it right this time.
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
4721
diff
changeset
|
22 |
""" |
0 | 23 |
|
11276
6eeb7abda47a
[pkg] Use io.open with utf-8 encoding to read long description from README
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11057
diff
changeset
|
24 |
import io |
0 | 25 |
import os |
26 |
import sys |
|
27 |
import shutil |
|
11057
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
28 |
from os.path import dirname, exists, isdir, join |
0 | 29 |
|
11424
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
30 |
from setuptools import setup |
11737
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
31 |
from setuptools.command import develop, install_lib |
6508
38c2ff52cfca
[pkg] fix install_data import not present in setuptools
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
6506
diff
changeset
|
32 |
from distutils.command import install_data |
5024
9e718abe3fde
add egg support with dependencies auto-installation
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
4721
diff
changeset
|
33 |
|
11057
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
34 |
here = dirname(__file__) |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
35 |
|
0 | 36 |
# import required features |
11057
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
37 |
pkginfo = join(here, 'cubicweb', '__pkginfo__.py') |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
38 |
__pkginfo__ = {} |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
39 |
with open(pkginfo) as f: |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
40 |
exec(f.read(), __pkginfo__) |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
41 |
modname = __pkginfo__['modname'] |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
42 |
version = __pkginfo__['version'] |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
43 |
license = __pkginfo__['license'] |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
44 |
description = __pkginfo__['description'] |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
45 |
web = __pkginfo__['web'] |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
46 |
author = __pkginfo__['author'] |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
47 |
author_email = __pkginfo__['author_email'] |
5024
9e718abe3fde
add egg support with dependencies auto-installation
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
4721
diff
changeset
|
48 |
|
11276
6eeb7abda47a
[pkg] Use io.open with utf-8 encoding to read long description from README
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11057
diff
changeset
|
49 |
with io.open('README', encoding='utf-8') as f: |
6eeb7abda47a
[pkg] Use io.open with utf-8 encoding to read long description from README
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11057
diff
changeset
|
50 |
long_description = f.read() |
5024
9e718abe3fde
add egg support with dependencies auto-installation
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
4721
diff
changeset
|
51 |
|
0 | 52 |
# import optional features |
11449
ea5299828d68
[pkg] Make it clearer which entries of __pkginfo__ are actually used
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11426
diff
changeset
|
53 |
distname = __pkginfo__['distname'] |
ea5299828d68
[pkg] Make it clearer which entries of __pkginfo__ are actually used
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11426
diff
changeset
|
54 |
scripts = __pkginfo__['scripts'] |
ea5299828d68
[pkg] Make it clearer which entries of __pkginfo__ are actually used
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11426
diff
changeset
|
55 |
include_dirs = __pkginfo__['include_dirs'] |
ea5299828d68
[pkg] Make it clearer which entries of __pkginfo__ are actually used
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11426
diff
changeset
|
56 |
data_files = __pkginfo__['data_files'] |
ea5299828d68
[pkg] Make it clearer which entries of __pkginfo__ are actually used
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11426
diff
changeset
|
57 |
package_data = __pkginfo__['package_data'] |
0 | 58 |
|
9276
ae3fd6f8da76
[packaging] setup.py: don't exclude skeleton/debian/* from being installed
Julien Cristau <julien.cristau@logilab.fr>
parents:
8695
diff
changeset
|
59 |
BASE_BLACKLIST = ('CVS', 'dist', 'build', '__buildlog') |
0 | 60 |
IGNORED_EXTENSIONS = ('.pyc', '.pyo', '.elc') |
1802
d628defebc17
delete-trailing-whitespace + some copyright update
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
0
diff
changeset
|
61 |
|
0 | 62 |
|
63 |
def ensure_scripts(linux_scripts): |
|
64 |
""" |
|
65 |
Creates the proper script names required for each platform |
|
66 |
(taken from 4Suite) |
|
67 |
""" |
|
68 |
from distutils import util |
|
69 |
if util.get_platform()[:3] == 'win': |
|
70 |
scripts_ = [script + '.bat' for script in linux_scripts] |
|
71 |
else: |
|
72 |
scripts_ = linux_scripts |
|
73 |
return scripts_ |
|
74 |
||
75 |
||
76 |
def get_packages(directory, prefix): |
|
77 |
"""return a list of subpackages for the given directory |
|
78 |
""" |
|
79 |
result = [] |
|
80 |
for package in os.listdir(directory): |
|
81 |
absfile = join(directory, package) |
|
82 |
if isdir(absfile): |
|
83 |
if exists(join(absfile, '__init__.py')) or \ |
|
84 |
package in ('test', 'tests'): |
|
85 |
if prefix: |
|
86 |
result.append('%s.%s' % (prefix, package)) |
|
87 |
else: |
|
88 |
result.append(package) |
|
89 |
result += get_packages(absfile, result[-1]) |
|
90 |
return result |
|
91 |
||
92 |
def export(from_dir, to_dir, |
|
93 |
blacklist=BASE_BLACKLIST, |
|
5024
9e718abe3fde
add egg support with dependencies auto-installation
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
4721
diff
changeset
|
94 |
ignore_ext=IGNORED_EXTENSIONS, |
9e718abe3fde
add egg support with dependencies auto-installation
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
4721
diff
changeset
|
95 |
verbose=True): |
0 | 96 |
try: |
97 |
os.mkdir(to_dir) |
|
8695
358d8bed9626
[toward-py3k] rewrite to "except AnException as exc:" (part of #2711624)
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
7896
diff
changeset
|
98 |
except OSError as ex: |
0 | 99 |
# file exists ? |
100 |
import errno |
|
101 |
if ex.errno != errno.EEXIST: |
|
102 |
raise |
|
11421
06bcb7e7a69c
[pkg] Handle verbose option in setup.py's export function
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11420
diff
changeset
|
103 |
else: |
06bcb7e7a69c
[pkg] Handle verbose option in setup.py's export function
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11420
diff
changeset
|
104 |
if verbose: |
06bcb7e7a69c
[pkg] Handle verbose option in setup.py's export function
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11420
diff
changeset
|
105 |
print('created %s directory' % to_dir) |
11057
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
106 |
for dirpath, dirnames, filenames in os.walk(from_dir): |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
107 |
for norecurs in blacklist: |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
108 |
try: |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
109 |
dirnames.remove(norecurs) |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
110 |
except ValueError: |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
111 |
pass |
11421
06bcb7e7a69c
[pkg] Handle verbose option in setup.py's export function
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11420
diff
changeset
|
112 |
else: |
06bcb7e7a69c
[pkg] Handle verbose option in setup.py's export function
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11420
diff
changeset
|
113 |
if verbose: |
06bcb7e7a69c
[pkg] Handle verbose option in setup.py's export function
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11420
diff
changeset
|
114 |
print('not recursing in %s' % join(dirpath, norecurs)) |
11057
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
115 |
for dirname in dirnames: |
11422
63ac20ef558e
[pkg] Properly export data files in setup.py and adjust "newcube" test
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11421
diff
changeset
|
116 |
src = join(dirpath, dirname) |
63ac20ef558e
[pkg] Properly export data files in setup.py and adjust "newcube" test
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11421
diff
changeset
|
117 |
dest = to_dir + src[len(from_dir):] |
11057
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
118 |
if not exists(dest): |
11421
06bcb7e7a69c
[pkg] Handle verbose option in setup.py's export function
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11420
diff
changeset
|
119 |
if verbose: |
06bcb7e7a69c
[pkg] Handle verbose option in setup.py's export function
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11420
diff
changeset
|
120 |
print('creating %s directory' % dest) |
11057
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
121 |
os.mkdir(dest) |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
122 |
for filename in filenames: |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
123 |
# don't include binary files |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
124 |
src = join(dirpath, filename) |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
125 |
dest = to_dir + src[len(from_dir):] |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
126 |
if filename[-4:] in ignore_ext: |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
127 |
continue |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
128 |
if filename[-1] == '~': |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
129 |
continue |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
130 |
if exists(dest): |
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
131 |
os.remove(dest) |
11421
06bcb7e7a69c
[pkg] Handle verbose option in setup.py's export function
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11420
diff
changeset
|
132 |
if verbose: |
06bcb7e7a69c
[pkg] Handle verbose option in setup.py's export function
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11420
diff
changeset
|
133 |
print('copying %s to %s' % (src, dest)) |
11057
0b59724cb3f2
Reorganize source tree to have a "cubicweb" top-level package
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
10662
diff
changeset
|
134 |
shutil.copy2(src, dest) |
0 | 135 |
|
136 |
||
137 |
class MyInstallLib(install_lib.install_lib): |
|
138 |
"""extend install_lib command to handle package __init__.py and |
|
139 |
include_dirs variable if necessary |
|
140 |
""" |
|
141 |
def run(self): |
|
142 |
"""overridden from install_lib class""" |
|
143 |
install_lib.install_lib.run(self) |
|
144 |
# create Products.__init__.py if needed |
|
145 |
# manually install included directories if any |
|
146 |
if include_dirs: |
|
147 |
for directory in include_dirs: |
|
11422
63ac20ef558e
[pkg] Properly export data files in setup.py and adjust "newcube" test
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11421
diff
changeset
|
148 |
src = join(modname, directory) |
63ac20ef558e
[pkg] Properly export data files in setup.py and adjust "newcube" test
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11421
diff
changeset
|
149 |
dest = join(self.install_dir, src) |
63ac20ef558e
[pkg] Properly export data files in setup.py and adjust "newcube" test
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11421
diff
changeset
|
150 |
export(src, dest, verbose=self.verbose) |
1802
d628defebc17
delete-trailing-whitespace + some copyright update
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
0
diff
changeset
|
151 |
|
6517
c991ad161d8f
[pkg] force copying data files in sys.path
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
6516
diff
changeset
|
152 |
# write required share/cubicweb/cubes/__init__.py |
6506
c1661ea815dc
[packaging] add a __init__.py to cubes directory when installing data
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
6327
diff
changeset
|
153 |
class MyInstallData(install_data.install_data): |
6517
c991ad161d8f
[pkg] force copying data files in sys.path
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
6516
diff
changeset
|
154 |
"""A class That manages data files installation""" |
6506
c1661ea815dc
[packaging] add a __init__.py to cubes directory when installing data
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
6327
diff
changeset
|
155 |
def run(self): |
c1661ea815dc
[packaging] add a __init__.py to cubes directory when installing data
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
6327
diff
changeset
|
156 |
"""overridden from install_data class""" |
c1661ea815dc
[packaging] add a __init__.py to cubes directory when installing data
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
6327
diff
changeset
|
157 |
install_data.install_data.run(self) |
c1661ea815dc
[packaging] add a __init__.py to cubes directory when installing data
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
6327
diff
changeset
|
158 |
path = join(self.install_dir, 'share', 'cubicweb', 'cubes', '__init__.py') |
c1661ea815dc
[packaging] add a __init__.py to cubes directory when installing data
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
6327
diff
changeset
|
159 |
ini = open(path, 'w') |
c1661ea815dc
[packaging] add a __init__.py to cubes directory when installing data
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
6327
diff
changeset
|
160 |
ini.write('# Cubicweb cubes directory\n') |
c1661ea815dc
[packaging] add a __init__.py to cubes directory when installing data
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
6327
diff
changeset
|
161 |
ini.close() |
c1661ea815dc
[packaging] add a __init__.py to cubes directory when installing data
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
6327
diff
changeset
|
162 |
|
11737
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
163 |
|
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
164 |
class CWDevelop(develop.develop): |
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
165 |
"""Custom "develop" command warning about (legacy) cubes directory not |
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
166 |
installed. |
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
167 |
""" |
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
168 |
|
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
169 |
def run(self): |
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
170 |
cubespath = join(sys.prefix, 'share', 'cubicweb', 'cubes') |
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
171 |
self.warn('develop command does not install (legacy) cubes directory (%s)' |
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
172 |
% cubespath) |
11752
8c45f52b76e4
[setup] fix CWDevelop to keep compat with python 2.7
David Douard <david.douard@logilab.fr>
parents:
11737
diff
changeset
|
173 |
return develop.develop.run(self) |
11737
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
174 |
|
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
175 |
|
6517
c991ad161d8f
[pkg] force copying data files in sys.path
Alain Leufroy <alain.leufroy@logilab.fr>
parents:
6516
diff
changeset
|
176 |
# re-enable copying data files in sys.prefix |
11424
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
177 |
# overwrite MyInstallData to use sys.prefix instead of the egg directory |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
178 |
MyInstallMoreData = MyInstallData |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
179 |
class MyInstallData(MyInstallMoreData): # pylint: disable=E0102 |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
180 |
"""A class that manages data files installation""" |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
181 |
def run(self): |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
182 |
_old_install_dir = self.install_dir |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
183 |
if self.install_dir.endswith('egg'): |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
184 |
self.install_dir = sys.prefix |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
185 |
MyInstallMoreData.run(self) |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
186 |
self.install_dir = _old_install_dir |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
187 |
try: |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
188 |
import setuptools.command.easy_install # only if easy_install available |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
189 |
# monkey patch: Crack SandboxViolation verification |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
190 |
from setuptools.sandbox import DirectorySandbox as DS |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
191 |
old_ok = DS._ok |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
192 |
def _ok(self, path): |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
193 |
"""Return True if ``path`` can be written during installation.""" |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
194 |
out = old_ok(self, path) # here for side effect from setuptools |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
195 |
realpath = os.path.normcase(os.path.realpath(path)) |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
196 |
allowed_path = os.path.normcase(sys.prefix) |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
197 |
if realpath.startswith(allowed_path): |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
198 |
out = True |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
199 |
return out |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
200 |
DS._ok = _ok |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
201 |
except ImportError: |
1451f040555f
[pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11282
diff
changeset
|
202 |
pass |
6506
c1661ea815dc
[packaging] add a __init__.py to cubes directory when installing data
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
6327
diff
changeset
|
203 |
|
1802
d628defebc17
delete-trailing-whitespace + some copyright update
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
0
diff
changeset
|
204 |
|
11467
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
205 |
setup( |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
206 |
name=distname, |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
207 |
version=version, |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
208 |
license=license, |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
209 |
url=web, |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
210 |
description=description, |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
211 |
long_description=long_description, |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
212 |
author=author, |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
213 |
author_email=author_email, |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
214 |
packages=[modname] + get_packages(join(here, modname), modname), |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
215 |
package_data=package_data, |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
216 |
scripts=ensure_scripts(scripts), |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
217 |
data_files=data_files, |
11685
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
218 |
install_requires=[ |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
219 |
'six >= 1.4.0', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
220 |
'logilab-common >= 1.2.2', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
221 |
'logilab-mtconverter >= 0.8.0', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
222 |
'rql >= 0.34.0', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
223 |
'yams >= 0.44.0', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
224 |
'lxml', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
225 |
'logilab-database >= 1.15.0', |
11882
ccf61228a802
[pkg] Set an upper bound to passlib
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11805
diff
changeset
|
226 |
'passlib < 2.0', |
11685
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
227 |
'pytz', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
228 |
'Markdown', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
229 |
'unittest2 >= 0.7.0', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
230 |
], |
11805
7436b65a44bc
[pkg] Fix extra packages not installable
Florent Cayré <florent.cayre@gmail.com>
parents:
11752
diff
changeset
|
231 |
extras_require={ |
11685
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
232 |
'captcha': [ |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
233 |
'Pillow', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
234 |
], |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
235 |
'crypto': [ |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
236 |
'pycrypto', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
237 |
], |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
238 |
'etwist': [ |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
239 |
'Twisted < 16.0.0', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
240 |
], |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
241 |
'ext': [ |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
242 |
'docutils >= 0.6', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
243 |
], |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
244 |
'ical': [ |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
245 |
'vobject >= 0.6.0', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
246 |
], |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
247 |
'pyramid': [ |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
248 |
'pyramid >= 1.5.0', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
249 |
'waitress >= 0.8.9', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
250 |
'wsgicors >= 0.3', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
251 |
'pyramid_multiauth', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
252 |
], |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
253 |
'rdf': [ |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
254 |
'rdflib', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
255 |
], |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
256 |
'sparql': [ |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
257 |
'fyzz >= 0.1.0', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
258 |
], |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
259 |
'zmq': [ |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
260 |
'pyzmq', |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
261 |
], |
6c263b8091d3
[pkg] Declare extras (optional) dependencies
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11467
diff
changeset
|
262 |
}, |
11737
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
263 |
cmdclass={ |
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
264 |
'install_lib': MyInstallLib, |
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
265 |
'install_data': MyInstallData, |
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
266 |
'develop': CWDevelop, |
47e516587460
[pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11685
diff
changeset
|
267 |
}, |
11467
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
268 |
zip_safe=False, |
629d9e35ce28
[pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
11466
diff
changeset
|
269 |
) |