Skip to content

Commit

Permalink
Replace the existing '%' string formatting operator as proposed on PE…
Browse files Browse the repository at this point in the history
  • Loading branch information
hvelarde committed Aug 2, 2013
1 parent 24f78f9 commit b423d64
Show file tree
Hide file tree
Showing 23 changed files with 73 additions and 77 deletions.
2 changes: 1 addition & 1 deletion src/collective/cover/Extensions/Install.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

def uninstall(portal, reinstall=False):
if not reinstall:
profile = 'profile-%s:uninstall' % PROJECTNAME
profile = 'profile-{0}:uninstall'.format(PROJECTNAME)
setup_tool = getToolByName(portal, 'portal_setup')
setup_tool.runAllImportStepsFromProfile(profile)
return "Ran all uninstall steps."
10 changes: 4 additions & 6 deletions src/collective/cover/browser/contentchooser.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def search(self, query=None, page=None, b_size=None, uids=None):
catalog_query['portal_type'] = searchable_types

if query:
catalog_query = {'SearchableText': '%s*' % query}
catalog_query = {'SearchableText': '{0}*'.format(query)}

# XXX: not implemented, this is needed?
# if uids:
Expand Down Expand Up @@ -209,7 +209,7 @@ def jsonByType(self, rooted, document_base_url, searchtext):
catalog_query['portal_type'] = self.filter_portal_types
catalog_query['path'] = {'query': path, 'depth': 1}
if searchtext:
catalog_query = {'SearchableText': '%s*' % searchtext}
catalog_query = {'SearchableText': '{0}*'.format(searchtext)}

for brain in portal_catalog(**catalog_query):
catalog_results.append({
Expand All @@ -218,10 +218,8 @@ def jsonByType(self, rooted, document_base_url, searchtext):
'url': brain.getURL(),
'portal_type': brain.portal_type,
'normalized_type': normalizer.normalize(brain.portal_type),
'classicon': 'contenttype-%s' %
(normalizer.normalize(brain.portal_type)),
'r_state': 'state-%s' %
(normalizer.normalize(brain.review_state or '')),
'classicon': 'contenttype-{0}'.format(normalizer.normalize(brain.portal_type)),
'r_state': 'state-{0}'.format(normalizer.normalize(brain.review_state or '')),
'title': brain.Title == "" and brain.id or brain.Title,
'icon': self.getIcon(brain).html_tag() or '',
'is_folderish': brain.is_folderish})
Expand Down
4 changes: 2 additions & 2 deletions src/collective/cover/content.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def render(self):

id = uuid()
context_url = self.context.absolute_url()
widget_url = '%s/@@%s/%s' % (context_url, widget_type, id)
widget_url = '{0}/@@{1}/{2}'.format(context_url, widget_type, id)

# Let's store locally info regarding tiles
annotations = IAnnotations(self.context)
Expand Down Expand Up @@ -140,7 +140,7 @@ def __call__(self):
if tile_id in current_tiles:
widget_type = current_tiles[tile_id]['type']
#Let's remove all traces of the value stored in the tile
widget_uri = '@@%s/%s' % (widget_type, tile_id,)
widget_uri = '@@{0}/{1}'.format(widget_type, tile_id)
tile = self.context.restrictedTraverse(widget_uri)

dataManager = ITileDataManager(tile)
Expand Down
12 changes: 6 additions & 6 deletions src/collective/cover/layout.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,11 @@ def render_section(self, section, mode):
if section['type'] == u'group':
return self.group(section=section, mode=mode)
if section['type'] == u'tile':
tile_url = '@@%s/%s' % (section.get('tile-type'), section.get('id'))
tile_url = '@@{0}/{1}'.format(section.get('tile-type'), section.get('id'))
tile_conf = self.context.restrictedTraverse(tile_url.encode()).get_tile_configuration()
if tile_conf.get('css_class'):
css_class = tile_conf.get('css_class', '')
section['class'] = '%s %s' % (section.get('class'), css_class)
section['class'] = '{0} {1}'.format(section.get('class'), css_class)
return self.tile(section=section, mode=mode, tile_url=tile_url)
else:
return self.generalmarkup(section=section, mode=mode)
Expand All @@ -91,7 +91,7 @@ def tile_is_editable(self, tile_type):
return tile.is_editable

