Module Expr Str Import alias ImportFrom alias ImportFrom alias ImportFrom alias alias alias ImportFrom alias ImportFrom alias ImportFrom alias Assign NameStore Str Assign NameStore Str Assign NameStore Str Assign NameStore Str Assign NameStore Str Assign NameStore Str Assign NameStore Str Assign NameStore Str Assign NameStore TupleStore NameStore NameStore NameStore Call AttributeLoad Str attr ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign AttributeStore NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign AttributeStore NameLoad attr NameLoad decorator_list decorator_list Call NameLoad AttributeLoad NameLoad attr ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str Str ListLoad Str ListLoad Str ListLoad Str ListLoad Str ListLoad Str ListLoad Str For TupleStore NameStore NameStore Call AttributeLoad NameLoad attr body For NameStore NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call NameLoad ListLoad NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Raise Call NameLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Str decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Call AttributeLoad NameLoad attr Str Expr Call AttributeLoad NameLoad attr NameLoad ListLoad Str Str Str decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Call AttributeLoad NameLoad attr Str Expr Call AttributeLoad NameLoad attr NameLoad ListLoad Str Str Str decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Slice Num decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore AttributeLoad NameLoad attr Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr Str Assign NameStore BinOpMod Str BinOpAdd Call NameLoad NameLoad Num Num Assign NameStore ListLoad BinOpMod Str TupleLoad NameLoad NameLoad For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad NameLoad decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Assign AttributeStore NameLoad attr Call NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr decorator_list decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr NameLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str decorator_list decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad TupleLoad NameLoad Str For TupleStore NameStore NameStore NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad NameLoad decorator_list decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str Str Str Str Str Str Str Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str Str Str Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Expr Str ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Assign AttributeStore NameLoad attr Num decorator_list decorator_list Assign AttributeStore AttributeLoad NameLoad attr attr Call NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr keyword Str keyword Str Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Str Num decorator_list FunctionDef arguments args NameParam defaults body Expr Str ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Str decorator_list decorator_list Assign AttributeStore AttributeLoad NameLoad attr attr Call NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr keyword Str Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Str Num decorator_list FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr NameLoad AttributeLoad AttributeLoad NameLoad attr attr keyword Str decorator_list decorator_list ClassDef bases body Expr Str FunctionDef arguments args NameParam defaults body Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults NameLoad NameLoad body Expr Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad FunctionDef arguments args defaults body Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad decorator_list If CompareIs NameLoad NameLoad body Expr Call NameLoad Expr Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr decorator_list decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Assign NameStore Dict Str Call AttributeLoad NameLoad attr Num Num Num Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore TupleLoad Str Str Str For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr Dict Str NameLoad keyword NameLoad decorator_list decorator_list ClassDef bases NameLoad NameLoad body FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Num decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign TupleStore NameStore NameStore TupleLoad Str Call AttributeLoad NameLoad attr Num Num Num Expr Call AttributeLoad NameLoad attr Dict Str NameLoad Dict Str NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign TupleStore NameStore NameStore TupleLoad Str Call AttributeLoad NameLoad attr Num Num Num Expr Call AttributeLoad NameLoad attr Dict Str NameLoad Dict Str NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr Dict Str Str keyword NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr Dict Str Str keyword NameLoad Expr Call AttributeLoad NameLoad attr Dict Str Str keyword NameLoad decorator_list decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Return BinOpMod Str TupleLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Return IfExp CompareIn NameLoad Str Num Num decorator_list FunctionDef arguments args NameParam defaults body Expr Str Return IfExp CompareIn NameLoad Str AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Assign NameStore Dict Str Call AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Assign NameStore Dict Str Call AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Assign NameStore Dict Str Call AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Assign NameStore Dict Str Call AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Expr Call AttributeLoad NameLoad attr NameLoad keyword NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Lambda arguments args defaults Call AttributeLoad AttributeLoad NameLoad attr attr Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Assign TupleStore NameStore NameStore TupleLoad Str Str Assign NameStore Call AttributeLoad NameLoad attr Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Dict NameLoad NameLoad Dict NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign TupleStore NameStore NameStore TupleLoad Str Str Assign NameStore Call AttributeLoad NameLoad attr Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Dict NameLoad NameLoad Dict NameLoad NameLoad decorator_list decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Assign TupleStore NameStore NameStore NameStore TupleLoad Str Str Str Assign NameStore Call AttributeLoad NameLoad attr BinOpMult Call NameLoad NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Dict NameLoad NameLoad Dict NameLoad NameLoad decorator_list decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Assign TupleStore NameStore NameStore TupleLoad Str Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword BinOpMult Num Call NameLoad NameLoad Assign NameStore Dict Str Str NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Dict Str NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign TupleStore NameStore NameStore TupleLoad Str Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword Call NameLoad NameLoad Assign NameStore Dict Str Str NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Dict Str NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign TupleStore NameStore NameStore NameStore TupleLoad Str Str Str Assign NameStore Dict Str Str Str NameLoad NameLoad NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad keyword Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Dict Str NameLoad decorator_list decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Call AttributeLoad NameLoad attr Dict Str Str Dict Str Call AttributeLoad NameLoad attr keyword Num decorator_list FunctionDef arguments args NameParam defaults body Assign TupleStore NameStore NameStore NameStore TupleLoad Str Str Str Assign NameStore Call AttributeLoad NameLoad attr keyword Call NameLoad NameLoad keyword Call NameLoad NameLoad keyword Call NameLoad NameLoad Assign NameStore Dict Str Str Str NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Dict Str NameLoad decorator_list decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Dict Str Call AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Dict Str Call AttributeLoad NameLoad attr Num Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list decorator_list ClassDef bases NameLoad NameLoad body Expr Str FunctionDef arguments args NameParam NameParam defaults body Expr Str Expr Call AttributeLoad NameLoad attr NameLoad Dict decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str Str AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str Str AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore Dict Str Str Str Str Str Str AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr NameLoad decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Assign AttributeStore NameLoad attr Call NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body Expr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore Call NameLoad ListLoad Str Str Str Expr Call AttributeLoad NameLoad attr Call NameLoad Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Dict Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore Call NameLoad ListLoad Str Expr Call AttributeLoad NameLoad attr Call NameLoad Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults TupleLoad NameLoad body Expr Str For NameStore NameLoad body Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Call NameLoad NameLoad If CompareIsNot NameLoad NameLoad body Expr Call NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore BinOpAdd ListLoad NameLoad NameLoad Assign NameStore ListLoad Str Str FunctionDef arguments args NameParam defaults body Return Call NameLoad Call NameLoad Call NameLoad Str NameLoad decorator_list FunctionDef arguments args defaults body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Str Assign NameStore Call NameLoad AttributeLoad NameLoad attr Assign NameStore ListLoad Num Num Num Num Num Num Num Num Num Num Num Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad ListLoad Num Num Num Num Num decorator_list Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad NameLoad Assign NameStore ListLoad Str FunctionDef arguments args defaults body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Str Assign NameStore AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Num Expr Call AttributeLoad NameLoad attr Num ListComp AttributeLoad NameLoad attr comprehension NameStore NameLoad decorator_list Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad NameLoad Assign NameStore ListLoad Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign SubscriptStore AttributeLoad AttributeLoad NameLoad attr attr Index Str Call AttributeLoad NameLoad attr Num Num Num Assign NameStore ListLoad NameLoad Assign NameStore ListLoad Str Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad NameLoad Assign NameStore ListLoad Str Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad NameLoad NameLoad NameLoad Assign NameStore ListLoad Str FunctionDef arguments args defaults body Expr Call AttributeLoad NameLoad attr Str AttributeLoad AttributeLoad NameLoad attr attr decorator_list Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad ListLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad ListLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad ListLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad ListLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad NameLoad NameLoad Assign NameStore ListLoad Str Str Str Str Str Str FunctionDef arguments args defaults body Assign NameStore Call AttributeLoad NameLoad attr Num Num Num Num Num Num Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Str NameLoad decorator_list Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore BinOpAdd BinOpAdd ListLoad NameLoad NameLoad ListLoad NameLoad NameLoad NameLoad Assign NameStore ListLoad Str Str Str Str Str Str Str Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list decorator_list
N/A N/A 
Test cases for using NMEA sentences.
 N/A datetime operator attrgetter zope.interface implementer twisted.positioning base nmea ipositioning twisted.positioning.test.receiver MockPositioningReceiver twisted.trial.unittest TestCase twisted.positioning.base Angles N/A GPGGA $GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47 N/A GPRMC $GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A N/A GPGSA $GPGSA,A,3,19,28,14,18,27,22,31,39,,,,,1.7,1.0,1.3*34 N/A GPHDT $GPHDT,038.005,T*3B N/A GPGLL $GPGLL,4916.45,N,12311.12,W,225444,A*31 N/A GPGLL_PARTIAL $GPGLL,3751.65,S,14507.36,E*77 N/A GPGSV_SINGLE $GPGSV,1,1,11,03,03,111,00,04,15,270,00,06,01,010,00,,,,*4b N/A GPGSV_EMPTY_MIDDLE $GPGSV,1,1,11,03,03,111,00,,,,,,,,,13,06,292,00*75 N/A GPGSV_SEQ N/A GPGSV_FIRST GPGSV_MIDDLE GPGSV_LAST N/A N/A 
