diff options
Diffstat (limited to 'python/collateral')
| -rw-r--r-- | python/collateral/__init__.py | 1 | ||||
| -rw-r--r-- | python/collateral/baml_fcm.py | 20 | ||||
| -rw-r--r-- | python/collateral/wells.py | 51 |
3 files changed, 11 insertions, 61 deletions
diff --git a/python/collateral/__init__.py b/python/collateral/__init__.py index 2c13d5c8..ab60aae6 100644 --- a/python/collateral/__init__.py +++ b/python/collateral/__init__.py @@ -9,6 +9,7 @@ except KeyError: from utils import SerenitasFileHandler from dates import bus_day +from remote import SftpClient, SftpClient2 fh = SerenitasFileHandler("collateral_calc.log") logger = logging.getLogger(__name__) diff --git a/python/collateral/baml_fcm.py b/python/collateral/baml_fcm.py index d6a676f8..b6bfddfb 100644 --- a/python/collateral/baml_fcm.py +++ b/python/collateral/baml_fcm.py @@ -1,25 +1,13 @@ -from . import DAILY_DIR +from . import DAILY_DIR, SftpClient from .common import compare_notionals, STRATEGY_CASH_MAPPING -from paramiko import Transport, SFTPClient, RSAKey -import os.path +from functools import partial import pandas as pd from sqlalchemy.exc import IntegrityError -def get_sftp_client(): - transport = Transport(("ftps.b2b.ml.com", 22)) - pkey = RSAKey.from_private_key_file(os.path.expanduser("~/.ssh/id_rsa_lmcg")) - transport.connect(username="lmcginvs", pkey=pkey) - return SFTPClient.from_transport(transport) +sftp = SftpClient.from_creds("baml_fcm") - -def download_files(d=None): - DATA_DIR = DAILY_DIR / "BAML_reports" - sftp = get_sftp_client() - for f in sftp.listdir("outgoing"): - local_file = DATA_DIR / f - if not local_file.exists(): - sftp.get(f"outgoing/{f}", localpath=DATA_DIR / f) +download_files = partial(sftp.download_files, "outgoing", DAILY_DIR / "BAML_reports") def collateral(d, positions, engine): diff --git a/python/collateral/wells.py b/python/collateral/wells.py index affd99a8..e47142ee 100644 --- a/python/collateral/wells.py +++ b/python/collateral/wells.py @@ -1,54 +1,15 @@ import pandas as pd -import socket -from . import DAILY_DIR +from . import DAILY_DIR, SftpClient2 from .common import compare_notionals, STRATEGY_CASH_MAPPING -from paramiko import Transport, SFTPClient +from functools import partial from sqlalchemy.exc import IntegrityError -from ssh2.session import Session -from ssh2.sftp import LIBSSH2_FXF_READ, LIBSSH2_SFTP_S_IRUSR, LIBSSH2_SFTP_S_IFREG -def get_wells_sftp_client(): - transport = Transport(("axst.wellsfargo.com", 10022)) - transport.connect(username="LMCHsWC6EP", password="HI2s2h19+") - return SFTPClient.from_transport(transport) +sftp = SftpClient2.from_creds("wells") - -def get_wells_sftp_client2(): - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock.connect(("axst.wellsfargo.com", 10022)) - session = Session() - session.handshake(sock) - session.userauth_password("LMCHsWC6EP", "HI2s2h19+") - sftp = session.sftp_init() - return sftp - - -def download_files2(d=None): - DATA_DIR = DAILY_DIR / "Wells_reports" - sftp = get_wells_sftp_client() - base_dir = "/RECEIVE/339425_DATO2" - for f in sftp.listdir(base_dir): - if not (DATA_DIR / f).exists(): - sftp.get(f"{base_dir}/{f}", localpath=DATA_DIR / f) - - -def download_files(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) +download_files = partial( + sftp.download_files, "/RECEIVE/339425_DATO2", DAILY_DIR / "Wells_reports" +) def collateral(d, positions, engine): |
