“AttributeError: module 'refinitiv.dataplatform.content.search' has no attribute 'Definition'”

Error : response = search.Definition(view=asset_view, top=max, filter=filter_str, select=select_str).get_data(). It says that “AttributeError: module 'refinitiv.dataplatform.content.search' has no attribute 'Definition'”

Code was based on Examples-> Commodities-> Shipping and Shipping assets and utilities shipping.ipynb.

Hello Team client is using this code:

import pandas as pd
import math
import refinitiv.dataplatform as rd
import plotly.express as px
from refinitiv.dataplatform.content import search

select = "RIC, AssetName, Latitude, Longitude, OriginPort, DestinationPort, LocationDestination, LocationETA, LocationDraft, HullType"
port = 'Cristobal'

def discover_vessels_arriving_at_port(port_name='', select_str="RIC, AssetName, Latitude, Longitude",
asset_view=search.SearchViews.VesselPhysicalAssets, max=50):
filter_str = f"DestinationPort eq '{port_name}'"
response = search.Definition(view=asset_view, top=max,
filter=filter_str, select=select_str).get_data()

vessels_to_port_df = response.data.df
vessels_to_port_df.dropna(subset=['LocationETA'], inplace=True)
vessels_to_port_df['ETA_Date'] = vessels_to_port_df['LocationETA'].apply(lambda x: x.split('T')[0])

return vessels_to_port_df


x = discover_vessels_arriving_at_port(port, select, max=500)


this code in codebook "asset_view=search.Views.VESSEL_PHYSICAL_ASSETS"


what i need to run as"asset_view=search.SearchViews.VesselPhysicalAssets"


the function discover_vessels need to run

Best Answer

  • Hi @marceugene.belen, may I ask which vessels CodeBook examples you are referring to?
    Is it "__Examples__/01. Data Retrieval and Discovery/01.01. Refinitiv Data Library/Access__Search.ipynb"?

    Please note that the module 'refinitiv.dataplatform.content.search' has indeed no attribute 'Definition'; you can instead use lines such as, for example:


    import refinitiv.data as rd
    rd.open_session()

    rd.discovery.search(
    view = rd.discovery.Views.EQUITY_QUOTES,
    top = 10,
    filter = "( SearchAllCategoryv2 eq 'Equities' and (AvgVol5D gt 2000000 and ExchangeName xeq 'NYSE Consolidated'))",
    select = "DTSubjectName,ExchangeName,RIC,IssueISIN,Gics,AssetState,BusinessEntity,PI,SearchAllCategoryv3,SearchAllCategoryv2,SearchAllCategory,TickerSymbol,CUSIP,CinCUSIP,AvgVol5D,RCSCurrencyLeaf,RCSTRBC2012Leaf,ExDividendDate,AvgVol30D,AvgVol90D,MktCapCompanyUsd,Pe,OpProfitUsd",
    order_by = "AvgVol5D desc")

Answers

  • Hi Jonathan! This is the path that Marc is referring to __Examples__/06. Commodities Research/06.03. Shipping/Shipping_Assets_Quickstart.ipynb

  • Hi @marceugene.belen, I ran the CodeBook example with no issue... I'm not sure I understand which part you might be stuck on in that example:


    1716988915662.png

  • Hello @jonathan.legrand thank you for the response. Will have a call with client and advise him to check this post thread. Client may add more information regarding his error. Thanks for the help.
  • Code was based on Examples-> Commodities-> Shipping and Shipping assets and utilities shipping.ipynb.

    Hello Team client is using this code:

    import pandas as pd
    import math
    import refinitiv.dataplatform as rd
    import plotly.express as px
    from refinitiv.dataplatform.content import search

    select = "RIC, AssetName, Latitude, Longitude, OriginPort, DestinationPort, LocationDestination, LocationETA, LocationDraft, HullType"
    port = 'Cristobal'

    def discover_vessels_arriving_at_port(port_name='', select_str="RIC, AssetName, Latitude, Longitude",
    asset_view=search.SearchViews.VesselPhysicalAssets, max=50):
    filter_str = f"DestinationPort eq '{port_name}'"
    response = search.Definition(view=asset_view, top=max,
    filter=filter_str, select=select_str).get_data()

    vessels_to_port_df = response.data.df
    vessels_to_port_df.dropna(subset=['LocationETA'], inplace=True)
    vessels_to_port_df['ETA_Date'] = vessels_to_port_df['LocationETA'].apply(lambda x: x.split('T')[0])

    return vessels_to_port_df


    x = discover_vessels_arriving_at_port(port, select, max=500)


    this code in codebook "asset_view=search.Views.VESSEL_PHYSICAL_ASSETS"


    what i need to run as"asset_view=search.SearchViews.VesselPhysicalAssets"


    the function discover_vessels need to run

  • Hi @marceugene.belen , If i understand correctly, we are speaking about

    "__Examples__/06. Commodities Research/06.03. Shipping/Shipping_Assets_Quickstart.ipynb"

    Please note that this example, in Codebook, has been updated and now uses the new and improved (free to install) Refinitiv Data Library for Python within the helper file :

    "__Examples__/06. Commodities Research/06.03. Shipping/_utilities_shipping.ipynb"


    As per that file, please do not run the line

    from refinitiv.dataplatform.content import search


    Instead, please run the line

    from refinitiv.data.content import search


    1717085499600.png

  • When client types in

    from refinitiv.data.content import search

    the code autosuggest dataplatform so client needs to just type it using data.content dataplatform?

    Also is there anything else that we need to change in the code of client in order to run it?

  • May I ask what code should I edit?

    1717086436517.png

  • Hi @marceugene.belen , As per our call, let's call the client together.