Don't require webob as dependency

It is pushing up the daisies. Also relnote the change.
This commit is contained in:
Sebastian Spaeth
2012-11-16 11:32:35 +01:00
parent 726896b62a
commit 8d19cb2445
15 changed files with 258 additions and 1 deletions

View File

@@ -0,0 +1,11 @@
Metadata-Version: 1.1
Name: mediagoblin-licenses
Version: 0.1.2
Summary: Customize the licenses for your mediagoblin installation
Home-page: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses
Author: Sebastian Spaeth
Author-email: Sebastian@SSpaeth.de
License: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Download-URL: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses/archive-tarball/mediagoblin-licenses-v0.1.2
Description: UNKNOWN
Platform: UNKNOWN

View File

@@ -0,0 +1,15 @@
================
Custom Licenses
================
Enable by configuring all custom licenses in the form of:
license_x=Abbreviation, Full Name, URL to license
Make sure to only insert one line per license without line breaks.
E.g. do this into mediagoblin_local.ini:
[[mediagoblin_licenses]]
license_1=Chicken Dance, Chicken Dance License v1.0, https://raw.github.com/supertunaman/cdl/f0ae734f4abce311070ac0c401dbc0230cbc4344/COPYING
license_2=WTFPL, Do What the Fuck Public License v2.0, http://sam.zoy.org/wtfpl/
This plugin is licensed under the GNU APGL v3+.

View File

@@ -0,0 +1,15 @@
================
Custom Licenses
================
Enable by configuring all custom licenses in the form of:
license_x=Abbreviation, Full Name, URL to license
Make sure to only insert one line per license without line breaks.
E.g. do this into mediagoblin_local.ini:
[[mediagoblin_licenses]]
license_1=Chicken Dance, Chicken Dance License v1.0, https://raw.github.com/supertunaman/cdl/f0ae734f4abce311070ac0c401dbc0230cbc4344/COPYING
license_2=WTFPL, Do What the Fuck Public License v2.0, http://sam.zoy.org/wtfpl/
This plugin is licensed under the GNU APGL v3+.

View File

@@ -0,0 +1,69 @@
# GNU MediaGoblin -- federated, autonomous media hosting
# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
#
# 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/>.
from __future__ import unicode_literals
import logging
from mediagoblin.tools.pluginapi import get_config
from mediagoblin.tools import licenses
__VERSION__ = '0.1.2' # releases get numbers, post release a "+" appended
_log = logging.getLogger(__name__)
SORTED_PLUGIN_LICENSES = []
"""This is the equivalent of MG.tools.licenses.SORTED_LICENSES
that we want to replace"""
class CustomLicenses(object):
_setup_plugin_called = 0
@classmethod
def setup_plugin(cls):
if cls._setup_plugin_called:
return # Only set up once
cls._setup_plugin_called += 1
_log.info('Configurable license plugin setting up!')
# Get configured licenses
config = get_config(cls.__module__)
if not config:
_log.warn('There are no licenses configured at all.')
return # Nothing configured, nothing to do...
for k,v in config.iteritems():
if not k.lower().startswith('license_'):
continue
(abbrev, name, url) = config.as_list(k)
_log.info("Adding license: {0}".format(abbrev))
SORTED_PLUGIN_LICENSES.append(licenses.License(abbrev, name, url))
# Set the regular license list to our custom ones:
licenses.SORTED_LICENSES = SORTED_PLUGIN_LICENSES
# create dict {url: License,...} to enable fast license lookup by url.
# The data structure in
# mediagoblin.tools.licenses.SUPPORTED_LICENSES and SORTED_LICENSES
# is really not optimal. What we want there is a "OrderedDict" that
# can give us order AND quick lookup by key at the same time. But as
# that is python >=2.7 and we have to deal with python 2.6, we'll
# live with the data duplication in 2 structures for now. It's not
# like we are going to have hundreds of licenses, fortunately.
licenses.SUPPORTED_LICENSES = dict(((l.uri, l) for l in \
SORTED_PLUGIN_LICENSES))
hooks = {
'setup': CustomLicenses.setup_plugin
}

View File

@@ -0,0 +1,15 @@
================
Custom Licenses
================
Enable by configuring all custom licenses in the form of:
license_x=Abbreviation, Full Name, URL to license
Make sure to only insert one line per license without line breaks.
E.g. do this into mediagoblin_local.ini:
[[mediagoblin_licenses]]
license_1=Chicken Dance, Chicken Dance License v1.0, https://raw.github.com/supertunaman/cdl/f0ae734f4abce311070ac0c401dbc0230cbc4344/COPYING
license_2=WTFPL, Do What the Fuck Public License v2.0, http://sam.zoy.org/wtfpl/
This plugin is licensed under the GNU APGL v3+.

