[Tutor] well I finally got finished with this part of my exercise

Clayton Kirkwood crk at godblessthe.us
Thu Oct 16 00:27:30 CEST 2014


No, it hasn't taken the whole time, but it did take longer than I wanted,
but I did progress as seen below.

 

1st pass - get the idea down:

#program to capture streaming quotes from yahoo

import re

out_file = open("output", mode='w')

in_file = open('Yahoo!_Finance_Portfolios.htm', encoding= "utf-8" )

if not (in_file.readline().startswith("<!DOCTYPE html>")): #first line isn't
an HTML

    exit(44)

line_in, line_no  =  ' ', 0

for line_in in in_file:

    print( line_in[:100], flush = True )    # check out the line for debug.
[:100] cuz charset error on long string

    line_no += 1

    cap_end = 0

    print(line_no, '\"', line_in[:120], '\"', flush = True)

    while True:

        pattern = re.compile(r'.+?<tr data-row-symbol=\"([A-Z\.\-\^]+?)\"')
#continuing on the line

        a = pattern.search( line_in, cap_end )

        if not a:

            break

        print( "line_no=", line_no, 'pattern=\"', pattern, '\"', ", a = \'",
a, '\"', flush=True)

        stock = a.group(1)

        stock_end = a.end()

        pattern = re.compile(r'.+?wk52:low.+?>([\d\.]+?)<')

        a = pattern.search( line_in, stock_end )

        low_52 = a.group(1)

        low_end = a.end()

        pattern = re.compile(r'.+?prevclose:.+?>([\d\.\,]+?)<')

        a = pattern.search( line_in, low_end )

        prev = a.group(1)

        prev_end = a.end()

        pattern = re.compile(r'.+?mkt:open.+?>([\d\.\,]+?)<')

        a = pattern.search( line_in, prev_end )

        mkt_open = a.group(1)

        mkt_end = a.end()

        pattern = re.compile(r'.+?mkt:low.+?>([\d\.\,]+?)<' )

        a = pattern.search(line_in, mkt_end)

        mkt_low = a.group(1)

        mkt_end = a.end()

        pattern = re.compile(r'.+?mkt:lsttrdtime.+?>(.+?)<' )

        a = pattern.search( line_in, mkt_end )

        last_time = a.group(1)

        last_end = a.end()

        pattern = re.compile(r'.+?tquote:value.+?>([\d\.\,]+?)<' )

        a = pattern.search( line_in, last_end )

        stock_price = a.group(1)

        stock_end = a.end()

        pattern =re.compile(r'.+?mkt:chg.+?>([\-\+][\d\.\,]+?)<' )

        a = pattern.search(line_in, stock_end )

        mkt_change = a.group(1)

        mkt_end = a.end()

        pattern = re.compile(r'.+?mkt:pctchg.+?>([\+\-][\d\.\,]+?%)<' )

        a = pattern.search( line_in, mkt_end )

        pct_change = a.group(1)

        pct_end = a.end()

        pattern = re.compile(r'.+?mkt:high.+?>([\d\.\,]+?)<' )

        a = pattern.search( line_in, pct_end )

        mkt_high = a.group(1)

        mkt_end = a.end()

        pattern = re.compile(r'.+?wk52:high.+?>([\d\.\,]+?)<' )

        a = pattern.search( line_in, mkt_end )

        high_52 = a.group(1)

        high_end = a.end()

        pattern = re.compile(r'.+?mkt:vol.+?>([\d\,]+?)<' )

        a = pattern.search( line_in, high_end )

        vol = a.group(1)

        vol_end = a.end()

        pattern = re.compile(r'.+?mkt.avgVol.+?>([\d\,]+?)<' )

        a = pattern.search( line_in, vol_end )

        vol_avg = a.group(1)

        vol_end = a.end()

        pattern =
