aboutsummaryrefslogtreecommitdiffstats
path: root/python/collateral
diff options
context:
space:
mode:
Diffstat (limited to 'python/collateral')
-rw-r--r--python/collateral/__init__.py1
-rw-r--r--python/collateral/baml_fcm.py20
-rw-r--r--python/collateral/wells.py51
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):