Skip to content

Commit bda78bb

Browse files
authored
Merge pull request #5611 from alphagov/remove-pytz
Remove `pytz`
2 parents 86c2c83 + 4ab4027 commit bda78bb

16 files changed

+31
-47
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# This file was automatically copied from notifications-utils@101.3.1
1+
# This file was automatically copied from notifications-utils@102.0.0
22

33
repos:
44
- repo: https://github.com/pre-commit/pre-commit-hooks

app/main/forms.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from math import ceil
88
from numbers import Number
99

10-
import pytz
1110
from flask import request
1211
from flask_login import current_user
1312
from flask_wtf import FlaskForm as Form
@@ -134,7 +133,7 @@ def get_next_hours_until(until):
134133
now = datetime.now(UTC)
135134
hours = ceil((until - now).total_seconds() / (60 * 60))
136135
return [
137-
(now + timedelta(hours=i)).replace(minute=0, second=0, microsecond=0).replace(tzinfo=pytz.utc)
136+
(now + timedelta(hours=i)).replace(minute=0, second=0, microsecond=0).replace(tzinfo=UTC)
138137
for i in range(1, hours + 1)
139138
]
140139

@@ -144,7 +143,7 @@ def get_next_days_until(until):
144143
days = int((until - now).total_seconds() / (60 * 60 * 24))
145144

146145
return [
147-
get_human_day((now + timedelta(days=i)).replace(tzinfo=pytz.utc), include_day_of_week=True).title()
146+
get_human_day((now + timedelta(days=i)).replace(tzinfo=UTC), include_day_of_week=True).title()
148147
for i in range(days + 1)
149148
]
150149

app/main/views/feedback.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
from datetime import datetime
1+
from datetime import UTC, datetime
22

3-
import pytz
43
from flask import current_app, redirect, render_template, request, session, url_for
54
from flask_login import current_user
65
from notifications_utils.bank_holidays import BankHolidays
@@ -9,6 +8,7 @@
98
NotifySupportTicketComment,
109
NotifyTicketType,
1110
)
11+
from notifications_utils.timezones import local_timezone
1212

1313
from app import convert_to_boolean, current_service
1414
from app.extensions import zendesk_client
@@ -482,7 +482,7 @@ def thanks():
482482

483483

484484
def in_business_hours():
485-
now = datetime.utcnow().replace(tzinfo=pytz.utc)
485+
now = datetime.utcnow().replace(tzinfo=UTC)
486486

487487
if is_weekend(now) or is_bank_holiday(now):
488488
return False
@@ -491,9 +491,7 @@ def in_business_hours():
491491

492492

493493
def london_time_today_as_utc(hour, minute):
494-
return (
495-
pytz.timezone("Europe/London").localize(datetime.now().replace(hour=hour, minute=minute)).astimezone(pytz.utc)
496-
)
494+
return datetime.now(local_timezone).replace(hour=hour, minute=minute).astimezone(UTC)
497495

498496

499497
def is_weekend(time):

app/models/job.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
from datetime import datetime, timedelta
1+
from datetime import UTC, datetime, timedelta
22
from pathlib import Path
33
from typing import Any
44

5-
import pytz
65
from notifications_utils.letter_timings import (
76
CANCELLABLE_JOB_LETTER_STATUSES,
87
get_letter_timings,
@@ -153,7 +152,7 @@ def letter_printing_statement(self):
153152
"created",
154153
# We have to make the time just before 5:30pm because a
155154
# letter uploaded at 5:30pm will be printed the next day
156-
(self.created_at - timedelta(minutes=1)).astimezone(pytz.utc).isoformat(),
155+
(self.created_at - timedelta(minutes=1)).astimezone(UTC).isoformat(),
157156
long_form=False,
158157
)
159158

app/utils/letters.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
from datetime import datetime, timedelta
1+
from datetime import UTC, datetime, timedelta
22