re.compile(r'.+?dividend_per_share.+?datum">([\d\.\,-]+?)<' )

        a = pattern.search( line_in, vol_end )

        div_share = a.group(1)

        div_end = a.end()

        pattern = re.compile(r'.+?dividend_yield.+?>([\d\.-]+?)<' )

        a = pattern.search(line_in, div_end )

        div_yield = a.group(1)

        div_end = a.end()

        pattern = re.compile(r".+?market_cap.+?datum.?>([\d\.\,-]+?[A-Z])<")

        a = pattern.search(line_in, div_end )

        cap = a.group(1)

        cap_end = a.end()

        print( stock, low_52, prev, mkt_open, mkt_low, last_time,
stock_price, mkt_change, pct_change, mkt_high, high_52, vol, vol_avg,
div_share, div_yield, cap, flush=True )

        out_file.closed

 

2nd pass:

 

#program to capture streaming quotes from yahoo

import re

out_file = open("output", mode='w')

in_file = open('Yahoo!_Finance_Portfolios.htm', encoding= "utf-8" )

if not (in_file.readline().startswith("<!DOCTYPE html>")): #first line isn't
an HTML

    exit(44)

line_in   =  ' '

for line_in in in_file:

#    print( line_in[:100], flush = True )    # check out the line for debug.
[:100] cuz charset error on long string

    string_end = 0

#    print(line_no, '\"', line_in[:120], '\"', flush = True) #debug, flush
needed cuz otherwise confused output

    while True:

        pattern = re.compile(r'.+?<tr data-row-symbol=\"([A-Z\.\-\^]+?)\"')
#continuing on the line

        match = pattern.search( line_in, string_end )

        if not match:       # nothing here: look at next line

            break       # out of inner loop

        stock = match.group(1)      # pick up stock name

        string_end = match.end()

        pattern = re.compile(r'.+?wk52:low.+?>([\d\.]+?)<')

        match = pattern.search( line_in, string_end )

        low_52 = match.group(1)

        string_end = match.end()

        pattern = re.compile(r'.+?prevclose:.+?>([\d\.\,]+?)<')

        match = pattern.search( line_in, string_end )

        prev = match.group(1)

        string_end = match.end()

        pattern = re.compile(r'.+?mkt:open.+?>([\d\.\,]+?)<')

        match = pattern.search( line_in, string_end )

        mkt_open = match.group(1)

        string_end = match.end()

        pattern = re.compile(r'.+?mkt:low.+?>([\d\.\,]+?)<' )

        match = pattern.search(line_in, string_end)

        mkt_low = match.group(1)

        string_end = match.end()

        pattern = re.compile(r'.+?mkt:lsttrdtime.+?>(.+?)<' )

        maatch = pattern.search( line_in, string_end )

        last_time = match.group(1)

        string_end = match.end()

        pattern = re.compile(r'.+?tquote:value.+?>([\d\.\,]+?)<' )

        match = pattern.search( line_in, string_end )

        stock_price = match.group(1)

        string_end = match.end()

        pattern =re.compile(r'.+?mkt:chg.+?>([\-\+][\d\.\,]+?)<' )

        match = pattern.search(line_in, string_end )

        mkt_change = match.group(1)

        string_end = match.end()

        pattern = re.compile(r'.+?mkt:pctchg.+?>([\+\-][\d\.\,]+?%)<' )

        match = pattern.search( line_in, string_end )

        pct_change = match.group(1)

        string_end = match.end()

        pattern = re.compile(r'.+?mkt:high.+?>([\d\.\,]+?)<' )

        match = pattern.search( line_in, string_end )

        mkt_high = match.group(1)

        string_end = match.end()

        pattern = re.compile(r'.+?wk52:high.+?>([\d\.\,]+?)<' )

        match = pattern.search( line_in, string_end )

        high_52 = match.group(1)

        string_end = match.end()

        pattern = re.compile(r'.+?mkt:vol.+?>([\d\,]+?)<' )

        match = pattern.search( line_in, string_end )

        vol = match.group(1)

        string_end = match.end()

        pattern = re.compile(r'.+?mkt.avgVol.+?>([\d\,]+?)<' )

        match = pattern.search( line_in, string_end )

        vol_avg = match.group(1)

        string_end = match.end()

        pattern =