def can_compose_tile_class(self, tile_type, tile_id):
tile = self.context.restrictedTraverse("%s/%s" % (str(tile_type), str(tile_id)))
tile = self.context.restrictedTraverse('{0}/{1}'.format(str(tile_type), str(tile_id)))
if not tile.isAllowedToEdit():
return "disabled"
else:
Expand Down Expand Up @@ -198,9 +198,9 @@ def update(self):
tile_len = int(self.request["tile_len"])
i = 0
while(i < tile_len):
tile_type = self.request["tiles[%s][type]" % i]
tile_id = self.request["tiles[%s][id]" % i]
tile = self.context.restrictedTraverse("%s/%s" % (tile_type, tile_id))
tile_type = self.request['tiles[{0}][type]'.format(i)]
tile_id = self.request['tiles[{0}][id]'.format(i)]
tile = self.context.restrictedTraverse('{0}/{1}'.format(tile_type, tile_id))
tile.setAllowedGroupsForEdit(groups)
i += 1

Expand Down
2 changes: 1 addition & 1 deletion src/collective/cover/tests/test_banner_tile.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def setUp(self):
self.request = self.layer['request']
self.name = 'collective.cover.banner'
self.tile = self.portal.restrictedTraverse(
'@@%s/%s' % (self.name, 'test-tile'))
'@@{0}/{1}'.format(self.name, 'test-tile'))

@unittest.expectedFailure
def test_interface(self):
Expand Down
9 changes: 4 additions & 5 deletions src/collective/cover/tests/test_basic_tile.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def setUp(self):
self.portal = self.layer['portal']
self.request = self.layer['request']
self.tile = self.portal.restrictedTraverse(
'@@%s/%s' % ('collective.cover.basic', 'test-basic-tile'))
'@@{0}/{1}'.format('collective.cover.basic', 'test-basic-tile'))

def test_interface(self):
self.assertTrue(IPersistentCoverTile.implementedBy(BasicTile))
Expand Down Expand Up @@ -121,7 +121,7 @@ def test_render_deleted_object(self):
self.portal.manage_delObjects(['my-image', ])
# To avoid caching, we get the tile again
tile = self.portal.restrictedTraverse(
'@@%s/%s' % ('collective.cover.basic', 'test-basic-tile'))
'@@{0}/{1}'.format('collective.cover.basic', 'test-basic-tile'))
tile.is_empty()
rendered = tile()
# Now we gracefully ignore the lack of original image
Expand Down Expand Up @@ -213,9 +213,8 @@ def test_image_traverser(self):
self.tile.data['image'] = NamedImageFile(str(scales.scale('image').data))
data_mgr = ITileDataManager(self.tile)
data_mgr.set(data)
scales = self.layer['portal'].restrictedTraverse('@@%s/%s/@@images' %
('collective.cover.basic',
'test-basic-tile',))
scales = self.layer['portal'].restrictedTraverse(
'@@{0}/{1}/@@images'.format('collective.cover.basic', 'test-basic-tile'))
img = scales.scale('image')
self.assertTrue(images_are_equal(str(self.tile.data['image'].data),
str(img.index_html().read())))
Expand Down
2 changes: 1 addition & 1 deletion src/collective/cover/tests/test_contentbody_tile.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def setUp(self):
self.portal = self.layer['portal']
self.request = self.layer['request']
self.tile = self.portal.restrictedTraverse(
'@@%s/%s' % ('collective.cover.contentbody', 'test-body-tile'))
'@@{0}/{1}'.format('collective.cover.contentbody', 'test-body-tile'))

def test_interface(self):
self.assertTrue(IPersistentCoverTile.implementedBy(ContentBodyTile))
Expand Down
10 changes: 5 additions & 5 deletions src/collective/cover/tests/test_controlpanel.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,12 @@ def test_records_removed_on_uninstall(self):
setRoles(self.portal, TEST_USER_ID, ['Manager'])
qi.uninstallProducts(products=[PROJECTNAME])

