reorganising projects
--HG-- branch : sandbox
This commit is contained in:
62
misc/batch_rename.py
Normal file
62
misc/batch_rename.py
Normal file
@@ -0,0 +1,62 @@
|
||||
""" flatex broker server """
|
||||
|
||||
import getopt
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
|
||||
import logging
|
||||
mylog = logging.getLogger('batch_rename')
|
||||
|
||||
class Usage(Exception):
|
||||
def __init__(self, message):
|
||||
Exception.__init__(message)
|
||||
|
||||
|
||||
class Error(Exception):
|
||||
def __init__(self, message):
|
||||
Exception.__init__(message)
|
||||
|
||||
# Star.Trek.The.Next.Generation.1x01-02.Encounter.At.Farpoint.DVDRip-AMC.[tvu.org.ru].avi
|
||||
# Star Trek TNG - 1x01-2 - Encounter At Farpoint - DVDRip-AMC.divx.avi
|
||||
|
||||
def main(argv = None):
|
||||
if argv == None:
|
||||
argv = sys.argv
|
||||
mylog.info("starting [%s]" % (argv[0],))
|
||||
try:
|
||||
try:
|
||||
opts, args = getopt.getopt(argv[1:], "h", ["help"])
|
||||
print "opts: ", opts, "args:", args
|
||||
except getopt.error, msg:
|
||||
raise Usage(msg)
|
||||
# more code, unchanged
|
||||
p = re.compile("Star\.Trek\.The\.Next\.Generation.(.*?)\.(.*)\.(DVDRip-.*)\.\[tvu.org.ru\]\.avi")
|
||||
tng = "e:\\share\\movies\\star trek tng"
|
||||
os.chdir(tng)
|
||||
for (dirpath, dirnames, filenames) in os.walk(tng):
|
||||
for f in filenames:
|
||||
mot = re.match(p, f)
|
||||
if mot is not None:
|
||||
# print mot.group()
|
||||
print mot.groups()
|
||||
ver = mot.group(1)
|
||||
title0 = mot.group(2)
|
||||
title1 = title0.replace('.', ' ')
|
||||
nf = "Star Trek TNG - %s - %s - %s.divx.avi" % (ver, title1, mot.group(3))
|
||||
# os.rename(f, nf)
|
||||
print 'ren "%s" "%s"' % (f, nf)
|
||||
|
||||
except Error, err:
|
||||
mylog.error(err.message)
|
||||
return 1
|
||||
except Usage, err:
|
||||
mylog.error(err.message)
|
||||
mylog.error("for help use --help")
|
||||
return 2
|
||||
|
||||
if __name__ == '__main__':
|
||||
logging.basicConfig(level=logging.DEBUG,
|
||||
format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
|
||||
datefmt='%H:%M:%S')
|
||||
sys.exit(main())
|
||||
6
misc/ftpget.py
Normal file
6
misc/ftpget.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from ftplib import FTP
|
||||
|
||||
ftp = FTP('ftp.asstr.org') # connect to host, default port
|
||||
ftp.login() # user anonymous, passwd anonymous@
|
||||
print ftp.getwelome()
|
||||
ftp.retrbinary('RETR README', open('README', 'wb').write)
|
||||
97
misc/histogram.py
Normal file
97
misc/histogram.py
Normal file
@@ -0,0 +1,97 @@
|
||||
""" walk histogram
|
||||
"""
|
||||
|
||||
import sys
|
||||
import re
|
||||
import datetime
|
||||
|
||||
mol = re.compile("\S+\s(\S+?)\|.{5}(.{6}).\|(.*)\|(.*)")
|
||||
|
||||
def main(argv = None):
|
||||
if argv == None:
|
||||
argv = sys.argv
|
||||
ifn = "e:/livefeed/20070829/GDAXI.csv"
|
||||
ofn = "e:/eclipse/workspace/filter/var/GDAXI_histogram.csv"
|
||||
tick_list = [ ]
|
||||
histogram = { }
|
||||
print "Converting [%s] to [%s]" % (ifn, ofn)
|
||||
try:
|
||||
ifh = open(ifn, "r")
|
||||
ofh = open(ofn, "w")
|
||||
except IOError:
|
||||
print "open [%s] failed" % ifn
|
||||
return 2
|
||||
try:
|
||||
for line in ifh:
|
||||
tick_list.append(parseCsv(line))
|
||||
for i in xrange(1, len(tick_list)):
|
||||
diff = tick_list[i].last - tick_list[i-1].last
|
||||
key = int( diff * 100 )
|
||||
if key not in histogram:
|
||||
histogram[key] = 1
|
||||
else:
|
||||
histogram[key] += 1
|
||||
# for key in sorted(histogram.keys()):
|
||||
for i in xrange(-1000, 1000):
|
||||
if i in histogram:
|
||||
print >> ofh, float(i)/100, ",", histogram[i]
|
||||
else:
|
||||
print >> ofh, float(i)/100, ",0"
|
||||
finally:
|
||||
ifh.close()
|
||||
ofh.close()
|
||||
print "Done."
|
||||
|
||||
time_pattern = re.compile("(..):(..):(..).(\d+)")
|
||||
|
||||
def parseCsv(line):
|
||||
flds = line.split(',')
|
||||
mot = re.match(time_pattern, flds[0])
|
||||
(hh, mm, ss, ms) = mot.group(1, 2, 3, 4)
|
||||
time = datetime.time(int(hh), int(mm), int(ss), int(ms)*1000)
|
||||
# pid = flds[1]
|
||||
bid = flds[2]
|
||||
ask = flds[3]
|
||||
last = flds[4]
|
||||
return Tick(time, float(bid), float(ask), float(last))
|
||||
|
||||
class Tick:
|
||||
""" VDO helper class """
|
||||
def __init__(self, ti, bid, ask, last):
|
||||
self.time = ti
|
||||
self.bid = bid
|
||||
self.ask = ask
|
||||
self.last= last
|
||||
|
||||
def __cmp__(self, other):
|
||||
return cmp(self.time, other.time)
|
||||
|
||||
class Roi:
|
||||
""" VDO helper class """
|
||||
def __init__(self, buy_time, sell_time, pnl):
|
||||
self.buy_time = buy_time
|
||||
self.sell_time = sell_time
|
||||
self.pnl = pnl
|
||||
|
||||
def pnl_per_minute(self):
|
||||
dt = time_in_minutes(self.sell_time) - time_in_minutes(self.buy_time)
|
||||
try:
|
||||
ppm = self.pnl / dt
|
||||
except ZeroDivisionError:
|
||||
return self.pnl
|
||||
return ppm
|
||||
|
||||
def __cmp__(self, other):
|
||||
return cmp(self.pnl_per_minute(), other.pnl_per_minute())
|
||||
|
||||
def __repr__(self):
|
||||
return "%s,%s,%.2f,%.2f" % (self.buy_time, self.sell_time,
|
||||
self.pnl, self.pnl_per_minute())
|
||||
|
||||
|
||||
def time_in_minutes(ti):
|
||||
return ti.hour * 60 + ti.minute + float(ti.second) / 60
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main(sys.argv))
|
||||
120
misc/main.py
Normal file
120
misc/main.py
Normal file
@@ -0,0 +1,120 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright (c) 2009 Andreas Balogh
|
||||
# See LICENSE for details.
|
||||
|
||||
""" new module template """
|
||||
|
||||
# system imports
|
||||
|
||||
import logging
|
||||
import sys
|
||||
import os
|
||||
import getopt
|
||||
|
||||
# local imports
|
||||
|
||||
# constants
|
||||
|
||||
# globals
|
||||
|
||||
LOG = logging.getLogger()
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG,
|
||||
format="%(asctime)s %(levelname).3s %(process)d:%(thread)d %(message)s",
|
||||
datefmt="%H:%M:%S")
|
||||
|
||||
# definitions
|
||||
|
||||
class Usage(Exception):
|
||||
pass
|
||||
|
||||
class Error(Exception):
|
||||
pass
|
||||
|
||||
def main(argv = [__name__]):
|
||||
try:
|
||||
# check for parameters
|
||||
LOG.debug("starting '%s %s'", argv[0], " ".join(argv[1:]))
|
||||
script_name = os.path.basename(argv[0])
|
||||
try:
|
||||
opts, args = getopt.getopt(argv[1:], "hfgp", \
|
||||
["help", "force", "gui", "preview"])
|
||||
except getopt.error, err:
|
||||
raise Usage(err)
|
||||
LOG.debug("opts: %s, args: %s", opts, args)
|
||||
o_overwrite = False
|
||||
o_gui = False
|
||||
o_preview = False
|
||||
for o, a in opts:
|
||||
if o in ("-h", "--help"):
|
||||
usage(script_name)
|
||||
return 0
|
||||
elif o in ("-f", "--force"):
|
||||
o_overwrite = True
|
||||
elif o in ("-p", "--preview"):
|
||||
o_preview = True
|
||||
elif o in ("-g", "--gui"):
|
||||
o_gui = True
|
||||
if len(args) == 2:
|
||||
src_dir = args[0]
|
||||
dest_dir = args[1]
|
||||
elif len(args) == 1 :
|
||||
src_dir = args[0]
|
||||
dest_dir = args[0]
|
||||
elif len(args) == 0 :
|
||||
src_dir = None
|
||||
dest_dir = None
|
||||
o_gui = True
|
||||
else:
|
||||
raise Usage("more than two arguments provided")
|
||||
# call method with appropriate arguments
|
||||
if src_dir and not os.path.exists(src_dir):
|
||||
raise Error("Source directory not found [%s], aborting" % (src_dir, ))
|
||||
if dest_dir and not os.path.exists(dest_dir):
|
||||
LOG.warn("Destination directory not found [%s]", dest_dir)
|
||||
if not o_preview:
|
||||
LOG.info("Creating destination directory [%s]", dest_dir)
|
||||
os.makedirs(dest_dir)
|
||||
if o_gui:
|
||||
gui(src_dir, dest_dir, o_overwrite)
|
||||
else:
|
||||
cli(src_dir, dest_dir, o_preview, o_overwrite)
|
||||
LOG.debug("Done.")
|
||||
return 0
|
||||
except Error, err:
|
||||
LOG.error(err)
|
||||
return 1
|
||||
except Usage, err:
|
||||
LOG.error(err)
|
||||
LOG.info("for usage use -h or --help")
|
||||
return 2
|
||||
|
||||
|
||||
def gui(src_dir, dest_dir, o_overwrite):
|
||||
""" graphical user interface """
|
||||
print src_dir, dest_dir, o_overwrite
|
||||
|
||||
|
||||
def cli(src_dir, dest_dir, o_preview, o_overwrite):
|
||||
""" command line interface """
|
||||
print src_dir, dest_dir, o_preview, o_overwrite
|
||||
|
||||
|
||||
def usage(script_name):
|
||||
print
|
||||
print "usage: %s [options] [src_dir [dest_dir]]" % (script_name,)
|
||||
print """
|
||||
src_dir source directory to search for MOD/MOI
|
||||
dest_dir destination directory for MPG files
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
-f, --force override files with same name in destination directory
|
||||
-g, --gui force interactive mode
|
||||
-p, --preview preview only, don't copy, don't create non-existent directories
|
||||
"""
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main(sys.argv))
|
||||
|
||||
35
misc/pricefeed.py
Normal file
35
misc/pricefeed.py
Normal file
@@ -0,0 +1,35 @@
|
||||
""" pricefeed file filter
|
||||
*.log: "20070905 09:04:56.841|DE000DB0M091|4.430|4.440"
|
||||
*.csv: "09:04:56.841,DB0M09,4.430,4.440"
|
||||
"""
|
||||
|
||||
import sys
|
||||
import re
|
||||
|
||||
mol = re.compile("\S+\s(\S+?)\|.{5}(.{6}).\|(.*)\|(.*)")
|
||||
|
||||
def main(argv = None):
|
||||
if argv == None:
|
||||
argv = sys.argv
|
||||
if (len(argv) != 2):
|
||||
print "Usage: filter.py <filename.log>"
|
||||
return 2
|
||||
ifn = argv[1]
|
||||
ofn = "".join((ifn.split(".")[0], ".csv"))
|
||||
print "Converting [%s] to [%s]" % (ifn, ofn)
|
||||
try:
|
||||
ifh = open(ifn, "r")
|
||||
ofh = open(ofn, "w")
|
||||
except IOError:
|
||||
print "open [%s] failed" % ifn
|
||||
return 2
|
||||
try:
|
||||
for line in ifh:
|
||||
flds = mol.match(line)
|
||||
print >>ofh, ",".join(flds.groups())
|
||||
finally:
|
||||
ifh.close()
|
||||
ofh.close()
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main(sys.argv))
|
||||
94
misc/roimatrix.py
Normal file
94
misc/roimatrix.py
Normal file
@@ -0,0 +1,94 @@
|
||||
""" roi matrix
|
||||
"""
|
||||
|
||||
import sys
|
||||
import re
|
||||
import datetime
|
||||
|
||||
mol = re.compile("\S+\s(\S+?)\|.{5}(.{6}).\|(.*)\|(.*)")
|
||||
|
||||
def main(argv = None):
|
||||
if argv == None:
|
||||
argv = sys.argv
|
||||
ifn = "e:/livefeed/20070829/GDAXI.csv"
|
||||
ofn = "e:/eclipse/workspace/filter/var/GDAXI_roi.csv"
|
||||
tick_list = [ ]
|
||||
roi_list = [ ]
|
||||
print "Converting [%s] to [%s]" % (ifn, ofn)
|
||||
try:
|
||||
ifh = open(ifn, "r")
|
||||
ofh = open(ofn, "w")
|
||||
except IOError:
|
||||
print "open [%s] failed" % ifn
|
||||
return 2
|
||||
try:
|
||||
for line in ifh:
|
||||
tick_list.append(parseCsv(line))
|
||||
for (i, buy_tick) in enumerate(tick_list[0::300]):
|
||||
print buy_tick.time
|
||||
for sell_tick in tick_list[0::300]:
|
||||
if (buy_tick > sell_tick):
|
||||
continue
|
||||
pnl = ( sell_tick.last - buy_tick.last ) * 25.0 - 11.80
|
||||
# print buy_tick.last, sell_tick.last, pnl
|
||||
roi_list.append(Roi(buy_tick.time, sell_tick.time, pnl))
|
||||
for roi in roi_list:
|
||||
print >> ofh, str(roi)
|
||||
finally:
|
||||
ifh.close()
|
||||
ofh.close()
|
||||
print "Done."
|
||||
|
||||
time_pattern = re.compile("(..):(..):(..).(\d+)")
|
||||
|
||||
def parseCsv(line):
|
||||
flds = line.split(',')
|
||||
mot = re.match(time_pattern, flds[0])
|
||||
(hh, mm, ss, ms) = mot.group(1, 2, 3, 4)
|
||||
time = datetime.time(int(hh), int(mm), int(ss), int(ms)*1000)
|
||||
# pid = flds[1]
|
||||
bid = flds[2]
|
||||
ask = flds[3]
|
||||
last = flds[4]
|
||||
return Tick(time, float(bid), float(ask), float(last))
|
||||
|
||||
class Tick:
|
||||
""" VDO helper class """
|
||||
def __init__(self, ti, bid, ask, last):
|
||||
self.time = ti
|
||||
self.bid = bid
|
||||
self.ask = ask
|
||||
self.last= last
|
||||
|
||||
def __cmp__(self, other):
|
||||
return cmp(self.time, other.time)
|
||||
|
||||
class Roi:
|
||||
""" VDO helper class """
|
||||
def __init__(self, buy_time, sell_time, pnl):
|
||||
self.buy_time = buy_time
|
||||
self.sell_time = sell_time
|
||||
self.pnl = pnl
|
||||
|
||||
def pnl_per_minute(self):
|
||||
dt = time_in_minutes(self.sell_time) - time_in_minutes(self.buy_time)
|
||||
try:
|
||||
ppm = self.pnl / dt
|
||||
except ZeroDivisionError:
|
||||
return self.pnl
|
||||
return ppm
|
||||
|
||||
def __cmp__(self, other):
|
||||
return cmp(self.pnl_per_minute(), other.pnl_per_minute())
|
||||
|
||||
def __repr__(self):
|
||||
return "%s,%s,%.2f,%.2f" % (self.buy_time, self.sell_time,
|
||||
self.pnl, self.pnl_per_minute())
|
||||
|
||||
|
||||
def time_in_minutes(ti):
|
||||
return ti.hour * 60 + ti.minute + float(ti.second) / 60
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main(sys.argv))
|
||||
52
misc/wget_batch.py
Normal file
52
misc/wget_batch.py
Normal file
@@ -0,0 +1,52 @@
|
||||
""" broker quote request recorder engine """
|
||||
|
||||
import logging
|
||||
import getopt
|
||||
import sys
|
||||
import datetime
|
||||
|
||||
mylog = logging.getLogger()
|
||||
|
||||
|
||||
class Usage(Exception):
|
||||
def __init__(self, message):
|
||||
Exception.__init__(message)
|
||||
|
||||
|
||||
class Error(Exception):
|
||||
def __init__(self, message):
|
||||
Exception.__init__(message)
|
||||
|
||||
|
||||
def main(argv = None):
|
||||
if argv == None:
|
||||
argv = sys.argv
|
||||
mylog.info("starting [%s]" % (argv[0],))
|
||||
try:
|
||||
try:
|
||||
opts, args = getopt.getopt(argv[1:], "h", ["help"])
|
||||
print "opts: ", opts, "args:", args
|
||||
except getopt.error, msg:
|
||||
raise Usage(msg)
|
||||
# set up stderr logging
|
||||
logging.basicConfig(level=logging.DEBUG,
|
||||
format='%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s',
|
||||
datefmt='%H:%M:%S')
|
||||
# main code starts here
|
||||
ofh = open("e:/install/asstr_get", "w")
|
||||
for i in xrange(56546,57096):
|
||||
# print >> ofh, "wget http://www.literotica.com/stories/showstory.php?id=%i" % i
|
||||
print >> ofh, "wget http://www.asstr.org/files/Collections/Alt.Sex.Stories.Moderated/Year2007/%i" % i
|
||||
ofh.close()
|
||||
|
||||
except Error, err:
|
||||
mylog.error(err.message)
|
||||
return 1
|
||||
except Usage, err:
|
||||
mylog.error(err.message)
|
||||
mylog.error("for help use --help")
|
||||
return 2
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
||||
|
||||
Reference in New Issue
Block a user