Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
blog
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
cubicweb
cubes
blog
Commits
42f52b055a68
Commit
42f52b055a68
authored
14 years ago
by
Alain Leufroy
Browse files
Options
Downloads
Patches
Plain Diff
[pkg] update package info/setup for easy_install
parent
ae94b5caf5c2
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
MANIFEST.in
+1
-1
1 addition, 1 deletion
MANIFEST.in
README
+32
-0
32 additions, 0 deletions
README
setup.py
+79
-45
79 additions, 45 deletions
setup.py
with
112 additions
and
46 deletions
MANIFEST.in
+
1
−
1
View file @
42f52b05
include *.py
include */*.py
recursive-include data *.gif *.jpg *.css
recursive-include data *.gif *.jpg *.css
external_resources
recursive-include i18n *.po
This diff is collapsed.
Click to expand it.
README
+
32
−
0
View file @
42f52b05
...
...
@@ -4,6 +4,32 @@
`Blog` and `BlogEntry`. There are related to each other by the relation
`BlogEntry entry_of Blog`.
It is a CubicWeb component. CubicWeb is a semantic web application
framework, see http://www.cubicweb.org
Install
-------
Auto-install from sources prefered with *pip/Distribute*::
pip install cubicweb-blog
If you have troubles, use *easy_install/setuptools* and eggs::
easy_install cubicweb-blog
You can install the package manually from the uncompressed
`tarball <http://www.cubicweb.org/project/cubicweb-blog>`_::
python setup.py install # auto-install dependencies
If you don't want the dependancies to be installed automaticly, you
can force the setup to use the standard library *distutils*::
NO_SETUPTOOLS=1 python setup.py install
More details at http://www.cubicweb.org/doc/en/admin/setup
Usage
-----
...
...
@@ -40,3 +66,9 @@
- http://xx:xxxx/blog/[eid]/blogentries/YYYY/MM to retrieve the blog entries
submitted in the blog of identifier [eid], during the month MM of the
year YYYY through a RSS feed
Documentation
-------------
Look in the ``doc/`` subdirectory or read
http://www.cubicweb.org/doc/en/
This diff is collapsed.
Click to expand it.
setup.py
+
79
−
45
View file @
42f52b05
#!/usr/bin/env python
# pylint: disable=W0404,W0622,W0704,W0613
# pylint: disable=W0142,W0403,W0404,W0613,W0622,W0622,W0704,R0904,C0103,E0611
#
# copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
...
...
@@ -3,6 +4,22 @@
# copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
#
# This file is part of CubicWeb tag cube.
#
# CubicWeb is free software: you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 2.1 of the License, or (at your option)
# any later version.
#
# CubicWeb 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 Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License along
# with CubicWeb. If not, see <http://www.gnu.org/licenses/>.
"""
Generic Setup script, takes package info from __pkginfo__.py file
"""
__docformat__
=
"
restructuredtext en
"
import
os
...
...
@@ -12,6 +29,6 @@
try
:
if
os
.
environ
.
get
(
'
NO_SETUPTOOLS
'
):
raise
ImportError
()
raise
ImportError
()
# do as there is no setuptools
from
setuptools
import
setup
from
setuptools.command
import
install_lib
...
...
@@ -16,6 +33,6 @@
from
setuptools
import
setup
from
setuptools.command
import
install_lib
USE_SETUPTOOLS
=
1
USE_SETUPTOOLS
=
True
except
ImportError
:
from
distutils.core
import
setup
from
distutils.command
import
install_lib
...
...
@@ -19,5 +36,6 @@
except
ImportError
:
from
distutils.core
import
setup
from
distutils.command
import
install_lib
USE_SETUPTOOLS
=
0
USE_SETUPTOOLS
=
False
from
distutils.command
import
install_data
...
...
@@ -23,4 +41,2 @@
sys
.
modules
.
pop
(
'
__pkginfo__
'
,
None
)
# import required features
...
...
@@ -26,20 +42,8 @@
# import required features
from
__pkginfo__
import
modname
,
version
,
license
,
description
,
\
web
,
author
,
author_email
# import optional features
import
__pkginfo__
distname
=
getattr
(
__pkginfo__
,
'
distname
'
,
modname
)
scripts
=
getattr
(
__pkginfo__
,
'
scripts
'
,
[])
data_files
=
getattr
(
__pkginfo__
,
'
data_files
'
,
None
)
include_dirs
=
getattr
(
__pkginfo__
,
'
include_dirs
'
,
[])
ext_modules
=
getattr
(
__pkginfo__
,
'
ext_modules
'
,
None
)
dependency_links
=
getattr
(
__pkginfo__
,
'
dependency_links
'
,
[])
STD_BLACKLIST
=
(
'
CVS
'
,
'
.svn
'
,
'
.hg
'
,
'
debian
'
,
'
dist
'
,
'
build
'
)
IGNORED_EXTENSIONS
=
(
'
.pyc
'
,
'
.pyo
'
,
'
.elc
'
,
'
~
'
)
from
__pkginfo__
import
modname
,
version
,
license
,
description
,
web
,
\
author
,
author_email
if
exists
(
'
README
'
):
long_description
=
file
(
'
README
'
).
read
()
else
:
long_description
=
''
...
...
@@ -41,6 +45,9 @@
if
exists
(
'
README
'
):
long_description
=
file
(
'
README
'
).
read
()
else
:
long_description
=
''
# import optional features
import
__pkginfo__
if
USE_SETUPTOOLS
:
...
...
@@ -46,7 +53,7 @@
if
USE_SETUPTOOLS
:
requires
=
{}
for
entry
in
(
"
__depends__
"
,
"
__recommends__
"
):
requires
.
update
(
getattr
(
__pkginfo__
,
entry
,
{}))
install_requires
=
[(
"
%s %s
"
%
(
d
,
v
and
v
or
""
)).
strip
()
requires
=
{}
for
entry
in
(
"
__depends__
"
,
):
#
"__recommends__"):
requires
.
update
(
getattr
(
__pkginfo__
,
entry
,
{}))
install_requires
=
[(
"
%s %s
"
%
(
d
,
v
and
v
or
""
)).
strip
()
for
d
,
v
in
requires
.
iteritems
()]
else
:
...
...
@@ -51,6 +58,16 @@
for
d
,
v
in
requires
.
iteritems
()]
else
:
install_requires
=
[]
install_requires
=
[]
distname
=
getattr
(
__pkginfo__
,
'
distname
'
,
modname
)
scripts
=
getattr
(
__pkginfo__
,
'
scripts
'
,
())
include_dirs
=
getattr
(
__pkginfo__
,
'
include_dirs
'
,
())
data_files
=
getattr
(
__pkginfo__
,
'
data_files
'
,
None
)
ext_modules
=
getattr
(
__pkginfo__
,
'
ext_modules
'
,
None
)
dependency_links
=
getattr
(
__pkginfo__
,
'
dependency_links
'
,
())
BASE_BLACKLIST
=
(
'
CVS
'
,
'
.svn
'
,
'
.hg
'
,
'
debian
'
,
'
dist
'
,
'
build
'
)
IGNORED_EXTENSIONS
=
(
'
.pyc
'
,
'
.pyo
'
,
'
.elc
'
,
'
~
'
)
def
ensure_scripts
(
linux_scripts
):
...
...
@@ -54,7 +71,8 @@
def
ensure_scripts
(
linux_scripts
):
"""
Creates the proper script names required for each platform
"""
Creates the proper script names required for each platform
(taken from 4Suite)
"""
from
distutils
import
util
...
...
@@ -64,19 +82,4 @@
scripts_
=
linux_scripts
return
scripts_
def
get_packages
(
directory
,
prefix
):
"""
return a list of subpackages for the given directory
"""
result
=
[]
for
package
in
os
.
listdir
(
directory
):
absfile
=
join
(
directory
,
package
)
if
isdir
(
absfile
):
if
exists
(
join
(
absfile
,
'
__init__.py
'
))
or
\
package
in
(
'
test
'
,
'
tests
'
):
if
prefix
:
result
.
append
(
'
%s.%s
'
%
(
prefix
,
package
))
else
:
result
.
append
(
package
)
result
+=
get_packages
(
absfile
,
result
[
-
1
])
return
result
def
export
(
from_dir
,
to_dir
,
...
...
@@ -82,5 +85,5 @@
def
export
(
from_dir
,
to_dir
,
blacklist
=
STD
_BLACKLIST
,
blacklist
=
BASE
_BLACKLIST
,
ignore_ext
=
IGNORED_EXTENSIONS
,
verbose
=
True
):
"""
make a mirror of from_dir in to_dir, omitting directories and files
...
...
@@ -134,6 +137,35 @@
dest
=
join
(
self
.
install_dir
,
base
,
directory
)
export
(
directory
,
dest
,
verbose
=
False
)
# re-enable copying data files in sys.prefix
old_install_data
=
install_data
.
install_data
if
USE_SETUPTOOLS
:
# overwrite InstallData to use sys.prefix instead of the egg directory
class
MyInstallData
(
old_install_data
):
"""
A class that manages data files installation
"""
def
run
(
self
):
_old_install_dir
=
self
.
install_dir
if
self
.
install_dir
.
endswith
(
'
egg
'
):
self
.
install_dir
=
sys
.
prefix
old_install_data
.
run
(
self
)
self
.
install_dir
=
_old_install_dir
try
:
import
setuptools.command.easy_install
# only if easy_install avaible
# monkey patch: Crack SandboxViolation verification
from
setuptools.sandbox
import
DirectorySandbox
as
DS
old_ok
=
DS
.
_ok
def
_ok
(
self
,
path
):
"""
Return True if ``path`` can be written during installation.
"""
out
=
old_ok
(
self
,
path
)
# here for side effect from setuptools
realpath
=
os
.
path
.
normcase
(
os
.
path
.
realpath
(
path
))
allowed_path
=
os
.
path
.
normcase
(
sys
.
prefix
)
if
realpath
.
startswith
(
allowed_path
):
out
=
True
return
out
DS
.
_ok
=
_ok
except
ImportError
:
pass
def
install
(
**
kwargs
):
"""
setup entry point
"""
if
USE_SETUPTOOLS
:
...
...
@@ -142,6 +174,6 @@
# install-layout option was introduced in 2.5.3-1~exp1
elif
sys
.
version_info
<
(
2
,
5
,
4
)
and
'
--install-layout=deb
'
in
sys
.
argv
:
sys
.
argv
.
remove
(
'
--install-layout=deb
'
)
if
USE_SETUPTOOLS
and
install_requires
:
if
USE_SETUPTOOLS
:
kwargs
[
'
install_requires
'
]
=
install_requires
kwargs
[
'
dependency_links
'
]
=
dependency_links
...
...
@@ -146,5 +178,6 @@
kwargs
[
'
install_requires
'
]
=
install_requires
kwargs
[
'
dependency_links
'
]
=
dependency_links
kwargs
[
'
zip_safe
'
]
=
False
return
setup
(
name
=
distname
,
version
=
version
,
license
=
license
,
...
...
@@ -156,7 +189,8 @@
scripts
=
ensure_scripts
(
scripts
),
data_files
=
data_files
,
ext_modules
=
ext_modules
,
cmdclass
=
{
'
install_lib
'
:
MyInstallLib
},
cmdclass
=
{
'
install_lib
'
:
MyInstallLib
,
'
install_data
'
:
MyInstallData
},
**
kwargs
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment