Skip to content

Commit 1544468

Browse files
committed
more lint
1 parent 60b627a commit 1544468

File tree

2 files changed

+113
-120
lines changed

2 files changed

+113
-120
lines changed

scripts/get_upstream_versions.py

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,49 @@
1-
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2-
# SPDX-License-Identifier: Apache-2.0
1+
#!/usr/bin/env python3
32

3+
import requests
44
import os
5-
import re
65
import sys
7-
8-
import requests
9-
6+
import re
107

118
def get_latest_otel_versions():
129
"""Get latest OpenTelemetry versions from GitHub releases."""
1310
try:
1411
# Query GitHub API for latest release
15-
response = requests.get("https://api.github.com/repos/open-telemetry/opentelemetry-python/releases/latest")
12+
response = requests.get(
13+
'https://api.github.com/repos/open-telemetry/opentelemetry-python/releases/latest',
14+
timeout=30
15+
)
1616
response.raise_for_status()
17-
17+
1818
release_data = response.json()
19-
release_title = release_data["name"]
20-
19+
release_title = release_data['name']
20+
2121
# Parse "Version 1.37.0/0.58b0" format
22-
match = re.search(r"Version\s+(\d+\.\d+\.\d+)/(\d+\.\d+b\d+)", release_title)
22+
match = re.search(r'Version\s+(\d+\.\d+\.\d+)/(\d+\.\d+b\d+)', release_title)
2323
if not match:
2424
print(f"Could not parse release title: {release_title}")
2525
sys.exit(1)
26-
26+
2727
otel_python_version = match.group(1)
2828
otel_contrib_version = match.group(2)
29-
29+
3030
return otel_python_version, otel_contrib_version
31-
32-
except Exception as e:
33-
print(f"Error getting OpenTelemetry versions: {e}")
31+
32+
except requests.RequestException as request_error:
33+
print(f"Error getting OpenTelemetry versions: {request_error}")
3434
sys.exit(1)
3535

36-
3736
def main():
3837
otel_python_version, otel_contrib_version = get_latest_otel_versions()
39-
40-
print(f"OTEL_PYTHON_VERSION={otel_python_version}")
41-
print(f"OTEL_CONTRIB_VERSION={otel_contrib_version}")
42-
38+
39+
print(f'OTEL_PYTHON_VERSION={otel_python_version}')
40+
print(f'OTEL_CONTRIB_VERSION={otel_contrib_version}')
41+
4342
# Write to GitHub output if in CI
44-
if "GITHUB_OUTPUT" in os.environ:
45-
with open(os.environ["GITHUB_OUTPUT"], "a") as f:
46-
f.write(f"otel_python_version={otel_python_version}\n")
47-
f.write(f"otel_contrib_version={otel_contrib_version}\n")
48-
43+
if 'GITHUB_OUTPUT' in os.environ:
44+
with open(os.environ['GITHUB_OUTPUT'], 'a', encoding='utf-8') as output_file:
45+
output_file.write(f'otel_python_version={otel_python_version}\n')
46+
output_file.write(f'otel_contrib_version={otel_contrib_version}\n')
4947

50-
if __name__ == "__main__":
48+
if __name__ == '__main__':
5149
main()

scripts/update_dependencies.py

Lines changed: 88 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,126 +1,122 @@
1-
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2-
# SPDX-License-Identifier: Apache-2.0
1+
#!/usr/bin/env python3
32

3+
import sys
44
import os
55
import re
6-
import sys
7-
86
import requests
97

10-
# Dependencies that use the opentelemetry-python version number
8+
# Dependencies that use the first version number (opentelemetry-python)
119
PYTHON_CORE_DEPS = [
12-
"opentelemetry-api",
13-
"opentelemetry-sdk",
14-
"opentelemetry-exporter-otlp",
15-
"opentelemetry-exporter-otlp-proto-grpc",
16-
"opentelemetry-exporter-otlp-proto-http",
17-
"opentelemetry-propagator-b3",
18-
"opentelemetry-propagator-jaeger",
19-
"opentelemetry-exporter-otlp-proto-common",
10+
'opentelemetry-api',
11+
'opentelemetry-sdk',
12+
'opentelemetry-exporter-otlp',
13+
'opentelemetry-exporter-otlp-proto-grpc',
14+
'opentelemetry-exporter-otlp-proto-http',
15+
'opentelemetry-propagator-b3',
16+
'opentelemetry-propagator-jaeger',
17+
'opentelemetry-exporter-otlp-proto-common',
2018
]
2119

