Ejemplo n.º 1
0
def checkInstitutionRetentionsbyOCLCNumber(event, context):
    item_file = handle_files.readFilesFromBucket(event)
    csv_read = handle_files.loadCSV(item_file)
    csv_read = process_data.retrieveInstitutionRetentionsbyOCLCNumber(
        processConfig, csv_read)
    handle_files.saveFileToBucket(fileInfo['bucket'],
                                  fileInfo['key'] + "_updated", csv_read)
def process(args):
    item_file = handle_files.readFileFromLocal(args.itemFile) 
    
    operation = args.operation
    output_dir = args.outputDir
    
    # get a token
    scope = ['WorldCatMetadataAPI']
    try:
        oauth_session = make_requests.createOAuthSession(config, scope)
    
        config.update({"oauth-session": oauth_session})
        processConfig = config
        csv_read = handle_files.loadCSV(item_file) 
        
        if operation == "getCurrentOCLCNumbers":
            csv_read = process_data.retrieveCurrentOCLCNumbers(processConfig, csv_read)
        elif operation == "retrieveMergedOCLCNumbers":
            csv_read = process_data.retrieveMergedOCLCNumbers(processConfig, csv_read)    
        elif operation == "setHoldingsbyOCLCNumber":                
            csv_read = process_data.setHoldingsbyOCLCNumber(processConfig, csv_read)   
        elif operation == "deleteHoldingsbyOCLCNumber":
            csv_read = process_data.deleteHoldingsbyOCLCNumber(processConfig, csv_read)
        elif operation == "addLBDs":
            csv_read = process_data.addLBDs(processConfig, csv_read)            
    
        return handle_files.saveFileLocal(csv_read, output_dir)

    except BaseException as err:
        result = 'no access token ' + str(err)
        return result   
def addLBDs(event, context):
    item_file = handle_files.readFilesFromBucket(event)
    csv_read = handle_files.loadCSV(item_file)
    csv_read = process_data.addLBDs(processConfig, csv_read)
    handle_files.saveFileToBucket(fileInfo['bucket'],
                                  fileInfo['key'] + "_updated", csv_read)

    return saveFile(bucket, key + "_updated", csv_read)
def deleteHoldingsbyOCLCNumber(event, context):
    item_file = handle_files.readFilesFromBucket(event)
    csv_read = handle_files.loadCSV(item_file)
    csv_read = process_data.deleteHoldingsbyOCLCNumber(processConfig, csv_read)
    handle_files.saveFileToBucket(fileInfo['bucket'],
                                  fileInfo['key'] + "_updated", csv_read)

    return saveFile(bucket, key + "_updated", csv_read)
Ejemplo n.º 5
0
def test_retrieveInstitutionRetentionsbyOCLCNumber(mockOAuthSession, getTestConfig, tmpdir, requests_mock):
    oclcSymbol = 'CCO'
    requests_mock.register_uri('GET', 'https://americas.discovery.api.oclc.org/worldcat/v2/retained-holdings?oclcNumber=776775878&heldBy=' + oclcSymbol, status_code=200, json=retained_bySymbol)
    requests_mock.register_uri('GET', 'https://americas.discovery.api.oclc.org/worldcat/v2/retained-holdings?oclcNumber=1702614&heldBy=' + oclcSymbol, status_code=200, json=retained_bySymbol2)    
    item_file = "oclcNumber\n776775878\n1702614"
    csv_read = handle_files.loadCSV(item_file)    
    getTestConfig.update({"oauth-session": mockOAuthSession}) 
    result = process_data.retrieveInstitutionRetentionsbyOCLCNumber(getTestConfig, csv_read, oclcSymbol)
    assert type(result) is pandas.DataFrame
    final_result = pandas.DataFrame(data={"oclcNumber": [776775878, 1702614], "accession_numbers":['236528690', '272142932'], "barcodes": [None, None], "locations": [None, None], "status": ['success', 'success']})
Ejemplo n.º 6
0
def test_retrieveSPByOCLCNumber(mockOAuthSession, getTestConfig, tmpdir, requests_mock):
    heldInState = "CA"
    requests_mock.register_uri('GET', 'https://americas.discovery.api.oclc.org/worldcat/v2/bibs-retained-holdings?oclcNumber=776775878&heldInState=' + heldInState, status_code=200, json=retained_byState)
    requests_mock.register_uri('GET', 'https://americas.discovery.api.oclc.org/worldcat/v2/bibs-retained-holdings?oclcNumber=1702614&heldInState=' + heldInState, status_code=200, json=retained_byState2)    
    item_file = "oclcNumber\n776775878\n1702614"
    csv_read = handle_files.loadCSV(item_file)    
    getTestConfig.update({"oauth-session": mockOAuthSession})
    result = process_data.retrieveSPByOCLCNumber(getTestConfig, csv_read, heldInState=heldInState)
    assert type(result) is pandas.DataFrame
    final_result = pandas.DataFrame(data={"oclcNumber": [776775878, 1702614], "total_holding_count":[50, 395], "retained_symbols": ['CCO', 'CCO'], "status": ['success', 'success']})