View File

@@ -0,0 +1,69 @@
# GNU MediaGoblin -- federated, autonomous media hosting
# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
#
# 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/>.
from __future__ import unicode_literals
import logging
from mediagoblin.tools.pluginapi import get_config
from mediagoblin.tools import licenses
__VERSION__ = '0.1.2' # releases get numbers, post release a "+" appended
_log = logging.getLogger(__name__)
SORTED_PLUGIN_LICENSES = []
"""This is the equivalent of MG.tools.licenses.SORTED_LICENSES
that we want to replace"""
class CustomLicenses(object):
_setup_plugin_called = 0
@classmethod
def setup_plugin(cls):
if cls._setup_plugin_called:
return # Only set up once
cls._setup_plugin_called += 1
_log.info('Configurable license plugin setting up!')
# Get configured licenses
config = get_config(cls.__module__)
if not config:
_log.warn('There are no licenses configured at all.')
return # Nothing configured, nothing to do...
for k,v in config.iteritems():
if not k.lower().startswith('license_'):
continue
(abbrev, name, url) = config.as_list(k)
_log.info("Adding license: {0}".format(abbrev))
SORTED_PLUGIN_LICENSES.append(licenses.License(abbrev, name, url))
# Set the regular license list to our custom ones:
licenses.SORTED_LICENSES = SORTED_PLUGIN_LICENSES
# create dict {url: License,...} to enable fast license lookup by url.
# The data structure in
# mediagoblin.tools.licenses.SUPPORTED_LICENSES and SORTED_LICENSES
# is really not optimal. What we want there is a "OrderedDict" that
# can give us order AND quick lookup by key at the same time. But as
# that is python >=2.7 and we have to deal with python 2.6, we'll
# live with the data duplication in 2 structures for now. It's not
# like we are going to have hundreds of licenses, fortunately.
licenses.SUPPORTED_LICENSES = dict(((l.uri, l) for l in \
SORTED_PLUGIN_LICENSES))
hooks = {
'setup': CustomLicenses.setup_plugin
}

View File

@@ -0,0 +1,11 @@
Metadata-Version: 1.1
Name: mediagoblin-licenses
Version: 0.1.2
Summary: Customize the licenses for your mediagoblin installation
Home-page: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses
Author: Sebastian Spaeth
Author-email: Sebastian@SSpaeth.de
License: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Download-URL: https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses/archive-tarball/mediagoblin-licenses-v0.1.2
Description: UNKNOWN
Platform: UNKNOWN

View File

@@ -0,0 +1,6 @@
README
mediagoblin_licenses/__init__.py
pip-egg-info/mediagoblin_licenses.egg-info/PKG-INFO
pip-egg-info/mediagoblin_licenses.egg-info/SOURCES.txt
pip-egg-info/mediagoblin_licenses.egg-info/dependency_links.txt
pip-egg-info/mediagoblin_licenses.egg-info/top_level.txt

View File

@@ -0,0 +1,30 @@
#!/usr/bin/env python
from distutils.core import setup
import re
from sys import version
assert version >= '2.6', 'This package requires python 2.6 at least. Sorry.'
def get_version():
"""Parse __init__.py for version info, we cannot import it"""
version_re = re.compile(r'\s*__VERSION__\s*=\s*("|\')([\w\.\+]+)(\1)')
with open('mediagoblin_licenses/__init__.py', 'rt') as file:
for line in file:
if version_re.match(line):
return version_re.match(line).group(2)
__VERSION__ = get_version()
setup(name='mediagoblin-licenses',
version=__VERSION__,
description='Customize the licenses for your mediagoblin installation',
author='Sebastian Spaeth',
author_email='Sebastian@SSpaeth.de',
url='https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses',
download_url='https://gitorious.org/mediagoblin-licenses/mediagoblin-licenses/archive-tarball/mediagoblin-licenses-v' + __VERSION__,
# http://bugs.python.org/issue13943. Must not be unicode...
packages=['mediagoblin_licenses'],
package_data = {'mediagoblin_licenses': ['README.rst', 'COPYING']},
license=(b'License :: OSI Approved :: GNU Affero General Public License '
b'v3 or later (AGPLv3+)')
)