Ticket #2303 (new defect)

Opened 3 years ago

Last modified 3 years ago

unnecessary checkout for getting file size

Reported by: sascha_silbe Owned by: alsroot
Priority: Unspecified by Maintainer Milestone: 0.90
Component: journal Version: Git as of bugdate
Severity: Minor Keywords:
Cc: Distribution/OS:
Bug Status: Unconfirmed

Description

From jarabe.journal.expandedentry.ExpandedEntry._create_technical():

             _('Size: %s') % (format_size(int(self._metadata.get('filesize',
                                 model.get_file_size(self._metadata['uid']))))),

dict.get() doesn't short-circuit evaluation, so model.get_file_size() will always get evaluated, even if self._metadata contains filesize.

Change History

Changed 3 years ago by sascha_silbe

This is what I use in the version support branch now:

        filesize = self._metadata.get('filesize')
        if filesize is None:
            object_id = (self._metadata['tree_id'], self._metadata['version_id'])
            filesize = model.get_file_size(object_id)

        lines = [
            _('Kind: %s') % (self._metadata.get('mime_type') or _('Unknown'),),
            _('Date: %s') % (self._format_date(),),
            _('Size: %s') % (format_size(int(filesize))),
            ]

Feel free to adapt for mainline.

Note: See TracTickets for help on using tickets.