BASE_REGISTRY = 'collective.cover.controlpanel.ICoverSettings.%s'
BASE_REGISTRY = 'collective.cover.controlpanel.ICoverSettings.{0}'
records = [
BASE_REGISTRY % 'layouts',
BASE_REGISTRY % 'available_tiles',
BASE_REGISTRY % 'searchable_content_types',
BASE_REGISTRY % 'styles',
BASE_REGISTRY.format('layouts'),
BASE_REGISTRY.format('available_tiles'),
BASE_REGISTRY.format('searchable_content_types'),
BASE_REGISTRY.format('styles'),
]

for r in records:
Expand Down
2 changes: 1 addition & 1 deletion src/collective/cover/tests/test_file_tile.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def setUp(self):
self.request = self.layer['request']
self.cover = self.portal['frontpage']
self.tile = self.portal.restrictedTraverse(
'@@%s/%s' % ('collective.cover.file', 'test-file-tile'))
'@@{0}/{1}'.format('collective.cover.file', 'test-file-tile'))

def test_interface(self):
self.assertTrue(IPersistentCoverTile.implementedBy(FileTile))
Expand Down
4 changes: 2 additions & 2 deletions src/collective/cover/tests/test_image_tile.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def setUp(self):
self.portal = self.layer['portal']
self.request = self.layer['request']
self.tile = self.portal.restrictedTraverse(
'@@%s/%s' % ('collective.cover.image', 'test-image-tile'))
'@@{0}/{1}'.format('collective.cover.image', 'test-image-tile'))

def test_interface(self):
self.assertTrue(IPersistentCoverTile.implementedBy(ImageTile))
Expand Down Expand Up @@ -76,7 +76,7 @@ def test_change_images(self):
self.assertIn('src="http://nohost/plone/my-image/@@images', rendered)
# instantiate the tile again
self.tile = self.portal.restrictedTraverse(
'@@%s/%s' % ('collective.cover.image', 'test-image-tile'))
'@@{0}/{1}'.format('collective.cover.image', 'test-image-tile'))
self.tile.populate_with_object(obj1)
rendered = self.tile()
# the tile renders the new image
Expand Down
2 changes: 1 addition & 1 deletion src/collective/cover/tests/test_link_tile.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def setUp(self):
self.portal = self.layer['portal']
self.request = self.layer['request']
self.tile = self.portal.restrictedTraverse(
'@@%s/%s' % ('collective.cover.link', 'test-link-tile'))
'@@{0}/{1}'.format('collective.cover.link', 'test-link-tile'))

def test_interface(self):
self.assertTrue(IPersistentCoverTile.implementedBy(LinkTile))
Expand Down
2 changes: 1 addition & 1 deletion src/collective/cover/tests/test_pfg_tile.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def setUp(self):
description='A form form FormGen')
self.pfg = self.portal['my-form']
self.tile = self.portal.restrictedTraverse(
'@@%s/%s' % ('collective.cover.pfg', 'test-pfg-tile'))
'@@{0}/{1}'.format('collective.cover.pfg', 'test-pfg-tile'))

def test_interface(self):
self.assertTrue(IPersistentCoverTile.implementedBy(PFGTile))
Expand Down
2 changes: 1 addition & 1 deletion src/collective/cover/tests/test_richtext_tile.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def setUp(self):
self.portal = self.layer['portal']
self.request = self.layer['request']
self.tile = self.portal.restrictedTraverse(
'@@%s/%s' % ('collective.cover.richtext', 'test-richtext-tile'))
'@@{0}/{1}'.format('collective.cover.richtext', 'test-richtext-tile'))

def test_interface(self):
self.assertTrue(IPersistentCoverTile.implementedBy(RichTextTile))
Expand Down
8 changes: 4 additions & 4 deletions src/collective/cover/tests/test_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ def test_addon_layer(self):
def test_jsregistry(self):
resource_ids = self.portal.portal_javascripts.getResourceIds()
for id in JS:
self.assertTrue(id in resource_ids, '%s not installed' % id)
self.assertIn(id, resource_ids, "{0} not installed".format(id))

