77
88# Dependencies that use the opentelemetry-python version number
99PYTHON_CORE_DEPS = [
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' ,
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" ,
1818]
1919
2020# Dependencies that use the opentelemetry-python-contrib version number
2121CONTRIB_DEPS = [
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' ,
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" ,
6969]
7070
7171# packages with independent versioning
7272AWS_DEPS = [
73- ' opentelemetry-sdk-extension-aws' ,
74- ' opentelemetry-propagator-aws-xray' ,
73+ " opentelemetry-sdk-extension-aws" ,
74+ " opentelemetry-propagator-aws-xray" ,
7575]
7676
77+
7778def get_latest_version (package_name ):
7879 """Get the latest version of a package from PyPI."""
7980 try :
80- response = requests .get (f' https://pypi.org/pypi/{ package_name } /json' )
81+ response = requests .get (f" https://pypi.org/pypi/{ package_name } /json" )
8182 response .raise_for_status ()
8283 data = response .json ()
83- return data [' info' ][ ' version' ]
84+ return data [" info" ][ " version" ]
8485 except Exception as e :
8586 print (f"Warning: Could not get latest version for { package_name } : { e } " )
8687 return None
8788
89+
8890def main ():
89- otel_python_version = os .environ .get (' OTEL_PYTHON_VERSION' )
90- otel_contrib_version = os .environ .get (' OTEL_CONTRIB_VERSION' )
91-
91+ otel_python_version = os .environ .get (" OTEL_PYTHON_VERSION" )
92+ otel_contrib_version = os .environ .get (" OTEL_CONTRIB_VERSION" )
93+
9294 if not otel_python_version or not otel_contrib_version :
9395 print ("Error: OTEL_PYTHON_VERSION and OTEL_CONTRIB_VERSION environment variables required" )
9496 sys .exit (1 )
95-
96- pyproject_path = ' aws-opentelemetry-distro/pyproject.toml'
97-
97+
98+ pyproject_path = " aws-opentelemetry-distro/pyproject.toml"
99+
98100 try :
99- with open (pyproject_path , 'r' ) as f :
101+ with open (pyproject_path , "r" ) as f :
100102 content = f .read ()
101-
103+
102104 updated = False
103-
105+
104106 # Update opentelemetry-python dependencies
105107 for dep in PYTHON_CORE_DEPS :
106108 pattern = rf'"{ re .escape (dep )} == [^"]*"'
107109 replacement = f'"{ dep } == { otel_python_version } "'
108110 if re .search (pattern , content ):
109111 content = re .sub (pattern , replacement , content )
110112 updated = True
111-
112- # Update opentelemetry-python-contrib dependencies
113+
114+ # Update opentelemetry-python-contrib dependencies
113115 for dep in CONTRIB_DEPS :
114116 pattern = rf'"{ re .escape (dep )} == [^"]*"'
115117 replacement = f'"{ dep } == { otel_contrib_version } "'
116118 if re .search (pattern , content ):
117119 content = re .sub (pattern , replacement , content )
118120 updated = True
119-
121+
120122 # Update dependencies with independent versioning
121123 for dep in AWS_DEPS :
122124 latest_version = get_latest_version (dep )
@@ -127,17 +129,18 @@ def main():
127129 content = re .sub (pattern , replacement , content )
128130 updated = True
129131 print (f"Updated { dep } to { latest_version } " )
130-
132+
131133 if updated :
132- with open (pyproject_path , 'w' ) as f :
134+ with open (pyproject_path , "w" ) as f :
133135 f .write (content )
134- print (f' Dependencies updated to Python { otel_python_version } / Contrib { otel_contrib_version } ' )
136+ print (f" Dependencies updated to Python { otel_python_version } / Contrib { otel_contrib_version } " )
135137 else :
136- print (' No OpenTelemetry dependencies found to update' )
137-
138+ print (" No OpenTelemetry dependencies found to update" )
139+
138140 except Exception as e :
139141 print (f"Error updating dependencies: { e } " )
140142 sys .exit (1 )
141143
142- if __name__ == '__main__' :
144+
145+ if __name__ == "__main__" :
143146 main ()
0 commit comments