Issues with multiprocessing and import get pass

66 views Asked by At

Trying to write a multiprocessing code using the import get pass module

import time
from multiprocessing import Pool
from multiprocessing import freeze_support
import getpass
import jaydebeapi
import pandas as pd
import numpy as np

pw = getpass.getpass(prompt="Password", stream=False)

# establishing database to the ODS database
ODS = jaydebeapi.connect(
    'com.ibm.db2.jcc.DB2Driver',
    'jdbc:db2://he3qlxvtdbs351.fhlmc.com:50001/DB2QLTY',
    ['f408195', pw],
    'C:/JDBC/db2jcc.jar')

# Allows SQL statements between the ODS database
ODS = ODS.cursor()


# creating the password needed to establish PML database connection


pw_2 = getpass.getpass(prompt="Password", stream=False)

# establishing database to the PML database
PML = jaydebeapi.connect(
    'com.ibm.db2.jcc.DB2Driver',
    'jdbc:db2://he3qlxvtdbs957.fhlmc.com:50001/PMLFDB2',
    ['f408195', pw_2],
    'C:/JDBC/db2jcc.jar')
# Allows SQL statements between the PML database
PML = PML.cursor()


def test(first_evnt, last_evnt):
    PML_loan_Query = "select b.id_lpa_alt_loan from udbadm.pml_lst_cmpltd_trans_mtch a join udbadm.lpa_altv_loan_idtn b on a.id_evnt = b.id_evnt where b.cd_lpa_alt_loan_idtn = 'HewlettPackardGeneratedTransaction' and a.id_evnt BETWEEN ? AND ?"

    PML.execute(PML_loan_Query,(first_evnt, last_evnt))
    loan_records = PML.fetchall()
    df = pd.DataFrame()
    for x in loan_records:
# Populating the ODS table
    #borr_query = "SELECT nbr_aus, CAST(NULLIF(NULLIF(cd_idx, -9999), 0.000000) AS VARCHAR(100)) AS cd_idx, CAST(rate_curr_int AS INT) AS rate_curr_int, CAST(NULLIF(rate_gr_mrtg_mrgn,0) AS INT) AS rate_gr_mrtg_mrgn, CAST(rate_loln_max_cap AS INT) AS rate_loln_max_cap, CAST(NULLIF(rate_perdc_cap,0) AS INT) AS rate_perdc_cap FROM DB2MANT.I_LP_TRANS WHERE nbr_trans_aus BETWEEN ? AND ?"
            borr_query = 'SELECT nbr_aus, CAST(NULLIF(NULLIF(cd_idx, -9999), 0.000000) AS VARCHAR(10)) AS cd_idx, CAST(rate_curr_int AS VARCHAR(10)) AS rate_curr_int, CAST(NULLIF(rate_gr_mrtg_mrgn,0) AS VARCHAR(10)) AS rate_gr_mrtg_mrgn, CAST(rate_loln_max_cap AS VARCHAR(10)) AS rate_loln_max_cap, CAST(NULLIF(rate_perdc_cap,0) AS VARCHAR(10)) AS rate_perdc_cap FROM DB2MANT.I_LP_TRANS WHERE nbr_trans_aus IN (?)'
    #borr_query = "SELECT DISTINCT nbr_aus FROM DB2MANT.I_LP_TRANS WHERE nbr_trans_aus BETWEEN ? AND ?"
            ODS.execute(borr_query, x)
    #ODS.execute(ODS_list)
            ODS_records = ODS.fetchall()
            ODS_records = df.append(pd.DataFrame(ODS_records, columns = ['nbr_aus', 'cd_idx', 'rate_curr_int', 'rate_gr_mrtg_mrgn', 'rate_loln_max_cap', 'rate_perdc_cap']))
    return ODS_records

if __name__ == '__main__':
    freeze_support()
    first_evnt = 155643917
    last_evnt = 155684481
    p = Pool()
    result = p.map(test, [first_evnt, last_evnt])
    print(result)

    p.close()
    p.join()

I saved this script into a .py file and I tried to run it in the command prompt, it asked for my password for my ODS database, then my PML database, and then it seems to keep running the getpass command over and over again.

Below in a picture for reference.

enter image description here python script terminal

0

There are 0 answers