[asterisk-dev] [Code Review] 4280: sip_to_pjsip: improved ability to parse input without exception
Scott Griepentrog
reviewboard at asterisk.org
Wed Dec 31 09:10:15 CST 2014
> On Dec. 23, 2014, 9:18 a.m., Matt Jordan wrote:
> > /branches/12/contrib/scripts/sip_to_pjsip/astconfigparser.py, lines 334-335
> > <https://reviewboard.asterisk.org/r/4280/diff/2/?file=69851#file69851line334>
> >
> > This could be written as:
> >
> > res.extend([inc.get_sections(key, attr, searched) for inc in self._includes])
> >
> > Two reasons for this change:
> > (1) generally, list comprehensions are a bit faster than for loops that build a list.
> > (2) using an explicit extend with a list comprehension informs the reader of the intent of the code over the += operator. (Note: the difference between '+' and '+=' on a list caught me by surprise the first time. I'm less a fan of using operators on a list than using explicit methods.)
While I agree with the reasons for your change, the realization of your suggestion ends up being:
res.extend(list(itertools.chain(*[self._includes[i].get_sections(key, attr, searched) for i in self._includes])))
Due to self._includes being a dict and the need to flatten the list before adding to res.
I'm concerned that this is a loss in readability, even though it is certainly faster.
- Scott
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/4280/#review14033
-----------------------------------------------------------
On Dec. 19, 2014, 7:52 a.m., Scott Griepentrog wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/4280/
> -----------------------------------------------------------
>
> (Updated Dec. 19, 2014, 7:52 a.m.)
>
>
> Review request for Asterisk Developers.
>
>
> Bugs: ASTERISK-24474
> https://issues.asterisk.org/jira/browse/ASTERISK-24474
>
>
> Repository: Asterisk
>
>
> Description
> -------
>
> General improvements to reliability of conversion utility:
>
> 1) track default section of input file to allow parsing an include file that doesn't specify a [section]
>
> 2) informatively handle case of assignment with no section
>
> 3) correctly handle getting sections from included files
>
> 4) assume default bind of 0.0.0.0
>
> 5) gracefully handle missing portions of registration string
>
> 6) Denote steps of operation and confirm top level conf files being read/written as a convenience
>
>
> Diffs
> -----
>
> /branches/12/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py 429613
> /branches/12/contrib/scripts/sip_to_pjsip/astconfigparser.py 429613
>
> Diff: https://reviewboard.asterisk.org/r/4280/diff/
>
>
> Testing
> -------
>
> Ran on config files from various sources to insure no exceptions occurred. Perused output to confirm appearance of converted input values.
>
>
> Thanks,
>
> Scott Griepentrog
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20141231/07861fd2/attachment.html>
More information about the asterisk-dev
mailing list