diff options
Diffstat (limited to 'python/download_daily.py')
| -rw-r--r-- | python/download_daily.py | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/python/download_daily.py b/python/download_daily.py deleted file mode 100644 index 255b8c8c..00000000 --- a/python/download_daily.py +++ /dev/null @@ -1,88 +0,0 @@ -import os
-import os.path
-import datetime
-from ftplib import FTP
-import gnupg
-import config
-import sys
-import re
-import logging
-
-try:
- import pandas as pd
- from pandas.tseries.offsets import BDay
-except ImportError:
- pass
-
-if os.name =='nt':
- root = "//WDsentinel/share/Daily"
-elif os.name == 'posix':
- root = '/home/share/Daily'
-
-def get_ped(s):
- regex = re.search("PED=(.+?)\.", s)
- if regex:
- PED = datetime.datetime.strptime(regex.group(1), "%Y-%m-%d").date()
- else:
- regex = re.search("(.+?)\.", s)
- PED = pd.to_datetime(regex.group(1), "%Y%m%d") - BDay(1)
- PED = PED.date()
- return PED
-
-def key_fun(s):
- PED = get_ped(s)
- regex = re.search("KD=(.+?)\.", s)
- if regex:
- KD = datetime.datetime.strptime(regex.group(1), "%Y-%m-%d-%H-%M-%S")
- else:
- regex = re.search("(.+?\..+?)\.", s)
- KD = datetime.datetime.strptime(regex.group(1), "%Y%m%d.%H%M%S")
- return (PED, KD)
-
-def download_data(workdate):
- ftp = FTP('ftp.globeop.com')
- ftp.login('srntsftp', config.ftp_password)
- ftp.cwd('outgoing')
- files = ftp.nlst()
-
- pnlfiles = [filename for filename in files if "csv" in filename and \
- "Profit" in filename if get_ped(filename) < workdate]
- valuationfiles = [filename for filename in files if "csv" in filename and \
- "Valuation" in filename if get_ped(filename) < workdate]
- pnlfile = sorted(pnlfiles, key=key_fun, reverse=True)[0]
- valuationfile = sorted(valuationfiles, key=key_fun, reverse=True)[0]
-
- if pnlfile:
- if not os.path.exists(os.path.join(root, str(workdate), "Reports")):
- os.makedirs(os.path.join(root, str(workdate), "Reports"))
-
- for filename in [pnlfile, valuationfile]:
- with open(os.path.join(root, str(workdate), "Reports", filename), "wb") as fh:
- ftp.retrbinary('RETR ' + filename, fh.write)
- logging.info("downloaded {0}".format(filename))
-
- if os.name=='nt':
- gpg = gnupg.GPG(gpgbinary = r'"c:\\Program Files (x86)\\GNU\\GnuPG\\gpg2.exe"',
- gnupghome = os.path.join(os.getenv('APPDATA'), "gnupg"))
- elif os.name == 'posix':
- gpg = gnupg.GPG(gnupghome = os.path.join(os.getenv('HOME'), '.gnupg'))
- gpg.encoding = 'utf8'
- for filename in [pnlfile, valuationfile]:
- if "Profit" in filename:
- newfilename = "Pnl.csv"
- else:
- newfilename = "Valuation_Report.csv"
- with open(os.path.join(root, str(workdate), "Reports", filename), "rb") as fh:
- gpg.decrypt_file(fh, output = os.path.join(root, str(workdate), "Reports", newfilename),
- passphrase=config.key_password)
- os.remove(os.path.join(root, str(workdate), "Reports", filename))
-
-if __name__=="__main__":
- if len(sys.argv) > 1:
- workdate = datetime.datetime.strptime(sys.argv[1], "%Y-%m-%d").date()
- else:
- workdate = datetime.date.today()
- logging.basicConfig(filename='/home/share/CorpCDOs/logs/download_daily.log',
- level=logging.INFO,
- format='%(asctime)s %(message)s')
- download_data(workdate)
|