def test_cssregistry(self):
resource_ids = self.portal.portal_css.getResourceIds()
for id in CSS:
self.assertTrue(id in resource_ids, '%s not installed' % id)
self.assertIn(id, resource_ids, "{0} not installed".format(id))

def test_resources_available(self):
resources = CSS + JS
Expand Down Expand Up @@ -87,9 +87,9 @@ def test_addon_layer_removed(self):
def test_jsregistry_removed(self):
resource_ids = self.portal.portal_javascripts.getResourceIds()
for id in JS:
self.assertTrue(id not in resource_ids, '%s not removed' % id)
self.assertNotIn(id, resource_ids, "{0} not removed".format(id))

def test_cssregistry_removed(self):
resource_ids = self.portal.portal_css.getResourceIds()
for id in CSS:
self.assertTrue(id not in resource_ids, '%s not removed' % id)
self.assertNotIn(id, resource_ids, "{0} not removed".format(id))
23 changes: 11 additions & 12 deletions src/collective/cover/tiles/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ def delete(self):
""" Remove the persistent data associated with the tile and notify the
cover object was modified.
"""
logger.debug('Deleting tile %s', self.id)
logger.debug("Deleting tile {0}".format(self.id))

data_mgr = ITileDataManager(self)
data_mgr.delete()
Expand Down Expand Up @@ -304,8 +304,7 @@ def storage(self):
tile = self.context
cover = tile.context
return IAnnotations(cover).setdefault(
'plone.tiles.scale.%s' % tile.id,
PersistentDict())
'plone.tiles.scale.{0}'.format(tile.id), PersistentDict())


class ImageScale(BaseImageScale):
Expand All @@ -330,8 +329,8 @@ def __init__(self, context, request, **info):
name = info['uid']
else:
name = info['fieldname']
self.__name__ = '%s.%s' % (name, extension)
self.url = '%s/@@images/%s' % (url, self.__name__)
self.__name__ = '{0}.{1}'.format(name, extension)
self.url = '{0}/@@images/{1}'.format(url, self.__name__)

def index_html(self):
""" download the image """
Expand Down Expand Up @@ -411,10 +410,11 @@ def create(self, fieldname, direction='thumbnail',
except Exception:
logging.exception(
'could not scale "%r" of %r',
orig_value, self.context.context.absolute_url())
orig_value, self.context.context.absolute_url()) # FIXME: PEP 3101
return
if result is not None:
data, format, dimensions = result
# FIXME: PEP 3101; how to avoid confusion among method and variable name?
mimetype = 'image/%s' % format.lower()
value = orig_value.__class__(data, contentType=mimetype,
filename=orig_value.filename)
Expand All @@ -432,7 +432,7 @@ def modified(self):
mtime = ''
for k, v in self.context.data.items():
if INamedImage.providedBy(v):
mtime += self.context.data.get('%s_mtime' % k, 0)
mtime += self.context.data.get('{0}_mtime'.format(k), 0)

return mtime

Expand Down Expand Up @@ -492,12 +492,11 @@ def getRelativePaths(self):
yield prefix
for _, v in context.data.items():
if INamedImage.providedBy(v):
yield "%s/@@images/image" % prefix
scales = parent.unrestrictedTraverse('%s/%s' %
(prefix.strip('/'),
'@@images'))
yield '{0}/@@images/image'.format(prefix)
scales = parent.unrestrictedTraverse(
'{0}/{1}'.format(prefix.strip('/'), '@@images'))
for size in scales.getAvailableSizes().keys():
yield "%s/@@images/%s" % (prefix, size,)
yield '{0}/@@images/{1}'.format(prefix, size)

