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
a149c357550b
Commit
a149c357550b
authored
14 years ago
by
Sylvain Thénault
Browse files
Options
Downloads
Patches
Plain Diff
pkginfo cleanup, setuptools enabled setup.py
parent
18b619f80a89
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
README
+42
-0
42 additions, 0 deletions
README
__pkginfo__.py
+3
-45
3 additions, 45 deletions
__pkginfo__.py
setup.py
+158
-38
158 additions, 38 deletions
setup.py
with
203 additions
and
83 deletions
README
0 → 100644
+
42
−
0
View file @
a149c357
Summary
-------
The `blog` cube provides blogging functionnalities. It creates two entity types,
`Blog` and `BlogEntry`. There are related to each other by the relation
`BlogEntry entry_of Blog`.
Usage
-----
When a user submits a blog entry, it goes in a `draft` state until the blog
entry is published by an application managers. The blog entry will not be
visible until it reaches the `published` state.
When a blog entry is submitted, an email notification is automatically sent
to all the users belonging to the `managers` group of the application.
Specific boxes provided by this cube:
- `BlogEntryArchiveBox`, displays a box with the total number of blog entries
submitted by month for the last twelve months.
- `BlogEntryListBox`, displays a box with the latest five blog entries
published in your application as well as link to subscribe to a RSS feed.
- `BlogEntrySummary`, displays a box with the list of users who submitted
blog entries and the total number of blog entries they submitted.
This cube also provides some web services such as:
- http://xx:xxxx/blogentries/YYYY to retrieve the blog entries submitted
during the year YYYY through a RSS feed
- http://xx:xxxx/blogentries/YYYY/MM to retrieve the blog entries submitted
during the month MM of the year YYYY through a RSS feed
- http://xx:xxxx/blog/[eid]/blogentries/YYYY to retrieve the blog entries
submitted in the blog of identifier [eid], during the year YYYY through
a RSS feed
- 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
This diff is collapsed.
Click to expand it.
__pkginfo__.py
+
3
−
45
View file @
a149c357
...
@@ -13,51 +13,8 @@
...
@@ -13,51 +13,8 @@
author_email
=
"
contact@logilab.fr
"
author_email
=
"
contact@logilab.fr
"
web
=
'
http://www.cubicweb.org/project/%s
'
%
distname
web
=
'
http://www.cubicweb.org/project/%s
'
%
distname
short_desc
=
"
blogging component for the CubicWeb framework
"
description
=
"
blogging component for the CubicWeb framework
"
long_desc
=
"""
\
short_desc
=
description
# XXX cw < 3.8 bw compat
Summary
-------
The `blog` cube provides blogging functionnalities. It creates two entity types,
`Blog` and `BlogEntry`. There are related to each other by the relation
`BlogEntry entry_of Blog`.
Usage
-----
When a user submits a blog entry, it goes in a `draft` state until the blog
entry is published by an application managers. The blog entry will not be
visible until it reaches the `published` state.
When a blog entry is submitted, an email notification is automatically sent
to all the users belonging to the `managers` group of the application.
Specific boxes provided by this cube:
- `BlogEntryArchiveBox`, displays a box with the total number of blog entries
submitted by month for the last twelve months.
- `BlogEntryListBox`, displays a box with the latest five blog entries
published in your application as well as link to subscribe to a RSS feed.
- `BlogEntrySummary`, displays a box with the list of users who submitted
blog entries and the total number of blog entries they submitted.
This cube also provides some web services such as:
- http://xx:xxxx/blogentries/YYYY to retrieve the blog entries submitted
during the year YYYY through a RSS feed
- http://xx:xxxx/blogentries/YYYY/MM to retrieve the blog entries submitted
during the month MM of the year YYYY through a RSS feed
- http://xx:xxxx/blog/[eid]/blogentries/YYYY to retrieve the blog entries
submitted in the blog of identifier [eid], during the year YYYY through
a RSS feed
- 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
"""
classifiers
=
[
classifiers
=
[
'
Environment :: Web Environment
'
'
Environment :: Web Environment
'
...
@@ -73,6 +30,7 @@
...
@@ -73,6 +30,7 @@
for
cube
in
__recommends_cubes__
:
for
cube
in
__recommends_cubes__
:
__recommends__
[
'
cubicweb-
'
+
cube
]
=
__recommends_cubes__
[
cube
]
__recommends__
[
'
cubicweb-
'
+
cube
]
=
__recommends_cubes__
[
cube
]
# package ###
# package ###
from
os
import
listdir
as
_listdir
from
os
import
listdir
as
_listdir
...
...
This diff is collapsed.
Click to expand it.
setup.py
+
158
−
38
View file @
a149c357
#!/usr/bin/env python
#!/usr/bin/env python
# pylint: disable-msg=W0404,W0622,W0704,W0613,W0152
# pylint: disable-msg=W0404,W0622,W0704,W0613,W0152
# Copyright (c) 2003-2004 LOGILAB S.A. (Paris, FRANCE).
"""
Generic Setup script, takes package info from __pkginfo__.py file.
# http://www.logilab.fr/ -- mailto:contact@logilab.fr
#
:copyright: 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
# This program is free software; you can redistribute it and/or modify it under
:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
# the terms of the GNU General Public License as published by the Free Software
:license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
# Foundation; either version 2 of the License, or (at your option) any later
"""
# version.
__docformat__
=
"
restructuredtext en
"
#
# This program is distributed in the hope that it will be useful, but WITHOUT
import
os
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
import
sys
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
import
shutil
#
from
os.path
import
isdir
,
exists
,
join
,
walk
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
"""
Generic Setup script, takes package info from __pkginfo__.py file
"""
...
@@ -19,3 +15,12 @@
...
@@ -19,3 +15,12 @@
from
distutils.core
import
setup
try
:
if
os
.
environ
.
get
(
'
NO_SETUPTOOLS
'
):
raise
ImportError
()
from
setuptools
import
setup
from
setuptools.command
import
install_lib
USE_SETUPTOOLS
=
1
except
ImportError
:
from
distutils.core
import
setup
from
distutils.command
import
install_lib
USE_SETUPTOOLS
=
0
...
@@ -21,2 +26,4 @@
...
@@ -21,2 +26,4 @@
sys
.
modules
.
pop
(
'
__pkginfo__
'
,
None
)
# import required features
# import required features
...
@@ -22,4 +29,4 @@
...
@@ -22,4 +29,4 @@
# import required features
# import required features
from
__pkginfo__
import
dist
name
,
version
,
license
,
short_desc
,
long_desc
,
\
from
__pkginfo__
import
mod
name
,
version
,
license
,
description
,
\
web
,
author
,
author_email
web
,
author
,
author_email
# import optional features
# import optional features
...
@@ -24,13 +31,111 @@
...
@@ -24,13 +31,111 @@
web
,
author
,
author_email
web
,
author
,
author_email
# import optional features
# import optional features
try
:
import
__pkginfo__
from
__pkginfo__
import
data_files
distname
=
getattr
(
__pkginfo__
,
'
distname
'
,
modname
)
except
ImportError
:
scripts
=
getattr
(
__pkginfo__
,
'
scripts
'
,
[])
data_files
=
None
data_files
=
getattr
(
__pkginfo__
,
'
data_files
'
,
None
)
try
:
include_dirs
=
getattr
(
__pkginfo__
,
'
include_dirs
'
,
[])
from
__pkginfo__
import
include_dirs
ext_modules
=
getattr
(
__pkginfo__
,
'
ext_modules
'
,
None
)
except
ImportError
:
dependency_links
=
getattr
(
__pkginfo__
,
'
dependency_links
'
,
[])
include_dirs
=
[]
STD_BLACKLIST
=
(
'
CVS
'
,
'
.svn
'
,
'
.hg
'
,
'
debian
'
,
'
dist
'
,
'
build
'
)
IGNORED_EXTENSIONS
=
(
'
.pyc
'
,
'
.pyo
'
,
'
.elc
'
,
'
~
'
)
if
exists
(
'
README
'
):
long_description
=
file
(
'
README
'
).
read
()
else
:
long_description
=
''
if
USE_SETUPTOOLS
:
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
:
install_requires
=
[]
def
ensure_scripts
(
linux_scripts
):
"""
Creates the proper script names required for each platform
(taken from 4Suite)
"""
from
distutils
import
util
if
util
.
get_platform
()[:
3
]
==
'
win
'
:
scripts_
=
[
script
+
'
.bat
'
for
script
in
linux_scripts
]
else
:
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
,
blacklist
=
STD_BLACKLIST
,
ignore_ext
=
IGNORED_EXTENSIONS
,
verbose
=
True
):
"""
make a mirror of from_dir in to_dir, omitting directories and files
listed in the black list
"""
def
make_mirror
(
arg
,
directory
,
fnames
):
"""
walk handler
"""
for
norecurs
in
blacklist
:
try
:
fnames
.
remove
(
norecurs
)
except
ValueError
:
pass
for
filename
in
fnames
:
# don't include binary files
if
filename
[
-
4
:]
in
ignore_ext
:
continue
if
filename
[
-
1
]
==
'
~
'
:
continue
src
=
join
(
directory
,
filename
)
dest
=
to_dir
+
src
[
len
(
from_dir
):]
if
verbose
:
print
>>
sys
.
stderr
,
src
,
'
->
'
,
dest
if
os
.
path
.
isdir
(
src
):
if
not
exists
(
dest
):
os
.
mkdir
(
dest
)
else
:
if
exists
(
dest
):
os
.
remove
(
dest
)
shutil
.
copy2
(
src
,
dest
)
try
:
os
.
mkdir
(
to_dir
)
except
OSError
,
ex
:
# file exists ?
import
errno
if
ex
.
errno
!=
errno
.
EEXIST
:
raise
walk
(
from_dir
,
make_mirror
,
None
)
class
MyInstallLib
(
install_lib
.
install_lib
):
"""
extend install_lib command to handle package __init__.py and
include_dirs variable if necessary
"""
def
run
(
self
):
"""
overridden from install_lib class
"""
install_lib
.
install_lib
.
run
(
self
)
# manually install included directories if any
if
include_dirs
:
base
=
modname
for
directory
in
include_dirs
:
dest
=
join
(
self
.
install_dir
,
base
,
directory
)
export
(
directory
,
dest
,
verbose
=
False
)
def
install
(
**
kwargs
):
def
install
(
**
kwargs
):
"""
setup entry point
"""
"""
setup entry point
"""
...
@@ -34,17 +139,32 @@
...
@@ -34,17 +139,32 @@
def
install
(
**
kwargs
):
def
install
(
**
kwargs
):
"""
setup entry point
"""
"""
setup entry point
"""
#kwargs['distname'] = modname
if
USE_SETUPTOOLS
:
return
setup
(
name
=
distname
,
if
'
--force-manifest
'
in
sys
.
argv
:
version
=
version
,
sys
.
argv
.
remove
(
'
--force-manifest
'
)
license
=
license
,
# install-layout option was introduced in 2.5.3-1~exp1
description
=
short_desc
,
elif
sys
.
version_info
<
(
2
,
5
,
4
)
and
'
--install-layout=deb
'
in
sys
.
argv
:
long_description
=
long_desc
,
sys
.
argv
.
remove
(
'
--install-layout=deb
'
)
author
=
author
,
kwargs
[
'
package_dir
'
]
=
{
modname
:
'
.
'
}
author_email
=
author_email
,
packages
=
[
modname
]
+
get_packages
(
os
.
getcwd
(),
modname
)
url
=
web
,
if
USE_SETUPTOOLS
and
install_requires
:
data_files
=
data_files
,
kwargs
[
'
install_requires
'
]
=
install_requires
**
kwargs
)
kwargs
[
'
dependency_links
'
]
=
dependency_links
kwargs
[
'
packages
'
]
=
packages
return
setup
(
name
=
distname
,
version
=
version
,
license
=
license
,
description
=
description
,
long_description
=
long_description
,
author
=
author
,
author_email
=
author_email
,
url
=
web
,
scripts
=
ensure_scripts
(
scripts
),
data_files
=
data_files
,
ext_modules
=
ext_modules
,
cmdclass
=
{
'
install_lib
'
:
MyInstallLib
},
**
kwargs
)
if
__name__
==
'
__main__
'
:
if
__name__
==
'
__main__
'
:
install
()
install
()
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