chore: replace deprecated datetime.utcnow() with datetime.now(timezone.utc) across codebase#16
Open
devin-ai-integration[bot] wants to merge 2 commits intomasterfrom
Conversation
…e.utc) across codebase Co-Authored-By: bot_apk <apk@cognition.ai>
Contributor
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
…alls Co-Authored-By: bot_apk <apk@cognition.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
chore: replace deprecated
datetime.utcnow()calls withdatetime.now(timezone.utc)Summary
Replaces all
datetime.utcnow()call sites inmain.py(4 occurrences) andscrapers/base.py(1 occurrence) with the moderndatetime.now(timezone.utc).datetime.utcnow()was deprecated in Python 3.12, and this repo runs on Python 3.12.8 where it emitsDeprecationWarning. Also removes a now-redundantfrom datetime import timezonelocal import insideseed_demo_data()sincetimezoneis now imported at module level.Updates since last revision
mastercaused by PR chore: remove unusedOptionalimport from main.py #11 (removal of unusedOptionalimport). TheOptionalimport line was dropped (per master) while retaining the newtimezoneimport from this branch. No functional changes.Review & Testing Checklist for Human
datetime.now(timezone.utc)returns a timezone-aware datetime, whereas the olddatetime.utcnow()returned a naive datetime. TheFXRate.scraped_atandMidMarketRate.scraped_atdatabase columns store naive datetimes. Verify that comparing timezone-awaresincevalues against naivescraped_atvalues inprint_report()andprint_all_pairs_report()does not raiseTypeErroror produce incorrect query results in SQLAlchemy/SQLite.ScraperResult.scraped_atis set todatetime.now(timezone.utc)(aware) and later assigned toFXRate.scraped_at(a naiveDateTimecolumn) viasave_results(). Confirm SQLAlchemy handles this gracefully with SQLite—it may silently strip tzinfo, but this should be verified.datetime.utcnowColumn defaults withdatetime.now(timezone.utc)in database/models.py #15: PR chore: replace deprecateddatetime.utcnowColumn defaults withdatetime.now(timezone.utc)in database/models.py #15 separately updates the Column defaults indatabase/models.pyusing.replace(tzinfo=None)to stay naive. If both PRs merge, ensure consistency—either go fully timezone-aware or stay naive everywhere.python main.py --demothenpython main.py --reportand confirm noTypeErroron datetime comparisons. Inspectfx_fees.dbto checkscraped_atvalues are reasonable UTC timestamps.Notes