re.compile(r'.+?dividend_per_share.+?datum">([\d\.\,-]+?)<' )

        match = pattern.search( line_in, string_end )

        div_share = match.group(1)

        string_end = match.end()

        pattern = re.compile(r'.+?dividend_yield.+?>([\d\.-]+?)<' )

        match = pattern.search(line_in, string_end )

        div_yield = match.group(1)

        string_end = match.end()

        pattern = re.compile(r".+?market_cap.+?datum.?>([\d\.\,-]+?[A-Z])<")

        match = pattern.search(line_in, string_end )

        cap = match.group(1)

        string_end = match.end()            # we'll use string_end at the
beginning of loop

        print( stock, low_52, prev, mkt_open, mkt_low, last_time,
stock_price, mkt_change, pct_change, mkt_high, high_52, vol, vol_avg,
div_share, div_yield, cap, flush=True )

        out_file.closed     # always do the right thing

 

final pass:

 

#program to capture streaming quotes from yahoo

import re

 

def match_string( pattern, string_end ):

    pattern = re.compile( pattern )

    match = pattern.search( line_in, string_end )

    return(match.group(1), match.end())

 

out_file = open("output", mode='w')

in_file = open('Yahoo!_Finance_Portfolios.htm', encoding= "utf-8" )

if not (in_file.readline().startswith("<!DOCTYPE html>")): #first line isn't
an HTML

    exit(44)

line_in   =  ' '

for line_in in in_file:

#    print( line_in[:100], flush = True )    # check out the line for debug.
[:100] cuz charset error on long string

    string_end = 0

#    print(line_no, '\"', line_in[:120], '\"', flush = True) #debug, flush
needed cuz otherwise confused output

    while True:

        pattern = re.compile(r'.+?<tr data-row-symbol=\"([A-Z\.\-\^]+?)\"')
#continuing on the line

        match = pattern.search( line_in, string_end )

        if not match:       # nothing here: look at next line

            break       # out of inner loop

        stock = match.group(1)      # pick up stock name

        string_end = match.end()

#        pattern = re.compile(r'.+?wk52:low.+?>([\d\.]+?)<')

#        match = pattern.search( line_in, string_end )

#        low_52 = match.group(1)

#        string_end = match.end()

        

        (low_52, string_end) = match_string( r'.+?wk52:low.+?>([\d\.]+?)<',
string_end)

        (prev, string_end) = match_string(r'.+?prevclose:.+?>([\d\.\,]+?)<',
string_end)

        (mkt_open, string_end) =
match_string(r'.+?mkt:open.+?>([\d\.\,]+?)<', string_end)

        (mkt_low, string_end) = match_string(r'.+?mkt:low.+?>([\d\.\,]+?)<',
string_end)

        (last_time, string_end) =
match_string(r'.+?mkt:lsttrdtime.+?>(.+?)<', string_end)

        (stock_price, string_end) =
match_string(r'.+?tquote:value.+?>([\d\.\,]+?)<', string_end)

        (mkt_change, string_end) =
match_string(r'.+?mkt:chg.+?>([\-\+][\d\.\,]+?)<', string_end)

        (pct_change, string_end) =
match_string(r'.+?mkt:pctchg.+?>([\+\-][\d\.\,]+?%)<', string_end)

        (mkt_high, string_end) =
match_string(r'.+?mkt:high.+?>([\d\.\,]+?)<', string_end )

        (high_52, string_end) =
match_string(r'.+?wk52:high.+?>([\d\.\,]+?)<', string_end)

        (vol, string_end) = match_string(r'.+?mkt:vol.+?>([\d\,]+?)<',
string_end)

        (vol_avg, string_end) =
