Commit 23d7bdd2 authored by Julien Muchembled's avatar Julien Muchembled

style: use new syntax (from Python 2.7) for dict comprehensions

parent daffb775
......@@ -369,7 +369,7 @@ class AppliedRule(XMLObject, ExplainableMixin):
del AppliedRule.isIndexable, SimulationMovement.isIndexable
self.recursiveReindexObject()
assert str not in map(type, old_dict), old_dict
return dict((k, sum(v.values(), [])) for k, v in deleted), delivery_set
return {k: sum(v.values(), []) for k, v in deleted}, delivery_set
simulation_tool._delObject(self.getId())
def _checkExpand(self):
......
......@@ -90,8 +90,8 @@ class BudgetLine(Predicate, XMLMatrix, VariatedMixin):
"""Returns all the engagements in a dict where the keys are the cells, and
the value is the engaged budget.
"""
budget_dict = dict([(k, v * -1) for (k,v) in
self.getEngagedBudgetDict(**kw).items()])
budget_dict = {k: v * -1
for k, v in self.getEngagedBudgetDict(**kw).iteritems()}
cell_key_list = self.getCellKeyList()
for cell_key in cell_key_list:
......
......@@ -150,10 +150,10 @@ class PaySheetTransaction(Invoice):
security.declarePrivate('updateAggregatedAmountList')
def updateAggregatedAmountList(self, *args, **kw):
amount_dict = dict(((x.getReference(),
tuple(x.getVariationCategoryList())), x)
for x in self.getAggregatedAmountList(*args, **kw)
if x.getResource())
amount_dict = {(x.getReference(),
tuple(x.getVariationCategoryList())): x
for x in self.getAggregatedAmountList(*args, **kw)
if x.getResource()}
movement_to_delete_list = []
for movement in self.getMovementList():
if movement.getBaseApplication():
......@@ -163,9 +163,9 @@ class PaySheetTransaction(Invoice):
if amount is None:
movement_to_delete_list.append(movement)
else:
movement.edit(**dict((x, amount.getProperty(x))
movement.edit(**{x: amount.getProperty(x)
for x in ('price', 'resource', 'quantity',
'base_application_list', 'base_contribution_list')))
'base_application_list', 'base_contribution_list')})
return {'movement_to_delete_list': movement_to_delete_list,
'movement_to_add_list': amount_dict.values()}
......@@ -208,8 +208,8 @@ class PaySheetTransaction(Invoice):
# convert Amount into Simulation Movement with Business Link
movement_list = []
for amount in movement_list_trade_phase_dic[trade_phase]:
variation_dict = dict(
[tuple(x.split('/', 1)) for x in amount.getVariationCategoryList()])
variation_dict = dict(x.split('/', 1)
for x in amount.getVariationCategoryList())
movement_list.extend(
business_process.getTradePhaseMovementList(
self, amount, trade_phase, update_property_dict=variation_dict))
......
......@@ -119,14 +119,14 @@ class Resource(XMLObject, XMLMatrix, VariatedMixin):
sort_on=[('title','ascending')])
individual_variation_list = [x.getObject() for x in
individual_variation_list]
other_base_category_dict = dict([(i,1) for i in base_category_list])
other_base_category_set = set(base_category_list)
if not omit_individual_variation:
for variation in individual_variation_list:
for base_category in variation.getVariationBaseCategoryList():
if base_category_list is ()\
or base_category in base_category_list:
other_base_category_dict[base_category] = 0
other_base_category_set.discard(base_category)
# XXX now, call Renderer a lot of time.
# Better implementation needed
result.extend(Renderer(
......@@ -136,12 +136,10 @@ class Resource(XMLObject, XMLMatrix, VariatedMixin):
current_category=current_category,
display_id=display_id).render([variation]))
other_base_category_list = [x for x, y in
other_base_category_dict.iteritems() if y == 1]
# Get category variation
if other_base_category_list:
if other_base_category_set:
result.extend(super(Resource, self).getVariationRangeCategoryItemList(
base_category_list=other_base_category_list,
base_category_list=list(other_base_category_set),
base=base, display_base_category=display_base_category, **kw))
# Return result
return result
......
......@@ -63,6 +63,6 @@ class RoleDefinition(XMLObject):
group_id_generator = getattr(ob,
ERP5TYPE_SECURITY_GROUP_ID_GENERATION_SCRIPT)
role_list = self.getRoleName(),
return dict((group_id, role_list)
return {group_id: role_list
for group_id in group_id_generator(category_order=('agent',),
agent=self.getAgentList()))
agent=self.getAgentList())}
......@@ -236,8 +236,8 @@ class SQLNonContinuousIncreasingIdGenerator(IdGenerator):
if self.getStoredInZodb():
self._updateSqlTable()
# Return values from sql
return dict([(line['id_group'],int(line['last_id'])) for line in
self._getValueListFromTable()])
return {line['id_group']: int(line['last_id'])
for line in self._getValueListFromTable()}
security.declareProtected(Permissions.ModifyPortalContent,
'importGeneratorIdDict')
......
......@@ -100,9 +100,9 @@ class TradeModelRuleMovementGenerator(MovementGeneratorMixin):
if amount.getResource():
# FIXME: Is it the right way to have source/destination and other
# non-Amount properties set on the generated movement ?
movement = input_movement.asContext(**dict((k, v)
movement = input_movement.asContext(**{k: v
for k, v in amount.__dict__.iteritems()
if k[0] != '_' and k != 'categories'))
if k[0] != '_' and k != 'categories'})
base_category_set = set(amount.getBaseCategoryList())
base_category_set.remove('price_currency') # XXX
movement._setCategoryMembership(base_category_set,
......
......@@ -116,6 +116,6 @@ class VariationEquivalenceTester(Predicate, EquivalenceTesterMixin):
decision_movement -- a delivery movement (decision)
"""
get = self._getTestedPropertyValue
return dict((tested_property, get(prevision_movement, tested_property))
for tested_property in ('variation_category_list',
'variation_property_dict'))
return {tested_property: get(prevision_movement, tested_property)
for tested_property in ('variation_category_list',
'variation_property_dict')}
......@@ -240,7 +240,7 @@ class ExplanationCache:
# Build a list of path patterns which apply to current business_link
path_list = iter(self.getSimulationPathPatternList())
path_dict = dict((x, path_list.next()) for x in path_list)
path_dict = {x: path_list.next() for x in path_list}
# path_dict is like this;
# {'/erp5/portal_simulation/3/4': r'/erp5/portal\_simulation/3/4/%'}
path_list = []
......
......@@ -228,8 +228,8 @@ class TaskDistributionTool(BaseTool):
"""
extract all xmlrpclib.Binary instance
"""
return dict([(x,isinstance(y, Binary) and y.data or y) \
for (x, y) in xmlrpc_dict.iteritems()])
return {x: y.data if isinstance(y, Binary) else y
for x, y in xmlrpc_dict.iteritems()}
security.declarePublic('reportTaskFailure')
def reportTaskFailure(self, test_result_path, status_dict, node_title):
......
......@@ -1177,8 +1177,8 @@ class TemplateTool (BaseTool):
operation_log = []
resolved_template_list = self.resolveBusinessTemplateListDependency(
template_list)
installed_bt5_dict = dict((x.getTitle(), x.getRevision())
for x in self.getInstalledBusinessTemplateList())
installed_bt5_dict = {x.getTitle(): x.getRevision()
for x in self.getInstalledBusinessTemplateList()}
if only_different:
template_url_dict = self._getBusinessTemplateUrlDict()
......
......@@ -526,14 +526,10 @@ class BuilderMixin(XMLObject, Amount, Predicate):
return
# Update variation category list on line
variation_category_dict = dict([(variation_category, True) for
variation_category in
delivery_line.getVariationCategoryList()])
variation_category_set = set(delivery_line.getVariationCategoryList())
for movement in movement_group_node.getMovementList():
for category in movement.getVariationCategoryList():
variation_category_dict[category] = True
variation_category_list = sorted(variation_category_dict.keys())
delivery_line.setVariationCategoryList(variation_category_list)
variation_category_set.update(movement.getVariationCategoryList())
delivery_line.setVariationCategoryList(sorted(variation_category_set))
# Then, create delivery movement (delivery cell or complete delivery
# line)
grouped_node_list = movement_group_node.getGroupList()
......
......@@ -118,8 +118,7 @@ class TestAmount(ERP5TypeTestCase):
resource = sequence.get('resource')
amount.setResourceValue(resource)
sequence.edit(
variation_property_dict= \
dict([(x, None) for x in self.variation_property_dict])
variation_property_dict=dict.fromkeys(self.variation_property_dict)
)
def stepCheckEmptyGetVariationPropertyDict(self, sequence=None,
......
......@@ -3214,7 +3214,7 @@ class TestUnitConversion(BaseTestUnitConversion):
(None, None, None, None), ## empty
)}.iteritems():
for measure in measure_list:
kw = dict((keys[i], v) for i, v in enumerate(measure) if v is not None)
kw = {keys[i]: v for i, v in enumerate(measure) if v is not None}
resource.newContent(portal_type='Measure', **kw)
self.resource.setOptionalVariationBaseCategory('industrial_phase')
......
......@@ -611,14 +611,14 @@ class TestTemplateTool(ERP5TypeTestCase):
many business templates that are already installed
"""
template_tool = self.portal.portal_templates
before = dict((bt.getTitle(), bt.getId())
for bt in template_tool.getInstalledBusinessTemplateList())
before = {bt.getTitle(): bt.getId()
for bt in template_tool.getInstalledBusinessTemplateList()}
bt_title = 'erp5_calendar'
template_tool.installBusinessTemplateListFromRepository([bt_title],
install_dependency=True)
self.tic()
after = dict((bt.getTitle(), bt.getId())
for bt in template_tool.getInstalledBusinessTemplateList())
after = {bt.getTitle(): bt.getId()
for bt in template_tool.getInstalledBusinessTemplateList()}
del after[bt_title]
self.assertEqual(before, after)
......@@ -645,19 +645,20 @@ class TestTemplateTool(ERP5TypeTestCase):
fourth_group = range(10, 12)
fifth_group = range(12, 13)
expected_position_dict = dict((('erp5_property_sheets', first_group),
('erp5_core_proxy_field_legacy', first_group),
('erp5_mysql_innodb_catalog', first_group),
('erp5_core', first_group),
('erp5_full_text_myisam_catalog', first_group),
('erp5_xhtml_style', first_group),
('erp5_ingestion_mysql_innodb_catalog', second_group),
('erp5_base', second_group),
('erp5_jquery', third_group),
('erp5_ingestion', third_group),
('erp5_web', fourth_group),
('erp5_crm', fourth_group),
('erp5_credential', fifth_group)))
expected_position_dict = {
'erp5_property_sheets': first_group,
'erp5_core_proxy_field_legacy': first_group,
'erp5_mysql_innodb_catalog': first_group,
'erp5_core': first_group,
'erp5_full_text_myisam_catalog': first_group,
'erp5_xhtml_style': first_group,
'erp5_ingestion_mysql_innodb_catalog': second_group,
'erp5_base': second_group,
'erp5_jquery': third_group,
'erp5_ingestion': third_group,
'erp5_web': fourth_group,
'erp5_crm': fourth_group,
'erp5_credential': fifth_group}
for bt in ordered_list:
self.assertTrue(ordered_list.index(bt) in expected_position_dict[bt[1]],
......
......@@ -415,8 +415,8 @@ class TestTradeModelLine(TestTradeModelLineMixin):
for line in delivery.getMovementList():
simulation_movement_list, = \
self.getTradeModelSimulationMovementList(line)
result_dict = dict((sm.getResourceValue().getUse(), sm)
for sm in simulation_movement_list)
result_dict = {sm.getResourceValue().getUse(): sm
for sm in simulation_movement_list}
self.assertEqual(len(simulation_movement_list),
len(result_dict))
for use in 'discount', 'tax':
......@@ -596,8 +596,8 @@ class TestTradeModelLine(TestTradeModelLineMixin):
# on invoice, make specialise point to a new TC and check it diverged
trade_condition = self['trade_condition']
new_trade_condition = self.clone(trade_condition)
line_dict = dict((line.getReference(), line)
for line in new_trade_condition.objectValues())
line_dict = {line.getReference(): line
for line in new_trade_condition.objectValues()}
line_dict['discount'].edit(reference='discount_2',
price=self.new_discount_ratio)
line_dict['tax'].edit(reference='tax_2',
......
......@@ -149,8 +149,8 @@ class TestWorkflowStateTitleTranslation(ERP5TypeTestCase):
# State ID has multiple translation associated, and it leads to
# unexpected results for the user when using portal catalog.
rejected_key_list = translation_dict.keys()
result_dict = dict([(x, []) for x in rejected_key_list])
error_dict = dict([(x, []) for x in rejected_key_list])
result_dict = {x: [] for x in rejected_key_list}
error_dict = {x: [] for x in rejected_key_list}
error = 0
# Browse all workflows to ease fixing this issue.
......
......@@ -163,8 +163,8 @@ class TestWorklist(ERP5TypeTestCase):
worklists.addWorklist(worklist_id)
worklists._getOb(worklist_id).setProperties('',
actbox_name='%s (%%(count)s)' % actbox_name, actbox_url=actbox_url,
props=dict((k.startswith('guard_') and k or 'var_match_'+k, v)
for k, v in kw.iteritems()))
props={k if k.startswith('guard_') else 'var_match_' + k: v
for k, v in kw.iteritems()})
def removeWorklist(self, workflow_id, worklist_id_list):
worklists = self.getWorkflowTool()[workflow_id].worklists
......
......@@ -3935,9 +3935,8 @@ VALUES
org4 = module.newContent(portal_type='Organisation', title='org4')
org4.setGroupList(['nexedi', 'tiolive'])
# check associations are correct
actual_group_title_map = dict((org.getTitle(),
sorted(org.getGroupTitleList()))
for org in (org1, org2, org3, org4))
actual_group_title_map = {org.getTitle(): sorted(org.getGroupTitleList())
for org in (org1, org2, org3, org4)}
expected_group_title_map = dict(org1=[],
org2=['Nexedi'],
org3=['TIOLive'],
......
......@@ -93,7 +93,7 @@ class WorkflowSecurityConfiguratorItem(ConfiguratorItemMixin, XMLObject):
for permission in permission_list:
state.setPermission(permission, 0, [])
# Update state matrix
permission_dict = dict([(x, []) for x in permission_list])
permission_dict = {x: [] for x in permission_list}
for role, perm_symbol in state_config.items():
managed_permission_list = []
if 'A' in perm_symbol:
......
......@@ -68,9 +68,12 @@ class MultiRelationStringFieldWidget(Widget.LinesTextAreaWidget,
'size', 'extra_item',
]
property_names = Widget.LinesTextAreaWidget.property_names + \
Widget.TextWidget.property_names + \
local_property_names
property_names = (lambda name_list, name_set=set():
# delete double (but preserve order) in order to keep a usable ZMI...
[x for x in name_list if not (x in name_set or name_set.add(x))])(
Widget.LinesTextAreaWidget.property_names +
Widget.TextWidget.property_names +
local_property_names)
# XXX Field to remove...
update_method = fields.StringField('update_method',
......@@ -194,17 +197,6 @@ class MultiRelationStringFieldWidget(Widget.LinesTextAreaWidget,
default='',
required=0)
# delete double in order to keep a usable ZMI...
# XXX need to keep order !
#property_names = dict([(i,0) for i in property_names]).keys()
_v_dict = {}
_v_property_name_list = []
for property_name in property_names:
if not _v_dict.has_key(property_name):
_v_property_name_list.append(property_name)
_v_dict[property_name] = 1
property_names = _v_property_name_list
default_widget_rendering_instance = Widget.LinesTextAreaWidgetInstance
def _getContextValue(self, field, REQUEST):
......
......@@ -68,9 +68,12 @@ class ParallelListWidget(Widget.MultiListWidget,
default: 0
"""
property_names = Widget.MultiListWidget.property_names + \
Widget.ListWidget.property_names + \
['hash_script_id']
property_names = (lambda name_list, name_set=set():
# delete double (but preserve order) in order to keep a usable ZMI...
[x for x in name_list if not (x in name_set or name_set.add(x))])(
Widget.MultiListWidget.property_names +
Widget.ListWidget.property_names +
['hash_script_id'])
hash_script_id = fields.StringField('hash_script_id',
title='Hash script',
......@@ -78,17 +81,6 @@ class ParallelListWidget(Widget.MultiListWidget,
"The method to call to hash items list."),
required=0)
# delete double in order to keep a usable ZMI...
# XXX need to keep order !
#property_names = dict([(i,0) for i in property_names]).keys()
_v_dict = {}
_v_property_name_list = []
for property_name in property_names:
if not _v_dict.has_key(property_name):
_v_property_name_list.append(property_name)
_v_dict[property_name] = 1
property_names = _v_property_name_list
def __init__(self):
"""
Generate some subwidget used for rendering.
......
......@@ -163,8 +163,8 @@ class Selection(Acquisition.Implicit, Traversable, Persistent):
# We should only keep params which do not start with field_
# in order to make sure we do not collect unwanted params
# resulting form the REQUEST generated by an ERP5Form submit
params = dict([item for item in params.iteritems() \
if not item[0].startswith('field_')])
params = dict(item for item in params.iteritems()
if not item[0].startswith('field_'))
if self.params != params:
self.params = params
if kw is not None:
......@@ -371,7 +371,8 @@ class Selection(Acquisition.Implicit, Traversable, Persistent):
security.declarePublic('getAnonymousSelectionKey')
def getAnonymousSelectionKey(self):
return md5(repr(dict([(k, v) for k, v in self.__dict__.iteritems() if k != 'index']))).hexdigest()
return md5(repr({k: v for k, v in self.__dict__.iteritems()
if k != 'index'})).hexdigest()
InitializeClass(Selection)
allow_class(Selection)
......
......@@ -175,18 +175,13 @@ class TioSafeNodeConduit(TioSafeBaseConduit):
keyword[tag] = value
document.context.person_module.updatePersonAddress(**keyword)
else:
# getter used to retrieve the current values and to check conflicts
property_list = ['birthday', ]
getter_value_dict = dict([
(prop, getattr(document, prop))
for prop in property_list
if getattr(document, prop, None) is not None
])
assert tag == 'birthday', tag
current_value = getattr(document, tag)
assert current_value is not None, current_value
# create and fill a conflict when the integration site value, the erp5
# value and the previous value are differents
current_value = getter_value_dict[tag]
if current_value not in [value, previous_value]:
if value != current_value != previous_value:
conflict_list.append(self._generateConflict(path=document.getPhysicalPath(),
tag=tag,
xml=xml,
......
......@@ -207,7 +207,4 @@ class SetGetter(ListGetter):
Gets a category value set
"""
def __call__(self, instance, *args, **kw):
result_list = ListGetter.__call__(self, instance, *args, **kw)
result_set = dict([(x, 0) for x in result_list]).keys()
return result_set
return list(set(ListGetter.__call__(self, instance, *args, **kw)))
......@@ -164,9 +164,7 @@ class SetGetter(ListGetter):
Gets a category value set
"""
def __call__(self, instance, *args, **kw):
result_list = ListGetter.__call__(self, instance, *args, **kw)
result_set = dict([(x, 0) for x in result_list]).keys()
return result_set
return list(set(ListGetter.__call__(self, instance, *args, **kw)))
# ItemList is outdated XXX -> ItemList
......
......@@ -105,6 +105,4 @@ class SetGetter(ListGetter):
Gets a category value set
"""
def __call__(self, instance, *args, **kw):
result_list = ListGetter.__call__(self, instance, *args, **kw)
result_set = dict([(x, 0) for x in result_list]).keys()
return result_set
return list(set(ListGetter.__call__(self, instance, *args, **kw)))
......@@ -111,9 +111,7 @@ class SetGetter(ListGetter):
Gets a category value set
"""
def __call__(self, instance, *args, **kw):
result_list = ListGetter.__call__(self, instance, *args, **kw)
result_set = dict([(x, 0) for x in result_list]).keys()
return result_set
return list(set(ListGetter.__call__(self, instance, *args, **kw)))
class DefaultPropertyGetter(BaseGetter):
......@@ -193,9 +191,7 @@ class PropertySetGetter(PropertyListGetter):
Gets a category value set
"""
def __call__(self, instance, *args, **kw):
result_list = PropertyListGetter.__call__(self, instance, *args, **kw)
result_set = dict([(x, 0) for x in result_list]).keys()
return result_set
return list(set(PropertyListGetter.__call__(self, instance, *args, **kw)))
class DefaultIdGetter(PropertyGetter):
......
......@@ -73,9 +73,10 @@ class AcquiredProperty(StandardProperty):
'translation_acquired_property_id')
# Add names specific to 'content' type (see StandardProperty)
_name_mapping_filesystem_to_zodb_dict = \
dict([ (name, 'content_' + name,) for name in _content_type_attribute_tuple ],
**StandardProperty._name_mapping_filesystem_to_zodb_dict)
_name_mapping_filesystem_to_zodb_dict = {name: 'content_' + name
for name in _content_type_attribute_tuple}
_name_mapping_filesystem_to_zodb_dict.update(
StandardProperty._name_mapping_filesystem_to_zodb_dict)
# ZODB name of attributes whose value is a TALES Expression string
_expression_attribute_tuple = \
......
......@@ -344,9 +344,9 @@ class OldTypesTool(OFSFolder):
new_type._importRole(role.__getstate__())
elif k not in ('uid', 'isIndexable'):
if k == '_property_domain_dict':
v = dict((k, t.__class__(property_name=t.property_name,
domain_name=t.domain_name))
for k, t in v.iteritems())
v = {k: t.__class__(property_name=t.property_name,
domain_name=t.domain_name)
for k, t in v.iteritems()}
setattr(new_type, k, v)
finally:
del new_type.generateNewId
......
......@@ -47,8 +47,7 @@ class TranslationProviderBase(object):
pass
else:
property_domain_dict.update(my_property_domain_dict)
return dict((k, v.__of__(self))
for k, v in property_domain_dict.iteritems())
return {k: v.__of__(self) for k, v in property_domain_dict.iteritems()}
security.declarePublic('getContentTranslationDomainPropertyNameList')
def getContentTranslationDomainPropertyNameList(self):
......
......@@ -1720,14 +1720,16 @@ def guessEncodingFromText(data, content_type='text/html'):
' You must install python-magic'
raise NotImplementedError, message
_reencodeUrlEscapes_map = dict((chr(x), chr(x) in (# safe
"!'()*-." "0123456789" "_~"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
# reserved (maybe unsafe)
"#$&+,/:;=?@[]")
and chr(x) or "%%%02X" % x)
for x in xrange(256))
_reencodeUrlEscapes_map = {chr(x): chr(x) if chr(x) in
# safe
"!'()*-." "0123456789" "_~"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
# reserved (maybe unsafe)
"#$&+,/:;=?@[]"
else "%%%02X" % x
for x in xrange(256)}
def reencodeUrlEscapes(url):
"""Fix a non-conformant %-escaped URL (or quote an unescaped one)
......
......@@ -318,8 +318,8 @@ def DCWorkflowDefinition_getWorklistVariableMatchDict(self, info,
format_data = TemplateDict()
format_data._push(info)
variable_match.setdefault(SECURITY_PARAMETER_ID, ())
format_data._push(dict((k, ('&%s:list=' % k).join(v)) for\
k, v in variable_match.iteritems()))
format_data._push({k: ('&%s:list=' % k).join(v)
for k, v in variable_match.iteritems()})
variable_match[WORKLIST_METADATA_KEY] = {'format_data': format_data,
'worklist_title': action_box_name,
'worklist_id': worklist_id,
......
......@@ -382,8 +382,8 @@ def sumCatalogResultByWorklist(grouped_worklist_dict, catalog_result):
if len(catalog_result) > 0:
# Transtype all worklist definitions where needed
criterion_id_list = []
class_dict = dict(((name, _sql_cast_dict.get(x['type'], _sql_cast_fallback))
for name, x in catalog_result.data_dictionary().iteritems()))
class_dict = {name: _sql_cast_dict.get(x['type'], _sql_cast_fallback)
for name, x in catalog_result.data_dictionary().iteritems()}
for criterion_dict in grouped_worklist_dict.itervalues():
for criterion_id, criterion_value_list in criterion_dict.iteritems():
if type(criterion_value_list) is not ExclusionList:
......@@ -691,7 +691,7 @@ def WorkflowTool_refreshWorklistCache(self):
#LOG('refreshWorklistCache', WARNING, 'Using query: %s' % \
# (search_result(src__=1, **search_result_kw), ))
catalog_brain_result = search_result(**search_result_kw)
value_column_dict = dict([(x, []) for x in table_column_id_set])
value_column_dict = {x: [] for x in table_column_id_set}
for catalog_brain_line in catalog_brain_result.dictionaries():
for column_id, value in catalog_brain_line.iteritems():
if column_id in value_column_dict:
......
......@@ -381,8 +381,8 @@ class BusinessTemplateWorkingCopy(BusinessTemplateFolder):
def export(self, business_template):
# Dicts to track svn status in case it is not consistent with existing
# files and directories
self.versioned_dict = dict((x.getPath(), x) for x in self.client.status('.')
if str(x.getTextStatus()) not in ('ignored', 'unversioned'))
self.versioned_dict = {x.getPath(): x for x in self.client.status('.')
if str(x.getTextStatus()) not in ('ignored', 'unversioned')}
del self.versioned_dict['.']
self.versioned_dict[''] = None
self.added_set = set()
......
......@@ -376,8 +376,7 @@ try:
# transform entry to dict to make it more usable in zope
members_tuple = ('url', 'uuid', 'revision', 'kind', \
'commit_author', 'commit_revision', 'commit_time',)
entry_dict = dict([(member, getattr(entry, member)) \
for member in members_tuple])
entry_dict = {member: getattr(entry, member) for member in members_tuple}
entry_dict['revision'] = entry_dict['revision'].number
entry_dict['commit_revision'] = entry_dict['commit_revision'].number
entry_dict['commit_time'] = DateTime(entry_dict['commit_time'])
......
......@@ -1661,12 +1661,9 @@ class Catalog(Folder,
method.func_code.co_varnames[:method.func_code.co_argcount]
else:
arguments = []
kw = dict(
(x, LazyIndexationParameterList(
catalogged_object_list,
x,
argument_cache,
)) for x in arguments)
kw = {x: LazyIndexationParameterList(catalogged_object_list,
x, argument_cache)
for x in arguments}
# Alter/Create row
try:
......@@ -2352,7 +2349,7 @@ class Catalog(Folder,
else:
select_dict = None
elif isinstance(select_dict, (list, tuple)):
select_dict = dict([(x, None) for x in select_dict])
select_dict = dict.fromkeys(select_dict)
# Handle left_join_list
left_join_list = kw.pop('left_join_list', ())
# Handle implicit_join. It's True by default, as there's a lot of code
......
......@@ -211,9 +211,8 @@ class RelatedKey(SearchKey):
destination_table))
# map aliases to use in ZSQLMethod.
table_alias_dict = dict(('table_%s' % (index, ), table_alias)
for (index, (table_alias, table_name))
in enumerate(table_alias_list))
table_alias_dict = {'table_%s' % index: alias[0]
for index, alias in enumerate(table_alias_list)}
assert len(table_alias_list) == len(table_alias_dict)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment