Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" ?>
- <coverage branch-rate="0.7355" line-rate="0.8536" timestamp="1445942384972" version="4.0.1">
- <!-- Generated by coverage.py: https://coverage.readthedocs.org -->
- <!-- Based on https://raw.githubusercontent.com/cobertura/web/f0366e5e2cf18f111cbd61fc34ef720a6584ba02/htdocs/xml/coverage-03.dtd -->
- <sources>
- <source>/home/jakob/shub/scrapy</source>
- </sources>
- <packages>
- <package branch-rate="0.7437" complexity="0" line-rate="0.8696" name="scrapy">
- <classes>
- <class branch-rate="0.6667" complexity="0" filename="scrapy/__init__.py" line-rate="0.92" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="5"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="18" number="17"/>
- <line hits="0" number="18"/>
- <line hits="0" number="19"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="31"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="41" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- </lines>
- </class>
- <class branch-rate="0.7" complexity="0" filename="scrapy/_monkeypatches.py" line-rate="0.7143" name="_monkeypatches.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="20" number="4"/>
- <line hits="1" number="5"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="9" number="8"/>
- <line hits="0" number="9"/>
- <line hits="0" number="10"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="14" number="13"/>
- <line hits="0" number="14"/>
- <line hits="0" number="15"/>
- <line hits="1" number="20"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="22"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="23"/>
- <line hits="1" number="25"/>
- </lines>
- </class>
- <class branch-rate="0.5556" complexity="0" filename="scrapy/cmdline.py" line-rate="0.7481" name="cmdline.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="20"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="21"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="22"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="29"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="38" number="37"/>
- <line hits="0" number="38"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="40,42" number="39"/>
- <line hits="0" number="40"/>
- <line hits="0" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="50" number="49"/>
- <line hits="0" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="55"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="59" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="0" number="59"/>
- <line hits="1" number="61"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="63,66" number="62"/>
- <line hits="0" number="63"/>
- <line hits="0" number="66"/>
- <line hits="1" number="68"/>
- <line hits="0" number="69"/>
- <line hits="0" number="70"/>
- <line hits="0" number="71"/>
- <line hits="0" number="72"/>
- <line hits="0" number="73"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="75,76" number="74"/>
- <line hits="0" number="75"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,79" number="76"/>
- <line hits="0" number="77"/>
- <line hits="0" number="78"/>
- <line hits="0" number="79"/>
- <line hits="0" number="80"/>
- <line hits="1" number="82"/>
- <line hits="0" number="83"/>
- <line hits="0" number="84"/>
- <line hits="0" number="85"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="91"/>
- <line hits="1" number="92"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="95" number="93"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line hits="1" number="97"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="102" number="98"/>
- <line hits="1" number="99"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="103" number="102"/>
- <line hits="0" number="103"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="105,108" number="104"/>
- <line hits="0" number="105"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="110" number="108"/>
- <line hits="1" number="109"/>
- <line hits="1" number="110"/>
- <line hits="1" number="113"/>
- <line hits="1" number="114"/>
- <line hits="1" number="115"/>
- <line hits="1" number="116"/>
- <line hits="1" number="117"/>
- <line hits="1" number="118"/>
- <line hits="1" number="121"/>
- <line hits="1" number="122"/>
- <line hits="1" number="123"/>
- <line hits="1" number="124"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="127" number="126"/>
- <line hits="0" number="127"/>
- <line hits="0" number="128"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="130" number="129"/>
- <line hits="0" number="130"/>
- <line hits="0" number="131"/>
- <line hits="1" number="133"/>
- <line hits="1" number="134"/>
- <line hits="1" number="135"/>
- <line hits="1" number="136"/>
- <line hits="1" number="137"/>
- <line hits="1" number="138"/>
- <line hits="1" number="139"/>
- <line hits="1" number="140"/>
- <line hits="1" number="142"/>
- <line hits="1" number="143"/>
- <line hits="1" number="144"/>
- <line hits="1" number="146"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="147"/>
- <line hits="1" number="148"/>
- <line hits="1" number="150"/>
- <line hits="1" number="152"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="155" number="153"/>
- <line hits="1" number="154"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="156" number="155"/>
- <line hits="0" number="156"/>
- <line hits="1" number="157"/>
- <line hits="1" number="158"/>
- <line hits="1" number="159"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="162" number="160"/>
- <line hits="1" number="161"/>
- <line hits="1" number="162"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="164" number="163"/>
- <line hits="0" number="164"/>
- <line hits="0" number="165"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="167"/>
- <line hits="1" number="168"/>
- </lines>
- </class>
- <class branch-rate="0.8" complexity="0" filename="scrapy/crawler.py" line-rate="0.8889" name="crawler.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="53"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="80" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line hits="0" number="81"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line hits="1" number="86"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="87"/>
- <line hits="1" number="89"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="91"/>
- <line hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="96"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="109"/>
- <line hits="1" number="115"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="116"/>
- <line hits="1" number="117"/>
- <line hits="1" number="118"/>
- <line hits="1" number="119"/>
- <line hits="1" number="120"/>
- <line hits="1" number="121"/>
- <line hits="1" number="123"/>
- <line hits="1" number="125"/>
- <line hits="1" number="128"/>
- <line hits="1" number="130"/>
- <line hits="1" number="152"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="155" number="153"/>
- <line hits="1" number="154"/>
- <line hits="1" number="155"/>
- <line hits="1" number="157"/>
- <line hits="1" number="158"/>
- <line hits="1" number="159"/>
- <line hits="1" number="160"/>
- <line hits="1" number="162"/>
- <line hits="1" number="163"/>
- <line hits="1" number="164"/>
- <line hits="1" number="165"/>
- <line hits="1" number="167"/>
- <line hits="1" number="169"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="171" number="170"/>
- <line hits="0" number="171"/>
- <line hits="1" number="172"/>
- <line hits="1" number="174"/>
- <line hits="1" number="180"/>
- <line hits="1" number="182"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="190"/>
- <line hits="1" number="191"/>
- <line hits="1" number="194"/>
- <line hits="1" number="214"/>
- <line hits="1" number="215"/>
- <line hits="1" number="216"/>
- <line hits="1" number="217"/>
- <line hits="1" number="218"/>
- <line hits="1" number="220"/>
- <line hits="0" number="221"/>
- <line hits="0" number="222"/>
- <line hits="0" number="223"/>
- <line hits="0" number="225"/>
- <line hits="1" number="227"/>
- <line hits="0" number="228"/>
- <line hits="0" number="229"/>
- <line hits="0" number="230"/>
- <line hits="0" number="232"/>
- <line hits="1" number="234"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="246"/>
- <line hits="1" number="247"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="250" number="249"/>
- <line hits="0" number="250"/>
- <line hits="1" number="251"/>
- <line hits="1" number="253"/>
- <line hits="1" number="254"/>
- <line hits="1" number="255"/>
- <line hits="1" number="256"/>
- <line hits="1" number="257"/>
- <line hits="1" number="259"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="263" number="260"/>
- <line hits="1" number="261"/>
- <line hits="0" number="263"/>
- <line hits="1" number="264"/>
- <line hits="1" number="270"/>
- <line hits="0" number="271"/>
- <line hits="0" number="272"/>
- <line hits="0" number="273"/>
- <line hits="1" number="275"/>
- <line hits="1" number="276"/>
- <line hits="1" number="277"/>
- <line hits="0" number="278"/>
- <line hits="0" number="279"/>
- <line hits="1" number="282"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="284"/>
- <line hits="1" number="285"/>
- <line hits="1" number="290"/>
- <line hits="1" number="292"/>
- <line hits="1" number="293"/>
- <line hits="1" number="294"/>
- <line hits="1" number="295"/>
- <line hits="1" number="296"/>
- <line hits="1" number="302"/>
- </lines>
- </class>
- <class branch-rate="0.9286" complexity="0" filename="scrapy/dupefilters.py" line-rate="0.8824" name="dupefilters.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="0" number="13"/>
- <line hits="1" number="15"/>
- <line hits="0" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="0" number="22"/>
- <line hits="1" number="24"/>
- <line hits="0" number="25"/>
- <line hits="1" number="28"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="62"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="64" number="63"/>
- <line hits="0" number="64"/>
- <line hits="0" number="65"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="73"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/exceptions.py" line-rate="0.9048" name="exceptions.py">
- <methods/>
- <lines>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="16"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="26"/>
- <line hits="0" number="27"/>
- <line hits="0" number="28"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line hits="1" number="56"/>
- </lines>
- </class>
- <class branch-rate="0.96" complexity="0" filename="scrapy/exporters.py" line-rate="0.9529" name="exporters.py">
- <methods/>
- <lines>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="35" number="34"/>
- <line hits="0" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="53"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="68"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="70"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="75"/>
- <line hits="1" number="77"/>
- <line hits="1" number="80"/>
- <line hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="89"/>
- <line hits="1" number="92"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line hits="1" number="96"/>
- <line hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="103"/>
- <line hits="1" number="104"/>
- <line hits="1" number="106"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="107"/>
- <line hits="1" number="108"/>
- <line hits="1" number="110"/>
- <line hits="1" number="111"/>
- <line hits="1" number="112"/>
- <line hits="1" number="115"/>
- <line hits="1" number="117"/>
- <line hits="1" number="118"/>
- <line hits="1" number="119"/>
- <line hits="1" number="120"/>
- <line hits="1" number="121"/>
- <line hits="1" number="123"/>
- <line hits="1" number="124"/>
- <line hits="1" number="125"/>
- <line hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="129"/>
- <line hits="1" number="130"/>
- <line hits="1" number="131"/>
- <line hits="1" number="133"/>
- <line hits="1" number="134"/>
- <line hits="1" number="135"/>
- <line hits="1" number="137"/>
- <line hits="1" number="138"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="139"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="140"/>
- <line hits="1" number="141"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="142"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="143"/>
- <line hits="1" number="144"/>
- <line hits="1" number="146"/>
- <line hits="1" number="147"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="160" number="154"/>
- <line hits="1" number="155"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="156"/>
- <line hits="1" number="157"/>
- <line hits="1" number="158"/>
- <line hits="0" number="160"/>
- <line hits="0" number="161"/>
- <line hits="1" number="164"/>
- <line hits="1" number="166"/>
- <line hits="1" number="167"/>
- <line hits="1" number="168"/>
- <line hits="1" number="169"/>
- <line hits="1" number="170"/>
- <line hits="1" number="171"/>
- <line hits="1" number="173"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="174"/>
- <line hits="1" number="175"/>
- <line hits="1" number="176"/>
- <line hits="0" number="177"/>
- <line hits="0" number="178"/>
- <line hits="1" number="179"/>
- <line hits="1" number="181"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="182"/>
- <line hits="1" number="183"/>
- <line hits="1" number="184"/>
- <line hits="1" number="186"/>
- <line hits="1" number="188"/>
- <line hits="1" number="189"/>
- <line hits="1" number="191"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="192"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="193"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="194"/>
- <line hits="1" number="196"/>
- <line hits="1" number="199"/>
- <line hits="1" number="200"/>
- <line hits="1" number="203"/>
- <line hits="1" number="205"/>
- <line hits="1" number="206"/>
- <line hits="1" number="207"/>
- <line hits="1" number="208"/>
- <line hits="1" number="210"/>
- <line hits="1" number="211"/>
- <line hits="1" number="212"/>
- <line hits="1" number="215"/>
- <line hits="1" number="217"/>
- <line hits="0" number="218"/>
- <line hits="0" number="219"/>
- <line hits="1" number="221"/>
- <line hits="0" number="222"/>
- <line hits="1" number="225"/>
- <line hits="1" number="227"/>
- <line hits="1" number="228"/>
- <line hits="1" number="229"/>
- <line hits="1" number="231"/>
- <line hits="1" number="232"/>
- <line hits="1" number="233"/>
- <line hits="1" number="236"/>
- <line hits="1" number="243"/>
- <line hits="1" number="244"/>
- <line hits="1" number="245"/>
- <line hits="1" number="247"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="248"/>
- <line hits="1" number="249"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="250"/>
- <line hits="1" number="251"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="252"/>
- <line hits="1" number="253"/>
- <line hits="1" number="254"/>
- <line hits="1" number="256"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="257"/>
- <line hits="1" number="258"/>
- <line hits="1" number="260"/>
- <line hits="1" number="261"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/extension.py" line-rate="1" name="extension.py">
- <methods/>
- <lines>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/interfaces.py" line-rate="1" name="interfaces.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="3"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="5"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="8"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="12"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="16"/>
- <line hits="1" number="22"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/item.py" line-rate="0.9667" name="item.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="21"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="51"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="62"/>
- <line hits="1" number="65"/>
- <line hits="0" number="66"/>
- <line hits="1" number="68"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="73"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="77"/>
- <line hits="1" number="79"/>
- <line hits="0" number="80"/>
- <line hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line hits="1" number="93"/>
- <line hits="1" number="94"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line hits="1" number="99"/>
- </lines>
- </class>
- <class branch-rate="0.75" complexity="0" filename="scrapy/link.py" line-rate="0.9091" name="link.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="19"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="25" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="0" number="25"/>
- <line hits="0" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/logformatter.py" line-rate="0.95" name="logformatter.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="13"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="47"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="49" number="48"/>
- <line hits="0" number="49"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="71"/>
- <line hits="1" number="73"/>
- </lines>
- </class>
- <class branch-rate="0.5556" complexity="0" filename="scrapy/mail.py" line-rate="0.7042" name="mail.py">
- <methods/>
- <lines>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="19" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="0" number="19"/>
- <line hits="0" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line hits="0" number="42"/>
- <line hits="1" number="46"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="57" number="56"/>
- <line hits="0" number="57"/>
- <line hits="0" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="68"/>
- <line hits="1" number="70"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="75" number="72"/>
- <line hits="1" number="73"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="82" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="80"/>
- <line hits="0" number="82"/>
- <line hits="0" number="83"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,87" number="86"/>
- <line hits="0" number="87"/>
- <line hits="1" number="89"/>
- <line hits="0" number="90"/>
- <line hits="1" number="95"/>
- <line hits="0" number="96"/>
- <line hits="0" number="97"/>
- <line hits="1" number="103"/>
- <line hits="0" number="105"/>
- <line hits="0" number="106"/>
- <line hits="0" number="107"/>
- <line hits="0" number="108"/>
- <line hits="0" number="111"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="114,116" number="113"/>
- <line hits="0" number="114"/>
- <line hits="0" number="116"/>
- <line hits="0" number="118"/>
- </lines>
- </class>
- <class branch-rate="0.9286" complexity="0" filename="scrapy/middleware.py" line-rate="0.9231" name="middleware.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="12"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="0" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="43" number="42"/>
- <line hits="0" number="43"/>
- <line hits="0" number="44"/>
- <line hits="1" number="47"/>
- <line hits="1" number="51"/>
- <line hits="1" number="53"/>
- <line hits="1" number="55"/>
- <line hits="1" number="57"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="69"/>
- <line hits="0" number="70"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/resolver.py" line-rate="0.9" name="resolver.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="18" number="17"/>
- <line hits="0" number="18"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="20" number="19"/>
- <line hits="0" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- </lines>
- </class>
- <class branch-rate="0.9643" complexity="0" filename="scrapy/responsetypes.py" line-rate="0.9571" name="responsetypes.py">
- <methods/>
- <lines>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="45" number="44"/>
- <line hits="0" number="45"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="52"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="0" number="65"/>
- <line hits="0" number="66"/>
- <line hits="1" number="68"/>
- <line hits="1" number="71"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="81"/>
- <line hits="1" number="83"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line hits="1" number="89"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="96"/>
- <line hits="1" number="97"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="103"/>
- <line hits="1" number="105"/>
- <line hits="1" number="108"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="109"/>
- <line hits="1" number="110"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="111"/>
- <line hits="1" number="112"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="113"/>
- <line hits="1" number="114"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="115"/>
- <line hits="1" number="116"/>
- <line hits="1" number="117"/>
- <line hits="1" number="119"/>
- </lines>
- </class>
- <class branch-rate="0.4444" complexity="0" filename="scrapy/shell.py" line-rate="0.7405" name="shell.py">
- <methods/>
- <lines>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="49" number="48"/>
- <line hits="0" number="49"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="51" number="50"/>
- <line hits="0" number="51"/>
- <line hits="0" number="52"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="67" number="55"/>
- <line hits="1" number="56"/>
- <line hits="0" number="67"/>
- <line hits="0" number="68"/>
- <line hits="0" number="69"/>
- <line hits="0" number="70"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="72,73" number="71"/>
- <line hits="0" number="72"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="74,76" number="73"/>
- <line hits="0" number="74"/>
- <line hits="0" number="76"/>
- <line hits="0" number="78"/>
- <line hits="0" number="79"/>
- <line hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="85"/>
- <line hits="1" number="86"/>
- <line hits="1" number="87"/>
- <line hits="1" number="89"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="96" number="93"/>
- <line hits="1" number="94"/>
- <line hits="1" number="96"/>
- <line hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line hits="1" number="101"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="104"/>
- <line hits="1" number="106"/>
- <line hits="1" number="107"/>
- <line hits="1" number="108"/>
- <line hits="1" number="109"/>
- <line hits="1" number="110"/>
- <line hits="1" number="111"/>
- <line hits="0" number="113"/>
- <line hits="0" number="114"/>
- <line hits="1" number="115"/>
- <line hits="1" number="117"/>
- <line hits="1" number="118"/>
- <line hits="1" number="119"/>
- <line hits="1" number="120"/>
- <line hits="1" number="121"/>
- <line hits="1" number="122"/>
- <line hits="1" number="123"/>
- <line hits="1" number="124"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="127" number="125"/>
- <line hits="1" number="126"/>
- <line hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line hits="1" number="129"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="131" number="130"/>
- <line hits="0" number="131"/>
- <line hits="1" number="133"/>
- <line hits="0" number="134"/>
- <line hits="1" number="136"/>
- <line hits="0" number="137"/>
- <line hits="0" number="138"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="140,142" number="139"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="139,141" number="140"/>
- <line hits="0" number="141"/>
- <line hits="0" number="142"/>
- <line hits="0" number="143"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="145,147" number="144"/>
- <line hits="0" number="145"/>
- <line hits="0" number="147"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,exit" number="149"/>
- <line hits="1" number="151"/>
- <line hits="0" number="152"/>
- <line hits="1" number="155"/>
- <line hits="0" number="157"/>
- <line hits="1" number="160"/>
- <line hits="1" number="171"/>
- <line hits="1" number="172"/>
- <line hits="1" number="174"/>
- <line hits="1" number="175"/>
- <line hits="1" number="176"/>
- <line hits="1" number="177"/>
- <line hits="1" number="179"/>
- <line hits="1" number="180"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="182" number="181"/>
- <line hits="0" number="182"/>
- <line hits="1" number="184"/>
- <line hits="1" number="185"/>
- <line hits="1" number="188"/>
- <line hits="1" number="190"/>
- <line hits="1" number="191"/>
- <line hits="1" number="193"/>
- <line hits="0" number="194"/>
- <line hits="0" number="197"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/signalmanager.py" line-rate="0.8095" name="signalmanager.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="28"/>
- <line hits="0" number="34"/>
- <line hits="0" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line hits="0" number="70"/>
- <line hits="0" number="71"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/signals.py" line-rate="1" name="signals.py">
- <methods/>
- <lines>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line hits="1" number="28"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/spiderloader.py" line-rate="1" name="spiderloader.py">
- <methods/>
- <lines>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="20"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line hits="1" number="46"/>
- <line hits="1" number="49"/>
- <line hits="1" number="53"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/spidermanager.py" line-rate="1" name="spidermanager.py">
- <methods/>
- <lines>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/squeues.py" line-rate="1" name="squeues.py">
- <methods/>
- <lines>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/statscollectors.py" line-rate="0.9412" name="statscollectors.py">
- <methods/>
- <lines>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="0" number="26"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="0" number="39"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="48" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="54"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="72"/>
- <line hits="0" number="73"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="81"/>
- <line hits="1" number="82"/>
- </lines>
- </class>
- <class branch-rate="0.3333" complexity="0" filename="scrapy/telnet.py" line-rate="0.7917" name="telnet.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="0" number="15"/>
- <line hits="0" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="0" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="34"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="41" number="40"/>
- <line hits="0" number="41"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="43" number="42"/>
- <line hits="0" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="51"/>
- <line hits="1" number="53"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="65"/>
- <line hits="0" number="66"/>
- <line hits="0" number="67"/>
- <line hits="1" number="70"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,87" number="72"/>
- <line hits="0" number="87"/>
- <line hits="0" number="88"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.3125" complexity="0" line-rate="0.6355" name="scrapy.commands">
- <classes>
- <class branch-rate="0.5" complexity="0" filename="scrapy/commands/__init__.py" line-rate="0.7222" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="18"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="0" number="26"/>
- <line hits="0" number="27"/>
- <line hits="1" number="29"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="0" number="39"/>
- <line hits="1" number="41"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="0" number="53"/>
- <line hits="1" number="55"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="62"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="68"/>
- <line hits="1" number="70"/>
- <line hits="1" number="72"/>
- <line hits="1" number="74"/>
- <line hits="1" number="76"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line hits="0" number="82"/>
- <line hits="0" number="83"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="86" number="85"/>
- <line hits="0" number="86"/>
- <line hits="0" number="87"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="90" number="89"/>
- <line hits="0" number="90"/>
- <line hits="0" number="91"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="94" number="93"/>
- <line hits="0" number="94"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="97" number="96"/>
- <line hits="0" number="97"/>
- <line hits="0" number="98"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="101" number="100"/>
- <line hits="0" number="101"/>
- <line hits="1" number="103"/>
- <line hits="0" number="107"/>
- </lines>
- </class>
- <class branch-rate="0" complexity="0" filename="scrapy/commands/bench.py" line-rate="0.9474" name="bench.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="57"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,59" number="58"/>
- <line hits="0" number="59"/>
- </lines>
- </class>
- <class branch-rate="0" complexity="0" filename="scrapy/commands/check.py" line-rate="0.2571" name="check.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="0" number="15"/>
- <line hits="0" number="16"/>
- <line hits="0" number="18"/>
- <line hits="0" number="19"/>
- <line hits="0" number="21"/>
- <line hits="0" number="22"/>
- <line hits="0" number="23"/>
- <line hits="0" number="25"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="27,34" number="26"/>
- <line hits="0" number="27"/>
- <line hits="0" number="28"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="30,31" number="29"/>
- <line hits="0" number="30"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="32,36" number="31"/>
- <line hits="0" number="32"/>
- <line hits="0" number="34"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,39" number="36"/>
- <line hits="0" number="37"/>
- <line hits="0" number="39"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="0" number="47"/>
- <line hits="1" number="49"/>
- <line hits="0" number="50"/>
- <line hits="1" number="52"/>
- <line hits="0" number="53"/>
- <line hits="0" number="54"/>
- <line hits="0" number="56"/>
- <line hits="1" number="59"/>
- <line hits="0" number="61"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,66" number="65"/>
- <line hits="0" number="66"/>
- <line hits="0" number="67"/>
- <line hits="0" number="70"/>
- <line hits="0" number="72"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="75,86" number="74"/>
- <line hits="0" number="75"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,78" number="76"/>
- <line hits="0" number="78"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="80,82" number="79"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="74,81" number="80"/>
- <line hits="0" number="81"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="74,83" number="82"/>
- <line hits="0" number="83"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="87,94" number="86"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,88" number="87"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="89,90" number="88"/>
- <line hits="0" number="89"/>
- <line hits="0" number="90"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="87,92" number="91"/>
- <line hits="0" number="92"/>
- <line hits="0" number="94"/>
- <line hits="0" number="95"/>
- <line hits="0" number="96"/>
- <line hits="0" number="98"/>
- <line hits="0" number="99"/>
- <line hits="0" number="100"/>
- </lines>
- </class>
- <class branch-rate="0" complexity="0" filename="scrapy/commands/crawl.py" line-rate="0.2821" name="crawl.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="0" number="12"/>
- <line hits="1" number="14"/>
- <line hits="0" number="15"/>
- <line hits="1" number="17"/>
- <line hits="0" number="18"/>
- <line hits="0" number="19"/>
- <line hits="0" number="21"/>
- <line hits="0" number="23"/>
- <line hits="1" number="26"/>
- <line hits="0" number="27"/>
- <line hits="0" number="28"/>
- <line hits="0" number="29"/>
- <line hits="0" number="30"/>
- <line hits="0" number="31"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,33" number="32"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="34,36" number="33"/>
- <line hits="0" number="34"/>
- <line hits="0" number="36"/>
- <line hits="0" number="37"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="42,43" number="41"/>
- <line hits="0" number="42"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="44,48" number="43"/>
- <line hits="0" number="44"/>
- <line hits="0" number="48"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="52,53" number="51"/>
- <line hits="0" number="52"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="54,55" number="53"/>
- <line hits="0" number="54"/>
- <line hits="0" number="55"/>
- <line hits="0" number="57"/>
- <line hits="0" number="58"/>
- </lines>
- </class>
- <class branch-rate="0" complexity="0" filename="scrapy/commands/edit.py" line-rate="0.4231" name="edit.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="0" number="12"/>
- <line hits="1" number="14"/>
- <line hits="0" number="15"/>
- <line hits="1" number="17"/>
- <line hits="0" number="18"/>
- <line hits="1" number="20"/>
- <line hits="0" number="21"/>
- <line hits="0" number="22"/>
- <line hits="1" number="24"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="26,28" number="25"/>
- <line hits="0" number="26"/>
- <line hits="0" number="28"/>
- <line hits="0" number="29"/>
- <line hits="0" number="30"/>
- <line hits="0" number="31"/>
- <line hits="0" number="32"/>
- <line hits="0" number="34"/>
- <line hits="0" number="35"/>
- <line hits="0" number="36"/>
- </lines>
- </class>
- <class branch-rate="0.8571" complexity="0" filename="scrapy/commands/fetch.py" line-rate="0.9268" name="fetch.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="0" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="30"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="31"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="41"/>
- <line hits="1" number="43"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="45" number="44"/>
- <line hits="0" number="45"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="53" number="52"/>
- <line hits="0" number="53"/>
- <line hits="1" number="55"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="56"/>
- <line hits="1" number="57"/>
- </lines>
- </class>
- <class branch-rate="0.6923" complexity="0" filename="scrapy/commands/genspider.py" line-rate="0.9268" name="genspider.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="15"/>
- <line hits="1" number="20"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="22" number="21"/>
- <line hits="0" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="26"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="41"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="59" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="67" number="66"/>
- <line hits="0" number="67"/>
- <line hits="0" number="68"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="80" number="76"/>
- <line hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="81"/>
- <line hits="1" number="82"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="84" number="83"/>
- <line hits="0" number="84"/>
- <line hits="1" number="86"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="88"/>
- <line hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="104"/>
- <line hits="1" number="106"/>
- <line hits="1" number="107"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="110" number="108"/>
- <line hits="1" number="109"/>
- <line hits="0" number="110"/>
- <line hits="0" number="111"/>
- <line hits="1" number="113"/>
- <line hits="1" number="114"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="115"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="115" number="116"/>
- <line hits="1" number="117"/>
- <line hits="1" number="119"/>
- <line hits="1" number="121"/>
- <line hits="1" number="123"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/commands/list.py" line-rate="0.9" name="list.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="14" number="13"/>
- <line hits="0" number="14"/>
- </lines>
- </class>
- <class branch-rate="0" complexity="0" filename="scrapy/commands/parse.py" line-rate="0.2157" name="parse.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line hits="0" number="28"/>
- <line hits="1" number="30"/>
- <line hits="0" number="31"/>
- <line hits="1" number="33"/>
- <line hits="0" number="34"/>
- <line hits="0" number="35"/>
- <line hits="0" number="37"/>
- <line hits="0" number="39"/>
- <line hits="0" number="41"/>
- <line hits="0" number="43"/>
- <line hits="0" number="45"/>
- <line hits="0" number="47"/>
- <line hits="0" number="49"/>
- <line hits="0" number="51"/>
- <line hits="0" number="53"/>
- <line hits="1" number="57"/>
- <line hits="0" number="59"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,62" number="60"/>
- <line hits="0" number="61"/>
- <line hits="0" number="62"/>
- <line hits="1" number="64"/>
- <line hits="0" number="65"/>
- <line hits="0" number="66"/>
- <line hits="1" number="68"/>
- <line hits="0" number="69"/>
- <line hits="0" number="70"/>
- <line hits="1" number="72"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="74,76" number="73"/>
- <line hits="0" number="74"/>
- <line hits="0" number="76"/>
- <line hits="0" number="78"/>
- <line hits="0" number="79"/>
- <line hits="1" number="81"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="83,89" number="82"/>
- <line hits="0" number="83"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="85,87" number="84"/>
- <line hits="0" number="85"/>
- <line hits="0" number="87"/>
- <line hits="0" number="89"/>
- <line hits="0" number="91"/>
- <line hits="0" number="92"/>
- <line hits="1" number="94"/>
- <line hits="0" number="95"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="98,105" number="97"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,99" number="98"/>
- <line hits="0" number="99"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="101,102" number="100"/>
- <line hits="0" number="101"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="98,103" number="102"/>
- <line hits="0" number="103"/>
- <line hits="0" number="105"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="107,108" number="106"/>
- <line hits="0" number="107"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,109" number="108"/>
- <line hits="0" number="109"/>
- <line hits="1" number="111"/>
- <line hits="0" number="112"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="115,119" number="114"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="116,117" number="115"/>
- <line hits="0" number="116"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="114,118" number="117"/>
- <line hits="0" number="118"/>
- <line hits="0" number="119"/>
- <line hits="1" number="121"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="123,127" number="122"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,124" number="123"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="123,125" number="124"/>
- <line hits="0" number="125"/>
- <line hits="0" number="127"/>
- <line hits="1" number="131"/>
- <line hits="0" number="132"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="134,140" number="133"/>
- <line hits="0" number="134"/>
- <line hits="0" number="135"/>
- <line hits="0" number="136"/>
- <line hits="0" number="137"/>
- <line hits="0" number="140"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="142,145" number="141"/>
- <line hits="0" number="142"/>
- <line hits="0" number="145"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,147" number="146"/>
- <line hits="0" number="147"/>
- <line hits="1" number="149"/>
- <line hits="0" number="150"/>
- <line hits="0" number="151"/>
- <line hits="0" number="152"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,155" number="154"/>
- <line hits="0" number="155"/>
- <line hits="1" number="158"/>
- <line hits="0" number="159"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="162,165" number="161"/>
- <line hits="0" number="162"/>
- <line hits="0" number="165"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="167,172" number="166"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="168,170" number="167"/>
- <line hits="0" number="168"/>
- <line hits="0" number="170"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="173,182" number="172"/>
- <line hits="0" number="173"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="175,177" number="174"/>
- <line hits="0" number="175"/>
- <line hits="0" number="177"/>
- <line hits="0" number="179"/>
- <line hits="0" number="182"/>
- <line hits="0" number="184"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="186,189" number="185"/>
- <line hits="0" number="186"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="188,189" number="187"/>
- <line hits="0" number="188"/>
- <line hits="0" number="189"/>
- <line hits="0" number="190"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,193" number="192"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="194,197" number="193"/>
- <line hits="0" number="194"/>
- <line hits="0" number="195"/>
- <line hits="0" number="196"/>
- <line hits="0" number="197"/>
- <line hits="0" number="199"/>
- <line hits="0" number="200"/>
- <line hits="0" number="201"/>
- <line hits="0" number="202"/>
- <line hits="1" number="204"/>
- <line hits="0" number="205"/>
- <line hits="0" number="206"/>
- <line hits="0" number="207"/>
- <line hits="0" number="208"/>
- <line hits="0" number="209"/>
- <line hits="1" number="211"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="214,216" number="213"/>
- <line hits="0" number="214"/>
- <line hits="0" number="216"/>
- <line hits="0" number="219"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,222" number="221"/>
- <line hits="0" number="222"/>
- <line hits="0" number="223"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/commands/runspider.py" line-rate="0.8" name="runspider.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="19" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="24" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="0" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="0" number="53"/>
- <line hits="0" number="54"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="56" number="55"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="57,59" number="56"/>
- <line hits="0" number="57"/>
- <line hits="0" number="59"/>
- <line hits="0" number="60"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="65,66" number="64"/>
- <line hits="0" number="65"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="67,71" number="66"/>
- <line hits="0" number="67"/>
- <line hits="0" number="71"/>
- <line hits="1" number="73"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="75" number="74"/>
- <line hits="0" number="75"/>
- <line hits="1" number="76"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="86"/>
- <line hits="1" number="88"/>
- <line hits="1" number="89"/>
- </lines>
- </class>
- <class branch-rate="0.1" complexity="0" filename="scrapy/commands/settings.py" line-rate="0.7143" name="settings.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="32" number="30"/>
- <line hits="1" number="31"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="33,34" number="32"/>
- <line hits="0" number="33"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="35,36" number="34"/>
- <line hits="0" number="35"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="37,38" number="36"/>
- <line hits="0" number="37"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,39" number="38"/>
- <line hits="0" number="39"/>
- </lines>
- </class>
- <class branch-rate="0.8333" complexity="0" filename="scrapy/commands/shell.py" line-rate="0.9512" name="shell.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line hits="0" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="37"/>
- <line hits="1" number="41"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="51" number="50"/>
- <line hits="0" number="51"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="58"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="68"/>
- <line hits="1" number="69"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- </lines>
- </class>
- <class branch-rate="0.9167" complexity="0" filename="scrapy/commands/startproject.py" line-rate="0.9818" name="startproject.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="24"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="57"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="59" number="58"/>
- <line hits="0" number="59"/>
- <line hits="1" number="60"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="73"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/commands/version.py" line-rate="0.9429" name="version.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="0" number="47"/>
- <line hits="0" number="48"/>
- <line hits="1" number="50"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/commands/view.py" line-rate="0.5833" name="view.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="0" number="7"/>
- <line hits="1" number="9"/>
- <line hits="0" number="10"/>
- <line hits="1" number="13"/>
- <line hits="0" number="14"/>
- <line hits="0" number="15"/>
- <line hits="1" number="18"/>
- <line hits="0" number="19"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.7273" complexity="0" line-rate="0.7756" name="scrapy.contracts">
- <classes>
- <class branch-rate="0.6786" complexity="0" filename="scrapy/contracts/__init__.py" line-rate="0.7143" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="0" number="19"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="21,25" number="20"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="20,23" number="21"/>
- <line hits="0" number="23"/>
- <line hits="0" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line hits="0" number="41"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="43,46" number="42"/>
- <line hits="0" number="43"/>
- <line hits="0" number="44"/>
- <line hits="0" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="50"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="68"/>
- <line hits="1" number="69"/>
- <line hits="1" number="71"/>
- <line hits="1" number="74"/>
- <line hits="1" number="76"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line hits="0" number="81"/>
- <line hits="0" number="82"/>
- <line hits="0" number="83"/>
- <line hits="1" number="85"/>
- <line hits="0" number="86"/>
- <line hits="0" number="87"/>
- <line hits="0" number="88"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line hits="1" number="94"/>
- <line hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line hits="1" number="100"/>
- <line hits="1" number="102"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="104" number="103"/>
- <line hits="0" number="104"/>
- <line hits="0" number="106"/>
- <line hits="0" number="108"/>
- <line hits="0" number="109"/>
- <line hits="0" number="110"/>
- <line hits="0" number="111"/>
- <line hits="0" number="112"/>
- <line hits="0" number="113"/>
- <line hits="0" number="114"/>
- <line hits="0" number="115"/>
- <line hits="0" number="117"/>
- <line hits="0" number="119"/>
- <line hits="0" number="121"/>
- <line hits="1" number="123"/>
- <line hits="1" number="125"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="126"/>
- <line hits="1" number="127"/>
- <line hits="1" number="129"/>
- <line hits="1" number="131"/>
- <line hits="1" number="132"/>
- <line hits="1" number="133"/>
- <line hits="1" number="134"/>
- <line hits="1" number="135"/>
- <line hits="1" number="136"/>
- <line hits="1" number="137"/>
- <line hits="0" number="138"/>
- <line hits="0" number="139"/>
- <line hits="1" number="141"/>
- <line hits="1" number="143"/>
- <line hits="1" number="145"/>
- <line hits="1" number="147"/>
- <line hits="1" number="149"/>
- <line hits="1" number="150"/>
- <line hits="1" number="153"/>
- <line hits="1" number="154"/>
- <line hits="1" number="156"/>
- <line hits="1" number="157"/>
- <line hits="0" number="158"/>
- <line hits="1" number="160"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="161"/>
- <line hits="1" number="162"/>
- </lines>
- </class>
- <class branch-rate="0.8125" complexity="0" filename="scrapy/contracts/default.py" line-rate="0.9318" name="default.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="9"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="21"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="0" number="51"/>
- <line hits="0" number="52"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="61"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="61" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="65"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="67"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="71" number="68"/>
- <line hits="1" number="69"/>
- <line hits="0" number="71"/>
- <line hits="1" number="73"/>
- <line hits="1" number="77"/>
- <line hits="1" number="82"/>
- <line hits="1" number="84"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="85"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="85" number="86"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="87"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="88"/>
- <line hits="1" number="89"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.7211" complexity="0" line-rate="0.8813" name="scrapy.core">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/core/__init__.py" line-rate="1" name="__init__.py">
- <methods/>
- <lines/>
- </class>
- <class branch-rate="0.8657" complexity="0" filename="scrapy/core/engine.py" line-rate="0.9312" name="engine.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="47"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="50" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="53"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line hits="1" number="70"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="80"/>
- <line hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="93"/>
- <line hits="1" number="95"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="96"/>
- <line hits="1" number="98"/>
- <line hits="1" number="100"/>
- <line hits="1" number="102"/>
- <line hits="0" number="104"/>
- <line hits="1" number="106"/>
- <line hits="0" number="108"/>
- <line hits="1" number="110"/>
- <line hits="1" number="111"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="112"/>
- <line hits="1" number="113"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="116" number="115"/>
- <line hits="0" number="116"/>
- <line hits="0" number="117"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="119"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="120"/>
- <line hits="1" number="121"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="123"/>
- <line hits="1" number="124"/>
- <line hits="1" number="125"/>
- <line hits="1" number="126"/>
- <line hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line hits="1" number="129"/>
- <line hits="1" number="130"/>
- <line hits="1" number="133"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="135"/>
- <line hits="1" number="136"/>
- <line hits="1" number="138"/>
- <line hits="1" number="139"/>
- <line hits="1" number="140"/>
- <line hits="1" number="145"/>
- <line hits="1" number="146"/>
- <line hits="1" number="147"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="148"/>
- <line hits="1" number="149"/>
- <line hits="1" number="150"/>
- <line hits="1" number="151"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="152"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="155"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="156"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="159"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="160"/>
- <line hits="1" number="163"/>
- <line hits="1" number="165"/>
- <line hits="1" number="166"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="168"/>
- <line hits="1" number="169"/>
- <line hits="1" number="170"/>
- <line hits="1" number="172"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="173"/>
- <line hits="1" number="176"/>
- <line hits="1" number="178"/>
- <line hits="1" number="179"/>
- <line hits="1" number="180"/>
- <line hits="1" number="181"/>
- <line hits="1" number="182"/>
- <line hits="1" number="183"/>
- <line hits="1" number="184"/>
- <line hits="1" number="186"/>
- <line hits="1" number="188"/>
- <line hits="1" number="190"/>
- <line hits="1" number="192"/>
- <line hits="1" number="194"/>
- <line hits="1" number="195"/>
- <line hits="1" number="197"/>
- <line hits="1" number="198"/>
- <line hits="1" number="200"/>
- <line hits="1" number="201"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="203"/>
- <line hits="1" number="204"/>
- <line hits="1" number="207"/>
- <line hits="0" number="208"/>
- <line hits="0" number="209"/>
- <line hits="0" number="210"/>
- <line hits="0" number="211"/>
- <line hits="0" number="212"/>
- <line hits="1" number="214"/>
- <line hits="0" number="215"/>
- <line hits="0" number="216"/>
- <line hits="1" number="219"/>
- <line hits="1" number="220"/>
- <line hits="1" number="221"/>
- <line hits="1" number="222"/>
- <line hits="1" number="223"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="224"/>
- <line hits="1" number="225"/>
- <line hits="1" number="226"/>
- <line hits="1" number="227"/>
- <line hits="1" number="228"/>
- <line hits="1" number="230"/>
- <line hits="1" number="232"/>
- <line hits="1" number="233"/>
- <line hits="1" number="234"/>
- <line hits="1" number="236"/>
- <line hits="1" number="237"/>
- <line hits="1" number="238"/>
- <line hits="1" number="239"/>
- <line hits="1" number="241"/>
- <line hits="1" number="242"/>
- <line hits="1" number="243"/>
- <line hits="1" number="245"/>
- <line hits="1" number="246"/>
- <line hits="1" number="247"/>
- <line hits="1" number="248"/>
- <line hits="1" number="249"/>
- <line hits="1" number="250"/>
- <line hits="1" number="251"/>
- <line hits="1" number="252"/>
- <line hits="1" number="253"/>
- <line hits="1" number="254"/>
- <line hits="1" number="255"/>
- <line hits="1" number="256"/>
- <line hits="1" number="258"/>
- <line hits="1" number="266"/>
- <line branch="true" condition-coverage="66% (2/3)" hits="1" missing-branches="270" number="268"/>
- <line hits="0" number="270"/>
- <line hits="0" number="271"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="273"/>
- <line hits="1" number="274"/>
- <line hits="1" number="276"/>
- <line hits="1" number="279"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="281" number="280"/>
- <line hits="0" number="281"/>
- <line hits="1" number="282"/>
- <line hits="1" number="286"/>
- <line hits="1" number="288"/>
- <line hits="1" number="289"/>
- <line hits="0" number="290"/>
- <line hits="1" number="295"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="297"/>
- <line hits="1" number="298"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="300"/>
- <line hits="1" number="301"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="303"/>
- <line hits="1" number="304"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="306"/>
- <line hits="1" number="308"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="310"/>
- <line hits="1" number="311"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="313"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="317"/>
- <line hits="1" number="318"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="320"/>
- <line hits="1" number="321"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="323"/>
- <line hits="1" number="325"/>
- <line hits="1" number="327"/>
- <line hits="1" number="328"/>
- <line hits="1" number="329"/>
- <line hits="1" number="330"/>
- <line hits="1" number="332"/>
- <line hits="1" number="334"/>
- <line hits="1" number="335"/>
- </lines>
- </class>
- <class branch-rate="0.4286" complexity="0" filename="scrapy/core/scheduler.py" line-rate="0.697" name="scheduler.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="43"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="45" number="44"/>
- <line hits="0" number="45"/>
- <line hits="0" number="46"/>
- <line hits="0" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="56" number="55"/>
- <line hits="0" number="56"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="68"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="70" number="69"/>
- <line hits="0" number="70"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="78"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="81" number="79"/>
- <line hits="1" number="80"/>
- <line hits="0" number="81"/>
- <line hits="0" number="82"/>
- <line hits="0" number="83"/>
- <line hits="0" number="84"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="86,89" number="85"/>
- <line hits="0" number="86"/>
- <line hits="0" number="89"/>
- <line hits="0" number="91"/>
- <line hits="1" number="93"/>
- <line hits="1" number="94"/>
- <line hits="1" number="96"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="98" number="97"/>
- <line hits="0" number="98"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,100" number="99"/>
- <line hits="0" number="100"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="105"/>
- <line hits="0" number="106"/>
- <line hits="1" number="108"/>
- <line hits="0" number="109"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="111,114" number="110"/>
- <line hits="0" number="111"/>
- <line hits="0" number="112"/>
- <line hits="0" number="114"/>
- <line hits="0" number="115"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="117,119" number="116"/>
- <line hits="0" number="117"/>
- <line hits="0" number="119"/>
- <line hits="1" number="121"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="123" number="122"/>
- <line hits="0" number="123"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="125,126" number="124"/>
- <line hits="0" number="125"/>
- <line hits="0" number="126"/>
- </lines>
- </class>
- <class branch-rate="0.6471" complexity="0" filename="scrapy/core/scraper.py" line-rate="0.9048" name="scraper.py">
- <methods/>
- <lines>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="24"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="56"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="65"/>
- <line hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="77"/>
- <line hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line hits="1" number="83"/>
- <line hits="1" number="85"/>
- <line hits="1" number="86"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="89"/>
- <line hits="1" number="91"/>
- <line hits="1" number="93"/>
- <line hits="1" number="95"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="96"/>
- <line hits="1" number="97"/>
- <line hits="1" number="99"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="104"/>
- <line hits="1" number="105"/>
- <line hits="1" number="106"/>
- <line hits="1" number="107"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="108"/>
- <line hits="1" number="113"/>
- <line hits="1" number="114"/>
- <line hits="1" number="116"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="117"/>
- <line hits="1" number="118"/>
- <line hits="1" number="119"/>
- <line hits="1" number="121"/>
- <line hits="1" number="124"/>
- <line hits="1" number="126"/>
- <line hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line hits="1" number="129"/>
- <line hits="1" number="131"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="134"/>
- <line hits="1" number="135"/>
- <line hits="1" number="139"/>
- <line hits="1" number="140"/>
- <line hits="1" number="143"/>
- <line hits="1" number="144"/>
- <line hits="1" number="145"/>
- <line hits="1" number="146"/>
- <line hits="1" number="147"/>
- <line hits="1" number="149"/>
- <line hits="1" number="150"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="152" number="151"/>
- <line hits="0" number="152"/>
- <line hits="0" number="153"/>
- <line hits="1" number="154"/>
- <line hits="1" number="160"/>
- <line hits="1" number="165"/>
- <line hits="1" number="170"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="171"/>
- <line hits="1" number="172"/>
- <line hits="1" number="173"/>
- <line hits="1" number="174"/>
- <line hits="1" number="176"/>
- <line hits="1" number="178"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="182"/>
- <line hits="1" number="183"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="189" number="184"/>
- <line hits="1" number="185"/>
- <line hits="1" number="186"/>
- <line hits="1" number="187"/>
- <line hits="1" number="188"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="190,192" number="189"/>
- <line hits="0" number="190"/>
- <line hits="0" number="192"/>
- <line hits="0" number="193"/>
- <line hits="1" number="198"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="216" number="202"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="205" number="204"/>
- <line hits="0" number="205"/>
- <line hits="1" number="210"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="216" number="211"/>
- <line hits="1" number="212"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="217" number="216"/>
- <line hits="0" number="217"/>
- <line hits="1" number="219"/>
- <line hits="1" number="222"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="224" number="223"/>
- <line hits="0" number="224"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="226,232" number="225"/>
- <line hits="0" number="226"/>
- <line hits="0" number="227"/>
- <line hits="0" number="228"/>
- <line hits="0" number="232"/>
- <line hits="1" number="236"/>
- <line hits="1" number="237"/>
- <line hits="1" number="238"/>
- </lines>
- </class>
- <class branch-rate="0.7778" complexity="0" filename="scrapy/core/spidermw.py" line-rate="0.96" name="spidermw.py">
- <methods/>
- <lines>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="33" number="32"/>
- <line hits="0" number="33"/>
- <line hits="1" number="35"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="36"/>
- <line hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="61" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="54" number="59"/>
- <line hits="1" number="60"/>
- <line hits="0" number="61"/>
- <line hits="1" number="63"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="69"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.875" complexity="0" line-rate="0.9517" name="scrapy.core.downloader">
- <classes>
- <class branch-rate="0.7812" complexity="0" filename="scrapy/core/downloader/__init__.py" line-rate="0.9259" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="19"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="41"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="0" number="46"/>
- <line hits="0" number="47"/>
- <line hits="1" number="50"/>
- <line hits="0" number="51"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="64" number="63"/>
- <line hits="0" number="64"/>
- <line hits="0" number="66"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="68" number="67"/>
- <line hits="0" number="68"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="71" number="70"/>
- <line hits="0" number="71"/>
- <line hits="1" number="73"/>
- <line hits="1" number="76"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="86"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="104"/>
- <line hits="1" number="105"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="106"/>
- <line hits="1" number="107"/>
- <line hits="1" number="108"/>
- <line hits="1" number="109"/>
- <line hits="1" number="111"/>
- <line hits="1" number="113"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="114"/>
- <line hits="1" number="115"/>
- <line hits="1" number="117"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="119" number="118"/>
- <line hits="0" number="119"/>
- <line hits="1" number="121"/>
- <line hits="1" number="123"/>
- <line hits="1" number="124"/>
- <line hits="1" number="125"/>
- <line hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line hits="1" number="129"/>
- <line hits="1" number="131"/>
- <line hits="1" number="132"/>
- <line hits="1" number="133"/>
- <line hits="1" number="134"/>
- <line hits="1" number="135"/>
- <line hits="1" number="137"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="138"/>
- <line hits="1" number="139"/>
- <line hits="1" number="142"/>
- <line hits="1" number="143"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="144"/>
- <line hits="1" number="145"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="146"/>
- <line hits="1" number="147"/>
- <line hits="1" number="148"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="151"/>
- <line hits="1" number="152"/>
- <line hits="1" number="153"/>
- <line hits="1" number="154"/>
- <line hits="1" number="155"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="157"/>
- <line hits="1" number="158"/>
- <line hits="1" number="159"/>
- <line hits="1" number="161"/>
- <line hits="1" number="165"/>
- <line hits="1" number="169"/>
- <line hits="1" number="170"/>
- <line hits="1" number="174"/>
- <line hits="1" number="175"/>
- <line hits="1" number="181"/>
- <line hits="1" number="183"/>
- <line hits="1" number="184"/>
- <line hits="1" number="185"/>
- <line hits="1" number="186"/>
- <line hits="1" number="188"/>
- <line hits="1" number="190"/>
- <line hits="1" number="191"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="192"/>
- <line hits="1" number="193"/>
- <line hits="1" number="195"/>
- <line hits="1" number="196"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="198" number="197"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="197,199" number="198"/>
- <line hits="0" number="199"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/core/downloader/contextfactory.py" line-rate="0.8" name="contextfactory.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="0" number="6"/>
- <line hits="0" number="7"/>
- <line hits="1" number="10"/>
- <line hits="1" number="16"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="25"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="27" number="26"/>
- <line hits="0" number="27"/>
- <line hits="1" number="28"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/core/downloader/middleware.py" line-rate="1" name="middleware.py">
- <methods/>
- <lines>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="25"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line hits="1" number="67"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- </lines>
- </class>
- <class branch-rate="0.9444" complexity="0" filename="scrapy/core/downloader/webclient.py" line-rate="0.9892" name="webclient.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="38"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="65"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="69" number="68"/>
- <line hits="0" number="69"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="81"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line hits="1" number="93"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line hits="1" number="96"/>
- <line hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="109"/>
- <line hits="1" number="111"/>
- <line hits="1" number="114"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="117"/>
- <line hits="1" number="118"/>
- <line hits="1" number="120"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="122"/>
- <line hits="1" number="123"/>
- <line hits="1" number="125"/>
- <line hits="1" number="126"/>
- <line hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line hits="1" number="129"/>
- <line hits="1" number="130"/>
- <line hits="1" number="132"/>
- <line hits="1" number="133"/>
- <line hits="1" number="134"/>
- <line hits="1" number="135"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="136"/>
- <line hits="1" number="137"/>
- <line hits="1" number="138"/>
- <line hits="1" number="140"/>
- <line hits="1" number="141"/>
- <line hits="1" number="142"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.7742" complexity="0" line-rate="0.9312" name="scrapy.core.downloader.handlers">
- <classes>
- <class branch-rate="0.8125" complexity="0" filename="scrapy/core/downloader/handlers/__init__.py" line-rate="0.8846" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="12"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="24"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="33"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="40" number="39"/>
- <line hits="0" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="0" number="52"/>
- <line hits="0" number="53"/>
- <line hits="0" number="56"/>
- <line hits="0" number="57"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="66" number="65"/>
- <line hits="0" number="66"/>
- <line hits="1" number="68"/>
- <line hits="1" number="70"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="72"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="72" number="73"/>
- <line hits="1" number="74"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/core/downloader/handlers/file.py" line-rate="1" name="file.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- </lines>
- </class>
- <class branch-rate="0.75" complexity="0" filename="scrapy/core/downloader/handlers/ftp.py" line-rate="1" name="ftp.py">
- <methods/>
- <lines>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="62"/>
- <line hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="75"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="95"/>
- <line hits="1" number="96"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="103" number="99"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/core/downloader/handlers/http.py" line-rate="0.9091" name="http.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="7" number="4"/>
- <line hits="1" number="5"/>
- <line hits="0" number="7"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="19"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/core/downloader/handlers/http10.py" line-rate="0.9333" name="http10.py">
- <methods/>
- <lines>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="22" number="21"/>
- <line hits="0" number="22"/>
- <line hits="1" number="25"/>
- </lines>
- </class>
- <class branch-rate="0.8125" complexity="0" filename="scrapy/core/downloader/handlers/http11.py" line-rate="0.9536" name="http11.py">
- <methods/>
- <lines>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="41"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="56"/>
- <line hits="1" number="58"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="61" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="67"/>
- <line hits="1" number="71"/>
- <line hits="1" number="80"/>
- <line hits="1" number="82"/>
- <line hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="92"/>
- <line hits="1" number="94"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="98" number="96"/>
- <line hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="105"/>
- <line hits="1" number="110"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="111"/>
- <line hits="1" number="112"/>
- <line hits="1" number="114"/>
- <line hits="1" number="116"/>
- <line hits="1" number="119"/>
- <line hits="0" number="121"/>
- <line hits="1" number="123"/>
- <line hits="1" number="124"/>
- <line hits="1" number="125"/>
- <line hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line hits="1" number="129"/>
- <line hits="1" number="132"/>
- <line hits="1" number="140"/>
- <line hits="1" number="142"/>
- <line hits="1" number="144"/>
- <line hits="1" number="145"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="154" number="147"/>
- <line hits="1" number="148"/>
- <line hits="1" number="149"/>
- <line hits="0" number="154"/>
- <line hits="0" number="155"/>
- <line hits="1" number="162"/>
- <line hits="1" number="164"/>
- <line hits="1" number="165"/>
- <line hits="1" number="166"/>
- <line hits="1" number="168"/>
- <line hits="1" number="170"/>
- <line hits="1" number="171"/>
- <line hits="1" number="172"/>
- <line hits="1" number="173"/>
- <line hits="1" number="174"/>
- <line hits="1" number="175"/>
- <line hits="1" number="177"/>
- <line hits="1" number="178"/>
- <line hits="1" number="179"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="180"/>
- <line hits="1" number="181"/>
- <line hits="1" number="182"/>
- <line hits="1" number="183"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="184"/>
- <line hits="1" number="185"/>
- <line hits="1" number="187"/>
- <line hits="1" number="191"/>
- <line hits="1" number="193"/>
- <line hits="1" number="195"/>
- <line hits="1" number="198"/>
- <line hits="1" number="199"/>
- <line hits="1" number="200"/>
- <line hits="1" number="203"/>
- <line hits="1" number="204"/>
- <line hits="1" number="205"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="206"/>
- <line hits="1" number="207"/>
- <line hits="1" number="208"/>
- <line hits="1" number="210"/>
- <line hits="1" number="211"/>
- <line hits="1" number="213"/>
- <line hits="1" number="215"/>
- <line hits="1" number="216"/>
- <line hits="1" number="218"/>
- <line hits="1" number="219"/>
- <line hits="1" number="220"/>
- <line hits="1" number="222"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="223"/>
- <line hits="1" number="224"/>
- <line hits="1" number="225"/>
- <line hits="1" number="226"/>
- <line hits="1" number="228"/>
- <line hits="1" number="229"/>
- <line hits="1" number="230"/>
- <line hits="1" number="232"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="234"/>
- <line hits="1" number="235"/>
- <line hits="1" number="237"/>
- <line hits="1" number="238"/>
- <line hits="1" number="239"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="241"/>
- <line hits="1" number="242"/>
- <line hits="1" number="245"/>
- <line hits="1" number="246"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="249" number="248"/>
- <line hits="0" number="249"/>
- <line hits="1" number="253"/>
- <line hits="1" number="254"/>
- <line hits="1" number="256"/>
- <line hits="1" number="257"/>
- <line hits="1" number="258"/>
- <line hits="1" number="260"/>
- <line hits="1" number="261"/>
- <line hits="1" number="262"/>
- <line hits="1" number="263"/>
- <line hits="1" number="264"/>
- <line hits="1" number="265"/>
- <line hits="1" number="268"/>
- <line hits="1" number="269"/>
- <line hits="1" number="271"/>
- <line hits="1" number="272"/>
- <line hits="1" number="273"/>
- <line hits="1" number="275"/>
- <line hits="1" number="276"/>
- <line hits="1" number="277"/>
- <line hits="1" number="279"/>
- <line hits="0" number="280"/>
- <line hits="1" number="282"/>
- <line hits="0" number="283"/>
- <line hits="1" number="286"/>
- <line hits="1" number="288"/>
- <line hits="1" number="289"/>
- <line hits="1" number="290"/>
- <line hits="1" number="291"/>
- <line hits="1" number="292"/>
- <line hits="1" number="293"/>
- <line hits="1" number="294"/>
- <line hits="1" number="295"/>
- <line hits="1" number="297"/>
- <line hits="1" number="298"/>
- <line hits="1" number="299"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="302" number="301"/>
- <line hits="0" number="302"/>
- <line hits="0" number="306"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="309" number="308"/>
- <line hits="0" number="309"/>
- <line hits="1" number="314"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="315"/>
- <line hits="1" number="316"/>
- <line hits="1" number="318"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="319"/>
- <line hits="1" number="320"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="321"/>
- <line hits="1" number="322"/>
- <line hits="1" number="324"/>
- </lines>
- </class>
- <class branch-rate="0.6667" complexity="0" filename="scrapy/core/downloader/handlers/s3.py" line-rate="0.8" name="s3.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="0" number="11"/>
- <line hits="0" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="0" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="0" number="27"/>
- <line hits="0" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="40"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="42" number="41"/>
- <line hits="0" number="42"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="47" number="46"/>
- <line hits="0" number="47"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="0" number="51"/>
- <line hits="0" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="68"/>
- <line hits="1" number="69"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.9231" complexity="0" line-rate="0.9732" name="scrapy.downloadermiddlewares">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/downloadermiddlewares/__init__.py" line-rate="1" name="__init__.py">
- <methods/>
- <lines/>
- </class>
- <class branch-rate="0.9286" complexity="0" filename="scrapy/downloadermiddlewares/ajaxcrawl.py" line-rate="0.9762" name="ajaxcrawl.py">
- <methods/>
- <lines>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="14"/>
- <line hits="1" number="17"/>
- <line hits="1" number="23"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="31"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="1" number="37"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="90" number="89"/>
- <line hits="0" number="90"/>
- <line hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/downloadermiddlewares/chunked.py" line-rate="0.7143" name="chunked.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="4"/>
- <line hits="1" number="9"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="11" number="10"/>
- <line hits="0" number="11"/>
- <line hits="0" number="12"/>
- <line hits="1" number="13"/>
- </lines>
- </class>
- <class branch-rate="0.9231" complexity="0" filename="scrapy/downloadermiddlewares/cookies.py" line-rate="1" name="cookies.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="14"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="67"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="68"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="72"/>
- <line hits="1" number="74"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="81"/>
- <line hits="1" number="83"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="88"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line hits="1" number="92"/>
- <line hits="1" number="94"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/downloadermiddlewares/decompression.py" line-rate="0.9661" name="decompression.py">
- <methods/>
- <lines>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="0" number="16"/>
- <line hits="0" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="24"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="78"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/downloadermiddlewares/defaultheaders.py" line-rate="1" name="defaultheaders.py">
- <methods/>
- <lines>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="18"/>
- <line hits="1" number="19"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/downloadermiddlewares/downloadtimeout.py" line-rate="1" name="downloadtimeout.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="25"/>
- <line hits="1" number="26"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/downloadermiddlewares/httpauth.py" line-rate="1" name="httpauth.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="12"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="30"/>
- <line hits="1" number="31"/>
- </lines>
- </class>
- <class branch-rate="0.9615" complexity="0" filename="scrapy/downloadermiddlewares/httpcache.py" line-rate="0.9444" name="httpcache.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line hits="0" number="30"/>
- <line hits="0" number="31"/>
- <line hits="0" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="42" number="41"/>
- <line hits="0" number="42"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="59"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="66"/>
- <line hits="1" number="68"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line hits="1" number="83"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="86"/>
- <line hits="1" number="87"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line hits="1" number="93"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="99"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="103"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="104"/>
- <line hits="1" number="105"/>
- <line hits="1" number="106"/>
- <line hits="1" number="108"/>
- </lines>
- </class>
- <class branch-rate="0.8571" complexity="0" filename="scrapy/downloadermiddlewares/httpcompression.py" line-rate="0.9714" name="httpcompression.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="9"/>
- <line hits="1" number="13"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="16" number="15"/>
- <line hits="0" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="39" number="23"/>
- <line hits="1" number="24"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="31"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="41"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/downloadermiddlewares/httpproxy.py" line-rate="0.9487" name="httpproxy.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="0" number="6"/>
- <line hits="0" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="54"/>
- <line hits="1" number="55"/>
- </lines>
- </class>
- <class branch-rate="0.875" complexity="0" filename="scrapy/downloadermiddlewares/redirect.py" line-rate="0.9839" name="redirect.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="18" number="17"/>
- <line hits="0" number="18"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="41"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="54"/>
- <line hits="1" number="57"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="58"/>
- <line hits="1" number="62"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="69"/>
- <line hits="1" number="71"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="81"/>
- <line hits="1" number="83"/>
- <line hits="1" number="85"/>
- <line hits="1" number="86"/>
- <line hits="1" number="87"/>
- <line hits="1" number="90"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="91"/>
- <line hits="1" number="93"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="101" number="95"/>
- <line hits="1" number="96"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line hits="1" number="101"/>
- </lines>
- </class>
- <class branch-rate="0.9167" complexity="0" filename="scrapy/downloadermiddlewares/retry.py" line-rate="0.973" name="retry.py">
- <methods/>
- <lines>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="1" number="28"/>
- <line hits="1" number="32"/>
- <line hits="1" number="37"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="39" number="38"/>
- <line hits="0" number="39"/>
- <line hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="56"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="57"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line hits="1" number="68"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="74"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/downloadermiddlewares/robotstxt.py" line-rate="1" name="robotstxt.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="73"/>
- <line hits="1" number="75"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line hits="1" number="81"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="86"/>
- <line hits="1" number="87"/>
- <line hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line hits="1" number="96"/>
- <line hits="1" number="97"/>
- <line hits="1" number="99"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="103"/>
- <line hits="1" number="104"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/downloadermiddlewares/stats.py" line-rate="0.96" name="stats.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="13" number="12"/>
- <line hits="0" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/downloadermiddlewares/useragent.py" line-rate="1" name="useragent.py">
- <methods/>
- <lines>
- <line hits="1" number="3"/>
- <line hits="1" number="6"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="22"/>
- <line hits="1" number="23"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.6613" complexity="0" line-rate="0.75" name="scrapy.extensions">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/extensions/__init__.py" line-rate="1" name="__init__.py">
- <methods/>
- <lines/>
- </class>
- <class branch-rate="0.9375" complexity="0" filename="scrapy/extensions/closespider.py" line-rate="0.973" name="closespider.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="26"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="65" number="64"/>
- <line hits="0" number="65"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/extensions/corestats.py" line-rate="0.8846" name="corestats.py">
- <methods/>
- <lines>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="0" number="37"/>
- <line hits="0" number="38"/>
- <line hits="0" number="39"/>
- </lines>
- </class>
- <class branch-rate="0" complexity="0" filename="scrapy/extensions/debug.py" line-rate="0.4474" name="debug.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="0" number="23"/>
- <line hits="0" number="24"/>
- <line hits="0" number="25"/>
- <line hits="0" number="26"/>
- <line hits="0" number="27"/>
- <line hits="0" number="29"/>
- <line hits="1" number="31"/>
- <line hits="0" number="33"/>
- <line hits="1" number="35"/>
- <line hits="0" number="36"/>
- <line hits="0" number="41"/>
- <line hits="1" number="45"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,47" number="46"/>
- <line hits="0" number="47"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="49,52" number="48"/>
- <line hits="0" number="49"/>
- <line hits="0" number="50"/>
- <line hits="0" number="51"/>
- <line hits="0" number="52"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="0" number="57"/>
- <line hits="0" number="58"/>
- <line hits="0" number="59"/>
- <line hits="0" number="61"/>
- <line hits="1" number="63"/>
- <line hits="0" number="64"/>
- </lines>
- </class>
- <class branch-rate="0.75" complexity="0" filename="scrapy/extensions/feedexport.py" line-rate="0.7514" name="feedexport.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line hits="1" number="29"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="32"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="35"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="39"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="0" number="47"/>
- <line hits="1" number="49"/>
- <line hits="0" number="50"/>
- <line hits="1" number="52"/>
- <line hits="0" number="53"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line hits="0" number="88"/>
- <line hits="0" number="89"/>
- <line hits="0" number="90"/>
- <line hits="0" number="91"/>
- <line hits="0" number="92"/>
- <line hits="0" number="93"/>
- <line hits="0" number="94"/>
- <line hits="0" number="95"/>
- <line hits="0" number="96"/>
- <line hits="0" number="97"/>
- <line hits="0" number="98"/>
- <line hits="1" number="100"/>
- <line hits="0" number="101"/>
- <line hits="0" number="102"/>
- <line hits="0" number="103"/>
- <line hits="0" number="104"/>
- <line hits="0" number="105"/>
- <line hits="0" number="106"/>
- <line hits="1" number="109"/>
- <line hits="1" number="111"/>
- <line hits="0" number="112"/>
- <line hits="0" number="113"/>
- <line hits="0" number="114"/>
- <line hits="0" number="115"/>
- <line hits="0" number="116"/>
- <line hits="0" number="117"/>
- <line hits="1" number="119"/>
- <line hits="0" number="120"/>
- <line hits="0" number="121"/>
- <line hits="0" number="122"/>
- <line hits="0" number="123"/>
- <line hits="0" number="124"/>
- <line hits="0" number="125"/>
- <line hits="0" number="126"/>
- <line hits="0" number="127"/>
- <line hits="1" number="130"/>
- <line hits="1" number="131"/>
- <line hits="1" number="132"/>
- <line hits="1" number="133"/>
- <line hits="1" number="134"/>
- <line hits="1" number="135"/>
- <line hits="1" number="136"/>
- <line hits="1" number="139"/>
- <line hits="1" number="141"/>
- <line hits="1" number="142"/>
- <line hits="1" number="143"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="144"/>
- <line hits="1" number="145"/>
- <line hits="1" number="146"/>
- <line hits="1" number="147"/>
- <line hits="1" number="148"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="150" number="149"/>
- <line hits="0" number="150"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="152" number="151"/>
- <line hits="0" number="152"/>
- <line hits="1" number="153"/>
- <line hits="1" number="154"/>
- <line hits="1" number="155"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="156"/>
- <line hits="1" number="158"/>
- <line hits="1" number="160"/>
- <line hits="1" number="161"/>
- <line hits="1" number="162"/>
- <line hits="1" number="163"/>
- <line hits="1" number="164"/>
- <line hits="1" number="166"/>
- <line hits="1" number="167"/>
- <line hits="1" number="168"/>
- <line hits="1" number="169"/>
- <line hits="1" number="170"/>
- <line hits="1" number="171"/>
- <line hits="1" number="172"/>
- <line hits="1" number="174"/>
- <line hits="1" number="175"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="177" number="176"/>
- <line hits="0" number="177"/>
- <line hits="1" number="178"/>
- <line hits="1" number="179"/>
- <line hits="1" number="180"/>
- <line hits="1" number="183"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="184"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="186"/>
- <line hits="1" number="189"/>
- <line hits="1" number="191"/>
- <line hits="1" number="192"/>
- <line hits="1" number="193"/>
- <line hits="1" number="194"/>
- <line hits="1" number="195"/>
- <line hits="1" number="197"/>
- <line hits="1" number="198"/>
- <line hits="1" number="199"/>
- <line hits="1" number="200"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="201"/>
- <line hits="1" number="202"/>
- <line hits="1" number="203"/>
- <line hits="0" number="204"/>
- <line hits="0" number="205"/>
- <line hits="1" number="206"/>
- <line hits="1" number="208"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="211" number="209"/>
- <line hits="1" number="210"/>
- <line hits="0" number="211"/>
- <line hits="1" number="213"/>
- <line hits="1" number="214"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="223" number="215"/>
- <line hits="1" number="216"/>
- <line hits="1" number="217"/>
- <line hits="1" number="218"/>
- <line hits="0" number="219"/>
- <line hits="0" number="220"/>
- <line hits="0" number="223"/>
- <line hits="1" number="226"/>
- <line hits="1" number="227"/>
- <line hits="1" number="229"/>
- <line hits="1" number="230"/>
- <line hits="1" number="232"/>
- <line hits="1" number="233"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="234"/>
- <line hits="1" number="235"/>
- <line hits="1" number="236"/>
- <line hits="1" number="237"/>
- <line hits="1" number="238"/>
- <line hits="1" number="239"/>
- </lines>
- </class>
- <class branch-rate="0.9211" complexity="0" filename="scrapy/extensions/httpcache.py" line-rate="0.9611" name="httpcache.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="0" number="33"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="56"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="58" number="57"/>
- <line hits="0" number="58"/>
- <line hits="1" number="59"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="70"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="93"/>
- <line hits="1" number="95"/>
- <line hits="1" number="96"/>
- <line hits="1" number="97"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="105"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="106"/>
- <line hits="1" number="107"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="109"/>
- <line hits="1" number="110"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="112"/>
- <line hits="1" number="120"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="124" number="121"/>
- <line hits="1" number="122"/>
- <line hits="0" number="124"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="126,131" number="125"/>
- <line hits="0" number="126"/>
- <line hits="0" number="127"/>
- <line hits="0" number="128"/>
- <line hits="1" number="131"/>
- <line hits="1" number="132"/>
- <line hits="1" number="134"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="137"/>
- <line hits="1" number="138"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="139"/>
- <line hits="1" number="140"/>
- <line hits="1" number="143"/>
- <line hits="1" number="145"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="146"/>
- <line hits="1" number="147"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="149"/>
- <line hits="1" number="150"/>
- <line hits="1" number="152"/>
- <line hits="1" number="153"/>
- <line hits="1" number="154"/>
- <line hits="1" number="155"/>
- <line hits="1" number="156"/>
- <line hits="1" number="158"/>
- <line hits="1" number="161"/>
- <line hits="1" number="162"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="163"/>
- <line hits="1" number="164"/>
- <line hits="1" number="167"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="170"/>
- <line hits="1" number="171"/>
- <line hits="1" number="174"/>
- <line hits="1" number="178"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="179"/>
- <line hits="1" number="180"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="183"/>
- <line hits="1" number="184"/>
- <line hits="1" number="187"/>
- <line hits="1" number="189"/>
- <line hits="1" number="192"/>
- <line hits="1" number="195"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="199" number="196"/>
- <line hits="1" number="197"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="199"/>
- <line hits="1" number="200"/>
- <line hits="1" number="201"/>
- <line hits="1" number="202"/>
- <line hits="0" number="203"/>
- <line hits="0" number="204"/>
- <line hits="1" number="206"/>
- <line hits="1" number="209"/>
- <line hits="1" number="211"/>
- <line hits="1" number="212"/>
- <line hits="1" number="213"/>
- <line hits="1" number="214"/>
- <line hits="1" number="215"/>
- <line hits="1" number="217"/>
- <line hits="1" number="218"/>
- <line hits="1" number="219"/>
- <line hits="1" number="221"/>
- <line hits="1" number="222"/>
- <line hits="1" number="224"/>
- <line hits="1" number="225"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="226"/>
- <line hits="1" number="227"/>
- <line hits="1" number="228"/>
- <line hits="1" number="229"/>
- <line hits="1" number="230"/>
- <line hits="1" number="231"/>
- <line hits="1" number="232"/>
- <line hits="1" number="233"/>
- <line hits="1" number="234"/>
- <line hits="1" number="236"/>
- <line hits="1" number="237"/>
- <line hits="1" number="238"/>
- <line hits="1" number="244"/>
- <line hits="1" number="245"/>
- <line hits="1" number="247"/>
- <line hits="1" number="248"/>
- <line hits="1" number="249"/>
- <line hits="1" number="250"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="251"/>
- <line hits="1" number="252"/>
- <line hits="1" number="254"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="255"/>
- <line hits="1" number="256"/>
- <line hits="1" number="258"/>
- <line hits="1" number="260"/>
- <line hits="1" number="261"/>
- <line hits="1" number="264"/>
- <line hits="1" number="266"/>
- <line hits="1" number="267"/>
- <line hits="1" number="268"/>
- <line hits="1" number="269"/>
- <line hits="1" number="270"/>
- <line hits="1" number="272"/>
- <line hits="1" number="273"/>
- <line hits="1" number="275"/>
- <line hits="1" number="276"/>
- <line hits="1" number="278"/>
- <line hits="1" number="280"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="281"/>
- <line hits="1" number="282"/>
- <line hits="1" number="283"/>
- <line hits="1" number="284"/>
- <line hits="1" number="285"/>
- <line hits="1" number="286"/>
- <line hits="1" number="287"/>
- <line hits="1" number="288"/>
- <line hits="1" number="289"/>
- <line hits="1" number="290"/>
- <line hits="1" number="291"/>
- <line hits="1" number="292"/>
- <line hits="1" number="293"/>
- <line hits="1" number="295"/>
- <line hits="1" number="297"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="300" number="298"/>
- <line hits="1" number="299"/>
- <line hits="1" number="300"/>
- <line hits="1" number="307"/>
- <line hits="1" number="308"/>
- <line hits="1" number="309"/>
- <line hits="1" number="310"/>
- <line hits="1" number="311"/>
- <line hits="1" number="312"/>
- <line hits="1" number="313"/>
- <line hits="1" number="314"/>
- <line hits="1" number="315"/>
- <line hits="1" number="316"/>
- <line hits="1" number="317"/>
- <line hits="1" number="318"/>
- <line hits="1" number="320"/>
- <line hits="1" number="321"/>
- <line hits="1" number="322"/>
- <line hits="1" number="324"/>
- <line hits="1" number="325"/>
- <line hits="1" number="326"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="327"/>
- <line hits="1" number="328"/>
- <line hits="1" number="329"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="330"/>
- <line hits="1" number="331"/>
- <line hits="1" number="332"/>
- <line hits="1" number="333"/>
- <line hits="1" number="336"/>
- <line hits="1" number="338"/>
- <line hits="1" number="339"/>
- <line hits="1" number="340"/>
- <line hits="1" number="341"/>
- <line hits="1" number="342"/>
- <line hits="1" number="343"/>
- <line hits="1" number="345"/>
- <line hits="1" number="346"/>
- <line hits="1" number="347"/>
- <line hits="1" number="349"/>
- <line hits="1" number="352"/>
- <line hits="1" number="353"/>
- <line hits="1" number="355"/>
- <line hits="1" number="356"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="357"/>
- <line hits="1" number="358"/>
- <line hits="1" number="359"/>
- <line hits="1" number="360"/>
- <line hits="1" number="361"/>
- <line hits="1" number="362"/>
- <line hits="1" number="363"/>
- <line hits="1" number="364"/>
- <line hits="1" number="365"/>
- <line hits="1" number="367"/>
- <line hits="1" number="368"/>
- <line hits="1" number="369"/>
- <line hits="1" number="375"/>
- <line hits="1" number="376"/>
- <line hits="1" number="377"/>
- <line hits="1" number="378"/>
- <line hits="1" number="380"/>
- <line hits="1" number="381"/>
- <line hits="1" number="382"/>
- <line hits="1" number="383"/>
- <line hits="1" number="384"/>
- <line hits="1" number="385"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="387"/>
- <line hits="1" number="388"/>
- <line hits="1" number="390"/>
- <line hits="1" number="391"/>
- <line hits="0" number="392"/>
- <line hits="0" number="393"/>
- <line hits="1" number="395"/>
- <line hits="1" number="397"/>
- <line hits="1" number="398"/>
- <line hits="1" number="402"/>
- <line hits="1" number="414"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="415"/>
- <line hits="1" number="416"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="417"/>
- <line hits="1" number="418"/>
- <line hits="1" number="419"/>
- <line hits="1" number="422"/>
- <line hits="1" number="423"/>
- <line hits="1" number="424"/>
- <line hits="1" number="425"/>
- <line hits="1" number="426"/>
- </lines>
- </class>
- <class branch-rate="0.75" complexity="0" filename="scrapy/extensions/logstats.py" line-rate="1" name="logstats.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="11"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="50"/>
- <line hits="1" number="51"/>
- </lines>
- </class>
- <class branch-rate="0.1667" complexity="0" filename="scrapy/extensions/memdebug.py" line-rate="0.5238" name="memdebug.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="0" number="18"/>
- <line hits="1" number="20"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="24" number="22"/>
- <line hits="1" number="23"/>
- <line hits="0" number="24"/>
- <line hits="0" number="25"/>
- <line hits="0" number="26"/>
- <line hits="1" number="28"/>
- <line hits="0" number="29"/>
- <line hits="0" number="30"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,32" number="31"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="33,34" number="32"/>
- <line hits="0" number="33"/>
- <line hits="0" number="34"/>
- </lines>
- </class>
- <class branch-rate="0.03846" complexity="0" filename="scrapy/extensions/memusage.py" line-rate="0.2609" name="memusage.py">
- <methods/>
- <lines>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="27" number="25"/>
- <line hits="1" number="26"/>
- <line hits="0" number="27"/>
- <line hits="0" number="29"/>
- <line hits="0" number="30"/>
- <line hits="0" number="31"/>
- <line hits="0" number="33"/>
- <line hits="0" number="34"/>
- <line hits="0" number="35"/>
- <line hits="0" number="36"/>
- <line hits="0" number="37"/>
- <line hits="0" number="38"/>
- <line hits="0" number="39"/>
- <line hits="0" number="40"/>
- <line hits="0" number="41"/>
- <line hits="0" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="0" number="49"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="52,53" number="50"/>
- <line hits="0" number="52"/>
- <line hits="0" number="53"/>
- <line hits="1" number="55"/>
- <line hits="0" number="56"/>
- <line hits="0" number="57"/>
- <line hits="0" number="58"/>
- <line hits="0" number="59"/>
- <line hits="0" number="60"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="62,65" number="61"/>
- <line hits="0" number="62"/>
- <line hits="0" number="63"/>
- <line hits="0" number="64"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,66" number="65"/>
- <line hits="0" number="66"/>
- <line hits="0" number="67"/>
- <line hits="0" number="68"/>
- <line hits="1" number="70"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,72" number="71"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="71,73" number="72"/>
- <line hits="0" number="73"/>
- <line hits="1" number="75"/>
- <line hits="0" number="76"/>
- <line hits="1" number="78"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,80" number="79"/>
- <line hits="0" number="80"/>
- <line hits="0" number="81"/>
- <line hits="0" number="82"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="85,90" number="84"/>
- <line hits="0" number="85"/>
- <line hits="0" number="87"/>
- <line hits="0" number="88"/>
- <line hits="0" number="90"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="92,95" number="91"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,93" number="92"/>
- <line hits="0" number="93"/>
- <line hits="0" number="95"/>
- <line hits="1" number="97"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="99,100" number="98"/>
- <line hits="0" number="99"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,101" number="100"/>
- <line hits="0" number="101"/>
- <line hits="0" number="102"/>
- <line hits="0" number="103"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="106,110" number="105"/>
- <line hits="0" number="106"/>
- <line hits="0" number="108"/>
- <line hits="0" number="109"/>
- <line hits="0" number="110"/>
- <line hits="1" number="112"/>
- <line hits="0" number="114"/>
- <line hits="0" number="115"/>
- <line hits="0" number="116"/>
- <line hits="0" number="117"/>
- <line hits="0" number="119"/>
- <line hits="0" number="120"/>
- <line hits="0" number="121"/>
- <line hits="0" number="122"/>
- <line hits="0" number="123"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/extensions/spiderstate.py" line-rate="1" name="spiderstate.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="20"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- </lines>
- </class>
- <class branch-rate="0" complexity="0" filename="scrapy/extensions/statsmailer.py" line-rate="0.3043" name="statsmailer.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="0" number="14"/>
- <line hits="0" number="15"/>
- <line hits="0" number="16"/>
- <line hits="1" number="18"/>
- <line hits="0" number="20"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="22,23" number="21"/>
- <line hits="0" number="22"/>
- <line hits="0" number="23"/>
- <line hits="0" number="24"/>
- <line hits="0" number="25"/>
- <line hits="0" number="26"/>
- <line hits="1" number="28"/>
- <line hits="0" number="29"/>
- <line hits="0" number="30"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,32" number="31"/>
- <line hits="0" number="32"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,34" number="33"/>
- <line hits="0" number="34"/>
- </lines>
- </class>
- <class branch-rate="0.25" complexity="0" filename="scrapy/extensions/throttle.py" line-rate="0.449" name="throttle.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="0" number="26"/>
- <line hits="0" number="27"/>
- <line hits="0" number="28"/>
- <line hits="1" number="30"/>
- <line hits="0" number="31"/>
- <line hits="0" number="32"/>
- <line hits="1" number="34"/>
- <line hits="0" number="35"/>
- <line hits="1" number="37"/>
- <line hits="0" number="38"/>
- <line hits="1" number="40"/>
- <line hits="0" number="41"/>
- <line hits="0" number="42"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="44,46" number="43"/>
- <line hits="0" number="44"/>
- <line hits="0" number="46"/>
- <line hits="0" number="47"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,49" number="48"/>
- <line hits="0" number="49"/>
- <line hits="0" number="50"/>
- <line hits="0" number="51"/>
- <line hits="0" number="52"/>
- <line hits="1" number="64"/>
- <line hits="0" number="65"/>
- <line hits="0" number="66"/>
- <line hits="1" number="68"/>
- <line hits="0" number="74"/>
- <line hits="0" number="77"/>
- <line hits="0" number="81"/>
- <line hits="0" number="84"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="91,93" number="90"/>
- <line hits="0" number="91"/>
- <line hits="0" number="93"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.9118" complexity="0" line-rate="0.9441" name="scrapy.http">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/http/__init__.py" line-rate="1" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/http/common.py" line-rate="1" name="common.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- </lines>
- </class>
- <class branch-rate="0.8333" complexity="0" filename="scrapy/http/cookies.py" line-rate="0.9135" name="cookies.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="28"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="37" number="32"/>
- <line hits="1" number="33"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="0" number="37"/>
- <line hits="1" number="39"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="45"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="49" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="52" number="50"/>
- <line hits="0" number="52"/>
- <line hits="1" number="54"/>
- <line hits="0" number="56"/>
- <line hits="1" number="58"/>
- <line hits="0" number="59"/>
- <line hits="1" number="61"/>
- <line hits="0" number="62"/>
- <line hits="1" number="64"/>
- <line hits="0" number="65"/>
- <line hits="1" number="67"/>
- <line hits="0" number="68"/>
- <line hits="1" number="70"/>
- <line hits="0" number="71"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="78"/>
- <line hits="0" number="79"/>
- <line hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line hits="1" number="85"/>
- <line hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="96"/>
- <line hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="104"/>
- <line hits="1" number="105"/>
- <line hits="1" number="106"/>
- <line hits="1" number="108"/>
- <line hits="1" number="109"/>
- <line hits="1" number="112"/>
- <line hits="1" number="118"/>
- <line hits="1" number="119"/>
- <line hits="1" number="121"/>
- <line hits="1" number="122"/>
- <line hits="1" number="124"/>
- <line hits="1" number="125"/>
- <line hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line hits="1" number="130"/>
- <line hits="1" number="138"/>
- <line hits="1" number="141"/>
- <line hits="1" number="143"/>
- <line hits="1" number="145"/>
- <line hits="1" number="146"/>
- <line hits="1" number="148"/>
- <line hits="1" number="149"/>
- <line hits="1" number="151"/>
- <line hits="1" number="152"/>
- <line hits="1" number="155"/>
- <line hits="1" number="156"/>
- <line hits="1" number="162"/>
- <line hits="1" number="163"/>
- <line hits="1" number="166"/>
- <line hits="1" number="168"/>
- <line hits="1" number="169"/>
- <line hits="1" number="171"/>
- <line hits="1" number="172"/>
- <line hits="1" number="175"/>
- <line hits="1" number="176"/>
- <line hits="1" number="179"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/http/headers.py" line-rate="0.9836" name="headers.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="6"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line hits="1" number="28"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="0" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="72"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="73"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line hits="1" number="83"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.9714" complexity="0" line-rate="0.9838" name="scrapy.http.request">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/http/request/__init__.py" line-rate="1" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="68"/>
- <line hits="1" number="70"/>
- <line hits="1" number="72"/>
- <line hits="1" number="74"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line hits="1" number="79"/>
- <line hits="1" number="81"/>
- <line hits="1" number="83"/>
- <line hits="1" number="85"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="89"/>
- <line hits="1" number="91"/>
- <line hits="1" number="92"/>
- <line hits="1" number="93"/>
- </lines>
- </class>
- <class branch-rate="0.963" complexity="0" filename="scrapy/http/request/form.py" line-rate="0.9737" name="form.py">
- <methods/>
- <lines>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="45"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="55"/>
- <line hits="1" number="58"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="68"/>
- <line hits="1" number="69"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="81"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="86" number="85"/>
- <line hits="0" number="86"/>
- <line hits="1" number="87"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="91"/>
- <line hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line hits="1" number="98"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="0" number="104"/>
- <line hits="0" number="105"/>
- <line hits="1" number="107"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="111"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="115"/>
- <line hits="1" number="116"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="117"/>
- <line hits="1" number="118"/>
- <line hits="1" number="120"/>
- <line hits="1" number="121"/>
- <line hits="1" number="124"/>
- <line hits="1" number="125"/>
- <line hits="1" number="126"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line hits="1" number="129"/>
- <line hits="1" number="132"/>
- <line hits="1" number="133"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="134"/>
- <line hits="1" number="137"/>
- <line hits="1" number="138"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="139"/>
- <line hits="1" number="142"/>
- <line hits="1" number="143"/>
- <line hits="1" number="144"/>
- <line hits="1" number="147"/>
- <line hits="1" number="153"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="156"/>
- <line hits="1" number="157"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="160"/>
- <line hits="1" number="161"/>
- <line hits="1" number="162"/>
- <line hits="1" number="167"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="168"/>
- <line hits="1" number="169"/>
- <line hits="1" number="170"/>
- <line hits="1" number="171"/>
- <line hits="1" number="172"/>
- <line hits="1" number="174"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="178"/>
- <line hits="1" number="180"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="181"/>
- <line hits="1" number="182"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="183"/>
- <line hits="1" number="184"/>
- <line hits="1" number="187"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/http/request/rpc.py" line-rate="1" name="rpc.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="20"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="25"/>
- <line hits="1" number="28"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.8333" complexity="0" line-rate="0.9504" name="scrapy.http.response">
- <classes>
- <class branch-rate="0.625" complexity="0" filename="scrapy/http/response/__init__.py" line-rate="0.8889" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="0" number="27"/>
- <line hits="0" number="28"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="40" number="37"/>
- <line hits="1" number="38"/>
- <line hits="0" number="40"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="50" number="49"/>
- <line hits="0" number="50"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="52" number="51"/>
- <line hits="0" number="52"/>
- <line hits="1" number="57"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="68"/>
- <line hits="1" number="70"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line hits="1" number="79"/>
- <line hits="1" number="82"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/http/response/html.py" line-rate="1" name="html.py">
- <methods/>
- <lines>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- </lines>
- </class>
- <class branch-rate="0.9375" complexity="0" filename="scrapy/http/response/text.py" line-rate="0.9857" name="text.py">
- <methods/>
- <lines>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="18"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="30"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="32" number="31"/>
- <line hits="0" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="60"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line hits="1" number="70"/>
- <line hits="1" number="73"/>
- <line hits="1" number="75"/>
- <line hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="80"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="86"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="90"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="91"/>
- <line hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line hits="1" number="96"/>
- <line hits="1" number="98"/>
- <line hits="1" number="100"/>
- <line hits="1" number="102"/>
- <line hits="1" number="104"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="105"/>
- <line hits="1" number="106"/>
- <line hits="1" number="107"/>
- <line hits="1" number="109"/>
- <line hits="1" number="110"/>
- <line hits="1" number="112"/>
- <line hits="1" number="113"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/http/response/xml.py" line-rate="1" name="xml.py">
- <methods/>
- <lines>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.9355" complexity="0" line-rate="0.9832" name="scrapy.linkextractors">
- <classes>
- <class branch-rate="0.9643" complexity="0" filename="scrapy/linkextractors/__init__.py" line-rate="1" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="20"/>
- <line hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="42"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line hits="1" number="56"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="66"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="69"/>
- <line hits="1" number="71"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="91"/>
- <line hits="1" number="92"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line hits="1" number="96"/>
- <line hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="103" number="100"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="104"/>
- <line hits="1" number="106"/>
- <line hits="1" number="107"/>
- <line hits="1" number="111"/>
- </lines>
- </class>
- <class branch-rate="0.9167" complexity="0" filename="scrapy/linkextractors/htmlparser.py" line-rate="0.9655" name="htmlparser.py">
- <methods/>
- <lines>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="43" number="42"/>
- <line hits="0" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line hits="1" number="56"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="65"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="68"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="69"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="76"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="80"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line hits="1" number="84"/>
- <line hits="0" number="87"/>
- </lines>
- </class>
- <class branch-rate="0.9118" complexity="0" filename="scrapy/linkextractors/lxmlhtml.py" line-rate="0.9718" name="lxmlhtml.py">
- <methods/>
- <lines>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="22"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="26" number="23"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="31"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="32"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="37"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="49"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="56"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line hits="1" number="67"/>
- <line hits="0" number="68"/>
- <line hits="0" number="69"/>
- <line hits="1" number="71"/>
- <line hits="1" number="76"/>
- <line hits="1" number="78"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="79"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line hits="1" number="84"/>
- <line hits="1" number="86"/>
- <line hits="1" number="89"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="90"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="91"/>
- <line hits="1" number="92"/>
- <line hits="1" number="95"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="107"/>
- <line hits="1" number="108"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="109"/>
- <line hits="1" number="110"/>
- <line hits="1" number="111"/>
- <line hits="1" number="112"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/linkextractors/regex.py" line-rate="1" name="regex.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="18"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="36" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- </lines>
- </class>
- <class branch-rate="0.9722" complexity="0" filename="scrapy/linkextractors/sgml.py" line-rate="0.9888" name="sgml.py">
- <methods/>
- <lines>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="18"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="26"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="42"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="44" number="43"/>
- <line hits="0" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="53"/>
- <line hits="1" number="55"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="75"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="78"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="79"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="88"/>
- <line hits="1" number="89"/>
- <line hits="1" number="91"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="95"/>
- <line hits="1" number="98"/>
- <line hits="1" number="101"/>
- <line hits="1" number="103"/>
- <line hits="1" number="107"/>
- <line hits="1" number="113"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="114"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="115"/>
- <line hits="1" number="117"/>
- <line hits="1" number="118"/>
- <line hits="1" number="119"/>
- <line hits="1" number="122"/>
- <line hits="1" number="128"/>
- <line hits="1" number="130"/>
- <line hits="1" number="131"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="132"/>
- <line hits="1" number="133"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="134"/>
- <line hits="1" number="139"/>
- <line hits="1" number="141"/>
- <line hits="1" number="142"/>
- <line hits="1" number="143"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.9375" complexity="0" line-rate="0.9806" name="scrapy.loader">
- <classes>
- <class branch-rate="0.913" complexity="0" filename="scrapy/loader/__init__.py" line-rate="0.9726" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="51"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="67"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="72" number="71"/>
- <line hits="0" number="72"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="73"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="77"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="82" number="81"/>
- <line hits="0" number="82"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="83"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="95"/>
- <line hits="1" number="96"/>
- <line hits="1" number="97"/>
- <line hits="1" number="99"/>
- <line hits="1" number="100"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="103"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="105"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="107" number="106"/>
- <line hits="0" number="107"/>
- <line hits="1" number="108"/>
- <line hits="1" number="109"/>
- <line hits="1" number="110"/>
- <line hits="1" number="112"/>
- <line hits="1" number="113"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="114"/>
- <line hits="1" number="115"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="116"/>
- <line hits="1" number="117"/>
- <line hits="1" number="119"/>
- <line hits="1" number="121"/>
- <line hits="1" number="122"/>
- <line hits="1" number="123"/>
- <line hits="1" number="124"/>
- <line hits="1" number="125"/>
- <line hits="1" number="126"/>
- <line hits="1" number="127"/>
- <line hits="1" number="130"/>
- <line hits="1" number="131"/>
- <line hits="1" number="133"/>
- <line hits="1" number="134"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="135"/>
- <line hits="1" number="136"/>
- <line hits="1" number="138"/>
- <line hits="1" number="140"/>
- <line hits="1" number="141"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="142"/>
- <line hits="1" number="143"/>
- <line hits="1" number="145"/>
- <line hits="1" number="147"/>
- <line hits="1" number="148"/>
- <line hits="1" number="149"/>
- <line hits="1" number="150"/>
- <line hits="1" number="152"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="153"/>
- <line hits="1" number="154"/>
- <line hits="1" number="156"/>
- <line hits="1" number="157"/>
- <line hits="1" number="159"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="160"/>
- <line hits="1" number="161"/>
- <line hits="1" number="165"/>
- <line hits="1" number="166"/>
- <line hits="1" number="167"/>
- <line hits="1" number="169"/>
- <line hits="1" number="170"/>
- <line hits="1" number="171"/>
- <line hits="1" number="173"/>
- <line hits="1" number="174"/>
- <line hits="1" number="175"/>
- <line hits="1" number="177"/>
- <line hits="0" number="179"/>
- <line hits="1" number="181"/>
- <line hits="1" number="182"/>
- <line hits="1" number="183"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="184"/>
- <line hits="1" number="186"/>
- <line hits="1" number="187"/>
- <line hits="1" number="188"/>
- <line hits="1" number="190"/>
- <line hits="1" number="191"/>
- <line hits="1" number="192"/>
- <line hits="1" number="194"/>
- <line hits="1" number="195"/>
- <line hits="1" number="196"/>
- <line hits="1" number="198"/>
- <line hits="1" number="199"/>
- <line hits="1" number="200"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="201"/>
- <line hits="1" number="203"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/loader/common.py" line-rate="1" name="common.py">
- <methods/>
- <lines>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/loader/processors.py" line-rate="1" name="processors.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="46"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="53"/>
- <line hits="1" number="55"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="56"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="67"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line hits="1" number="79"/>
- <line hits="1" number="84"/>
- <line hits="1" number="87"/>
- <line hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="92"/>
- <line hits="1" number="93"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.6304" complexity="0" line-rate="0.7703" name="scrapy.pipelines">
- <classes>
- <class branch-rate="0.25" complexity="0" filename="scrapy/pipelines/__init__.py" line-rate="0.6111" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="18" number="17"/>
- <line hits="0" number="18"/>
- <line hits="0" number="19"/>
- <line hits="0" number="20"/>
- <line hits="0" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line hits="0" number="27"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,29" number="28"/>
- <line hits="0" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- </lines>
- </class>
- <class branch-rate="0.5263" complexity="0" filename="scrapy/pipelines/files.py" line-rate="0.7236" name="files.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="0" number="19"/>
- <line hits="0" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="35"/>
- <line hits="1" number="39"/>
- <line hits="1" number="41"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="43" number="42"/>
- <line hits="0" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line hits="0" number="55"/>
- <line hits="0" number="56"/>
- <line hits="0" number="57"/>
- <line hits="0" number="58"/>
- <line hits="0" number="59"/>
- <line hits="0" number="61"/>
- <line hits="0" number="62"/>
- <line hits="0" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="72"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="78"/>
- <line hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line hits="1" number="88"/>
- <line hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line hits="0" number="92"/>
- <line hits="0" number="93"/>
- <line hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line hits="1" number="97"/>
- <line hits="0" number="98"/>
- <line hits="0" number="99"/>
- <line hits="0" number="100"/>
- <line hits="0" number="101"/>
- <line hits="0" number="102"/>
- <line hits="0" number="103"/>
- <line hits="0" number="105"/>
- <line hits="1" number="107"/>
- <line hits="0" number="110"/>
- <line hits="0" number="111"/>
- <line hits="1" number="113"/>
- <line hits="0" number="114"/>
- <line hits="0" number="115"/>
- <line hits="0" number="116"/>
- <line hits="1" number="118"/>
- <line hits="0" number="120"/>
- <line hits="0" number="121"/>
- <line hits="0" number="122"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="124,126" number="123"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="125,126" number="124"/>
- <line hits="0" number="125"/>
- <line hits="0" number="126"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="128,129" number="127"/>
- <line hits="0" number="128"/>
- <line hits="0" number="129"/>
- <line hits="0" number="130"/>
- <line hits="1" number="134"/>
- <line hits="1" number="153"/>
- <line hits="1" number="154"/>
- <line hits="1" number="155"/>
- <line hits="1" number="160"/>
- <line hits="1" number="161"/>
- <line hits="1" number="163"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="165" number="164"/>
- <line hits="0" number="165"/>
- <line hits="1" number="166"/>
- <line hits="1" number="167"/>
- <line hits="1" number="169"/>
- <line hits="1" number="171"/>
- <line hits="1" number="172"/>
- <line hits="1" number="173"/>
- <line hits="1" number="175"/>
- <line hits="1" number="176"/>
- <line hits="1" number="177"/>
- <line hits="1" number="178"/>
- <line hits="1" number="179"/>
- <line hits="1" number="181"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="182"/>
- <line hits="1" number="183"/>
- <line hits="1" number="185"/>
- <line hits="1" number="186"/>
- <line hits="1" number="187"/>
- <line hits="1" number="189"/>
- <line hits="1" number="190"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="192" number="191"/>
- <line hits="0" number="192"/>
- <line hits="1" number="194"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="196" number="195"/>
- <line hits="0" number="196"/>
- <line hits="1" number="198"/>
- <line hits="1" number="199"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="200"/>
- <line hits="1" number="201"/>
- <line hits="1" number="203"/>
- <line hits="1" number="204"/>
- <line hits="1" number="211"/>
- <line hits="1" number="213"/>
- <line hits="1" number="214"/>
- <line hits="1" number="216"/>
- <line hits="1" number="217"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="218"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="219"/>
- <line hits="1" number="225"/>
- <line hits="1" number="227"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="229,238" number="228"/>
- <line hits="0" number="229"/>
- <line hits="0" number="230"/>
- <line hits="0" number="238"/>
- <line hits="1" number="240"/>
- <line hits="1" number="241"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="244" number="243"/>
- <line hits="0" number="244"/>
- <line hits="0" number="251"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="254" number="253"/>
- <line hits="0" number="254"/>
- <line hits="0" number="260"/>
- <line hits="1" number="262"/>
- <line hits="1" number="263"/>
- <line hits="1" number="269"/>
- <line hits="1" number="271"/>
- <line hits="1" number="272"/>
- <line hits="1" number="273"/>
- <line hits="0" number="274"/>
- <line hits="0" number="275"/>
- <line hits="0" number="281"/>
- <line hits="0" number="282"/>
- <line hits="0" number="283"/>
- <line hits="0" number="289"/>
- <line hits="1" number="291"/>
- <line hits="1" number="293"/>
- <line hits="0" number="294"/>
- <line hits="0" number="295"/>
- <line hits="1" number="298"/>
- <line hits="1" number="299"/>
- <line hits="1" number="301"/>
- <line hits="1" number="302"/>
- <line hits="1" number="303"/>
- <line hits="1" number="304"/>
- <line hits="1" number="305"/>
- <line hits="1" number="306"/>
- <line hits="1" number="308"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="311" number="309"/>
- <line hits="1" number="310"/>
- <line hits="1" number="311"/>
- <line hits="1" number="313"/>
- <line hits="1" number="315"/>
- <line hits="1" number="316"/>
- <line hits="1" number="317"/>
- <line hits="1" number="318"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="323"/>
- <line hits="1" number="324"/>
- <line hits="1" number="325"/>
- <line hits="1" number="327"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="330"/>
- <line hits="1" number="331"/>
- <line hits="1" number="332"/>
- <line hits="1" number="335"/>
- <line hits="1" number="336"/>
- <line hits="1" number="337"/>
- <line hits="1" number="340"/>
- <line hits="1" number="341"/>
- <line hits="1" number="342"/>
- </lines>
- </class>
- <class branch-rate="0.5769" complexity="0" filename="scrapy/pipelines/images.py" line-rate="0.7826" name="images.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="0" number="12"/>
- <line hits="0" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="25"/>
- <line hits="1" number="29"/>
- <line hits="1" number="33"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="60"/>
- <line hits="0" number="61"/>
- <line hits="1" number="63"/>
- <line hits="0" number="64"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="66,74" number="65"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="67,69" number="66"/>
- <line hits="0" number="67"/>
- <line hits="0" number="68"/>
- <line hits="0" number="69"/>
- <line hits="0" number="70"/>
- <line hits="0" number="74"/>
- <line hits="1" number="76"/>
- <line hits="0" number="77"/>
- <line hits="0" number="78"/>
- <line hits="0" number="80"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="82,85" number="81"/>
- <line hits="0" number="82"/>
- <line hits="0" number="85"/>
- <line hits="0" number="86"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,89" number="88"/>
- <line hits="0" number="89"/>
- <line hits="0" number="90"/>
- <line hits="0" number="91"/>
- <line hits="1" number="93"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="94"/>
- <line hits="1" number="95"/>
- <line hits="1" number="96"/>
- <line hits="1" number="97"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="99" number="98"/>
- <line hits="0" number="99"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="105"/>
- <line hits="1" number="106"/>
- <line hits="1" number="107"/>
- <line hits="1" number="109"/>
- <line hits="1" number="110"/>
- <line hits="1" number="112"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="115" number="113"/>
- <line hits="1" number="114"/>
- <line hits="1" number="115"/>
- <line hits="1" number="117"/>
- <line hits="1" number="119"/>
- <line hits="1" number="120"/>
- <line hits="1" number="121"/>
- <line hits="1" number="122"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line hits="1" number="129"/>
- <line hits="1" number="131"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="134"/>
- <line hits="1" number="135"/>
- <line hits="1" number="136"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="138" number="137"/>
- <line hits="0" number="138"/>
- <line hits="0" number="139"/>
- <line hits="1" number="142"/>
- <line hits="1" number="143"/>
- <line hits="1" number="145"/>
- <line hits="1" number="147"/>
- <line hits="1" number="148"/>
- <line hits="1" number="149"/>
- <line hits="1" number="150"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="155"/>
- <line hits="1" number="156"/>
- <line hits="1" number="157"/>
- <line hits="1" number="159"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="162"/>
- <line hits="1" number="163"/>
- <line hits="1" number="164"/>
- <line hits="1" number="167"/>
- <line hits="1" number="168"/>
- <line hits="1" number="171"/>
- <line hits="1" number="172"/>
- <line hits="1" number="173"/>
- <line hits="1" number="176"/>
- <line hits="1" number="177"/>
- <line hits="1" number="178"/>
- <line hits="1" number="181"/>
- <line hits="1" number="182"/>
- <line hits="1" number="183"/>
- </lines>
- </class>
- <class branch-rate="0.9167" complexity="0" filename="scrapy/pipelines/media.py" line-rate="0.8953" name="media.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="0" number="32"/>
- <line hits="0" number="33"/>
- <line hits="0" number="34"/>
- <line hits="0" number="35"/>
- <line hits="0" number="36"/>
- <line hits="0" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="73"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="76"/>
- <line hits="1" number="78"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="88" number="81"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line hits="0" number="88"/>
- <line hits="0" number="89"/>
- <line hits="0" number="90"/>
- <line hits="1" number="93"/>
- <line hits="1" number="95"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="96"/>
- <line hits="1" number="98"/>
- <line hits="1" number="99"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="103"/>
- <line hits="1" number="104"/>
- <line hits="1" number="107"/>
- <line hits="1" number="109"/>
- <line hits="1" number="111"/>
- <line hits="1" number="113"/>
- <line hits="1" number="115"/>
- <line hits="1" number="117"/>
- <line hits="1" number="119"/>
- <line hits="1" number="121"/>
- <line hits="1" number="123"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="125"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="126"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line hits="1" number="134"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="1" complexity="0" line-rate="0.9355" name="scrapy.selector">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/selector/__init__.py" line-rate="1" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/selector/csstranslator.py" line-rate="1" name="csstranslator.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="5"/>
- <line hits="1" number="9"/>
- <line hits="1" number="13"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/selector/lxmlsel.py" line-rate="0.8889" name="lxmlsel.py">
- <methods/>
- <lines>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="8"/>
- <line hits="1" number="11"/>
- <line hits="0" number="12"/>
- <line hits="1" number="16"/>
- <line hits="1" number="28"/>
- <line hits="1" number="39"/>
- <line hits="1" number="50"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/selector/unified.py" line-rate="0.9348" name="unified.py">
- <methods/>
- <lines>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="14"/>
- <line hits="1" number="17"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="0" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="57"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="70"/>
- <line hits="0" number="72"/>
- <line hits="0" number="74"/>
- <line hits="1" number="76"/>
- <line hits="1" number="78"/>
- <line hits="1" number="80"/>
- <line hits="1" number="82"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.9091" complexity="0" line-rate="0.9636" name="scrapy.settings">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/settings/__init__.py" line-rate="0.9627" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="14"/>
- <line hits="1" number="23"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="41"/>
- <line hits="0" number="42"/>
- <line hits="1" number="45"/>
- <line hits="1" number="48"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="71"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="85"/>
- <line hits="1" number="86"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="89"/>
- <line hits="1" number="91"/>
- <line hits="1" number="92"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="93"/>
- <line hits="1" number="94"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="95"/>
- <line hits="1" number="96"/>
- <line hits="1" number="98"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="105"/>
- <line hits="1" number="106"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="107"/>
- <line hits="1" number="108"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="109"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="110"/>
- <line hits="1" number="111"/>
- <line hits="1" number="113"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="114"/>
- <line hits="1" number="115"/>
- <line hits="1" number="117"/>
- <line hits="1" number="118"/>
- <line hits="1" number="120"/>
- <line hits="1" number="121"/>
- <line hits="1" number="123"/>
- <line hits="1" number="124"/>
- <line hits="1" number="125"/>
- <line hits="1" number="126"/>
- <line hits="1" number="128"/>
- <line hits="1" number="130"/>
- <line hits="1" number="134"/>
- <line hits="1" number="135"/>
- <line hits="1" number="136"/>
- <line hits="1" number="137"/>
- <line hits="1" number="138"/>
- <line hits="1" number="140"/>
- <line hits="1" number="142"/>
- <line hits="1" number="146"/>
- <line hits="1" number="147"/>
- <line hits="1" number="148"/>
- <line hits="1" number="149"/>
- <line hits="1" number="150"/>
- <line hits="1" number="153"/>
- <line hits="1" number="155"/>
- <line hits="1" number="156"/>
- <line hits="1" number="157"/>
- <line hits="1" number="158"/>
- <line hits="1" number="160"/>
- <line hits="0" number="161"/>
- <line hits="1" number="163"/>
- <line hits="1" number="164"/>
- <line hits="1" number="166"/>
- <line hits="1" number="167"/>
- <line hits="1" number="168"/>
- <line hits="1" number="170"/>
- <line hits="0" number="171"/>
- <line hits="1" number="173"/>
- <line hits="0" number="174"/>
- <line hits="1" number="177"/>
- <line hits="1" number="179"/>
- <line hits="1" number="180"/>
- <line hits="1" number="181"/>
- <line hits="1" number="183"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="184"/>
- <line hits="1" number="185"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="186"/>
- <line hits="1" number="187"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="188"/>
- <line hits="1" number="189"/>
- <line hits="1" number="190"/>
- <line hits="1" number="192"/>
- <line hits="0" number="193"/>
- <line hits="1" number="195"/>
- <line hits="1" number="200"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="202"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="203"/>
- <line hits="1" number="204"/>
- <line hits="1" number="206"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="208"/>
- <line hits="1" number="209"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="210"/>
- <line hits="1" number="211"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/settings/default_settings.py" line-rate="0.9924" name="default_settings.py">
- <methods/>
- <lines>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line hits="1" number="51"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="75"/>
- <line hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="80"/>
- <line hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line hits="1" number="107"/>
- <line hits="1" number="109"/>
- <line hits="1" number="111"/>
- <line hits="1" number="112"/>
- <line hits="1" number="113"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="115" number="114"/>
- <line hits="0" number="115"/>
- <line hits="1" number="117"/>
- <line hits="1" number="119"/>
- <line hits="1" number="121"/>
- <line hits="1" number="133"/>
- <line hits="1" number="134"/>
- <line hits="1" number="135"/>
- <line hits="1" number="136"/>
- <line hits="1" number="137"/>
- <line hits="1" number="138"/>
- <line hits="1" number="139"/>
- <line hits="1" number="146"/>
- <line hits="1" number="147"/>
- <line hits="1" number="157"/>
- <line hits="1" number="158"/>
- <line hits="1" number="159"/>
- <line hits="1" number="160"/>
- <line hits="1" number="161"/>
- <line hits="1" number="162"/>
- <line hits="1" number="163"/>
- <line hits="1" number="164"/>
- <line hits="1" number="165"/>
- <line hits="1" number="166"/>
- <line hits="1" number="167"/>
- <line hits="1" number="168"/>
- <line hits="1" number="170"/>
- <line hits="1" number="172"/>
- <line hits="1" number="173"/>
- <line hits="1" number="175"/>
- <line hits="1" number="176"/>
- <line hits="1" number="177"/>
- <line hits="1" number="178"/>
- <line hits="1" number="179"/>
- <line hits="1" number="180"/>
- <line hits="1" number="181"/>
- <line hits="1" number="182"/>
- <line hits="1" number="184"/>
- <line hits="1" number="186"/>
- <line hits="1" number="188"/>
- <line hits="1" number="189"/>
- <line hits="1" number="190"/>
- <line hits="1" number="191"/>
- <line hits="1" number="192"/>
- <line hits="1" number="194"/>
- <line hits="1" number="195"/>
- <line hits="1" number="197"/>
- <line hits="1" number="198"/>
- <line hits="1" number="199"/>
- <line hits="1" number="200"/>
- <line hits="1" number="201"/>
- <line hits="1" number="202"/>
- <line hits="1" number="204"/>
- <line hits="1" number="205"/>
- <line hits="1" number="207"/>
- <line hits="1" number="209"/>
- <line hits="1" number="211"/>
- <line hits="1" number="213"/>
- <line hits="1" number="214"/>
- <line hits="1" number="215"/>
- <line hits="1" number="217"/>
- <line hits="1" number="219"/>
- <line hits="1" number="220"/>
- <line hits="1" number="221"/>
- <line hits="1" number="222"/>
- <line hits="1" number="224"/>
- <line hits="1" number="226"/>
- <line hits="1" number="227"/>
- <line hits="1" number="228"/>
- <line hits="1" number="230"/>
- <line hits="1" number="232"/>
- <line hits="1" number="234"/>
- <line hits="1" number="244"/>
- <line hits="1" number="246"/>
- <line hits="1" number="247"/>
- <line hits="1" number="249"/>
- <line hits="1" number="251"/>
- <line hits="1" number="253"/>
- <line hits="1" number="255"/>
- <line hits="1" number="257"/>
- <line hits="1" number="258"/>
- <line hits="1" number="259"/>
- <line hits="1" number="261"/>
- <line hits="1" number="262"/>
- </lines>
- </class>
- <class branch-rate="0.25" complexity="0" filename="scrapy/settings/deprecated.py" line-rate="0.6" name="deprecated.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="23" number="22"/>
- <line hits="0" number="23"/>
- <line hits="0" number="24"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,26" number="25"/>
- <line hits="0" number="26"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.9423" complexity="0" line-rate="0.9853" name="scrapy.spidermiddlewares">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/spidermiddlewares/__init__.py" line-rate="1" name="__init__.py">
- <methods/>
- <lines/>
- </class>
- <class branch-rate="0.9375" complexity="0" filename="scrapy/spidermiddlewares/depth.py" line-rate="1" name="depth.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="43"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="50" number="44"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="58"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/spidermiddlewares/httperror.py" line-rate="1" name="httperror.py">
- <methods/>
- <lines>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="53"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/spidermiddlewares/offsite.py" line-rate="1" name="offsite.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="28"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="29"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="30"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="50"/>
- <line hits="1" number="52"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- </lines>
- </class>
- <class branch-rate="0.8333" complexity="0" filename="scrapy/spidermiddlewares/referer.py" line-rate="0.9231" name="referer.py">
- <methods/>
- <lines>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="14" number="13"/>
- <line hits="0" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="22"/>
- </lines>
- </class>
- <class branch-rate="0.8333" complexity="0" filename="scrapy/spidermiddlewares/urllength.py" line-rate="0.9474" name="urllength.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="24" number="23"/>
- <line hits="0" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="37"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="0.4851" complexity="0" line-rate="0.7794" name="scrapy.spiders">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/spiders/__init__.py" line-rate="0.9844" name="__init__.py">
- <methods/>
- <lines>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="17"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="25"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="68"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="75"/>
- <line hits="0" number="76"/>
- <line hits="1" number="78"/>
- <line hits="1" number="80"/>
- <line hits="1" number="82"/>
- <line hits="1" number="84"/>
- <line hits="1" number="86"/>
- <line hits="1" number="88"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="95"/>
- <line hits="1" number="98"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="105"/>
- <line hits="1" number="106"/>
- <line hits="1" number="108"/>
- <line hits="1" number="115"/>
- <line hits="1" number="116"/>
- <line hits="1" number="117"/>
- </lines>
- </class>
- <class branch-rate="0.5833" complexity="0" filename="scrapy/spiders/crawl.py" line-rate="0.8028" name="crawl.py">
- <methods/>
- <lines>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line hits="0" number="43"/>
- <line hits="1" number="45"/>
- <line hits="0" number="46"/>
- <line hits="1" number="48"/>
- <line hits="0" number="49"/>
- <line hits="1" number="51"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="53" number="52"/>
- <line hits="0" number="53"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="60" number="58"/>
- <line hits="1" number="59"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="0" number="67"/>
- <line hits="0" number="68"/>
- <line hits="1" number="70"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="72,77" number="71"/>
- <line hits="0" number="72"/>
- <line hits="0" number="73"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="75,77" number="74"/>
- <line hits="0" number="75"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,78" number="77"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,79" number="78"/>
- <line hits="0" number="79"/>
- <line hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="85"/>
- <line hits="1" number="86"/>
- <line hits="1" number="88"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line hits="1" number="92"/>
- <line hits="1" number="94"/>
- <line hits="1" number="96"/>
- <line hits="1" number="97"/>
- <line hits="1" number="99"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/spiders/feed.py" line-rate="0.6923" name="feed.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="14"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="28"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="48,49" number="47"/>
- <line hits="0" number="48"/>
- <line hits="0" number="49"/>
- <line hits="1" number="51"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="66" number="65"/>
- <line hits="0" number="66"/>
- <line hits="1" number="68"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="75" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="76,80" number="75"/>
- <line hits="0" number="76"/>
- <line hits="0" number="77"/>
- <line hits="0" number="78"/>
- <line hits="0" number="80"/>
- <line hits="1" number="82"/>
- <line hits="1" number="84"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="85"/>
- <line hits="1" number="86"/>
- <line hits="1" number="87"/>
- <line hits="1" number="89"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line hits="1" number="94"/>
- <line hits="1" number="103"/>
- <line hits="1" number="104"/>
- <line hits="1" number="105"/>
- <line hits="1" number="107"/>
- <line hits="0" number="109"/>
- <line hits="1" number="111"/>
- <line hits="0" number="113"/>
- <line hits="1" number="115"/>
- <line hits="0" number="117"/>
- <line hits="1" number="119"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,127" number="126"/>
- <line hits="0" number="127"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="126,129" number="128"/>
- <line hits="0" number="129"/>
- <line hits="1" number="131"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="133,134" number="132"/>
- <line hits="0" number="133"/>
- <line hits="0" number="134"/>
- <line hits="0" number="135"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/spiders/init.py" line-rate="1" name="init.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="5"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="16"/>
- <line hits="1" number="18"/>
- <line hits="1" number="31"/>
- </lines>
- </class>
- <class branch-rate="0.3023" complexity="0" filename="scrapy/spiders/sitemap.py" line-rate="0.5968" name="sitemap.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="23"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="26" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="31" number="30"/>
- <line hits="0" number="31"/>
- <line hits="1" number="33"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="35,38" number="34"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,36" number="35"/>
- <line hits="0" number="36"/>
- <line hits="0" number="38"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="40,44" number="39"/>
- <line hits="0" number="40"/>
- <line hits="0" number="42"/>
- <line hits="0" number="44"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="46,49" number="45"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,47" number="46"/>
- <line branch="true" condition-coverage="0% (0/3)" hits="0" missing-branches="exit,46,48" number="47"/>
- <line hits="0" number="48"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,50" number="49"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,51" number="50"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="50,52" number="51"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="51,53" number="52"/>
- <line hits="0" number="53"/>
- <line hits="0" number="54"/>
- <line hits="1" number="56"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="70"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="73" number="71"/>
- <line hits="1" number="72"/>
- <line hits="0" number="73"/>
- <line hits="1" number="76"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,78" number="77"/>
- <line hits="0" number="78"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,82" number="81"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="77,83" number="82"/>
- <line hits="0" number="83"/>
- </lines>
- </class>
- </classes>
- </package>
- <package branch-rate="1" complexity="0" line-rate="1" name="scrapy.templates.project.module">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/templates/project/module/__init__.py" line-rate="1" name="__init__.py">
- <methods/>
- <lines/>
- </class>
- </classes>
- </package>
- <package branch-rate="1" complexity="0" line-rate="1" name="scrapy.templates.project.module.spiders">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/templates/project/module/spiders/__init__.py" line-rate="1" name="__init__.py">
- <methods/>
- <lines/>
- </class>
- </classes>
- </package>
- <package branch-rate="0.7586" complexity="0" line-rate="0.8436" name="scrapy.utils">
- <classes>
- <class branch-rate="1" complexity="0" filename="scrapy/utils/__init__.py" line-rate="1" name="__init__.py">
- <methods/>
- <lines/>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/utils/benchserver.py" line-rate="0.4375" name="benchserver.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="0" number="13"/>
- <line hits="1" number="15"/>
- <line hits="0" number="16"/>
- <line hits="0" number="17"/>
- <line hits="0" number="18"/>
- <line hits="0" number="19"/>
- <line hits="0" number="20"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="22,26" number="21"/>
- <line hits="0" number="22"/>
- <line hits="0" number="23"/>
- <line hits="0" number="24"/>
- <line hits="0" number="26"/>
- <line hits="0" number="27"/>
- <line hits="1" number="30"/>
- <line hits="0" number="31"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="0" number="40"/>
- <line hits="0" number="41"/>
- <line hits="0" number="42"/>
- <line hits="0" number="43"/>
- <line hits="0" number="44"/>
- </lines>
- </class>
- <class branch-rate="0.76" complexity="0" filename="scrapy/utils/conf.py" line-rate="0.9" name="conf.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="11"/>
- <line hits="1" number="17"/>
- <line branch="true" condition-coverage="100% (3/3)" hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="36"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="40"/>
- <line hits="1" number="43"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="52" number="51"/>
- <line hits="0" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="56"/>
- <line hits="1" number="61"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="63" number="62"/>
- <line hits="0" number="63"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="66" number="65"/>
- <line hits="0" number="66"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,68" number="67"/>
- <line hits="0" number="68"/>
- <line hits="1" number="71"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line hits="1" number="82"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="87" number="85"/>
- <line hits="1" number="86"/>
- <line hits="1" number="87"/>
- </lines>
- </class>
- <class branch-rate="0.5833" complexity="0" filename="scrapy/utils/console.py" line-rate="0.6296" name="console.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="0" number="9"/>
- <line hits="0" number="10"/>
- <line hits="0" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="0" number="15"/>
- <line hits="0" number="16"/>
- <line hits="0" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="0" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="0" number="34"/>
- <line hits="0" number="35"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="0" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="58" number="56"/>
- <line hits="1" number="57"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="63"/>
- <line hits="0" number="64"/>
- <line hits="0" number="65"/>
- <line hits="1" number="67"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="72,74" number="71"/>
- <line hits="0" number="72"/>
- <line hits="0" number="74"/>
- <line hits="0" number="75"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,77" number="76"/>
- <line hits="0" number="77"/>
- <line hits="0" number="78"/>
- <line hits="0" number="79"/>
- </lines>
- </class>
- <class branch-rate="0.25" complexity="0" filename="scrapy/utils/datatypes.py" line-rate="0.5943" name="datatypes.py">
- <methods/>
- <lines>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="0" number="50"/>
- <line hits="0" number="51"/>
- <line hits="1" number="53"/>
- <line hits="0" number="54"/>
- <line hits="1" number="56"/>
- <line hits="0" number="57"/>
- <line hits="1" number="59"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="61,62" number="60"/>
- <line hits="0" number="61"/>
- <line hits="0" number="62"/>
- <line hits="0" number="63"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="65,66" number="64"/>
- <line hits="0" number="65"/>
- <line hits="0" number="66"/>
- <line hits="1" number="68"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="75,76" number="74"/>
- <line hits="0" number="75"/>
- <line hits="0" number="76"/>
- <line hits="1" number="78"/>
- <line hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line hits="0" number="82"/>
- <line hits="0" number="83"/>
- <line hits="1" number="85"/>
- <line hits="1" number="86"/>
- <line hits="1" number="88"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="90,91" number="89"/>
- <line hits="0" number="90"/>
- <line hits="0" number="91"/>
- <line hits="1" number="93"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="95,96" number="94"/>
- <line hits="0" number="95"/>
- <line hits="0" number="96"/>
- <line hits="1" number="98"/>
- <line hits="0" number="100"/>
- <line hits="0" number="101"/>
- <line hits="1" number="103"/>
- <line hits="0" number="108"/>
- <line hits="1" number="110"/>
- <line hits="0" number="112"/>
- <line hits="1" number="114"/>
- <line hits="0" number="116"/>
- <line hits="1" number="118"/>
- <line hits="0" number="120"/>
- <line hits="1" number="122"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="125,126" number="124"/>
- <line hits="0" number="125"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="127,137" number="126"/>
- <line hits="0" number="127"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="129,132" number="128"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="130,137" number="129"/>
- <line hits="0" number="130"/>
- <line hits="0" number="132"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="134,137" number="133"/>
- <line hits="0" number="134"/>
- <line hits="0" number="135"/>
- <line hits="0" number="136"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,138" number="137"/>
- <line hits="0" number="138"/>
- <line hits="1" number="140"/>
- <line hits="1" number="143"/>
- <line hits="0" number="144"/>
- <line hits="0" number="145"/>
- <line hits="0" number="146"/>
- <line hits="0" number="147"/>
- <line hits="1" number="149"/>
- <line hits="0" number="150"/>
- <line hits="0" number="151"/>
- <line hits="1" number="153"/>
- <line hits="0" number="154"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="156,158" number="155"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="157,158" number="156"/>
- <line hits="0" number="157"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="159,160" number="158"/>
- <line hits="0" number="159"/>
- <line hits="0" number="160"/>
- <line hits="1" number="163"/>
- <line hits="1" number="165"/>
- <line hits="1" number="167"/>
- <line hits="1" number="168"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="169"/>
- <line hits="1" number="170"/>
- <line hits="1" number="172"/>
- <line hits="1" number="173"/>
- <line hits="1" number="175"/>
- <line hits="1" number="176"/>
- <line hits="1" number="178"/>
- <line hits="1" number="179"/>
- <line hits="1" number="181"/>
- <line hits="1" number="182"/>
- <line hits="1" number="183"/>
- <line hits="1" number="185"/>
- <line hits="1" number="186"/>
- <line hits="1" number="187"/>
- <line hits="1" number="189"/>
- <line hits="1" number="191"/>
- <line hits="1" number="193"/>
- <line hits="1" number="195"/>
- <line hits="1" number="197"/>
- <line hits="1" number="198"/>
- <line hits="1" number="200"/>
- <line hits="1" number="201"/>
- <line hits="1" number="203"/>
- <line hits="1" number="204"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="205"/>
- <line hits="1" number="206"/>
- <line hits="1" number="208"/>
- <line hits="1" number="209"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="210"/>
- <line hits="1" number="212"/>
- <line hits="1" number="213"/>
- <line hits="1" number="216"/>
- <line hits="1" number="224"/>
- <line hits="1" number="225"/>
- <line hits="1" number="227"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="233" number="228"/>
- <line hits="1" number="229"/>
- <line hits="1" number="230"/>
- <line hits="1" number="231"/>
- <line hits="1" number="232"/>
- <line hits="0" number="233"/>
- <line hits="1" number="235"/>
- <line hits="0" number="236"/>
- <line hits="1" number="238"/>
- <line hits="0" number="239"/>
- <line hits="0" number="240"/>
- <line hits="0" number="241"/>
- <line hits="0" number="242"/>
- <line hits="1" number="244"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="246,248" number="245"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="245,247" number="246"/>
- <line hits="0" number="247"/>
- <line hits="0" number="248"/>
- <line hits="1" number="250"/>
- <line hits="0" number="251"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="253,254" number="252"/>
- <line hits="0" number="253"/>
- <line hits="0" number="254"/>
- <line hits="1" number="256"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="257"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="258"/>
- <line hits="1" number="259"/>
- <line hits="1" number="260"/>
- <line hits="1" number="262"/>
- <line hits="1" number="264"/>
- <line hits="0" number="266"/>
- <line hits="1" number="269"/>
- <line hits="1" number="276"/>
- <line hits="1" number="277"/>
- <line hits="1" number="278"/>
- <line hits="1" number="280"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="282" number="281"/>
- <line hits="0" number="282"/>
- <line hits="1" number="283"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/utils/decorators.py" line-rate="0.88" name="decorators.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="9"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="17"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="37"/>
- <line hits="0" number="41"/>
- <line hits="0" number="43"/>
- <line hits="0" number="44"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/utils/defer.py" line-rate="0.9298" name="defer.py">
- <methods/>
- <lines>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="21"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="33"/>
- <line hits="1" number="34"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="40"/>
- <line hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="0" number="49"/>
- <line hits="0" number="50"/>
- <line hits="0" number="51"/>
- <line hits="0" number="52"/>
- <line hits="1" number="54"/>
- <line hits="1" number="56"/>
- <line hits="1" number="62"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line hits="1" number="68"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="74"/>
- <line hits="1" number="76"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line hits="1" number="86"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="95"/>
- <line hits="1" number="99"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="104"/>
- <line hits="1" number="105"/>
- <line hits="1" number="106"/>
- </lines>
- </class>
- <class branch-rate="0.9583" complexity="0" filename="scrapy/utils/deprecate.py" line-rate="0.9672" name="deprecate.py">
- <methods/>
- <lines>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="8"/>
- <line hits="0" number="9"/>
- <line hits="0" number="10"/>
- <line hits="1" number="15"/>
- <line hits="1" number="50"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="77"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="78"/>
- <line hits="1" number="81"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="82"/>
- <line hits="1" number="87"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="92"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="93"/>
- <line hits="1" number="95"/>
- <line hits="1" number="96"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="97"/>
- <line hits="1" number="98"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="103"/>
- <line hits="1" number="105"/>
- <line hits="1" number="106"/>
- <line hits="1" number="107"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="117" number="108"/>
- <line hits="1" number="109"/>
- <line hits="1" number="110"/>
- <line hits="1" number="115"/>
- <line hits="1" number="117"/>
- <line hits="1" number="120"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="121"/>
- <line hits="1" number="122"/>
- <line hits="1" number="123"/>
- <line hits="1" number="126"/>
- <line hits="1" number="149"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="151"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="152"/>
- <line hits="1" number="153"/>
- <line hits="1" number="154"/>
- <line hits="1" number="156"/>
- <line hits="1" number="157"/>
- </lines>
- </class>
- <class branch-rate="0" complexity="0" filename="scrapy/utils/display.py" line-rate="0.3529" name="display.py">
- <methods/>
- <lines>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="11,12" number="10"/>
- <line hits="0" number="11"/>
- <line hits="0" number="12"/>
- <line hits="0" number="13"/>
- <line hits="0" number="14"/>
- <line hits="0" number="15"/>
- <line hits="0" number="16"/>
- <line hits="0" number="17"/>
- <line hits="0" number="18"/>
- <line hits="1" number="20"/>
- <line hits="0" number="21"/>
- <line hits="1" number="23"/>
- <line hits="0" number="24"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/utils/engine.py" line-rate="0.55" name="engine.py">
- <methods/>
- <lines>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="26"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="0" number="30"/>
- <line hits="0" number="31"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="0" number="36"/>
- <line hits="0" number="37"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="39,40" number="38"/>
- <line hits="0" number="39"/>
- <line hits="0" number="40"/>
- <line hits="0" number="42"/>
- <line hits="1" number="44"/>
- <line hits="0" number="45"/>
- </lines>
- </class>
- <class branch-rate="0" complexity="0" filename="scrapy/utils/ftp.py" line-rate="0.3" name="ftp.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="0" number="9"/>
- <line hits="0" number="10"/>
- <line hits="0" number="11"/>
- <line hits="0" number="12"/>
- <line hits="0" number="13"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,15" number="14"/>
- <line hits="0" number="15"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/utils/gz.py" line-rate="0.913" name="gz.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="0" number="5"/>
- <line hits="0" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="11"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- </lines>
- </class>
- <class branch-rate="0.75" complexity="0" filename="scrapy/utils/http.py" line-rate="1" name="http.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="17"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="25" number="18"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/utils/httpobj.py" line-rate="1" name="httpobj.py">
- <methods/>
- <lines>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/utils/iterators.py" line-rate="0.9762" name="iterators.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="0" number="7"/>
- <line hits="0" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line hits="1" number="19"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="55"/>
- <line hits="1" number="56"/>
- <line hits="1" number="57"/>
- <line hits="1" number="60"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="64"/>
- <line hits="1" number="65"/>
- <line hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="74"/>
- <line hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line hits="1" number="85"/>
- <line hits="1" number="101"/>
- <line hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line hits="1" number="105"/>
- <line hits="1" number="107"/>
- <line hits="1" number="108"/>
- <line hits="1" number="109"/>
- <line hits="1" number="110"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="112"/>
- <line hits="1" number="113"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="115"/>
- <line hits="1" number="116"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="117"/>
- <line hits="1" number="118"/>
- <line hits="1" number="122"/>
- <line hits="1" number="124"/>
- <line hits="1" number="127"/>
- <line hits="1" number="128"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="130"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="131"/>
- <line hits="1" number="132"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="133"/>
- <line hits="1" number="134"/>
- <line hits="1" number="136"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="137"/>
- <line hits="1" number="138"/>
- <line hits="1" number="140"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/utils/job.py" line-rate="0.8333" name="job.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="6" number="5"/>
- <line hits="0" number="6"/>
- <line hits="1" number="7"/>
- </lines>
- </class>
- <class branch-rate="0.6957" complexity="0" filename="scrapy/utils/log.py" line-rate="0.9221" name="log.py">
- <methods/>
- <lines>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="18"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="24"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line branch="true" condition-coverage="100% (3/3)" hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="45"/>
- <line hits="1" number="59"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="87" number="83"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="90"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="93" number="92"/>
- <line hits="0" number="93"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="96" number="95"/>
- <line hits="0" number="96"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="98"/>
- <line hits="1" number="99"/>
- <line hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line hits="1" number="104"/>
- <line hits="1" number="106"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="108" number="107"/>
- <line hits="0" number="108"/>
- <line hits="0" number="109"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="110"/>
- <line hits="1" number="111"/>
- <line hits="1" number="113"/>
- <line hits="1" number="115"/>
- <line hits="1" number="119"/>
- <line hits="1" number="120"/>
- <line hits="1" number="121"/>
- <line hits="1" number="122"/>
- <line hits="1" number="125"/>
- <line hits="1" number="126"/>
- <line hits="1" number="129"/>
- <line hits="1" number="132"/>
- <line hits="1" number="133"/>
- <line hits="1" number="136"/>
- <line hits="1" number="142"/>
- <line hits="1" number="143"/>
- <line hits="1" number="144"/>
- <line hits="1" number="145"/>
- <line hits="1" number="147"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="148"/>
- <line hits="1" number="149"/>
- <line hits="1" number="152"/>
- <line hits="1" number="155"/>
- <line hits="1" number="156"/>
- <line hits="1" number="157"/>
- <line hits="1" number="159"/>
- <line hits="1" number="160"/>
- <line hits="1" number="161"/>
- <line hits="1" number="164"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="171" number="170"/>
- <line hits="0" number="171"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="175" number="174"/>
- <line hits="0" number="175"/>
- <line hits="1" number="179"/>
- <line hits="1" number="180"/>
- <line hits="1" number="183"/>
- <line hits="1" number="185"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/utils/markup.py" line-rate="1" name="markup.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- </lines>
- </class>
- <class branch-rate="0.8889" complexity="0" filename="scrapy/utils/misc.py" line-rate="0.95" name="misc.py">
- <methods/>
- <lines>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="14"/>
- <line hits="1" number="17"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="28"/>
- <line hits="1" number="31"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="0" number="40"/>
- <line hits="0" number="41"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="51"/>
- <line hits="1" number="54"/>
- <line hits="1" number="62"/>
- <line hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="65"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="68"/>
- <line hits="1" number="69"/>
- <line hits="1" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="76"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="87" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="87"/>
- <line hits="1" number="88"/>
- <line hits="1" number="89"/>
- <line hits="1" number="90"/>
- <line hits="1" number="91"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="96" number="93"/>
- <line hits="1" number="94"/>
- <line hits="0" number="96"/>
- <line hits="1" number="100"/>
- <line hits="1" number="108"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="109"/>
- <line hits="1" number="110"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="111"/>
- <line hits="1" number="112"/>
- <line hits="1" number="113"/>
- <line hits="1" number="114"/>
- <line hits="1" number="116"/>
- <line hits="1" number="118"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/utils/multipart.py" line-rate="1" name="multipart.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- </lines>
- </class>
- <class branch-rate="0.7" complexity="0" filename="scrapy/utils/ossignal.py" line-rate="0.9375" name="ossignal.py">
- <methods/>
- <lines>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="9"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="9" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="27" number="23"/>
- <line hits="1" number="25"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="28" number="27"/>
- <line hits="0" number="28"/>
- </lines>
- </class>
- <class branch-rate="0.5417" complexity="0" filename="scrapy/utils/project.py" line-rate="0.6792" name="project.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="0" number="20"/>
- <line hits="0" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="26"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="29,30" number="28"/>
- <line hits="0" number="29"/>
- <line hits="0" number="30"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="32,34" number="31"/>
- <line hits="0" number="32"/>
- <line hits="0" number="34"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="36,37" number="35"/>
- <line hits="0" number="36"/>
- <line hits="0" number="37"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="39,40" number="38"/>
- <line hits="0" number="39"/>
- <line hits="0" number="40"/>
- <line hits="1" number="42"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="47" number="46"/>
- <line hits="0" number="47"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="49" number="48"/>
- <line hits="0" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="52"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="55"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="63"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="65" number="64"/>
- <line hits="0" number="65"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="68"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="73"/>
- </lines>
- </class>
- <class branch-rate="0.8478" complexity="0" filename="scrapy/utils/python.py" line-rate="0.8861" name="python.py">
- <methods/>
- <lines>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="15"/>
- <line hits="1" number="32"/>
- <line hits="1" number="35"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="39"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="40"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="44"/>
- <line hits="1" number="47"/>
- <line hits="1" number="68"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="71"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="75"/>
- <line hits="1" number="76"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="0" number="88"/>
- <line hits="1" number="91"/>
- <line hits="1" number="92"/>
- <line hits="0" number="94"/>
- <line hits="1" number="97"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="100"/>
- <line hits="1" number="101"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="102"/>
- <line hits="1" number="103"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="105"/>
- <line hits="1" number="106"/>
- <line hits="1" number="107"/>
- <line hits="1" number="110"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="113"/>
- <line hits="1" number="114"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="115"/>
- <line hits="1" number="116"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="118"/>
- <line hits="1" number="119"/>
- <line hits="1" number="120"/>
- <line hits="1" number="123"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="129" number="126"/>
- <line hits="1" number="127"/>
- <line hits="0" number="129"/>
- <line hits="1" number="132"/>
- <line hits="1" number="145"/>
- <line hits="1" number="146"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="147"/>
- <line hits="1" number="148"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="151" number="149"/>
- <line hits="1" number="150"/>
- <line hits="0" number="151"/>
- <line hits="0" number="152"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="155" number="154"/>
- <line hits="0" number="155"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="162" number="157"/>
- <line hits="1" number="158"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="157" number="159"/>
- <line hits="1" number="160"/>
- <line hits="1" number="161"/>
- <line hits="0" number="162"/>
- <line hits="1" number="165"/>
- <line hits="1" number="169"/>
- <line hits="1" number="170"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="172"/>
- <line hits="1" number="173"/>
- <line hits="1" number="174"/>
- <line hits="1" number="175"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="177"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="178"/>
- <line hits="1" number="181"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="186" number="185"/>
- <line hits="0" number="186"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="187"/>
- <line hits="1" number="190"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="192"/>
- <line hits="1" number="193"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="194"/>
- <line hits="1" number="195"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="196"/>
- <line hits="1" number="197"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="198"/>
- <line hits="1" number="199"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="200"/>
- <line hits="1" number="201"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="211" number="203"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="204"/>
- <line hits="1" number="205"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="206"/>
- <line hits="1" number="207"/>
- <line hits="1" number="209"/>
- <line hits="0" number="211"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="212"/>
- <line hits="1" number="213"/>
- <line hits="1" number="214"/>
- <line hits="1" number="217"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="239"/>
- <line hits="1" number="240"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="244" number="241"/>
- <line hits="1" number="242"/>
- <line hits="0" number="244"/>
- <line hits="1" number="246"/>
- <line hits="1" number="248"/>
- <line hits="1" number="249"/>
- <line hits="1" number="250"/>
- <line hits="1" number="251"/>
- <line hits="1" number="254"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="257"/>
- <line hits="1" number="258"/>
- <line hits="1" number="260"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="261"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="263"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="264"/>
- <line hits="1" number="265"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="266"/>
- <line hits="1" number="267"/>
- <line hits="1" number="269"/>
- <line hits="1" number="272"/>
- <line hits="1" number="274"/>
- <line hits="1" number="275"/>
- <line hits="1" number="276"/>
- <line hits="1" number="278"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="279"/>
- <line hits="1" number="280"/>
- <line hits="1" number="281"/>
- <line hits="1" number="284"/>
- <line hits="1" number="285"/>
- <line hits="1" number="290"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="291"/>
- <line hits="1" number="292"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="293"/>
- <line hits="1" number="294"/>
- <line hits="1" number="295"/>
- <line hits="1" number="296"/>
- <line hits="1" number="299"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="305,307" number="304"/>
- <line hits="0" number="305"/>
- <line hits="0" number="307"/>
- <line hits="1" number="310"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="exit,316" number="315"/>
- <line hits="0" number="316"/>
- <line hits="1" number="319"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="321"/>
- <line hits="1" number="322"/>
- <line hits="1" number="323"/>
- <line hits="0" number="324"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="321,326" number="325"/>
- <line hits="0" number="326"/>
- </lines>
- </class>
- <class branch-rate="0.6429" complexity="0" filename="scrapy/utils/reactor.py" line-rate="0.8667" name="reactor.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="7" number="6"/>
- <line hits="0" number="7"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="9" number="8"/>
- <line hits="0" number="9"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="11" number="10"/>
- <line hits="0" number="11"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="17" number="16"/>
- <line hits="0" number="17"/>
- <line hits="1" number="20"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- </lines>
- </class>
- <class branch-rate="0.9167" complexity="0" filename="scrapy/utils/reqser.py" line-rate="0.9429" name="reqser.py">
- <methods/>
- <lines>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="10"/>
- <line hits="1" number="16"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="35"/>
- <line hits="1" number="38"/>
- <line hits="1" number="44"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- <line hits="1" number="64"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="65"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line hits="1" number="69"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="73" number="71"/>
- <line hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="76"/>
- <line hits="1" number="77"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="0" number="80"/>
- <line hits="0" number="81"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/utils/request.py" line-rate="1" name="request.py">
- <methods/>
- <lines>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="46"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="50"/>
- <line hits="1" number="51"/>
- <line hits="1" number="52"/>
- <line hits="1" number="53"/>
- <line hits="1" number="54"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="55"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="56"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line hits="1" number="65"/>
- <line hits="1" number="69"/>
- <line hits="1" number="72"/>
- <line hits="1" number="78"/>
- <line hits="1" number="79"/>
- <line hits="1" number="80"/>
- <line hits="1" number="81"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line hits="1" number="86"/>
- <line hits="1" number="89"/>
- <line hits="1" number="91"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="94"/>
- </lines>
- </class>
- <class branch-rate="0.6667" complexity="0" filename="scrapy/utils/response.py" line-rate="0.9038" name="response.py">
- <methods/>
- <lines>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="18"/>
- <line hits="0" number="20"/>
- <line hits="0" number="21"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="34"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="41"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="48"/>
- <line hits="1" number="57"/>
- <line hits="1" number="60"/>
- <line hits="1" number="65"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line hits="1" number="69"/>
- <line hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="74"/>
- <line hits="1" number="78"/>
- <line hits="1" number="80"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="86" number="81"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="85" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="84"/>
- <line hits="1" number="85"/>
- <line branch="true" condition-coverage="0% (0/2)" hits="0" missing-branches="87,89" number="86"/>
- <line hits="0" number="87"/>
- <line hits="0" number="89"/>
- <line hits="1" number="91"/>
- <line hits="1" number="92"/>
- <line hits="1" number="93"/>
- <line hits="1" number="94"/>
- </lines>
- </class>
- <class branch-rate="0.9375" complexity="0" filename="scrapy/utils/serialize.py" line-rate="0.9655" name="serialize.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="16"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="34" number="31"/>
- <line hits="1" number="32"/>
- <line hits="0" number="34"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- </lines>
- </class>
- <class branch-rate="0.9286" complexity="0" filename="scrapy/utils/signal.py" line-rate="0.9778" name="signal.py">
- <methods/>
- <lines>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="6"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="20"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="34"/>
- <line hits="0" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="44"/>
- <line hits="1" number="47"/>
- <line hits="1" number="52"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="58" number="53"/>
- <line hits="1" number="54"/>
- <line hits="1" number="58"/>
- <line hits="1" number="60"/>
- <line hits="1" number="61"/>
- <line hits="1" number="62"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="66"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line hits="1" number="69"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="70"/>
- <line hits="1" number="71"/>
- <line hits="1" number="74"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="78"/>
- <line hits="1" number="79"/>
- </lines>
- </class>
- <class branch-rate="0.9286" complexity="0" filename="scrapy/utils/sitemap.py" line-rate="1" name="sitemap.py">
- <methods/>
- <lines>
- <line hits="1" number="7"/>
- <line hits="1" number="10"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="20"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="27"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="21" number="33"/>
- <line hits="1" number="34"/>
- <line hits="1" number="37"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="41"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="42"/>
- <line hits="1" number="43"/>
- </lines>
- </class>
- <class branch-rate="0.7" complexity="0" filename="scrapy/utils/spider.py" line-rate="0.875" name="spider.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="6"/>
- <line hits="1" number="7"/>
- <line hits="1" number="9"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="16"/>
- <line hits="1" number="22"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="24"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="25"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="43"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="45" number="44"/>
- <line hits="0" number="45"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="48" number="47"/>
- <line hits="0" number="48"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="52" number="51"/>
- <line hits="0" number="52"/>
- <line hits="1" number="55"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/utils/template.py" line-rate="1" name="template.py">
- <methods/>
- <lines>
- <line hits="1" number="3"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="10"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="32"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/utils/test.py" line-rate="0.92" name="test.py">
- <methods/>
- <lines>
- <line hits="1" number="5"/>
- <line hits="1" number="7"/>
- <line hits="1" number="8"/>
- <line hits="1" number="11"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="0" number="17"/>
- <line hits="0" number="18"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="23"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="35"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="41"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="49"/>
- <line hits="1" number="53"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/utils/testproc.py" line-rate="0.8421" name="testproc.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="3"/>
- <line hits="1" number="5"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="17" number="16"/>
- <line hits="0" number="17"/>
- <line hits="1" number="18"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="22"/>
- <line hits="1" number="24"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="26" number="25"/>
- <line hits="0" number="26"/>
- <line hits="0" number="27"/>
- <line hits="0" number="28"/>
- <line hits="0" number="29"/>
- <line hits="0" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="34"/>
- <line hits="1" number="36"/>
- <line hits="1" number="37"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line hits="1" number="40"/>
- <line hits="1" number="42"/>
- <line hits="1" number="43"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="48"/>
- <line hits="1" number="49"/>
- <line hits="1" number="50"/>
- </lines>
- </class>
- <class branch-rate="0.5" complexity="0" filename="scrapy/utils/testsite.py" line-rate="0.8846" name="testsite.py">
- <methods/>
- <lines>
- <line hits="1" number="1"/>
- <line hits="1" number="2"/>
- <line hits="1" number="4"/>
- <line hits="1" number="5"/>
- <line hits="1" number="8"/>
- <line hits="1" number="10"/>
- <line hits="1" number="11"/>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="19"/>
- <line hits="1" number="20"/>
- <line hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line hits="1" number="26"/>
- <line hits="1" number="27"/>
- <line hits="1" number="28"/>
- <line hits="1" number="29"/>
- <line hits="1" number="30"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="34" number="33"/>
- <line hits="0" number="34"/>
- <line hits="0" number="35"/>
- <line hits="0" number="36"/>
- </lines>
- </class>
- <class branch-rate="0.7647" complexity="0" filename="scrapy/utils/trackref.py" line-rate="0.9459" name="trackref.py">
- <methods/>
- <lines>
- <line hits="1" number="12"/>
- <line hits="1" number="13"/>
- <line hits="1" number="14"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="20"/>
- <line hits="1" number="21"/>
- <line hits="1" number="24"/>
- <line hits="1" number="28"/>
- <line hits="1" number="30"/>
- <line hits="1" number="31"/>
- <line hits="1" number="32"/>
- <line hits="1" number="33"/>
- <line hits="1" number="36"/>
- <line hits="1" number="38"/>
- <line hits="1" number="39"/>
- <line branch="true" condition-coverage="100% (3/3)" hits="1" number="40"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="43" number="42"/>
- <line hits="0" number="43"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="44"/>
- <line hits="1" number="45"/>
- <line hits="1" number="46"/>
- <line hits="1" number="47"/>
- <line hits="1" number="50"/>
- <line hits="1" number="53"/>
- <line hits="1" number="55"/>
- <line hits="1" number="58"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="60"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="61"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="63" number="62"/>
- <line hits="0" number="63"/>
- <line hits="1" number="64"/>
- <line hits="1" number="67"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="exit" number="69"/>
- <line branch="true" condition-coverage="50% (1/2)" hits="1" missing-branches="69" number="70"/>
- <line hits="1" number="71"/>
- </lines>
- </class>
- <class branch-rate="1" complexity="0" filename="scrapy/utils/url.py" line-rate="1" name="url.py">
- <methods/>
- <lines>
- <line hits="1" number="8"/>
- <line hits="1" number="9"/>
- <line hits="1" number="15"/>
- <line hits="1" number="16"/>
- <line hits="1" number="17"/>
- <line hits="1" number="20"/>
- <line hits="1" number="22"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="23"/>
- <line hits="1" number="24"/>
- <line hits="1" number="25"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="26"/>
- <line hits="1" number="29"/>
- <line hits="1" number="31"/>
- <line hits="1" number="35"/>
- <line hits="1" number="36"/>
- <line hits="1" number="39"/>
- <line hits="1" number="57"/>
- <line hits="1" number="58"/>
- <line hits="1" number="59"/>
- <line hits="1" number="60"/>
- <line hits="1" number="66"/>
- <line hits="1" number="67"/>
- <line hits="1" number="68"/>
- <line hits="1" number="71"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="72"/>
- <line hits="1" number="73"/>
- <line hits="1" number="74"/>
- <line hits="1" number="77"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="81"/>
- <line hits="1" number="82"/>
- <line hits="1" number="83"/>
- <line hits="1" number="86"/>
- <line hits="1" number="109"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="110"/>
- <line hits="1" number="111"/>
- <line hits="1" number="112"/>
- <line hits="1" number="115"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="117"/>
- <line hits="1" number="118"/>
- <line hits="1" number="119"/>
- <line hits="1" number="120"/>
- <line branch="true" condition-coverage="100% (2/2)" hits="1" number="121"/>
- <line hits="1" number="122"/>
- <line hits="1" number="123"/>
- </lines>
- </class>
- </classes>
- </package>
- </packages>
- </coverage>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement