Python Screener() function error

Options

Dear all,

I get an error when I try to run a screen in Python on CodeBook.

I start with the example ,ipynb file provided (titled "Access__Screeners_And_Peers.ipynb")

To get the screen I want, I follow the explanations on the Developers portal: I use the screener function on the Workspace desktop app (no error), then I exported it on Excel (with formulas). I open it in Excel (no error). From the Excel function, I extract the screener details.

Here is my exact Excel function (no error in Excel):

=@TR ("SCREEN(U(IN(DEALS)/UNV:DEALSMNA/), IN(TR.MnAAcquirorNation,""BH"",""IR"",""IQ"",""IL"",""JO"",""KW"",""LB"",""OM"",""PS"",""QA"",""SA"",""SY"",""AE"",""YE"",""DZ"",""EG"",""LY"",""MA"",""TN""), BETWEEN(TR.MnAAnnDate,20000101,20041231)/dt:Date"&"/, TR.MnAPctOfSharesAcqSeeksToOwn>=100, TR.MnADealValue(Curn=USD,Scale=6)>=1, TR.MnAPctHeldAtAnnDate<50, CURN=USD)","TR.MNASDCDealNumber,TR.MnAAnnDate,TR.MnARankDate,TR.MnARankValueIncNetDebt(Curn=USD,Scale=6),TR.MnATarget,TR.MnATargetPermId,TR.MnAT"&"argetMacroInd,TR.MnATargetMidInd,TR.MnATargetNation,TR.MnAAcquiror,TR.MnAAcquirorPermId,TR.MnAAcquirorMacroInd,TR.MnAAcquirorMidInd,TR.MnAAcquirorNation,TR.MnATargetFinAdvisor(Concat='|'),TR.MnAAcquirorFinAdvisor(Concat='|'),TR.MnATargetPermId,TR.MnA"&"AcquirorPermId,TR.MnASynopsis,TR.MnAAcquirorBusDesc,TR.MnATargetBusDesc,TR.MnATargetPublicStatus,TR.MnAStatus,TR.MnADateUnconditional,TR.MnAConsidOfferedCategory(Concat=',')/EncodedScreenStart[{""currency"":""USD"",""universeĊĀlistsĊ[]đallě""actĕĚ:t"&"rueđinīĭĖĊfĦęđownėshipĻĽĴ""primaryOnlĉİIJŊŌĕatįļlľŋubĝcĊıijđcoēıyŚŏőquoŝňŠŊtŐgeĭnĖğorŷšŀćonƄŊdeĽmķƊđƌʼnqboƑ""ƓŸqƘƚsloaƉ:şšƞƖndƝƍŠŌojeĬfĶƢcŞʼnƒƬsŚvŜeeųitŖƥřōƽŝǀuǂyexǂġƤƸƙƺƼƾNJnjdĞƫƎēiǜŠǞǠsąŇǒŸƹĽjvǣpǦDžǩƭfƊ}đǎclusiƈǑģđǞĖĘeCƈŝxtĊ""DEALSMNAĐǔĦPŐĭcņƢtRolį""TȔidT"&"ůįnuħǵ""ƳlŝĘĢĀǃpȡMembŃŅŇĵsEķŤeƪŗũ""oȶrŜƂȊIćǹƌȤsOŁȼņƘƳelɅȴȨȊmŽaȤɅ""I_ȌȎ_ȑA_PARTICIɯNT_ACQUIRORȒɲONȔpŐaɡȱǑ""ȔıƢsfƂmǾĤɈutpʘȅǹƏȊƽǹĚĿrƌƃċȌSC""ȭʠijʌBH;ɾʲQʲL;JO;KW;LB;OM;PS;QA;SˉSY;AE;YˑDZ;EGʾˎMˉTʅǵɞȶȊDƾɓɁaɃɅŨŊɉėɌʦ""CǺtomɓɕłĘȽəiɛɝ""ȵȡʊɣĵɥɧɩLɫȒ_BASɳɨȍȏɬTRANˋC"&"ʃȒNNOUNCEMEɷDATEʆʈʊŃȊʎɋnʑʓʕĿʘʚtʜuʞċʭʢɈʤėˣEʩʫđmĶˤŶċ20͎01͐Ȕŏx͊ȡ͍041231ȔąlŜĮ͖Ċ1đ͢͠Ė͖ȧˢ:0ĥnŒrAħȊȎL͟ŬƩͬȡ̗Y͓͉ƾAsTodaDŽǓ͔͖΃΅·ΉŸˠ̀ɟċN̻ėicRƢż˦ɂȠ˪ŘĿɊ˯Ȋ>=˷ɖ˺ɘǧšɚɜĩ́ɠɢɤɎ̑ɪɬ̌̎̐̈ȐȒPER̢ɷAGEOFSHɰ̈́ɺɼɾʀSEEKSTOOWʅđʇɋ̭Ȳċ̰ʐʒrʔĢʖŬʙʛȟ̻ƣ""̾ȔƂʥ̓ͅȭ͈nVĦij͎͇ͥaxϹʡϼͯĪͱOͳ͵ċͷȔ̾Pcnȉͮđ"&"ęgɡАͼͥГeЕĆĠϧКgķɡ̯ΒβΕΗōΚΜ̿Ğ˧˩ŧ΢ɈΤ˴˰ΧΩ˹ńάǰȮ˽ΰ:ˡ̂δ̅ζ̈̊ɭVȎUEцшLъψ̛̗̙̫̕ϞŽ̮ċ˲rn=čD,ScĦe=6Ϣ̲ϤϦ:ǿʗϪ̹Ϭ̼ϯϺ̿ϲ͂ʧ̈́ʪ϶ĶЁϻ:ͦ""͔Ѽį͑ЄƢͲʹĨЊL͸đЍЏБЄДЖtИѾРғ̵""ДТȡ͆рȊΖɡЩΛnΝȿЮΠаɇ˭ɋдȊ<зɗǯǓί˿ЦҀт""ȥф̒цκ̏CἠορσTυEHEĻӇ̡̝̟̣̥TӍ̪Ϝ̬їϠʍđʏѨ̴Пѭ̸̺ѱϰʣϳѷϵ͇ѻѳĊЄҁӬ:5҅ІЈ҉""ЋҍѳЎАӭҗНҕѿҒНҙқʉҝ}ʖ"&"ƠgΙĦOгǼ̲TąeǑȪħ͇ΆȡscԓƉđ͡ğGōȦȹp͋͡ĀҜȊњąА ѡԝ Tԥԧ̿ҷɊsƈĦʫ}]EncodedScreenEnd/","Curn=USD CH=Fd")

