ig-python / trading-ig

A lightweight Python wrapper for the IG Markets API
https://trading-ig.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
308 stars 196 forks source link

Future warning in trading_ig\rest.py #330

Closed Leotheone closed 2 months ago

Leotheone commented 2 months ago

Hello,

For all intents and purposes, since the latest library version upgrades, this causes futureWarnings in fetch_historical_prices_by_epic, fetch_historical_prices_by_epic_and_num_points and fetch_historical_prices_by_epic_and_date_range functions located in trading_ig\rest.py :

...\trading_ig\rest.py:1801: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set pd.set_option('future.no_silent_downcasting', True) data["prices"] = data["prices"].fillna(value=np.nan)

...\trading_ig\rest.py:1823: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set pd.set_option('future.no_silent_downcasting', True) data["prices"] = data["prices"].fillna(value=np.nan)

...\trading_ig\rest.py:1887: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set pd.set_option('future.no_silent_downcasting', True) data["prices"] = data["prices"].fillna(value=np.nan)

Best regards

bug-or-feature commented 2 months ago

Thanks for your interest in the project.

Please provide more information: what upgrades? what versions of which libraries are you using? etc

It is all documented here

Leotheone commented 2 months ago

Thanks so much for your reply and for all the work done so far. The shared sources have been a great help to me for several years!

You will find below the information that I hope is necessary and sufficient to produce the problem:

Used versions :

Python 3.10 trading-ig 0.0.22

Sources for producing a future warning :

from datetime import datetime, timedelta from trading_ig import IGService

username = "xxx" password = "xxx" api_key = "xxx" acc_type = "DEMO" acc_number = "xxx"

ig_service = IGService(username, password, api_key, acc_type) ig_service.create_session()

epic = 'IX.D.NASDAQ.IFE.IP' resolution = 'H' end_date = datetime.today() start_date = end_date + timedelta(hours=-6) session = None

response = ig_service.fetch_historical_prices_by_epic_and_date_range(epic, resolution, start_date, end_date, session) print(response)

femtotrader commented 2 months ago

Related

https://github.com/pandas-dev/pandas/blob/main/doc/source/whatsnew/v2.2.0.rst#deprecated-automatic-downcasting

https://github.com/pandas-dev/pandas/pull/54710

https://github.com/pandas-dev/pandas/pull/54261

bug-or-feature commented 2 months ago

@Leotheone thanks for the code snippet - but you missed the most important (crucial) bit of information - your pandas version. The warnings you are seeing are due to your use of Pandas 2.2.0 which was released in January 2024. That's why we ask for dependencies and their versions when creating an issue

@femtotrader thanks for the clarification

bug-or-feature commented 2 months ago

Closing, merged with #329