match_string(r'.+?mkt.avgVol.+?>([\d\,]+?)<', string_end)

        (div_share, string_end) =
match_string(r'.+?dividend_per_share.+?datum">([\d\.\,-]+?)<', string_end )

        (div_yield, string_end) =
match_string(r'.+?dividend_yield.+?>([\d\.-]+?)<', string_end )

        (cap, string_end) =
match_string(r".+?market_cap.+?datum.?>([\d\.\,-]+?[A-Z])<", string_end)

        print( stock, low_52, prev, mkt_open, mkt_low, last_time,
stock_price, mkt_change, pct_change, mkt_high, high_52, vol, vol_avg,
div_share, div_yield, cap, flush=True )

        out_file.close()   # always do the right thing

 

So, I learned quite a bit about matching and found that .+? is very useful:
it is the question mark. Swallows as little as possible.

Learned something about a simple function and returns. All put out the same
thing:

 

EKSO 0.75 1.38 1.39 1.26 03:57pm EST 1.3000 -0.0800 -5.80% 1.49 8.22 660,578
596,448 - - 102.05M

SWKS 23.27 52.23 50.13 44.06 04:00pm EST 47.01 -5.22 -9.99% 50.13 59.25
12,383,347 3,448,690 0.44 0.80 8.91B

EROC 2.79 3.01 2.98 2.79 04:00pm EST 2.95 -0.06 -1.99% 3.05 7.88 716,374
608,405 0.60 18.80 464.19M

RKUS 8.65 12.54 12.36 11.78 04:04pm EST 11.84 -0.70 -5.58% 12.39 18.58
1,243,329 1,345,410 - - 979.58M

FES 2.93 3.18 3.14 3.07 04:00pm EST 3.08 -0.10 -3.14% 3.15 5.75 15,514
43,111 - - 67.12M

WLB 13.38 35.60 35.41 34.37 04:00pm EST 34.45 -1.15 -3.23% 36.33 45.19
213,917 189,145 0.00 0.00 585.17M

DANG 7.69 11.00 10.67 10.33 04:02pm EST 10.33 -0.67 -6.09% 11.02 19.05
1,767,816 2,327,650 - - 833.54M

UEPS 7.03 11.77 11.72 11.26 04:00pm EST 11.29 -0.48 -4.08% 11.82 14.24
212,876 431,726 - - 535.52M

GY 15.01 15.46 15.37 15.12 04:02pm EST 15.17 -0.29 -1.88% 15.53 19.77
339,871 505,269 0.00 0.00 890.48M

NR 10.43 11.00 10.89 10.59 04:05pm EST 10.89 -0.11 -1.00% 11.06 13.64
1,005,357 740,434 - - 911.13M

PQ 3.64 4.54 4.50 4.32 04:02pm EST 4.50 -0.04 -0.88% 4.65 7.82 893,841
799,475 - - 297.42M

PLG 0.76 0.7873 0.7899 0.7823 04:00pm EST 0.7942 +0.0069 +0.88% 0.8143 1.37
159,580 161,960 - - 440.8642M

CALX 7.12 8.93 8.85 8.27 04:05pm EST 8.31 -0.62 -6.94% 8.85 13.36 371,015
295,832 - - 423.1M

SWC 10.42 14.08 13.93 13.82 04:03pm EST 13.85 -0.23 -1.63% 14.44 19.42
1,531,009 1,828,360 - - 1.66B

BBG 16.06 17.26 16.84 16.06 04:04pm EST 16.10 -1.16 -6.72% 17.21 30.69
1,993,888 1,333,430 - - 773.22M

IAU 11.51 11.84 11.85 11.80 04:00pm EST 11.85 +0.01 +0.08% 11.86 13.46
6,511,530 2,368,960 - 0.00 1.62B

IDTI 9.18 14.04 13.74 12.62 04:00pm EST 12.685 -1.355 -9.65% 13.84 17.32
8,615,394 3,095,850 - - 1.887B

