Skip to content

Commit 4c5fbd1

Browse files
committed
Update airflow requirements for latest cloud composer
Includes update to Pydantic 2.x, which requires a change in the imports of the package.
1 parent c6abea5 commit 4c5fbd1

14 files changed

+393
-20
lines changed

airflow/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM apache/airflow:2.5.3-python3.8
1+
FROM apache/airflow:2.10.2-python3.11
22

33
# install gcloud as root, then switch back to airflow
44
USER root
@@ -17,4 +17,4 @@ USER airflow
1717

1818
COPY requirements.txt /tmp/requirements.txt
1919

20-
RUN pip install --no-cache-dir --user -r /tmp/requirements.txt
20+
RUN pip install --no-cache-dir -r /tmp/requirements.txt

airflow/Dockerfile.composer

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM apache/airflow:2.4.3-python3.8
1+
FROM apache/airflow:2.10.2-python3.11
22

33
# install gcloud as root, then switch back to airflow
44
USER root
@@ -15,8 +15,8 @@ RUN gcloud components install gke-gcloud-auth-plugin
1515

1616
USER airflow
1717

18-
COPY requirements-composer-2.6.5-airflow-2.5.3.txt /tmp/requirements-composer-2.6.5-airflow-2.5.3.txt
19-
RUN pip install --no-cache-dir --user -r /tmp/requirements-composer-2.6.5-airflow-2.5.3.txt
18+
COPY requirements-composer-2.11.1-airflow-2.10.2.txt /tmp/requirements-composer-2.11.1-airflow-2.10.2.txt
19+
RUN pip install --no-cache-dir --user -r /tmp/requirements-composer-2.11.1-airflow-2.10.2.txt
2020

2121
COPY requirements.txt /tmp/requirements.txt
2222
RUN pip install --no-cache-dir --user -r /tmp/requirements.txt

airflow/dags/airtable_loader_v2/generate_gtfs_download_configs.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
GTFSDownloadConfigExtract,
2020
get_fs,
2121
)
22-
from pydantic import ValidationError
22+
from pydantic.v1 import ValidationError
2323

2424

2525
def gtfs_datasets_to_extract_configs(

airflow/dags/download_gtfs_schedule_v2/download_schedule_feeds.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
get_fs,
2525
get_latest,
2626
)
27-
from pydantic import validator
27+
from pydantic.v1 import validator
2828
from requests.exceptions import HTTPError
2929

3030
GTFS_FEED_LIST_ERROR_THRESHOLD = 0.95

airflow/dags/sync_ntd_data_xlsx/scrape_ntd_xlsx_urls.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import requests
88
from bs4 import BeautifulSoup
9-
from pydantic import HttpUrl, ValidationError, parse_obj_as
9+
from pydantic.v1 import HttpUrl, ValidationError, parse_obj_as
1010

1111
from airflow.exceptions import AirflowException
1212

airflow/plugins/operators/airtable_to_gcs.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from calitp_data_infra.auth import get_secret_by_name
88
from calitp_data_infra.storage import get_fs, make_name_bq_safe
99
from pyairtable import Api
10-
from pydantic import BaseModel
10+
from pydantic.v1 import BaseModel
1111

1212
from airflow.models import BaseOperator
1313

airflow/plugins/operators/blackcat_to_gcs.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import pendulum
88
import requests
99
from calitp_data_infra.storage import get_fs, make_name_bq_safe
10-
from pydantic import BaseModel
10+
from pydantic.v1 import BaseModel
1111

1212
from airflow.models import BaseOperator
1313

airflow/plugins/operators/littlepay_raw_sync.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
get_fs,
1717
get_latest_file,
1818
)
19-
from pydantic.class_validators import validator
20-
from pydantic.error_wrappers import ValidationError
21-
from pydantic.main import BaseModel
19+
from pydantic.v1.class_validators import validator
20+
from pydantic.v1.error_wrappers import ValidationError
21+
from pydantic.v1.main import BaseModel
2222
from tqdm import tqdm
2323
from tqdm.contrib.logging import logging_redirect_tqdm
2424

airflow/plugins/operators/scrape_ntd_api.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
get_fs,
1212
make_name_bq_safe,
1313
)
14-
from pydantic import HttpUrl, parse_obj_as
14+
from pydantic.v1 import HttpUrl, parse_obj_as
1515

1616
from airflow.exceptions import AirflowException
1717
from airflow.models import BaseOperator # type: ignore

airflow/plugins/operators/scrape_ntd_xlsx.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
get_fs,
1313
make_name_bq_safe,
1414
)
15-
from pydantic import HttpUrl, parse_obj_as
15+
from pydantic.v1 import HttpUrl, parse_obj_as
1616

1717
from airflow.exceptions import AirflowException
1818
from airflow.models import BaseOperator # type: ignore

airflow/plugins/operators/scrape_state_geoportal.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import pendulum
88
import requests
99
from calitp_data_infra.storage import PartitionedGCSArtifact, get_fs # type: ignore
10-
from pydantic import HttpUrl, parse_obj_as
10+
from pydantic.v1 import HttpUrl, parse_obj_as
1111

1212
from airflow.exceptions import AirflowException
1313
from airflow.models import BaseOperator # type: ignore

airflow/plugins/utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
PartitionedGCSArtifact,
1212
fetch_all_in_partition,
1313
)
14-
from pydantic import validator
14+
from pydantic.v1 import validator
1515

1616
SCHEDULE_UNZIPPED_BUCKET = os.environ["CALITP_BUCKET__GTFS_SCHEDULE_UNZIPPED"]
1717
SCHEDULE_UNZIPPED_BUCKET_HOURLY = os.environ[

0 commit comments

Comments
 (0)