22-
# Dependencies that use the opentelemetry-python-contrib version number
20+
# Dependencies that use the second version number (opentelemetry-python-contrib)
2321
CONTRIB_DEPS = [
24-
"opentelemetry-distro",
25-
"opentelemetry-processor-baggage",
26-
"opentelemetry-propagator-ot-trace",
27-
"opentelemetry-instrumentation",
28-
"opentelemetry-instrumentation-aws-lambda",
29-
"opentelemetry-instrumentation-aio-pika",
30-
"opentelemetry-instrumentation-aiohttp-client",
31-
"opentelemetry-instrumentation-aiopg",
32-
"opentelemetry-instrumentation-asgi",
33-
"opentelemetry-instrumentation-asyncpg",
34-
"opentelemetry-instrumentation-boto",
35-
"opentelemetry-instrumentation-boto3sqs",
36-
"opentelemetry-instrumentation-botocore",
37-
"opentelemetry-instrumentation-celery",
38-
"opentelemetry-instrumentation-confluent-kafka",
39-
"opentelemetry-instrumentation-dbapi",
40-
"opentelemetry-instrumentation-django",
41-
"opentelemetry-instrumentation-elasticsearch",
42-
"opentelemetry-instrumentation-falcon",
43-
"opentelemetry-instrumentation-fastapi",
44-
"opentelemetry-instrumentation-flask",
45-
"opentelemetry-instrumentation-grpc",
46-
"opentelemetry-instrumentation-httpx",
47-
"opentelemetry-instrumentation-jinja2",
48-
"opentelemetry-instrumentation-kafka-python",
49-
"opentelemetry-instrumentation-logging",
50-
"opentelemetry-instrumentation-mysql",
51-
"opentelemetry-instrumentation-mysqlclient",
52-
"opentelemetry-instrumentation-pika",
53-
"opentelemetry-instrumentation-psycopg2",
54-
"opentelemetry-instrumentation-pymemcache",
55-
"opentelemetry-instrumentation-pymongo",
56-
"opentelemetry-instrumentation-pymysql",
57-
"opentelemetry-instrumentation-pyramid",
58-
"opentelemetry-instrumentation-redis",
59-
"opentelemetry-instrumentation-remoulade",
60-
"opentelemetry-instrumentation-requests",
61-
"opentelemetry-instrumentation-sqlalchemy",
62-
"opentelemetry-instrumentation-sqlite3",
63-
"opentelemetry-instrumentation-starlette",
64-
"opentelemetry-instrumentation-system-metrics",
65-
"opentelemetry-instrumentation-tornado",
66-
"opentelemetry-instrumentation-tortoiseorm",
67-
"opentelemetry-instrumentation-urllib",
68-
"opentelemetry-instrumentation-urllib3",
69-
"opentelemetry-instrumentation-wsgi",
70-
"opentelemetry-instrumentation-cassandra",
22+
'opentelemetry-distro',
23+
'opentelemetry-processor-baggage',
24+
'opentelemetry-propagator-ot-trace',
25+
'opentelemetry-instrumentation',
26+
'opentelemetry-instrumentation-aws-lambda',
27+
'opentelemetry-instrumentation-aio-pika',
28+
'opentelemetry-instrumentation-aiohttp-client',
29+
'opentelemetry-instrumentation-aiopg',
30+
'opentelemetry-instrumentation-asgi',
31+
'opentelemetry-instrumentation-asyncpg',
32+
'opentelemetry-instrumentation-boto',
33+
'opentelemetry-instrumentation-boto3sqs',
34+
'opentelemetry-instrumentation-botocore',
35+
'opentelemetry-instrumentation-celery',
36+
'opentelemetry-instrumentation-confluent-kafka',
37+
'opentelemetry-instrumentation-dbapi',
38+
'opentelemetry-instrumentation-django',
39+
'opentelemetry-instrumentation-elasticsearch',
40+
'opentelemetry-instrumentation-falcon',
41+
'opentelemetry-instrumentation-fastapi',
42+
'opentelemetry-instrumentation-flask',
43+
'opentelemetry-instrumentation-grpc',
44+
'opentelemetry-instrumentation-httpx',
45+
'opentelemetry-instrumentation-jinja2',
46+
'opentelemetry-instrumentation-kafka-python',
47+
'opentelemetry-instrumentation-logging',
48+
'opentelemetry-instrumentation-mysql',
49+
'opentelemetry-instrumentation-mysqlclient',
50+
'opentelemetry-instrumentation-pika',
51+
'opentelemetry-instrumentation-psycopg2',
52+
'opentelemetry-instrumentation-pymemcache',
53+
'opentelemetry-instrumentation-pymongo',
54+
'opentelemetry-instrumentation-pymysql',
55+
'opentelemetry-instrumentation-pyramid',
56+
'opentelemetry-instrumentation-redis',
57+
'opentelemetry-instrumentation-remoulade',
58+
'opentelemetry-instrumentation-requests',
59+
'opentelemetry-instrumentation-sqlalchemy',
60+
'opentelemetry-instrumentation-sqlite3',
61+
'opentelemetry-instrumentation-starlette',
62+
'opentelemetry-instrumentation-system-metrics',
63+
'opentelemetry-instrumentation-tornado',
64+
'opentelemetry-instrumentation-tortoiseorm',
65+
'opentelemetry-instrumentation-urllib',
66+
'opentelemetry-instrumentation-urllib3',
67+
'opentelemetry-instrumentation-wsgi',
68+
'opentelemetry-instrumentation-cassandra',
7169
]
7270