GRH 0.8 1.30 1.16 1.16 04:00pm EST 1.1650 -0.1350 -10.38% 1.25 3.62 131,138
631,260 - - 42.93M

ORBC 5.4 5.85 5.82 5.75 04:00pm EST 5.80 -0.05 -0.85% 5.97 8.21 148,377
174,626 - - 320.47M

PTX 1.68 8.09 8.04 7.89 04:00pm EST 8.20 +0.11 +1.36% 8.45 9.56 890,188
425,780 0.00 0.00 311.95M

AMAT 16.4 20.87 20.55 19.50 04:15pm EST 19.83 -1.04 -4.98% 20.59 23.46
33,135,379 12,219,800 0.40 2.00 24.16B

^DJI 0 1,928.21 1,925.63 1,906.05 04:28pm EST 1,906.13 -22.08 -1.15%
1,936.98 2,019.26 757,485,255 27,888,833 0.92 1.59 121.77M

ADEP 6.85 7.34 7.29 6.85 04:00pm EST 6.89 -0.45 -6.13% 7.29 21.9 146,339
230,198 - - 90.02M

CIMT 5.38 5.51 5.50 5.50 03:59pm EST 5.50 -0.01 -0.18% 5.54 10.75 45,323
79,577 0.00 0.00 59.24M

DDD 39.09 40.86 40.31 39.09 04:00pm EST 39.14 -1.72 -4.21% 40.92 97.28
3,237,974 3,035,590 0.11 0.60 4.3B

IRBT 28.9 31.82 31.65 31.42 04:00pm EST 32.00 +0.18 +0.57% 32.32 48.36
892,183 661,142 - - 945.7M

ONVO 5.12 6.00 5.86 5.53 04:00pm EST 5.56 -0.44 -7.33% 5.98 13.65 962,106
1,057,330 - - 436.34M

VJET 11.9 12.84 12.55 11.90 04:00pm EST 12.09 -0.75 -5.84% 12.87 70 408,697
453,477 - - 221.28M

XONE 16 18.21 18.11 17.81 04:00pm EST 19.78 +1.57 +8.62% 20.75 70.25 941,813
577,675 - - 285.66M

AXAS 2.81 4.13 4.09 3.79 04:00pm EST 3.84 -0.29 -7.02% 4.13 6.45 4,336,860
2,590,600 - - 400.34M

CMLP 19.01 19.92 19.79 19.01 04:03pm EST 19.03 -0.89 -4.47% 19.79 24.94
1,212,528 614,751 1.64 7.70 3.58B

CORR 6.11 7.33 7.27 7.19 04:02pm EST 7.20 -0.13 -1.77% 7.39 8.54 103,846
132,263 0.50 7.70 10.58B

FET 24.32 28.50 28.34 27.58 04:03pm EST 27.66 -0.84 -2.95% 28.51 37.03
343,356 423,854 - - 2.56B

GDP 10.61 11.22 11.20 10.62 04:02pm EST 10.83 -0.39 -3.48% 11.82 30.52
2,935,299 1,686,260 - - 481.14M

LNCGY 6.63 7.30 6.95 6.63 03:59pm EST 6.7499 -0.5501 -7.54% 7.00 17.25
123,277 38,138 - - 396.8334M

NAMG 0.0251 0.0272 0.0251 0.0251 01:20pm EST 0.0261 -0.0011 -4.04% 0.0299
1.3 14,610 92,791 - - 1.6408M

NRG 26.3 31.04 31.16 30.08 04:02pm EST 30.14 -0.90 -2.90% 31.38 38.09
5,711,982 4,186,300 0.56 1.80 10.18B

QTWW 2.99 3.34 3.27 3.22 04:00pm EST 3.51 +0.17 +5.09% 3.60 11.25 248,630
284,014 - - 81.77M

SDLP 26.69 29.37 29.01 28.19 04:05pm EST 29.98 +0.61 +2.08% 30.42 36.07
817,735 315,097 2.17 7.50 2.51B

SDRL 22.01 24.11 23.54 22.01 04:05pm EST 22.83 -1.28 -5.31% 23.64 47.29
15,010,230 6,057,380 4.00 16.10 10.7B

SLCA 24.28 48.95 47.50 44.00 04:03pm EST 45.62 -3.33 -6.80% 48.60 73.43
6,377,504 1,900,830 0.50 1.00 2.46B

TRP 42.21 47.77 47.71 47.19 04:04pm EST 47.72 -0.05 -0.10% 48.77 58.4
3,454,796 1,501,470 1.73 3.40 33.79B

TSL 9.55 10.09 9.97 9.55 04:05pm EST 9.92 -0.17 -1.68% 10.41 18.77 7,281,208
5,037,110 - - 811.15M

UGA 49.9 50.35 50.38 49.90 04:00pm EST 50.25 -0.10 -0.20% 50.56 64.27 20,892
23,802 - 0.00 1.84B

WDGJF 10.14 10.92 10.749 10.53 12:19pm EST 10.533 -0.387 -3.54% 10.749 13.93
2,983 2,040 - - 3.842B

WPRT 5.7 6.23 6.23 5.70 04:00pm EST 6.05 -0.18 -2.89% 6.28 25.1 1,692,057
812,189 - - 381.98M

FCSMF 0.24 0.39 0.41 0.40 03:43pm EST 0.40 +0.01 +3.09% 0.42 0.65 43,300
99,049 - - 42.83M

GTI 3.31 3.58 3.52 3.47 04:04pm EST 3.72 +0.14 +3.91% 3.75 13.01 2,016,591
1,878,670 - - 506.43M

MCP 1.14 1.49 1.49 1.36 04:03pm EST 1.38 -0.11 -7.38% 1.52 7.24 4,485,912
5,543,760 - - 337.79M

NGPHF 0.53 0.774 0.75 0.745 03:59pm EST 0.7460 -0.0280 -3.62% 0.77 1.32
35,188 144,531 - - 36.689M

TAS 0.55 0.605 0.60 0.55 04:00pm EST 0.5680 -0.0370 -6.12% 0.6099 1.89
286,580 95,643 - - 36.5892M

PALL 67.6 77.35 76.27 75.85 04:00pm EST 76.34 -1.01 -1.31% 76.45 88.42
38,892 57,737 - - 69.2618M

SPPP 8.35 8.92 8.84 8.77 04:00pm EST 8.80 -0.12 -1.35% 8.86 10.34 83,538
130,674 - - 15.7B

ANV 2.29 2.69 2.64 2.51 04:02pm EST 2.5100 -0.1800 -6.69% 2.76 6.7 2,492,399
2,747,350 - - 261.87M

GDX 20.11 21.22 21.13 20.67 04:00pm EST 20.77 -0.45 -2.12% 21.61 28.03
52,019,404 33,993,100 0.11 0.20 18.88B

IAG 2.22 2.41 2.40 2.31 04:02pm EST 2.32 -0.09 -3.73% 2.47 5.59 8,204,914
6,909,500 0.00 0.00 874.41M

PZG 0.68 0.75 0.75 0.70 04:01pm EST 0.70 -0.05 -6.53% 0.75 1.48 444,793
487,271 - - 112.91M

SBGL 4.39 8.68 8.66 8.39 04:02pm EST 8.47 -0.21 -2.42% 8.95 11.29 1,031,828
762,377 0.28 3.30 1.9B

SIL 9.72 10.30 10.19 9.96 04:00pm EST 10.14 -0.16 -1.55% 10.53 15.28 533,074
235,908 0.24 - 6.95B

SVM 1.41 1.55 1.52 1.52 04:01pm EST 1.58 +0.03 +1.94% 1.59 3.6 806,644
860,260 0.02 1.20 270M