def getAbsolutePaths(self):
return []
6 changes: 3 additions & 3 deletions src/collective/cover/tiles/carousel.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,10 @@ def init_js(self):
return """
$(function() {
Galleria.loadTheme("++resource++collective.cover/galleria-theme/galleria.cover_theme.js");
Galleria.run('#galleria-%s .galleria-inner');
Galleria.run('#galleria-{0} .galleria-inner');
if($('body').hasClass('template-view')) {
Galleria.configure({ autoplay: %s });
Galleria.configure({ autoplay: {1} });
};
});
""" % (self.id, str(self.autoplay()).lower())
""".format(self.id, str(self.autoplay()).lower())
2 changes: 1 addition & 1 deletion src/collective/cover/tiles/configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ def __init__(self, context, request, tile):
self.request = request
self.tile = tile
self.annotations = IAnnotations(self.context)
self.key = "%s.%s" % (ANNOTATIONS_KEY_PREFIX, tile.id)
self.key = '{0}.{1}'.format(ANNOTATIONS_KEY_PREFIX, tile.id)

def _set_default_configuration(self):
defaults = {}
Expand Down
8 changes: 4 additions & 4 deletions src/collective/cover/tiles/configuration_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def getContent(self):

# Traverse to the tile. If it is a transient tile, it will pick up
# query string parameters from the original request
tile = self.context.restrictedTraverse('@@%s/%s' % (typeName, tileId,))
tile = self.context.restrictedTraverse('@@{0}/{1}'.format(typeName, tileId))
tile_conf_adapter = getMultiAdapter((self.context, self.request, tile),
ITilesConfigurationScreen)

Expand Down Expand Up @@ -171,7 +171,7 @@ def handleSave(self, action):
typeName = self.tileType.__name__

# Traverse to a new tile in the context, with no data
tile = self.context.restrictedTraverse('@@%s/%s' % (typeName, self.tileId,))
tile = self.context.restrictedTraverse('@@{0}/{1}'.format(typeName, self.tileId))

tile_conf_adapter = getMultiAdapter((self.context, self.request, tile),
ITilesConfigurationScreen)
Expand All @@ -185,7 +185,7 @@ def handleSave(self, action):
# there's the only way from where a user would access the configuration
contextURL = absoluteURL(tile.context, self.request)

layoutURL = '%s/layoutedit' % contextURL
layoutURL = '{0}/layoutedit'.format(contextURL)

notify(ObjectModifiedEvent(tile))

Expand All @@ -197,7 +197,7 @@ def handleSave(self, action):
@button.buttonAndHandler(_(u'Cancel'), name='cancel')
def handleCancel(self, action):
contextURL = absoluteURL(self.context, self.request)
layoutURL = '%s/layoutedit' % contextURL
layoutURL = '{0}/layoutedit'.format(contextURL)

# XXX: We need to fire a notification ?
#notify(ObjectModifiedEvent(tile))
Expand Down
2 changes: 1 addition & 1 deletion src/collective/cover/tiles/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,5 @@ def set(self, data):
data[k] != self.annotations[self.key][k])):
# set modification time of the image
notify(Purge(self.tile))
data['%s_mtime' % k] = '%f' % time.time()
data['{0}_mtime'.format(k)] = '%f' % time.time()
self.annotations[self.key] = PersistentDict(data)
4 changes: 2 additions & 2 deletions src/collective/cover/tiles/edit.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def update(self):
typeName = self.tileType.__name__
tileId = self.tileId

tile = self.context.restrictedTraverse('@@%s/%s' % (typeName, tileId,))
tile = self.context.restrictedTraverse('@@{0}/{1}'.format(typeName, tileId))

if not tile.isAllowedToEdit():
raise Unauthorized("You are not allowed to add this kind of tile")
Expand All @@ -50,7 +50,7 @@ def handleSave(self, action):
typeName = self.tileType.__name__

# Traverse to a new tile in the context, with no data
tile = self.context.restrictedTraverse('@@%s/%s' % (typeName, self.tileId,))
tile = self.context.restrictedTraverse('@@{0}/{1}'.format(typeName, self.tileId))

dataManager = ITileDataManager(tile)
# We need to check first for existing content in order to not loose
Expand Down

0 comments on commit b423d64

Please sign in to comment.