Skip to content

Commit a028443

Browse files
authored
Merge pull request #2698 from ranaroussi/dev
sync dev -> main
2 parents 93cc357 + 8ca31de commit a028443

2 files changed

Lines changed: 84 additions & 15 deletions

File tree

‎yfinance/const.py‎

Lines changed: 73 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -399,9 +399,10 @@ def merge_two_level_dicts(dict1, dict2):
399399

400400
EQUITY_SCREENER_EQ_MAP = {
401401
"exchange": {
402+
'ae': {'DFM'},
402403
'ar': {'BUE'},
403404
'at': {'VIE'},
404-
'au': {'ASX'},
405+
'au': {'ASX', 'CXA'},
405406
'be': {'BRU'},
406407
'br': {'SAO'},
407408
'ca': {'CNQ', 'NEO', 'TOR', 'VAN'},
@@ -410,14 +411,14 @@ def merge_two_level_dicts(dict1, dict2):
410411
'cn': {'SHH', 'SHZ'},
411412
'co': {'BVC'},
412413
'cz': {'PRA'},
413-
'de': {'BER', 'DUS', 'FRA', 'HAM', 'GER', 'MUN', 'STU'},
414+
'de': {'BER', 'DUS', 'EUX', 'FRA', 'HAM', 'HAN', 'GER', 'MUN', 'STU'},
414415
'dk': {'CPH'},
415416
'ee': {'TAL'},
416417
'eg': {'CAI'},
417-
'es': {'MCE'},
418+
'es': {'MAD', 'MCE'},
418419
'fi': {'HEL'},
419-
'fr': {'PAR'},
420-
'gb': {'AQS', 'IOB', 'LSE'},
420+
'fr': {'ENX', 'PAR'},
421+
'gb': {'AQS', 'CXE', 'IOB', 'LSE'},
421422
'gr': {'ATH'},
422423
'hk': {'HKG'},
423424
'hu': {'BUD'},
@@ -426,37 +427,36 @@ def merge_two_level_dicts(dict1, dict2):
426427
'il': {'TLV'},
427428
'in': {'BSE', 'NSI'},
428429
'is': {'ICE'},
429-
'it': {'MIL'},
430-
'jp': {'FKA', 'JPX', 'SAP'},
430+
'it': {'MDD', 'MIL', 'TLO'},
431+
'jp': {'FKA', 'JPX', 'OSA', 'SAP'},
431432
'kr': {'KOE', 'KSC'},
432433
'kw': {'KUW'},
433-
'lk': {},
434+
'lk': {'CSE'},
434435
'lt': {'LIT'},
435436
'lv': {'RIS'},
436437
'mx': {'MEX'},
437438
'my': {'KLS'},
438-
'nl': {'AMS'},
439+
'nl': {'AMS', 'DXE'},
439440
'no': {'OSL'},
440441
'nz': {'NZE'},
441442
'pe': {},
442443
'ph': {'PHP', 'PHS'},
443-
'pk': {},
444+
'pk': {'KAR'},
444445
'pl': {'WSE'},
445446
'pt': {'LIS'},
446447
'qa': {'DOH'},
447448
'ro': {'BVB'},
448-
'ru': {},
449+
'ru': {'MCX'},
449450
'sa': {'SAU'},
450451
'se': {'STO'},
451452
'sg': {'SES'},
452453
'sr': {},
453-
'sw': {'EBS'},
454454
'th': {'SET'},
455455
'tr': {'IST'},
456456
'tw': {'TAI', 'TWO'},
457-
'us': {'ASE', 'BTS', 'CXI', 'NCM', 'NGM', 'NMS', 'NYQ', 'OEM', 'OQB', 'OQX', 'PCX', 'PNK', 'YHD'},
457+
'us': {'ASE', 'BTS', 'CXI', 'NAE', 'NCM', 'NGM', 'NMS', 'NYQ', 'OEM', 'OQB', 'OQX', 'PCX', 'PNK', 'YHD'},
458458
've': {'CCS'},
459-
'vn': {},
459+
'vn': {'VSE'},
460460
'za': {'JNB'}
461461
},
462462
"sector": {
@@ -576,7 +576,65 @@ def merge_two_level_dicts(dict1, dict2):
576576
EQUITY_SCREENER_EQ_MAP = {k:EQUITY_SCREENER_EQ_MAP[k] for k in ordered_keys}
577577
FUND_SCREENER_EQ_MAP = {
578578
"exchange": {
579-
'us': {'NAS'}
579+
'ae': {'DFM'},
580+
'ar': {'BUE'},
581+
'at': {'VIE'},
582+
'au': {'ASX','CXA'},
583+
'be': {'BRU'},
584+
'br': {'SAO'},
585+
'ca': {'CNQ','NEO','TOR','VAN'},
586+
'ch': {'EBS'},
587+
'cl': {'SGO'},
588+
'co': {'BVC'},
589+
'cn': {'SHH','SHZ'},
590+
'cz': {'PRA'},
591+
'de': {'BER','DUS','EUX','FRA','GER','HAM','HAN','MUN','STU',},
592+
'dk': {'CPH'},
593+
'ee': {'TAL'},
594+
'eg': {'CAI'},
595+
'es': {'BAR','MAD','MCE'},
596+
'fi': {'HEL'},
597+
'fr': {'ENX','PAR'},
598+
'gb': {'CXE','IOB','LSE'},
599+
'gr': {'ATH'},
600+
'hk': {'HKG'},
601+
'hu': {'BUD'},
602+
'id': {'JKT'},
603+
'ie': {'ISE'},
604+
'il': {'TLV'},
605+
'in': {'BSE','NSI'},
606+
'is': {'ICE'},
607+
'it': {'MIL'},
608+
'jp': {'FKA','JPX','OSA','SAP'},
609+
'kr': {'KOE','KSC'},
610+
'kw': {'KUW'},
611+
'lk': {'CSE'},
612+
'lt': {'LIT'},
613+
'lv': {'RIS'},
614+
'mx': {'MEX'},
615+
'my': {'KLS'},
616+
'nl': {'AMS'},
617+
'no': {'OSL'},
618+
'nz': {'NZE'},
619+
'pe': {''},
620+
'ph': {'PHP', 'PHS'},
621+
'pk': {'KAR'},
622+
'pl': {'WSE'},
623+
'pt': {'LIS'},
624+
'qa': {'DOH'},
625+
'ro': {'BVB'},
626+
'ru': {'MCX'},
627+
'sa': {'SAU'},
628+
'se': {'STO'},
629+
'sg': {'SES'},
630+
'sr': {''},
631+
'th': {'SET'},
632+
'tr': {'IST'},
633+
'tw': {'TAI','TWO'},
634+
'us': {'ASE','NAS','NCM','NGM','NMS','NYQ','OEM','OGM','OQB','PNK','WCB',},
635+
've': {'CCS'},
636+
'vn': {'VSE'},
637+
'za': {'JNB'}
580638
}
581639
}
582640
COMMON_SCREENER_FIELDS = {

‎yfinance/scrapers/history.py‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,9 @@ def history(self, period=None, interval="1d",
509509
msg = f'{self.ticker}: yfinance returning OHLC: {df.index[0]} -> {df.index[-1]}'
510510
logger.debug(msg)
511511

512+
# Don't care that Pandas hid this. If they do it to improve performance, we do it.
513+
df = df._consolidate()
514+
512515
if self._reconstruct_start_interval is not None and self._reconstruct_start_interval == interval:
513516
self._reconstruct_start_interval = None
514517
return df
@@ -910,12 +913,18 @@ def _reconstruct_intervals_batch(self, df, interval, prepost, tag=-1):
910913
for j in range(len(calib_cols)):
911914
f = ~calib_filter[:, j]
912915
if f.any():
916+
if not df_block_calib.flags.writeable:
917+
df_block_calib = df_block_calib.copy()
918+
if not df_new_calib.flags.writeable:
919+
df_new_calib = df_new_calib.copy()
913920
df_block_calib[f, j] = 1
914921
df_new_calib[f, j] = 1
915922
ratios = df_block_calib[calib_filter] / df_new_calib[calib_filter]
916923
weights = df_fine_grp.size()
917924
weights.index = df_new.index
918925
weights = weights[weights.index.isin(common_index)].to_numpy().astype(float)
926+
if not weights.flags.writeable:
927+
weights = weights.copy()
919928
weights = weights[:, None] # transpose
920929
weights = np.tile(weights, len(calib_cols)) # 1D -> 2D
921930
weights = weights[calib_filter] # flatten
@@ -2705,6 +2714,8 @@ def _fix_prices_sudden_change(self, df, interval, tz_exchange, change, correct_v
27052714
price_data_cols = OHLC
27062715
price_data = df2[price_data_cols].to_numpy()
27072716
f_zero = price_data == 0.0
2717+
if not price_data.flags.writeable:
2718+
price_data = price_data.copy()
27082719
if f_zero.any():
27092720
price_data[f_zero] = 1.0
27102721

0 commit comments

Comments
 (0)