AFOP 11.11 11.71 11.66 11.11 04:00pm EST 11.22 -0.49 -4.18% 11.75 22.6
267,475 482,178 0.15 1.30 208.87M

AMD 2.71 2.95 2.95 2.71 04:00pm EST 2.72 -0.23 -7.80% 2.95 4.8 41,013,929
30,318,300 - - 2.08B

AMKR 4.42 8.18 8.09 7.18 04:00pm EST 7.18 -1.00 -12.22% 8.20 12.27 2,336,091
1,478,200 - - 1.7B

ASX 4.44 6.20 6.16 5.90 04:02pm EST 5.95 -0.25 -4.03% 6.16 6.89 1,765,849
732,037 0.15 2.40 9.12B

EBIX 11.13 13.42 13.38 13.14 04:00pm EST 13.30 -0.12 -0.89% 13.56 17.95
328,446 448,305 0.30 2.30 508.69M

GTAT 0.75 1.29 1.00 0.76 04:00pm EST 0.81 -0.48 -37.21% 1.09 20.54
70,540,435 22,427,900 - - 111.41M

HIMX 5.7 9.52 9.28 8.85 04:00pm EST 9.09 -0.43 -4.52% 9.45 16.15 5,445,526
5,650,400 0.27 2.90 1.55B

INTC 22.82 33.62 32.63 30.50 04:00pm EST 31.91 -1.71 -5.09% 32.86 35.56
80,910,985 31,394,900 0.90 2.70 157.99B

INVN 15.2 19.09 18.85 17.66 04:00pm EST 18.74 -0.35 -1.83% 19.21 26.78
3,113,288 3,267,400 - - 1.67B

INVT 1.22 1.31 1.32 1.28 03:58pm EST 1.3000 -0.0100 -0.76% 1.40 14.98 76,880
163,928 0.00 0.00 31.32M

MU 16.17 30.64 29.75 27.59 04:15pm EST 27.79 -2.85 -9.30% 29.87 34.85
85,676,857 24,427,600 0.00 0.00 29.68B

PCRFY 9.32 11.40 11.33 11.10 03:58pm EST 11.13 -0.27 -2.35% 11.33 13.14
89,081 196,168 - - 25.73B

RFMD 4.5 10.34 10.09 9.30 04:00pm EST 9.62 -0.72 -6.96% 10.23 12.98
23,946,024 11,723,600 - - 2.77B

STM 6.93 7.39 7.20 6.93 04:00pm EST 6.96 -0.43 -5.82% 7.21 10 2,775,384
775,592 0.34 4.50 6.22B

CXDC 4.51 5.16 5.18 5.06 04:00pm EST 5.21 +0.05 +0.97% 5.25 13.24 100,879
353,680 - - 258.36M

FRM 6.57 7.16 7.10 6.86 04:02pm EST 6.90 -0.26 -3.63% 7.18 12.7 243,022
200,508 0.00 0.00 259.7M

JBLU 6.77 10.68 10.59 10.04 04:00pm EST 10.06 -0.62 -5.81% 10.84 12.83
13,438,950 7,708,150 - - 2.94B

FTR 4.28 5.93 5.97 5.87 04:15pm EST 5.90 -0.03 -0.51% 6.01 7.24 7,605,322
10,940,100 0.40 6.50 5.91B

SSW 19.13 19.72 19.62 19.13 04:02pm EST 19.45 -0.27 -1.37% 19.86 24.48
335,848 163,789 1.38 6.70 1.84B

WIN 7.18 10.33 10.36 10.09 04:00pm EST 10.11 -0.22 -2.08% 10.415 13.3
6,950,101 8,084,240 1.00 9.40 6.096B

ACRX 5.22 6.07 6.02 5.80 04:00pm EST 6.06 -0.01 -0.16% 6.32 13.64 509,193
1,145,230 - - 262.86M

ADHD 5.88 6.53 6.41 5.95 04:00pm EST 6.06 -0.47 -7.20% 6.50 25.44 447,337
385,751 - - 82.79M