def process(args):
    with open(config_file, 'r') as stream:
        config = yaml.safe_load(stream)
    item_file = handle_files.readFileFromLocal(args.itemFile)

    operation = args.operation
    output_dir = args.outputDir

    try:
        oauth_session = make_requests.createOAuthSession(
            config, [config.read('scope')])

        config.update({"oauth-session": oauth_session})
        processConfig = config
        csv_read = handle_files.loadCSV(item_file)
        if operation == "retrieveAllInstitutionRetentions":
            results = []
            for index, row in csv_read.iterrows():
                csv_read_institution = process_data.retrieveAllInstitutionRetentions(
                    processConfig, row['symbol'])
                result = handle_files.saveFileLocal(csv_read_institution,
                                                    output_dir)
                results.append(row['symbol'] + ": " + result)

            return ",".join(results)
        else:
            if operation == "retrieveMergedOCLCNumbers":
                csv_read = process_data.retrieveMergedOCLCNumbers(
                    processConfig, csv_read)
            elif operation == "retrieveHoldingsByOCLCNumber":
                if hasattr(args, 'heldBy'):
                    heldBy = args.heldBy
                elif hasattr(args, 'heldByGroup'):
                    heldByGroup = args.heldByGroup
                csv_read = process_data.retrieveHoldingsByOCLCNumber(
                    processConfig, csv_read, heldByGroup, heldBy)

            elif operation == "retrieveSPByOCLCNumber":
                csv_read = process_data.retrieveSPByOCLCNumber(
                    processConfig, csv_read, heldByGroup, heldInState)
                if hasattr(args, 'heldByGroup'):
                    heldByGroup = args.heldByGroup
                elif hasattr(args, 'heldInState'):
                    heldInState = args.heldInState
            elif operation == "retrieveInstitutionRetentionsbyOCLCNumber":
                heldBy = args.heldBy
                csv_read = process_data.retrieveInstitutionRetentionsbyOCLCNumber(
                    processConfig, csv_read, heldBy)

            return handle_files.saveFileLocal(csv_read, output_dir)

    except BaseException as err:
        result = 'no access token ' + str(err)
        return result
Ejemplo n.º 8
0
def test_retrieveHoldingsByOCLCNumber(mockOAuthSession, getTestConfig, tmpdir, requests_mock):
    oclcSymbol = "OCPSB"
    requests_mock.register_uri('GET', 'https://americas.discovery.api.oclc.org/worldcat/v2/bibs-detailed-holdings?oclcNumber=318877925&heldBy=' + oclcSymbol, status_code=200, json=institution_holdings)
    requests_mock.register_uri('GET', 'https://americas.discovery.api.oclc.org/worldcat/v2/bibs-detailed-holdings?oclcNumber=191865523&heldBy=' + oclcSymbol, status_code=200, json=institution_holdings2)
    item_file = "oclcNumber\n318877925\n191865523"  
    csv_read = handle_files.loadCSV(item_file)    
    getTestConfig.update({"oauth-session": mockOAuthSession})
    result = process_data.retrieveHoldingsByOCLCNumber(getTestConfig, csv_read, heldBy=oclcSymbol)
    assert type(result) is pandas.DataFrame 
    final_result = pandas.DataFrame(data={"oclcNumber": [318877925, 191865523], "total_holding_count":[246, 3355], "holding_symbols": ['OCPSB', 'OCPSB'], "status": ['success', 'success']})
    assert_frame_equal(result, final_result)  
Ejemplo n.º 9
0
def test_retrieveMergedOCLCNumbers(mockOAuthSession, getTestConfig, tmpdir, requests_mock):
    requests_mock.register_uri('GET', 'https://americas.discovery.api.oclc.org/worldcat/v2/bibs/311684437', status_code=200, json=merged_oclcnumbers)
    requests_mock.register_uri('GET', 'https://americas.discovery.api.oclc.org/worldcat/v2/bibs/318877925', status_code=200, json=merged_oclcnumbers2)
    item_file = "oclcNumber\n311684437\n318877925"
    csv_read = handle_files.loadCSV(item_file) 
    getTestConfig.update({"oauth-session": mockOAuthSession})
    result = process_data.retrieveMergedOCLCNumbers(getTestConfig, csv_read)
    assert type(result) is pandas.DataFrame
    #assert result.columns == ["oclcNumber", "mergedOCNs", "status"]
    final_result = pandas.DataFrame(data={"oclcNumber": [311684437, 318877925], "mergedOCNs":['261176486,330361568,377707240,426228842,701739996,716923895,731216527,887752101,945738851', '877908501,979175514,981548811,990719089,993246604,1005002644,1011917725,1016539262,1020206933,1057597575'], "status": ['success', 'success']})
    assert_frame_equal(result, final_result)
Ejemplo n.º 10
0
def getInstitutionRetentions(event, context):
    item_file = handle_files.readFilesFromBucket(event)
    csv_read = handle_files.loadCSV(item_file)
    results = []
    for index, row in csv_read.iterrows():
        retained_holdings = process_data.retrieveAllInstitutionRetentions(
            processConfig, row['symbol'])
        result = handle_files.saveFileToBucket(
            fileInfo['bucket'],
            fileInfo['key'] + "_" + row['symbol'] + "_retained",
            retained_holdings)
        results.append(row['symbol'] + ": " + result)

    return ",".join(results)
Ejemplo n.º 11
0
def getMergedOCLCNumbers(event, context):
    item_file = handle_files.readFilesFromBucket(event)
    csv_read = handle_files.loadCSV(item_file)
    csv_read = process_data.retrieveMergedOCLCNumbers(processConfig, csv_read)
    handle_files.saveFileToBucket(fileInfo['bucket'],
                                  fileInfo['key'] + "_updated", csv_read)