$GPGSV,3,1,11,03,03,111,00,04,15,270,00,06,01,010,00,13,06,292,00*74
$GPGSV,3,2,11,14,25,170,00,16,57,208,39,18,67,296,40,19,40,246,00*74
$GPGSV,3,3,11,22,42,067,42,24,14,311,43,27,05,244,00,,,,*4D
 split NMEATestReceiver N/A object N/A N/A 
    An NMEA receiver for testing.

    Remembers the last sentence it has received.
     __init__ N/A N/A self N/A N/A N/A N/A N/A self clear N/A clear N/A N/A self N/A N/A N/A 
        Forgets the received sentence (if any), by setting
        C{self.receivedSentence} to C{None}.
         N/A N/A self receivedSentence None N/A sentenceReceived N/A N/A self sentence N/A N/A N/A N/A self receivedSentence sentence N/A N/A N/A implementer N/A ipositioning INMEAReceiver CallbackTests N/A TestCase N/A N/A 
    Tests if the NMEA protocol correctly calls its sentence callback.

    @ivar protocol: The NMEA protocol under test.
    @type protocol: L{nmea.NMEAProtocol}
    @ivar sentenceTypes: The set of sentence types of all sentences the test's
        sentence callback function has been called with.
    @type sentenceTypes: C{set}
     setUp N/A N/A self N/A N/A N/A receiver N/A NMEATestReceiver N/A N/A self protocol N/A N/A nmea NMEAProtocol receiver N/A self _sentenceCallback N/A N/A self sentenceTypes N/A set N/A _sentenceCallback N/A N/A self sentence N/A N/A N/A 
        Remembers that a sentence of this type was fired.
         N/A N/A N/A N/A self sentenceTypes add N/A sentence type N/A test_callbacksCalled N/A N/A self N/A N/A N/A 
        The correct callbacks fire, and that *only* those fire.
         N/A sentencesByType N/A GPGGA GPGLL GPGSA GPGSV GPHDT GPRMC N/A $GPGGA*56 N/A $GPGLL*50 N/A $GPGSA*42 N/A $GPGSV*55 N/A $GPHDT*4f N/A $GPRMC*4b N/A N/A sentenceType sentences N/A N/A sentencesByType iteritems N/A N/A sentence sentences N/A N/A N/A N/A N/A self protocol lineReceived sentence N/A N/A N/A self assertEqual N/A self sentenceTypes N/A set N/A sentenceType N/A N/A N/A N/A self sentenceTypes clear N/A N/A BrokenSentenceCallbackTests N/A TestCase N/A N/A 
    Tests for broken NMEA sentence callbacks.
     setUp N/A N/A self N/A N/A N/A receiver N/A NMEATestReceiver N/A N/A self protocol N/A N/A nmea NMEAProtocol receiver N/A self _sentenceCallback N/A _sentenceCallback N/A N/A self sentence N/A N/A N/A 
        Raises C{AttributeError}.
         N/A N/A AttributeError ERROR!!! N/A test_dontSwallowCallbackExceptions N/A N/A self N/A N/A N/A 
        An C{AttributeError} in the sentence callback of an C{NMEAProtocol}
        doesn't get swallowed.
         N/A lineReceived N/A N/A self protocol lineReceived N/A N/A N/A self assertRaises AttributeError lineReceived $GPGGA*56 N/A N/A SplitTest N/A TestCase N/A N/A 
    Checks splitting of NMEA sentences.
     test_withChecksum N/A N/A self N/A N/A N/A 
        An NMEA sentence with a checksum gets split correctly.
         N/A splitSentence N/A N/A nmea _split $GPGGA,spam,eggs*00 N/A N/A N/A self assertEqual splitSentence N/A GPGGA spam eggs N/A test_noCheckum N/A N/A self N/A N/A N/A 
        An NMEA sentence without a checksum gets split correctly.
         N/A splitSentence N/A N/A nmea _split $GPGGA,spam,eggs* N/A N/A N/A self assertEqual splitSentence N/A GPGGA spam eggs N/A N/A ChecksumTests N/A TestCase N/A N/A 
    NMEA sentence checksum verification tests.
     test_valid N/A N/A self N/A N/A N/A 
        Sentences with valid checksums get validated.
         N/A N/A N/A nmea _validateChecksum GPGGA N/A test_missing N/A N/A self N/A N/A N/A 
        Sentences with missing checksums get validated.
         N/A N/A N/A nmea _validateChecksum N/A GPGGA N/A -2 N/A test_invalid N/A N/A self N/A N/A N/A 
        Sentences with a bad checksum raise L{base.InvalidChecksum} when
        attempting to validate them.
         N/A validate N/A nmea _validateChecksum N/A N/A bareSentence checksum N/A N/A GPGGA split * N/A badChecksum N/A %x N/A N/A int checksum 16 1 N/A sentences N/A N/A %s*%s N/A bareSentence badChecksum N/A s sentences N/A N/A N/A N/A self assertRaises N/A base InvalidChecksum validate s N/A N/A NMEAReceiverSetup N/A object N/A N/A 
    A mixin for tests that need an NMEA receiver (and a protocol attached to
    it).

    @ivar receiver: An NMEA receiver that remembers the last sentence.
    @type receiver: L{NMEATestReceiver}
    @ivar protocol: An NMEA protocol attached to the receiver.
    @type protocol: L{twisted.positioning.nmea.NMEAProtocol}
     setUp N/A N/A self N/A N/A N/A 
        Sets up an NMEA receiver.
         N/A N/A self receiver N/A NMEATestReceiver N/A N/A self protocol N/A N/A nmea NMEAProtocol N/A self receiver N/A N/A GSVSequenceTests N/A NMEAReceiverSetup TestCase N/A N/A 
    Tests for the interpretation of GSV sequences.
     test_firstSentence N/A N/A self N/A N/A N/A 
        The first sentence in a GSV sequence is correctly identified.
         N/A N/A N/A N/A self protocol lineReceived GPGSV_FIRST N/A sentence N/A N/A self receiver receivedSentence N/A N/A N/A self assertTrue N/A N/A sentence _isFirstGSVSentence N/A N/A N/A self assertFalse N/A N/A sentence _isLastGSVSentence N/A test_middleSentence N/A N/A self N/A N/A N/A 
        A sentence in the middle of a GSV sequence is correctly
        identified (as being neither the last nor the first).
         N/A N/A N/A N/A self protocol lineReceived GPGSV_MIDDLE N/A sentence N/A N/A self receiver receivedSentence N/A N/A N/A self assertFalse N/A N/A sentence _isFirstGSVSentence N/A N/A N/A self assertFalse N/A N/A sentence _isLastGSVSentence N/A test_lastSentence N/A N/A self N/A N/A N/A 
        The last sentence in a GSV sequence is correctly identified.
         N/A N/A N/A N/A self protocol lineReceived GPGSV_LAST N/A sentence N/A N/A self receiver receivedSentence N/A N/A N/A self assertFalse N/A N/A sentence _isFirstGSVSentence N/A N/A N/A self assertTrue N/A N/A sentence _isLastGSVSentence N/A N/A BogusSentenceTests N/A NMEAReceiverSetup TestCase N/A N/A 
    Tests for verifying predictable failure for bogus NMEA sentences.
     assertRaisesOnSentence N/A N/A self exceptionClass sentence N/A N/A N/A 
        Asserts that the protocol raises C{exceptionClass} when it receives
        C{sentence}.

        @param exceptionClass: The exception class expected to be raised.
        @type exceptionClass: C{Exception} subclass

        @param sentence: The (bogus) NMEA sentence.
        @type sentence: C{str}
         N/A N/A N/A self assertRaises exceptionClass N/A N/A self protocol lineReceived sentence N/A test_raiseOnUnknownSentenceType N/A N/A self N/A N/A N/A 
        Receiving a well-formed sentence of unknown type raises
        C{ValueError}.
         N/A N/A N/A self assertRaisesOnSentence ValueError $GPBOGUS*5b N/A test_raiseOnMalformedSentences N/A N/A self N/A N/A N/A 
        Receiving a malformed sentence raises L{base.InvalidSentence}.
         N/A N/A N/A self assertRaisesOnSentence N/A base InvalidSentence GPBOGUS N/A N/A NMEASentenceTests N/A NMEAReceiverSetup TestCase N/A N/A 
    Tests for L{nmea.NMEASentence} objects.
     test_repr N/A N/A self N/A N/A N/A 
        The C{repr} of L{nmea.NMEASentence} objects is correct.
         N/A sentencesWithExpectedRepr N/A N/A GPGSA <NMEASentence (GPGSA) {dataMode: A, fixType: 3, horizontalDilutionOfPrecision: 1.0, positionDilutionOfPrecision: 1.7, usedSatellitePRN_0: 19, usedSatellitePRN_1: 28, usedSatellitePRN_2: 14, usedSatellitePRN_3: 18, usedSatellitePRN_4: 27, usedSatellitePRN_5: 22, usedSatellitePRN_6: 31, usedSatellitePRN_7: 39, verticalDilutionOfPrecision: 1.3}> N/A N/A sentence expectedRepr sentencesWithExpectedRepr N/A N/A N/A N/A N/A self protocol lineReceived sentence N/A received N/A N/A self receiver receivedSentence N/A N/A N/A self assertEqual N/A repr received expectedRepr N/A N/A ParsingTests N/A NMEAReceiverSetup TestCase N/A N/A 
    Tests if raw NMEA sentences get parsed correctly.

    This doesn't really involve any interpretation, just turning ugly raw NMEA
    representations into objects that are more pleasant to work with.
     _parserTest N/A N/A self sentence expected N/A N/A N/A 
        Passes a sentence to the protocol and gets the parsed sentence from
        the receiver. Then verifies that the parsed sentence contains the
        expected data.
         N/A N/A N/A N/A self protocol lineReceived sentence N/A received N/A N/A self receiver receivedSentence N/A N/A N/A self assertEqual expected N/A received _sentenceData N/A test_fullRMC N/A N/A self N/A N/A N/A 
        A full RMC sentence is correctly parsed.
         N/A expected N/A type latitudeFloat latitudeHemisphere longitudeFloat longitudeHemisphere magneticVariation magneticVariationDirection speedInKnots timestamp datestamp trueHeading dataMode GPRMC 4807.038 N 01131.000 E 003.1 W 022.4 123519 230394 084.4 A N/A N/A N/A self _parserTest GPRMC expected N/A test_fullGGA N/A N/A self N/A N/A N/A 
        A full GGA sentence is correctly parsed.
         N/A expected N/A type altitude altitudeUnits heightOfGeoidAboveWGS84 heightOfGeoidAboveWGS84Units horizontalDilutionOfPrecision latitudeFloat latitudeHemisphere longitudeFloat longitudeHemisphere numberOfSatellitesSeen timestamp fixQuality GPGGA 545.4 M 46.9 M 0.9 4807.038 N 01131.000 E 08 123519 1 N/A N/A N/A self _parserTest GPGGA expected N/A test_fullGLL N/A N/A self N/A N/A N/A 
        A full GLL sentence is correctly parsed.
         N/A expected N/A type latitudeFloat latitudeHemisphere longitudeFloat longitudeHemisphere timestamp dataMode GPGLL 4916.45 N 12311.12 W 225444 A N/A N/A N/A self _parserTest GPGLL expected N/A test_partialGLL N/A N/A self N/A N/A N/A 
        A partial GLL sentence is correctly parsed.
         N/A expected N/A type latitudeFloat latitudeHemisphere longitudeFloat longitudeHemisphere GPGLL 3751.65 S 14507.36 E N/A N/A N/A self _parserTest GPGLL_PARTIAL expected N/A test_fullGSV N/A N/A self N/A N/A N/A 
        A full GSV sentence is correctly parsed.
         N/A expected N/A type GSVSentenceIndex numberOfGSVSentences numberOfSatellitesSeen azimuth_0 azimuth_1 azimuth_2 azimuth_3 elevation_0 elevation_1 elevation_2 elevation_3 satellitePRN_0 satellitePRN_1 satellitePRN_2 satellitePRN_3 signalToNoiseRatio_0 signalToNoiseRatio_1 signalToNoiseRatio_2 signalToNoiseRatio_3 GPGSV 1 3 11 111 270 010 292 03 15 01 06 03 04 06 13 00 00 00 00 N/A N/A N/A self _parserTest GPGSV_FIRST expected N/A test_partialGSV N/A N/A self N/A N/A N/A 
        A partial GSV sentence is correctly parsed.
         N/A expected N/A type GSVSentenceIndex numberOfGSVSentences numberOfSatellitesSeen azimuth_0 azimuth_1 azimuth_2 elevation_0 elevation_1 elevation_2 satellitePRN_0 satellitePRN_1 satellitePRN_2 signalToNoiseRatio_0 signalToNoiseRatio_1 signalToNoiseRatio_2 GPGSV 3 3 11 067 311 244 42 14 05 22 24 27 42 43 00 N/A N/A N/A self _parserTest GPGSV_LAST expected N/A test_fullHDT N/A N/A self N/A N/A N/A 
        A full HDT sentence is correctly parsed.
         N/A expected N/A type trueHeading GPHDT 038.005 N/A N/A N/A self _parserTest GPHDT expected N/A test_typicalGSA N/A N/A self N/A N/A N/A 
        A typical GSA sentence is correctly parsed.
         N/A expected N/A type dataMode fixType usedSatellitePRN_0 usedSatellitePRN_1 usedSatellitePRN_2 usedSatellitePRN_3 usedSatellitePRN_4 usedSatellitePRN_5 usedSatellitePRN_6 usedSatellitePRN_7 positionDilutionOfPrecision horizontalDilutionOfPrecision verticalDilutionOfPrecision GPGSA A 3 19 28 14 18 27 22 31 39 1.7 1.0 1.3 N/A N/A N/A self _parserTest GPGSA expected N/A N/A FixUnitsTests N/A TestCase N/A N/A 
    Tests for the generic unit fixing method, L{nmea.NMEAAdapter._fixUnits}.

    @ivar adapter: The NMEA adapter.
    @type adapter: L{nmea.NMEAAdapter}
     setUp N/A N/A self N/A N/A N/A N/A self adapter N/A N/A nmea NMEAAdapter N/A N/A base BasePositioningReceiver N/A test_noValueKey N/A N/A self N/A N/A N/A 
        Tests that when no C{valueKey} is provided, C{unitKey} is used, minus
        C{"Units"} at the end.
         FakeSentence N/A object N/A N/A 
            A fake sentence that just has a "foo" attribute.
             __init__ N/A N/A self N/A N/A N/A N/A self foo 1 N/A N/A N/A N/A N/A self adapter currentSentence N/A FakeSentence N/A N/A N/A N/A self adapter _fixUnits unitKey fooUnits unit N N/A N/A N/A self assertNotEqual N/A N/A N/A self adapter _sentenceData N/A foo 1 N/A test_unitKeyButNoUnit N/A N/A self N/A N/A N/A 
        Tests that if a unit key is provided but the unit isn't, the unit is
        automatically determined from the unit key.
         FakeSentence N/A object N/A N/A 
            A fake sentence that just has "foo" and "fooUnits" attributes.
             __init__ N/A N/A self N/A N/A N/A N/A self foo 1 N/A N/A self fooUnits N N/A N/A N/A N/A N/A self adapter currentSentence N/A FakeSentence N/A N/A N/A N/A self adapter _fixUnits unitKey fooUnits N/A N/A N/A self assertNotEqual N/A N/A N/A self adapter _sentenceData N/A foo 1 N/A test_noValueKeyAndNoUnitKey N/A N/A self N/A N/A N/A 
        Tests that when a unit is specified but neither C{valueKey} nor
        C{unitKey} is provided, C{ValueError} is raised.
         N/A N/A N/A self assertRaises ValueError N/A N/A self adapter _fixUnits unit K N/A N/A FixerTestMixin N/A N/A N/A 
    Mixin for tests for the fixers on L{nmea.NMEAAdapter} that adapt
    from NMEA-specific notations to generic Python objects.

    @ivar adapter: The NMEA adapter.
    @type adapter: L{nmea.NMEAAdapter}
     setUp N/A N/A self N/A N/A N/A N/A self adapter N/A N/A nmea NMEAAdapter N/A N/A base BasePositioningReceiver N/A _fixerTest N/A N/A self sentenceData expected exceptionClass N/A None None N/A N/A 
        A generic adapter fixer test.

        Creates a sentence from the C{sentenceData} and sends that to the
        adapter. If C{exceptionClass} is not passed, this is assumed to work,
        and C{expected} is compared with the adapter's internal state.
        Otherwise, passing the sentence to the adapter is checked to raise
        C{exceptionClass}.

        @param sentenceData: Raw sentence content.
        @type sentenceData: C{dict} mapping C{str} to C{str}

        @param expected: The expected state of the adapter.
        @type expected: C{dict} or C{None}

        @param exceptionClass: The exception to be raised by the adapter.
        @type exceptionClass: subclass of C{Exception}
         N/A sentence N/A N/A nmea NMEASentence sentenceData receiveSentence N/A N/A N/A N/A N/A N/A N/A N/A self adapter sentenceReceived sentence N/A N/A N/A exceptionClass None N/A N/A N/A receiveSentence N/A N/A N/A self assertEqual N/A N/A self adapter _state expected N/A N/A N/A N/A self assertRaises exceptionClass receiveSentence N/A N/A N/A N/A self adapter clear N/A N/A TimestampFixerTests N/A FixerTestMixin TestCase N/A N/A 
    Tests conversion from NMEA timestamps to C{datetime.time} objects.
     test_simple N/A N/A self N/A N/A N/A 
        A simple timestamp is converted correctly.
         N/A data N/A timestamp 123456 N/A expected N/A _time N/A N/A datetime time 12 34 56 N/A N/A N/A self _fixerTest data expected N/A test_broken N/A N/A self N/A N/A N/A 
        A broken timestamp raises C{ValueError}.
         N/A badTimestamps N/A 993456 129956 123499 N/A t badTimestamps N/A N/A N/A N/A self _fixerTest N/A timestamp t exceptionClass ValueError N/A N/A DatestampFixerTests N/A FixerTestMixin TestCase N/A test_defaultYearThreshold N/A N/A self N/A N/A N/A 
        The default year threshold is 1980.
         N/A N/A N/A self assertEqual N/A N/A self adapter yearThreshold 1980 N/A test_beforeThreshold N/A N/A self N/A N/A N/A 
        Dates before the threshold are interpreted as being in the century
        after the threshold. (Since the threshold is the earliest possible
        date.)
         N/A N/A datestring date N/A 010115 N/A N/A datetime date 2015 1 1 N/A N/A N/A self _fixerTest N/A datestamp datestring N/A _date date N/A test_afterThreshold N/A N/A self N/A N/A N/A 
        Dates after the threshold are interpreted as being in the same century
        as the threshold.
         N/A N/A datestring date N/A 010195 N/A N/A datetime date 1995 1 1 N/A N/A N/A self _fixerTest N/A datestamp datestring N/A _date date N/A test_invalidMonth N/A N/A self N/A N/A N/A 
        A datestring with an invalid month (> 12) raises C{ValueError}.
         N/A N/A N/A self _fixerTest N/A datestamp 011301 exceptionClass ValueError N/A test_invalidDay N/A N/A self N/A N/A N/A 
        A datestring with an invalid day (more days than there are in that
        month) raises C{ValueError}.
         N/A N/A N/A self _fixerTest N/A datestamp 320101 exceptionClass ValueError N/A N/A N/A self _fixerTest N/A datestamp 300201 exceptionClass ValueError N/A N/A _nmeaFloat N/A N/A degrees minutes N/A N/A N/A 
    Builds an NMEA float representation for a given angle in degrees and
    decimal minutes.

    @param degrees: The integer degrees for this angle.
    @type degrees: C{int}
    @param minutes: The decimal minutes value for this angle.
    @type minutes: C{float}
    @return: The NMEA float representation for this angle.
    @rtype: C{str}
     N/A N/A %i%0.3f N/A degrees minutes N/A _coordinateSign N/A N/A hemisphere N/A N/A N/A 
    Return the sign of a coordinate.

    This is C{1} if the coordinate is in the northern or eastern hemispheres,
    C{-1} otherwise.

    @param hemisphere: NMEA shorthand for the hemisphere. One of "NESW".
    @type hemisphere: C{str}

    @return: The sign of the coordinate value.
    @rtype: C{int}
     N/A N/A N/A hemisphere NE 1 -1 N/A _coordinateType N/A N/A hemisphere N/A N/A N/A 
    Return the type of a coordinate.

    This is L{Angles.LATITUDE} if the coordinate is in the northern or
    southern hemispheres, L{Angles.LONGITUDE} otherwise.

    @param hemisphere: NMEA shorthand for the hemisphere. One of "NESW".
    @type hemisphere: C{str}

    @return: The type of the coordinate (L{Angles.LATITUDE} or
        L{Angles.LONGITUDE})
     N/A N/A N/A hemisphere NS N/A Angles LATITUDE N/A Angles LONGITUDE N/A CoordinateFixerTests N/A FixerTestMixin TestCase N/A N/A 
    Tests turning NMEA coordinate notations into something more pleasant.
     test_north N/A N/A self N/A N/A N/A 
        NMEA coordinate representations in the northern hemisphere
        convert correctly.
         N/A sentenceData N/A latitudeFloat latitudeHemisphere 1030.000 N N/A state N/A latitude N/A N/A base Coordinate 10.5 N/A Angles LATITUDE N/A N/A N/A self _fixerTest sentenceData state N/A test_south N/A N/A self N/A N/A N/A 
        NMEA coordinate representations in the southern hemisphere
        convert correctly.
         N/A sentenceData N/A latitudeFloat latitudeHemisphere 1030.000 S N/A state N/A latitude N/A N/A base Coordinate -10.5 N/A Angles LATITUDE N/A N/A N/A self _fixerTest sentenceData state N/A test_east N/A N/A self N/A N/A N/A 
        NMEA coordinate representations in the eastern hemisphere
        convert correctly.
         N/A sentenceData N/A longitudeFloat longitudeHemisphere 1030.000 E N/A state N/A longitude N/A N/A base Coordinate 10.5 N/A Angles LONGITUDE N/A N/A N/A self _fixerTest sentenceData state N/A test_west N/A N/A self N/A N/A N/A 
        NMEA coordinate representations in the western hemisphere
        convert correctly.
         N/A sentenceData N/A longitudeFloat longitudeHemisphere 1030.000 W N/A state N/A longitude N/A N/A base Coordinate -10.5 N/A Angles LONGITUDE N/A N/A N/A self _fixerTest sentenceData state N/A test_badHemisphere N/A N/A self N/A N/A N/A 
        NMEA coordinate representations for nonexistent hemispheres
        raise C{ValueError} when you attempt to parse them.
         N/A sentenceData N/A longitudeHemisphere Q N/A N/A N/A self _fixerTest sentenceData exceptionClass ValueError N/A test_badHemisphereSign N/A N/A self N/A N/A N/A 
        NMEA coordinate repesentation parsing fails predictably
        when you pass nonexistent coordinate types (not latitude or
        longitude).
         N/A getSign N/A N/A N/A N/A N/A N/A N/A self adapter _getHemisphereSign BOGUS_VALUE N/A N/A N/A self assertRaises ValueError getSign N/A N/A AltitudeFixerTests N/A FixerTestMixin TestCase N/A N/A 
    Tests that NMEA representations of altitudes are correctly converted.
     test_fixAltitude N/A N/A self N/A N/A N/A 
        The NMEA representation of an altitude (above mean sea level)
        is correctly converted.
         N/A N/A key value N/A altitude 545.4 N/A altitude N/A N/A base Altitude N/A float value N/A N/A N/A self _fixerTest N/A key value N/A key altitude N/A test_heightOfGeoidAboveWGS84 N/A N/A self N/A N/A N/A 
        The NMEA representation of an altitude of the geoid (above the
        WGS84 reference level) is correctly converted.
         N/A N/A key value N/A heightOfGeoidAboveWGS84 46.9 N/A altitude N/A N/A base Altitude N/A float value N/A N/A N/A self _fixerTest N/A key value N/A key altitude N/A N/A SpeedFixerTests N/A FixerTestMixin TestCase N/A N/A 
    Tests that NMEA representations of speeds are correctly converted.
     test_speedInKnots N/A N/A self N/A N/A N/A 
        Speeds reported in knots correctly get converted to meters per
        second.
         N/A N/A key value targetKey N/A speedInKnots 10 speed N/A speed N/A N/A base Speed N/A N/A float value N/A base MPS_PER_KNOT N/A N/A N/A self _fixerTest N/A key value N/A targetKey speed N/A N/A VariationFixerTests N/A FixerTestMixin TestCase N/A N/A 
    Tests if the absolute values of magnetic variations on the heading
    and their sign get combined correctly, and if that value gets
    combined with a heading correctly.
     test_west N/A N/A self N/A N/A N/A 
        Tests westward (negative) magnetic variation.
         N/A N/A variation direction N/A 1.34 W N/A heading N/A N/A N/A base Heading fromFloats variationValue N/A -1 N/A float variation N/A sentenceData N/A magneticVariation magneticVariationDirection variation direction N/A N/A N/A self _fixerTest sentenceData N/A heading heading N/A test_east N/A N/A self N/A N/A N/A 
        Tests eastward (positive) magnetic variation.
         N/A N/A variation direction N/A 1.34 E N/A heading N/A N/A N/A base Heading fromFloats variationValue N/A float variation N/A sentenceData N/A magneticVariation magneticVariationDirection variation direction N/A N/A N/A self _fixerTest sentenceData N/A heading heading N/A test_withHeading N/A N/A self N/A N/A N/A 
        Variation values get combined with headings correctly.
         N/A N/A trueHeading variation direction N/A 123.12 1.34 E N/A sentenceData N/A trueHeading magneticVariation magneticVariationDirection trueHeading variation direction N/A heading N/A N/A N/A base Heading fromFloats N/A float trueHeading variationValue N/A float variation N/A N/A N/A self _fixerTest sentenceData N/A heading heading N/A N/A PositionErrorFixerTests N/A FixerTestMixin TestCase N/A N/A 
    Position errors in NMEA are passed as dilutions of precision (DOP). This
    is a measure relative to some specified value of the GPS device as its
    "reference" precision. Unfortunately, there are very few ways of figuring
    this out from just the device (sans manual).

    There are two basic DOP values: vertical and horizontal. HDOP tells you
    how precise your location is on the face of the earth (pretending it's
    flat, at least locally). VDOP tells you how precise your altitude is
    known. PDOP (position DOP) is a dependent value defined as the Euclidean
    norm of those two, and gives you a more generic "goodness of fix" value.
     test_simple N/A N/A self N/A N/A N/A N/A N/A self _fixerTest N/A horizontalDilutionOfPrecision 11 N/A positionError N/A N/A base PositionError hdop 11.0 N/A test_mixing N/A N/A self N/A N/A N/A N/A pdop hdop vdop N/A 1 1 1 N/A positionError N/A N/A base PositionError pdop N/A float pdop hdop N/A float hdop vdop N/A float vdop N/A sentenceData N/A positionDilutionOfPrecision horizontalDilutionOfPrecision verticalDilutionOfPrecision pdop hdop vdop N/A N/A N/A self _fixerTest sentenceData N/A positionError positionError N/A N/A ValidFixTests N/A FixerTestMixin TestCase N/A N/A 
    Tests that data reported from a valid fix is used.
     test_GGA N/A N/A self N/A N/A N/A 
        GGA data with a valid fix is used.
         N/A sentenceData N/A type altitude fixQuality GPGGA 545.4 N/A N/A nmea GPGGAFixQualities GPS_FIX N/A expectedState N/A altitude N/A N/A base Altitude 545.4 N/A N/A N/A self _fixerTest sentenceData expectedState N/A test_GLL N/A N/A self N/A N/A N/A 
        GLL data with a valid data mode is used.
         N/A sentenceData N/A type altitude dataMode GPGLL 545.4 N/A N/A nmea GPGLLGPRMCFixQualities ACTIVE N/A expectedState N/A altitude N/A N/A base Altitude 545.4 N/A N/A N/A self _fixerTest sentenceData expectedState N/A N/A InvalidFixTests N/A FixerTestMixin TestCase N/A N/A 
    Tests that data being reported from a bad or incomplete fix isn't
    used. Although the specification dictates that GPSes shouldn't produce
    NMEA sentences with real-looking values for altitude or position in them
    unless they have at least some semblance of a GPS fix, this is widely
    ignored.
     _invalidFixTest N/A N/A self sentenceData N/A N/A N/A 
        Sentences with an invalid fix or data mode result in empty
        state (ie, the data isn't used).
         N/A N/A N/A self _fixerTest sentenceData N/A N/A test_GGA N/A N/A self N/A N/A N/A 
        GGA sentence data is unused when there is no fix.
         N/A sentenceData N/A type altitude fixQuality GPGGA 545.4 N/A N/A nmea GPGGAFixQualities INVALID_FIX N/A N/A N/A self _invalidFixTest sentenceData N/A test_GLL N/A N/A self N/A N/A N/A 
        GLL sentence data is unused when the data is flagged as void.
         N/A sentenceData N/A type altitude dataMode GPGLL 545.4 N/A N/A nmea GPGLLGPRMCFixQualities VOID N/A N/A N/A self _invalidFixTest sentenceData N/A test_badGSADataMode N/A N/A self N/A N/A N/A 
        GSA sentence data is not used when there is no GPS fix, but
        the data mode claims the data is "active". Some GPSes do
        this, unfortunately, and that means you shouldn't use the
        data.
         N/A sentenceData N/A type altitude dataMode fixType GPGSA 545.4 N/A N/A nmea GPGLLGPRMCFixQualities ACTIVE N/A N/A nmea GPGSAFixTypes GSA_NO_FIX N/A N/A N/A self _invalidFixTest sentenceData N/A test_badGSAFixType N/A N/A self N/A N/A N/A 
        GSA sentence data is not used when the fix claims to be valid
        (albeit only 2D), but the data mode says the data is void.
        Some GPSes do this, unfortunately, and that means you
        shouldn't use the data.
         N/A sentenceData N/A type altitude dataMode fixType GPGSA 545.4 N/A N/A nmea GPGLLGPRMCFixQualities VOID N/A N/A nmea GPGSAFixTypes GSA_2D_FIX N/A N/A N/A self _invalidFixTest sentenceData N/A test_badGSADataModeAndFixType N/A N/A self N/A N/A N/A 
        GSA sentence data is not use when neither the fix nor the data
        mode is any good.
         N/A sentenceData N/A type altitude dataMode fixType GPGSA 545.4 N/A N/A nmea GPGLLGPRMCFixQualities VOID N/A N/A nmea GPGSAFixTypes GSA_NO_FIX N/A N/A N/A self _invalidFixTest sentenceData N/A N/A NMEAReceiverTest N/A TestCase N/A N/A 
    Tests for the NMEA receiver.
     setUp N/A N/A self N/A N/A N/A N/A self receiver N/A MockPositioningReceiver N/A N/A self adapter N/A N/A nmea NMEAAdapter N/A self receiver N/A N/A self protocol N/A N/A nmea NMEAProtocol N/A self adapter N/A test_onlyFireWhenCurrentSentenceHasNewInformation N/A N/A self N/A N/A N/A 
        If the current sentence does not contain any new fields for a
        particular callback, that callback is not called; even if all
        necessary information is still in the state from one or more
        previous messages.
         N/A N/A N/A N/A self protocol lineReceived GPGGA N/A GPGGACallbacks N/A set N/A positionReceived positionErrorReceived altitudeReceived N/A N/A N/A self assertEqual N/A set N/A N/A N/A N/A self receiver called keys GPGGACallbacks N/A N/A N/A N/A self receiver clear N/A N/A N/A self assertNotEqual N/A N/A self adapter _state N/A N/A N/A N/A N/A self protocol lineReceived GPHDT N/A GPHDTCallbacks N/A set N/A headingReceived N/A N/A N/A self assertEqual N/A set N/A N/A N/A N/A self receiver called keys GPHDTCallbacks N/A _receiverTest N/A N/A self sentences expectedFired extraTest N/A N/A None N/A N/A 
        A generic test for NMEA receiver behavior.

        @param sentences: The sequence of sentences to simulate receiving.
        @type sentences: iterable of C{str}
        @param expectedFired: The names of the callbacks expected to fire.
        @type expectedFired: iterable of C{str}
        @param extraTest: An optional extra test hook.
        @type extraTest: nullary callable
         N/A sentence sentences N/A N/A N/A N/A N/A self protocol lineReceived sentence N/A actuallyFired N/A N/A N/A N/A self receiver called keys N/A N/A N/A self assertEqual N/A set actuallyFired N/A set expectedFired N/A N/A extraTest None N/A N/A N/A extraTest N/A N/A N/A N/A self receiver clear N/A N/A N/A N/A self adapter clear N/A test_positionErrorUpdateAcrossStates N/A N/A self N/A N/A N/A 
        The positioning error is updated across multiple states.
         N/A sentences N/A N/A GPGSA GPGSV_SEQ N/A callbacksFired N/A positionErrorReceived beaconInformationReceived _getIdentifiers N/A N/A beacons N/A N/A N/A N/A sorted N/A map N/A attrgetter identifier beacons N/A checkBeaconInformation N/A N/A N/A N/A N/A beaconInformation N/A N/A N/A self adapter _state N/A beaconInformation N/A seenIdentifiers N/A _getIdentifiers N/A beaconInformation seenBeacons N/A expected N/A 3 4 6 13 14 16 18 19 22 24 27 N/A N/A N/A self assertEqual seenIdentifiers expected N/A usedIdentifiers N/A _getIdentifiers N/A beaconInformation usedBeacons N/A N/A N/A self assertEqual usedIdentifiers N/A 14 18 19 22 27 N/A N/A N/A N/A self _receiverTest sentences callbacksFired checkBeaconInformation N/A test_emptyMiddleGSV N/A N/A self N/A N/A N/A 
        A GSV sentence with empty entries in any position does not mean that
        entries in subsequent positions of the same GSV sentence are ignored.
         N/A sentences N/A GPGSV_EMPTY_MIDDLE N/A callbacksFired N/A beaconInformationReceived checkBeaconInformation N/A N/A N/A N/A N/A beaconInformation N/A N/A N/A self adapter _state N/A beaconInformation N/A seenBeacons N/A beaconInformation seenBeacons N/A N/A N/A self assertEqual N/A len seenBeacons 2 N/A N/A N/A self assertIn 13 N/A N/A b identifier N/A b seenBeacons N/A N/A N/A N/A self _receiverTest sentences callbacksFired checkBeaconInformation N/A test_GGASentences N/A N/A self N/A N/A N/A 
        A sequence of GGA sentences fires C{positionReceived},
        C{positionErrorReceived} and C{altitudeReceived}.
         N/A sentences N/A GPGGA N/A callbacksFired N/A positionReceived positionErrorReceived altitudeReceived N/A N/A N/A self _receiverTest sentences callbacksFired N/A test_GGAWithDateInState N/A N/A self N/A N/A N/A 
        When receiving a GPGGA sentence and a date was already in the
        state, the new time (from the GPGGA sentence) is combined with
        that date.
         N/A N/A N/A N/A self adapter _state N/A _date N/A N/A datetime date 2014 1 1 N/A sentences N/A GPGGA N/A callbacksFired N/A positionReceived positionErrorReceived altitudeReceived timeReceived N/A N/A N/A self _receiverTest sentences callbacksFired N/A test_RMCSentences N/A N/A self N/A N/A N/A 
        A sequence of RMC sentences fires C{positionReceived},
        C{speedReceived}, C{headingReceived} and C{timeReceived}.
         N/A sentences N/A GPRMC N/A callbacksFired N/A headingReceived speedReceived positionReceived timeReceived N/A N/A N/A self _receiverTest sentences callbacksFired N/A test_GSVSentences N/A N/A self N/A N/A N/A 
        A complete sequence of GSV sentences fires
        C{beaconInformationReceived}.
         N/A sentences N/A GPGSV_FIRST GPGSV_MIDDLE GPGSV_LAST N/A callbacksFired N/A beaconInformationReceived checkPartialInformation N/A N/A N/A N/A N/A N/A N/A self assertNotIn _partialBeaconInformation N/A N/A self adapter _state N/A N/A N/A N/A self _receiverTest sentences callbacksFired checkPartialInformation N/A test_emptyMiddleEntriesGSVSequence N/A N/A self N/A N/A N/A 
        A complete sequence of GSV sentences with empty entries in the
        middle still fires C{beaconInformationReceived}.
         N/A sentences N/A GPGSV_EMPTY_MIDDLE N/A N/A N/A self _receiverTest sentences N/A beaconInformationReceived N/A test_incompleteGSVSequence N/A N/A self N/A N/A N/A 
        An incomplete sequence of GSV sentences does not fire any callbacks.
         N/A sentences N/A GPGSV_FIRST N/A N/A N/A self _receiverTest sentences N/A test_singleSentenceGSVSequence N/A N/A self N/A N/A N/A 
        The parser does not fail badly when the sequence consists of
        only one sentence (but is otherwise complete).
         N/A sentences N/A GPGSV_SINGLE N/A N/A N/A self _receiverTest sentences N/A beaconInformationReceived N/A test_GLLSentences N/A N/A self N/A N/A N/A 
        GLL sentences fire C{positionReceived}.
         N/A sentences N/A GPGLL_PARTIAL GPGLL N/A N/A N/A self _receiverTest sentences N/A positionReceived N/A test_HDTSentences N/A N/A self N/A N/A N/A 
        HDT sentences fire C{headingReceived}.
         N/A sentences N/A GPHDT N/A N/A N/A self _receiverTest sentences N/A headingReceived N/A test_mixedSentences N/A N/A self N/A N/A N/A 
        A mix of sentences fires the correct callbacks.
         N/A sentences N/A GPRMC GPGGA N/A callbacksFired N/A altitudeReceived speedReceived positionReceived positionErrorReceived timeReceived headingReceived checkTime N/A N/A N/A N/A N/A expectedDateTime N/A N/A datetime datetime 1994 3 23 12 35 19 N/A N/A N/A self assertEqual N/A N/A N/A self adapter _state N/A time expectedDateTime N/A N/A N/A N/A self _receiverTest sentences callbacksFired checkTime N/A test_lotsOfMixedSentences N/A N/A self N/A N/A N/A 
        Sends an entire gamut of sentences and verifies the
        appropriate callbacks fire. These are more than you'd expect
        from your average consumer GPS device. They have most of the
        important information, including beacon information and
        visibility.
         N/A sentences N/A N/A N/A GPGSA GPGSV_SEQ N/A GPRMC GPGGA GPGLL N/A callbacksFired N/A headingReceived beaconInformationReceived speedReceived positionReceived timeReceived altitudeReceived positionErrorReceived N/A N/A N/A self _receiverTest sentences callbacksFired N/A N/A