AFFX 6.25 7.21 7.15 7.10 04:00pm EST 7.10 -0.11 -1.53% 7.37 9.8 541,914
549,582 - - 521.01M

CRY 7.22 10.39 10.30 10.24 04:01pm EST 10.30 -0.09 -0.87% 10.61 12.14 84,549
114,891 0.12 1.10 287.63M

DRTX 8.6 23.60 23.56 23.51 04:00pm EST 23.56 -0.04 -0.17% 23.85 24.33
741,953 571,268 - - 630.87M

GALE 1.66 1.81 1.78 1.69 04:00pm EST 1.71 -0.10 -5.52% 1.83 7.77 1,887,999
1,904,160 - - 202.13M

HZNP 3.65 12.24 12.16 11.66 04:00pm EST 11.97 -0.27 -2.21% 12.44 18.3
1,876,080 2,035,960 - - 894.98M

INO 6.52 10.09 10.23 9.92 04:00pm EST 10.04 -0.05 -0.50% 10.42 15.8 822,957
1,428,130 - - 606.4M

KERX 8.61 15.82 15.85 14.92 04:00pm EST 14.98 -0.84 -5.31% 16.21 18.48
2,889,907 2,435,450 - - 1.38B

KLH.V 0.65 1.33 1.31 1.24 03:59pm EST 1.28 -0.05 -3.76% 1.32 2.55 230,485
514,989 - - 100M

SBOTF 0.6 1.196 1.165 1.10 03:57pm EST 1.1310 -0.0648 -5.42% 1.18 2.36
306,955 590,542 - - 88.357M

MBII 1.85 2.29 2.22 1.85 04:00pm EST 1.99 -0.30 -13.10% 2.25 20 571,556
261,028 - - 48.55M

NBIX 8.57 15.94 15.85 15.71 04:00pm EST 15.93 -0.01 -0.06% 16.32 20.29
651,053 527,702 0.00 0.00 1.21B

NEO 2.71 4.69 4.63 4.53 04:00pm EST 4.79 +0.10 +2.13% 4.93 6.1 161,449
532,298 - - 240.33M

NKTR 8.87 12.67 12.58 12.55 04:00pm EST 12.65 -0.02 -0.16% 13.00 15.34
1,984,022 1,252,300 - - 1.61B

NVAX 2.68 4.41 4.33 4.33 04:00pm EST 4.40 -0.01 -0.23% 4.59 6.95 4,341,420
2,963,340 - - 1.05B

OPK 7.32 8.27 8.22 8.05 04:01pm EST 8.16 -0.11 -1.33% 8.33 12.95 2,310,886
2,344,180 - - 3.5B

PGNX 3.1 4.55 4.51 4.41 04:00pm EST 4.4900 -0.0600 -1.32% 4.72 7.45 712,642
1,115,430 - - 312.3M

POZN 5.35 8.01 7.98 7.91 04:00pm EST 7.95 -0.06 -0.75% 8.18 9.9 253,740
258,711 0.00 0.00 250.65M

RDNT 1.5 7.64 7.63 7.40 04:00pm EST 7.60 -0.04 -0.46% 8.00 8.46 406,024
453,480 - - 324.32M

SPPI 6.36 7.35 7.29 7.21 04:00pm EST 7.33 -0.02 -0.27% 7.51 10.32 1,000,626
882,048 0.00 0.00 473.58M

THCZ 0.015 0.016 0.016 0.015 03:50pm EST 0.0180 +0.0024 +15.38% 0.018 0.018
399,453 0 - - 3.349M

XOMA 3.42 3.72 3.76 3.65 04:00pm EST 3.70 -0.02 -0.54% 3.92 9.57 1,598,839
1,283,950 - - 396.18M

 

I'm pretty happy with the outcome, but as I said, way to long.

 

Next step is to play with http calls.

 

Clayton 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20141015/60ce9ae0/attachment-0001.html>


More information about the Tutor mailing list