From that, I extract the required code to use on CodeBook. My Python code is the following:

df = Screener('U(IN(DEALS)/UNV:DEALSMNA/), IN(TR.MnAAcquirorNation,""BH"",""IR"",""IQ"",""IL"",""JO"",""KW"",""LB"",""OM"",""PS"",""QA"",""SA"",""SY"",""AE"",""YE"",""DZ"",""EG"",""LY"",""MA"",""TN""), BETWEEN(TR.MnAAnnDate,20000101,20041231)/dt:Date"&"/, TR.MnAPctOfSharesAcqSeeksToOwn>=100, TR.MnADealValue(Curn=USD,Scale=6)>=1, TR.MnAPctHeldAtAnnDate<50, CURN=USD')

However, it gives me the following error:

LDError: Error code 800 | SCREEN( IN(TR.MnAAcquirorNation,""BH"",""IR"",""IQ"",""IL"",""JO"",""KW"",""LB"",""OM"",""PS"",""QA"",""SA"",""SY"",""AE"",""YE"",""DZ"",""EG"",""LY"",""MA"",""TN""), BETWEEN(TR.MnAAnnDate,20000101,20041231)/*dt:Date"&"*/, TR.MnAPctOfSharesAcqSeeksToOwn>=100, TR.MnADealValue(Curn=USD,Scale=6)>=1, TR.MnAPctHeldAtAnnDate<50, CURN=USD) processing failed. Requested universes: ['screen(U(IN(DEALS)/*UNV:DEALSMNA*/), IN(TR.MnAAcquirorNation,""BH"",""IR"",""IQ"",""IL"",""JO"",""KW"",""LB"",""OM"",""PS"",""QA"",""SA"",""SY"",""AE"",""YE"",""DZ"",""EG"",""LY"",""MA"",""TN""), BETWEEN(TR.MnAAnnDate,20000101,20041231)/*dt:Date"&"*/, TR.MnAPctOfSharesAcqSeeksToOwn>=100, TR.MnADealValue(Curn=USD,Scale=6)>=1, TR.MnAPctHeldAtAnnDate<50, CURN=USD)']. Requested fields: ['TR.RIC']

When I try without and part where it screens the acquiror nation IN(TR.MnAAcquirorNation,""BH"",""IR"",""IQ"",""IL"",""JO"",""KW"",""LB"",""OM"",""PS"",""QA"",""SA"",""SY"",""AE"",""YE"",""DZ"",""EG"",""LY"",""MA"",""TN"") and without the date screen BETWEEN(TR.MnAAnnDate,20000101,20041231)/dt:Date"&"/,, it works. But I want to screen for acquiror mations and date.

I need to solve this problem because I want to be able to run several screens in Python and each time, tweak the filters (nations and dates).

Thanks in advance! Let me know if you require more info about this error.

Answers

  • j.lefebvre
    j.lefebvre Newcomer

    I forgot a detail: when I run the Screener() function in Python, there is no error. The error I provided appears when I run this command: print(list(df)).

  • j.lefebvre
    j.lefebvre Newcomer

    For the sake of completeness. I share the .thinscreen file (from Workspace desktop app) and the Excel file containing the formula of the screen.

    (For the .thinscreen file, please remove the .txt at the end, because I was not allowed to attach a thinscreen file to this forum).