[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