73-
# packages with independent versioning
71+
# AWS-specific packages with independent versioning
7472
AWS_DEPS = [
75-
"opentelemetry-sdk-extension-aws",
76-
"opentelemetry-propagator-aws-xray",
73+
'opentelemetry-sdk-extension-aws',
74+
'opentelemetry-propagator-aws-xray',
7775
]
7876

79-
8077
def get_latest_version(package_name):
8178
"""Get the latest version of a package from PyPI."""
8279
try:
83-
response = requests.get(f"https://pypi.org/pypi/{package_name}/json")
80+
response = requests.get(f'https://pypi.org/pypi/{package_name}/json', timeout=30)
8481
response.raise_for_status()
8582
data = response.json()
86-
return data["info"]["version"]
87-
except Exception as e:
88-
print(f"Warning: Could not get latest version for {package_name}: {e}")
83+
return data['info']['version']
84+
except requests.RequestException as request_error:
85+
print(f"Warning: Could not get latest version for {package_name}: {request_error}")
8986
return None
9087

91-
9288
def main():
93-
otel_python_version = os.environ.get("OTEL_PYTHON_VERSION")
94-
otel_contrib_version = os.environ.get("OTEL_CONTRIB_VERSION")
95-
89+
otel_python_version = os.environ.get('OTEL_PYTHON_VERSION')
90+
otel_contrib_version = os.environ.get('OTEL_CONTRIB_VERSION')
91+
9692
if not otel_python_version or not otel_contrib_version:
9793
print("Error: OTEL_PYTHON_VERSION and OTEL_CONTRIB_VERSION environment variables required")
9894
sys.exit(1)
99-
100-
pyproject_path = "aws-opentelemetry-distro/pyproject.toml"
101-
95+
96+
pyproject_path = 'aws-opentelemetry-distro/pyproject.toml'
97+
10298
try:
103-
with open(pyproject_path, "r") as f:
104-
content = f.read()
105-
99+
with open(pyproject_path, 'r', encoding='utf-8') as input_file:
100+
content = input_file.read()
101+
106102
updated = False
107-
103+
108104
# Update opentelemetry-python dependencies
109105
for dep in PYTHON_CORE_DEPS:
110106
pattern = rf'"{re.escape(dep)} == [^"]*"'
111107
replacement = f'"{dep} == {otel_python_version}"'
112108
if re.search(pattern, content):
113109
content = re.sub(pattern, replacement, content)
114110
updated = True
115-
116-
# Update opentelemetry-python-contrib dependencies
111+
112+
# Update opentelemetry-python-contrib dependencies
117113
for dep in CONTRIB_DEPS:
118114
pattern = rf'"{re.escape(dep)} == [^"]*"'
119115
replacement = f'"{dep} == {otel_contrib_version}"'
120116
if re.search(pattern, content):
121117
content = re.sub(pattern, replacement, content)
122118
updated = True
123-
119+
124120
# Update dependencies with independent versioning
125121
for dep in AWS_DEPS:
126122
latest_version = get_latest_version(dep)
@@ -131,18 +127,17 @@ def main():
131127
content = re.sub(pattern, replacement, content)
132128
updated = True
133129
print(f"Updated {dep} to {latest_version}")
134-
130+
135131
if updated:
136-
with open(pyproject_path, "w") as f:
137-
f.write(content)
138-
print(f"Dependencies updated to Python {otel_python_version} / Contrib {otel_contrib_version}")
132+
with open(pyproject_path, 'w', encoding='utf-8') as output_file:
133+
output_file.write(content)
134+
print(f'Dependencies updated to Python {otel_python_version} / Contrib {otel_contrib_version}')
139135
else:
140-
print("No OpenTelemetry dependencies found to update")
141-
142-
except Exception as e:
143-
print(f"Error updating dependencies: {e}")
136+
print('No OpenTelemetry dependencies found to update')
137+
138+
except (OSError, IOError) as file_error:
139+
print(f"Error updating dependencies: {file_error}")
144140
sys.exit(1)
145141

146-
147-
if __name__ == "__main__":
142+
if __name__ == '__main__':
148143
main()

0 commit comments

Comments
 (0)