-
Notifications
You must be signed in to change notification settings - Fork 48
/
Copy pathconstants.py
131 lines (120 loc) · 3.75 KB
/
constants.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Constants used across BigQuery DataFrames.
This module should not depend on any others in the package.
"""
import datetime
import textwrap
DEFAULT_EXPIRATION = datetime.timedelta(days=7)
# https://cloud.google.com/bigquery/docs/locations
BIGQUERY_REGIONS = frozenset(
{
"africa-south1",
"asia-east1",
"asia-east2",
"asia-northeast1",
"asia-northeast2",
"asia-northeast3",
"asia-south1",
"asia-south2",
"asia-southeast1",
"asia-southeast2",
"australia-southeast1",
"australia-southeast2",
"europe-central2",
"europe-north1",
"europe-southwest1",
"europe-west1",
"europe-west10",
"europe-west12",
"europe-west2",
"europe-west3",
"europe-west4",
"europe-west6",
"europe-west8",
"europe-west9",
"me-central1",
"me-central2",
"me-west1",
"northamerica-northeast1",
"northamerica-northeast2",
"southamerica-east1",
"southamerica-west1",
"us-central1",
"us-east1",
"us-east4",
"us-east5",
"us-south1",
"us-west1",
"us-west2",
"us-west3",
"us-west4",
}
)
BIGQUERY_MULTIREGIONS = frozenset(
{
"EU",
"US",
}
)
ALL_BIGQUERY_LOCATIONS = frozenset(BIGQUERY_REGIONS.union(BIGQUERY_MULTIREGIONS))
# https://cloud.google.com/storage/docs/regional-endpoints
REP_ENABLED_BIGQUERY_LOCATIONS = frozenset(
{
"europe-west3",
"europe-west8",
"europe-west9",
"me-central2",
"us-central1",
"us-central2",
"us-east1",
"us-east4",
"us-east5",
"us-east7",
"us-south1",
"us-west1",
"us-west2",
"us-west3",
"us-west4",
}
)
REP_NOT_ENABLED_BIGQUERY_LOCATIONS = frozenset(
ALL_BIGQUERY_LOCATIONS - REP_ENABLED_BIGQUERY_LOCATIONS
)
LOCATION_NEEDED_FOR_REP_MESSAGE = textwrap.dedent(
"""
Must set location to use regional endpoints.
You can do it via bigframaes.pandas.options.bigquery.location.
The supported locations can be found at
https://cloud.google.com/bigquery/docs/regional-endpoints#supported-locations.
"""
).strip()
REP_NOT_SUPPORTED_MESSAGE = textwrap.dedent(
"""
Support for regional endpoints for BigQuery and BigQuery Storage APIs may
not be available in the location {location}. For the supported APIs and
locations see https://cloud.google.com/bigquery/docs/regional-endpoints.
If you have the (deprecated) locational endpoints enabled in your project
(which requires your project to be allowlisted), you can override the
endpoints directly by doing the following:
bigframes.pandas.options.bigquery.client_endpoints_override = {{
"bqclient": "https://{location}-bigquery.googleapis.com",
"bqconnectionclient": "{location}-bigqueryconnection.googleapis.com",
"bqstoragereadclient": "{location}-bigquerystorage.googleapis.com"
}}
"""
).strip()
# BigQuery default is 10000, leave 100 for overhead
MAX_COLUMNS = 9900
SUGGEST_PEEK_PREVIEW = "Use .peek(n) to preview n arbitrary rows."