3-
import pytz
43
from dateutil import parser
54
from flask import url_for
65
from notifications_utils.formatters import unescaped_formatted_list
@@ -16,7 +15,7 @@
1615

1716
def printing_today_or_tomorrow(created_at):
1817
print_cutoff = convert_bst_to_utc(convert_utc_to_bst(datetime.utcnow()).replace(hour=17, minute=30)).replace(
19-
tzinfo=pytz.utc
18+
tzinfo=UTC
2019
)
2120
created_at = utc_string_to_aware_gmt_datetime(created_at)
2221

@@ -28,7 +27,7 @@ def printing_today_or_tomorrow(created_at):
2827

2928
def get_letter_printing_statement(status, created_at, long_form=True):
3029
if isinstance(created_at, datetime):
31-
created_at = created_at.astimezone(pytz.utc).isoformat()
30+
created_at = created_at.astimezone(UTC).isoformat()
3231
created_at_dt = parser.parse(created_at).replace(tzinfo=None)
3332
if letter_can_be_cancelled(status, created_at_dt):
3433
decription = "Printing starts" if long_form else "Printing"

app/utils/time.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from datetime import UTC, datetime
22

3-
import pytz
43
from notifications_utils.timezones import utc_string_to_aware_gmt_datetime
54

65

@@ -28,4 +27,4 @@ def is_less_than_days_ago(date_from_db, number_of_days):
2827

2928
def to_utc_string(aware_datetime):
3029
# Format matches app.utils.DATETIME_FORMAT in the API codebase
31-
return aware_datetime.astimezone(pytz.utc).replace(tzinfo=None).strftime("%Y-%m-%dT%H:%M:%S.%fZ")
30+
return aware_datetime.astimezone(UTC).replace(tzinfo=None).strftime("%Y-%m-%dT%H:%M:%S.%fZ")

requirements.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ notifications-python-client==10.0.0
1717
fido2==1.1.3
1818

1919
# Run `make bump-utils` to update to the latest version
20-
notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@101.3.1
20+
notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@102.0.0
2121

2222
govuk-frontend-jinja==3.6.0
2323

requirements.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ mistune==0.8.4
102102
# via notifications-utils
103103
notifications-python-client==10.0.0
104104
# via -r requirements.in
105-
notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@dd749865080ca7262c974c6bf0b12c3a3c739515
105+
notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@c8df19cdf6a9f3e68c9a979b4f44f689a8fa58a5
106106
# via -r requirements.in
107107
openpyxl==3.1.5
108108
# via pyexcel-xlsx
@@ -147,8 +147,6 @@ python-dateutil==2.9.0.post0
147147
# notifications-utils
148148
python-json-logger==3.3.0
149149
# via notifications-utils
150-
pytz==2024.2
151-
# via notifications-utils
152150
pyyaml==6.0.2
153151
# via notifications-utils
154152
redis==4.5.4

requirements_for_test.txt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ moto==5.1.0
163163
# via -r requirements_for_test.in
164164
notifications-python-client==10.0.0
165165
# via -r requirements.txt
166-
notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@dd749865080ca7262c974c6bf0b12c3a3c739515
166+
notifications-utils @ git+https://github.com/alphagov/notifications-utils.git@c8df19cdf6a9f3e68c9a979b4f44f689a8fa58a5
167167
# via -r requirements.txt
168168
openpyxl==3.1.5
169169
# via
@@ -247,10 +247,6 @@ python-json-logger==3.3.0
247247
# via
248248
# -r requirements.txt
249249
# notifications-utils
250-
pytz==2024.2
251-
# via
252-
# -r requirements.txt
253-
# notifications-utils
254250
pyyaml==6.0.2
255251
# via
256252
# -r requirements.txt

requirements_for_test_common.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# This file was automatically copied from notifications-utils@101.3.1
1+
# This file was automatically copied from notifications-utils@102.0.0
22

33
beautifulsoup4==4.12.3
44
pytest==8.3.4

0 commit comments

Comments
 (0)