aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/collateral_calc.py39
1 files changed, 36 insertions, 3 deletions
diff --git a/python/collateral_calc.py b/python/collateral_calc.py
index db58a2ff..a3efd523 100644
--- a/python/collateral_calc.py
+++ b/python/collateral_calc.py
@@ -1,5 +1,6 @@
import logging
import pandas as pd
+import socket
import sys
from db import dawn_engine
@@ -15,6 +16,11 @@ from pandas.tseries.offsets import BDay
from paramiko import Transport, SFTPClient, RSAKey
from parse_citi_pdf import get_citi_collateral
from sqlalchemy.exc import IntegrityError
+from ssh2.session import Session
+from ssh2.utils import wait_socket
+from ssh2.error_codes import LIBSSH2_ERROR_EAGAIN
+from ssh2.sftp import (LIBSSH2_FXF_READ, LIBSSH2_SFTP_S_IRUSR,
+ LIBSSH2_SFTP_S_IFDIR, LIBSSH2_SFTP_S_IFREG)
logging.basicConfig(filename=LOG_DIR / 'collateral_calc.log',
level=logging.WARNING,
@@ -36,6 +42,33 @@ def get_wells_sftp_client():
transport.connect(username='LMCHsWC6EP', password='0lvK+7xL')
return SFTPClient.from_transport(transport)
+def get_wells_sftp_client2():
+ start = timer()
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ sock.connect(('axst.wellsfargo.com', 10022))
+ session = Session()
+ session.handshake(sock)
+ session.userauth_password('LMCHsWC6EP', '0lvK+7xL')
+ sftp = session.sftp_init()
+ return sftp
+
+def download_wells_files2(d=None):
+ DATA_DIR = DAILY_DIR / "Wells_reports"
+ sftp = get_wells_sftp_client2()
+ files = []
+ with sftp.opendir("/RECEIVE/339425_DATO2") as fh:
+ for size, buf, attrs in fh.readdir():
+ if attrs.permissions & LIBSSH2_SFTP_S_IFREG:
+ files.append(buf.decode())
+ for f in files:
+ local_file = DATA_DIR / f
+ if not local_file.exists():
+ with sftp.open(f"/RECEIVE/339425_DATO2/{f}",
+ LIBSSH2_FXF_READ, LIBSSH2_SFTP_S_IRUSR) as remote_handle,
+ local_file.open("wb") as local_handle:
+ for size, data in remote_handle:
+ local_handle.write(data)
+
def download_baml_files(d=None):
DATA_DIR = DAILY_DIR / "BAML_reports"
sftp = get_baml_sftp_client()
@@ -47,7 +80,8 @@ def download_wells_files(d=None):
sftp = get_wells_sftp_client()
base_dir = "/RECEIVE/339425_DATO2"
for f in sftp.listdir(base_dir):
- sftp.get(f"{base_dir}/{f}", localpath=DATA_DIR / f)
+ if not (DATA_DIR / f).exists():
+ sftp.get(f"{base_dir}/{f}", localpath=DATA_DIR / f)
def download_sftp_files(d=None,
@@ -446,10 +480,9 @@ if __name__ == "__main__":
download_ms_emails()
download_gs_emails()
download_citi_emails()
-
#download_sftp_files(d)
download_baml_files()
- download_wells_files()
+ download_wells_files2()
dawn_trades = get_dawn_trades()
d = (pd.Timestamp.today() - BDay()).normalize()
try: