Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-opentelemetry-instrumentation
for openSUSE:Factory checked in at 2026-01-06 17:42:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-opentelemetry-instrumentation (Old)
and
/work/SRC/openSUSE:Factory/.python-opentelemetry-instrumentation.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-opentelemetry-instrumentation"
Tue Jan 6 17:42:56 2026 rev:7 rq:1325384 version:0.60b0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-opentelemetry-instrumentation/python-opentelemetry-instrumentation.changes
2025-11-21 16:56:33.162042608 +0100
+++
/work/SRC/openSUSE:Factory/.python-opentelemetry-instrumentation.new.1928/python-opentelemetry-instrumentation.changes
2026-01-06 17:43:57.480085459 +0100
@@ -1,0 +2,46 @@
+Mon Jan 5 11:02:52 UTC 2026 - Markéta Machová <[email protected]>
+
+- Add wrapt2.patch for compatibility with wrapt v2
+
+-------------------------------------------------------------------
+Sun Dec 28 17:31:06 UTC 2025 - Dirk Müller <[email protected]>
+
+- update to 0.60b0:
+ * `opentelemetry-instrumentation-requests`, `opentelemetry-
+ instrumentation-wsgi`, `opentelemetry-instrumentation-asgi`
+ Detect synthetic sources on requests, ASGI, and WSGI.
+ * `opentelemetry-instrumentation-aiohttp-client`: add support
+ for url exclusions via `OTEL_PYTHON_EXCLUDED_URLS` /
+ `OTEL_PYTHON_AIOHTTP_CLIENT_EXCLUDED_URLS`
+ * `opentelemetry-instrumentation-httpx`: add support for url
+ exclusions via `OTEL_PYTHON_EXCLUDED_URLS` /
+ `OTEL_PYTHON_HTTPX_EXCLUDED_URLS`
+ * `opentelemetry-instrumentation-flask`: improve readthedocs
+ for sqlcommenter configuration.
+ * `opentelemetry-instrumentation-sqlalchemy`: improve
+ readthedocs for sqlcommenter configuration.
+ * `opentelemetry-instrumentation-mysql`, `opentelemetry-
+ instrumentation-mysqlclient`, `opentelemetry-instrumentation-
+ pymysql`: improve readthedocs for sqlcommenter configuration.
+ * `opentelemetry-instrumentation-django`: improve readthedocs
+ for sqlcommenter configuration.
+ * `opentelemetry-instrumentation-aiohttp-server`: add support
+ for custom header captures via
+ `OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST`
+ and
+ `OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSE`
+ * `opentelemetry-instrumentation-redis`: add support for
+ `suppress_instrumentation` context manager for both sync and
+ async Redis clients and pipelines
+ * `opentelemetry-instrumentation-django`: improve docs for
+ response_hook with examples of providing attributes from
+ middlewares
+ * Update for Log SDK breaking changes. Rename
+ InMemoryLogExporter to InMemoryLogRecordExporter in several
+ tests
+ * opentelemetry-instrumentation: allow to skip all
+ instrumentations loading with a wildcard
+ * `opentelemetry-instrumentation-redis`: add missing copyright
+ header for opentelemetry-instrumentation-redis
+
+-------------------------------------------------------------------
Old:
----
opentelemetry_instrumentation-0.59b0.tar.gz
New:
----
opentelemetry_instrumentation-0.60b0.tar.gz
wrapt2.patch
----------(New B)----------
New:
- Add wrapt2.patch for compatibility with wrapt v2
----------(New E)----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-opentelemetry-instrumentation.spec ++++++
--- /var/tmp/diff_new_pack.cmfYnz/_old 2026-01-06 17:43:58.236115871 +0100
+++ /var/tmp/diff_new_pack.cmfYnz/_new 2026-01-06 17:43:58.236115871 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-opentelemetry-instrumentation
#
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,12 +18,14 @@
%{?sle15_python_module_pythons}
Name: python-opentelemetry-instrumentation
-Version: 0.59b0
+Version: 0.60b0
Release: 0
Summary: Instrumentation Tools & Auto Instrumentation for OpenTelemetry
Python
License: Apache-2.0
URL:
https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/opentelemetry-instrumentation
Source:
https://files.pythonhosted.org/packages/source/o/opentelemetry-instrumentation/opentelemetry_instrumentation-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM
https://github.com/open-telemetry/opentelemetry-python-contrib/pull/4082 update
opentelemetry-instrumentation to wrapt v2
+Patch: wrapt2.patch
BuildRequires: %{python_module hatchling}
BuildRequires: %{python_module pip}
BuildRequires: python-rpm-macros
@@ -49,7 +51,7 @@
Instrumentation Tools & Auto Instrumentation for OpenTelemetry Python
%prep
-%setup -q -n opentelemetry_instrumentation-%{version}
+%autosetup -p1 -n opentelemetry_instrumentation-%{version}
%build
%pyproject_wheel
++++++ opentelemetry_instrumentation-0.59b0.tar.gz ->
opentelemetry_instrumentation-0.60b0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry_instrumentation-0.59b0/PKG-INFO
new/opentelemetry_instrumentation-0.60b0/PKG-INFO
--- old/opentelemetry_instrumentation-0.59b0/PKG-INFO 2020-02-02
01:00:00.000000000 +0100
+++ new/opentelemetry_instrumentation-0.60b0/PKG-INFO 2020-02-02
01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: opentelemetry-instrumentation
-Version: 0.59b0
+Version: 0.60b0
Summary: Instrumentation Tools & Auto Instrumentation for OpenTelemetry Python
Project-URL: Homepage,
https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/opentelemetry-instrumentation
Project-URL: Repository,
https://github.com/open-telemetry/opentelemetry-python-contrib
@@ -19,7 +19,7 @@
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.9
Requires-Dist: opentelemetry-api~=1.4
-Requires-Dist: opentelemetry-semantic-conventions==0.59b0
+Requires-Dist: opentelemetry-semantic-conventions==0.60b0
Requires-Dist: packaging>=18.0
Requires-Dist: wrapt<2.0.0,>=1.0.0
Description-Content-Type: text/x-rst
@@ -132,6 +132,8 @@
If set by the user, opentelemetry-instrument will read this environment
variable to disable specific instrumentations.
e.g OTEL_PYTHON_DISABLED_INSTRUMENTATIONS="requests,django"
+If the variables contains ``*`` as member no instrumentation will be enabled.
+
* ``OTEL_PYTHON_AUTO_INSTRUMENTATION_EXPERIMENTAL_GEVENT_PATCH``
If set by the user to `patch_all` , opentelemetry instrument will call the
gevent monkeypatching method ``patch_all``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry_instrumentation-0.59b0/README.rst
new/opentelemetry_instrumentation-0.60b0/README.rst
--- old/opentelemetry_instrumentation-0.59b0/README.rst 2020-02-02
01:00:00.000000000 +0100
+++ new/opentelemetry_instrumentation-0.60b0/README.rst 2020-02-02
01:00:00.000000000 +0100
@@ -106,6 +106,8 @@
If set by the user, opentelemetry-instrument will read this environment
variable to disable specific instrumentations.
e.g OTEL_PYTHON_DISABLED_INSTRUMENTATIONS="requests,django"
+If the variables contains ``*`` as member no instrumentation will be enabled.
+
* ``OTEL_PYTHON_AUTO_INSTRUMENTATION_EXPERIMENTAL_GEVENT_PATCH``
If set by the user to `patch_all` , opentelemetry instrument will call the
gevent monkeypatching method ``patch_all``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/opentelemetry_instrumentation-0.59b0/pyproject.toml
new/opentelemetry_instrumentation-0.60b0/pyproject.toml
--- old/opentelemetry_instrumentation-0.59b0/pyproject.toml 2020-02-02
01:00:00.000000000 +0100
+++ new/opentelemetry_instrumentation-0.60b0/pyproject.toml 2020-02-02
01:00:00.000000000 +0100
@@ -26,7 +26,7 @@
]
dependencies = [
"opentelemetry-api ~= 1.4",
- "opentelemetry-semantic-conventions == 0.59b0",
+ "opentelemetry-semantic-conventions == 0.60b0",
"wrapt >= 1.0.0, < 2.0.0",
"packaging >= 18.0",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_instrumentation-0.59b0/src/opentelemetry/instrumentation/auto_instrumentation/__init__.py
new/opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/auto_instrumentation/__init__.py
---
old/opentelemetry_instrumentation-0.59b0/src/opentelemetry/instrumentation/auto_instrumentation/__init__.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/auto_instrumentation/__init__.py
2020-02-02 01:00:00.000000000 +0100
@@ -149,7 +149,7 @@
else:
try:
# pylint: disable=import-outside-toplevel
- from gevent import monkey
+ from gevent import monkey # noqa: PLC0415
getattr(monkey, gevent_patch)()
except ImportError:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_instrumentation-0.59b0/src/opentelemetry/instrumentation/auto_instrumentation/_load.py
new/opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/auto_instrumentation/_load.py
---
old/opentelemetry_instrumentation-0.59b0/src/opentelemetry/instrumentation/auto_instrumentation/_load.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/auto_instrumentation/_load.py
2020-02-02 01:00:00.000000000 +0100
@@ -35,6 +35,8 @@
_logger = getLogger(__name__)
+SKIPPED_INSTRUMENTATIONS_WILDCARD = "*"
+
class _EntryPointDistFinder:
@cached_property
@@ -94,6 +96,9 @@
entry_point.load()()
for entry_point in entry_points(group="opentelemetry_instrumentor"):
+ if SKIPPED_INSTRUMENTATIONS_WILDCARD in package_to_exclude:
+ break
+
if entry_point.name in package_to_exclude:
_logger.debug(
"Instrumentation skipped for library %s", entry_point.name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_instrumentation-0.59b0/src/opentelemetry/instrumentation/bootstrap_gen.py
new/opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/bootstrap_gen.py
---
old/opentelemetry_instrumentation-0.59b0/src/opentelemetry/instrumentation/bootstrap_gen.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/bootstrap_gen.py
2020-02-02 01:00:00.000000000 +0100
@@ -26,199 +26,199 @@
},
{
"library": "aio_pika >= 7.2.0, < 10.0.0",
- "instrumentation": "opentelemetry-instrumentation-aio-pika==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-aio-pika==0.60b0",
},
{
"library": "aiohttp ~= 3.0",
- "instrumentation":
"opentelemetry-instrumentation-aiohttp-client==0.59b0",
+ "instrumentation":
"opentelemetry-instrumentation-aiohttp-client==0.60b0",
},
{
"library": "aiohttp ~= 3.0",
- "instrumentation":
"opentelemetry-instrumentation-aiohttp-server==0.59b0",
+ "instrumentation":
"opentelemetry-instrumentation-aiohttp-server==0.60b0",
},
{
"library": "aiokafka >= 0.8, < 1.0",
- "instrumentation": "opentelemetry-instrumentation-aiokafka==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-aiokafka==0.60b0",
},
{
"library": "aiopg >= 0.13.0, < 2.0.0",
- "instrumentation": "opentelemetry-instrumentation-aiopg==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-aiopg==0.60b0",
},
{
"library": "asgiref ~= 3.0",
- "instrumentation": "opentelemetry-instrumentation-asgi==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-asgi==0.60b0",
},
{
"library": "asyncclick ~= 8.0",
- "instrumentation": "opentelemetry-instrumentation-asyncclick==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-asyncclick==0.60b0",
},
{
"library": "asyncpg >= 0.12.0",
- "instrumentation": "opentelemetry-instrumentation-asyncpg==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-asyncpg==0.60b0",
},
{
"library": "boto~=2.0",
- "instrumentation": "opentelemetry-instrumentation-boto==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-boto==0.60b0",
},
{
"library": "boto3 ~= 1.0",
- "instrumentation": "opentelemetry-instrumentation-boto3sqs==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-boto3sqs==0.60b0",
},
{
"library": "botocore ~= 1.0",
- "instrumentation": "opentelemetry-instrumentation-botocore==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-botocore==0.60b0",
},
{
"library": "cassandra-driver ~= 3.25",
- "instrumentation": "opentelemetry-instrumentation-cassandra==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-cassandra==0.60b0",
},
{
"library": "scylla-driver ~= 3.25",
- "instrumentation": "opentelemetry-instrumentation-cassandra==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-cassandra==0.60b0",
},
{
"library": "celery >= 4.0, < 6.0",
- "instrumentation": "opentelemetry-instrumentation-celery==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-celery==0.60b0",
},
{
"library": "click >= 8.1.3, < 9.0.0",
- "instrumentation": "opentelemetry-instrumentation-click==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-click==0.60b0",
},
{
"library": "confluent-kafka >= 1.8.2, <= 2.11.0",
- "instrumentation":
"opentelemetry-instrumentation-confluent-kafka==0.59b0",
+ "instrumentation":
"opentelemetry-instrumentation-confluent-kafka==0.60b0",
},
{
"library": "django >= 1.10",
- "instrumentation": "opentelemetry-instrumentation-django==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-django==0.60b0",
},
{
"library": "elasticsearch >= 6.0",
- "instrumentation":
"opentelemetry-instrumentation-elasticsearch==0.59b0",
+ "instrumentation":
"opentelemetry-instrumentation-elasticsearch==0.60b0",
},
{
"library": "falcon >= 1.4.1, < 5.0.0",
- "instrumentation": "opentelemetry-instrumentation-falcon==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-falcon==0.60b0",
},
{
"library": "fastapi ~= 0.92",
- "instrumentation": "opentelemetry-instrumentation-fastapi==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-fastapi==0.60b0",
},
{
"library": "flask >= 1.0",
- "instrumentation": "opentelemetry-instrumentation-flask==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-flask==0.60b0",
},
{
"library": "grpcio >= 1.42.0",
- "instrumentation": "opentelemetry-instrumentation-grpc==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-grpc==0.60b0",
},
{
"library": "httpx >= 0.18.0",
- "instrumentation": "opentelemetry-instrumentation-httpx==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-httpx==0.60b0",
},
{
"library": "jinja2 >= 2.7, < 4.0",
- "instrumentation": "opentelemetry-instrumentation-jinja2==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-jinja2==0.60b0",
},
{
"library": "kafka-python >= 2.0, < 3.0",
- "instrumentation":
"opentelemetry-instrumentation-kafka-python==0.59b0",
+ "instrumentation":
"opentelemetry-instrumentation-kafka-python==0.60b0",
},
{
"library": "kafka-python-ng >= 2.0, < 3.0",
- "instrumentation":
"opentelemetry-instrumentation-kafka-python==0.59b0",
+ "instrumentation":
"opentelemetry-instrumentation-kafka-python==0.60b0",
},
{
"library": "mysql-connector-python >= 8.0, < 10.0",
- "instrumentation": "opentelemetry-instrumentation-mysql==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-mysql==0.60b0",
},
{
"library": "mysqlclient < 3",
- "instrumentation": "opentelemetry-instrumentation-mysqlclient==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-mysqlclient==0.60b0",
},
{
"library": "pika >= 0.12.0",
- "instrumentation": "opentelemetry-instrumentation-pika==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-pika==0.60b0",
},
{
"library": "psycopg >= 3.1.0",
- "instrumentation": "opentelemetry-instrumentation-psycopg==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-psycopg==0.60b0",
},
{
"library": "psycopg2 >= 2.7.3.1",
- "instrumentation": "opentelemetry-instrumentation-psycopg2==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-psycopg2==0.60b0",
},
{
"library": "psycopg2-binary >= 2.7.3.1",
- "instrumentation": "opentelemetry-instrumentation-psycopg2==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-psycopg2==0.60b0",
},
{
"library": "pymemcache >= 1.3.5, < 5",
- "instrumentation": "opentelemetry-instrumentation-pymemcache==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-pymemcache==0.60b0",
},
{
"library": "pymongo >= 3.1, < 5.0",
- "instrumentation": "opentelemetry-instrumentation-pymongo==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-pymongo==0.60b0",
},
{
"library": "pymssql >= 2.1.5, < 3",
- "instrumentation": "opentelemetry-instrumentation-pymssql==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-pymssql==0.60b0",
},
{
"library": "PyMySQL < 2",
- "instrumentation": "opentelemetry-instrumentation-pymysql==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-pymysql==0.60b0",
},
{
"library": "pyramid >= 1.7",
- "instrumentation": "opentelemetry-instrumentation-pyramid==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-pyramid==0.60b0",
},
{
"library": "redis >= 2.6",
- "instrumentation": "opentelemetry-instrumentation-redis==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-redis==0.60b0",
},
{
"library": "remoulade >= 0.50",
- "instrumentation": "opentelemetry-instrumentation-remoulade==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-remoulade==0.60b0",
},
{
"library": "requests ~= 2.0",
- "instrumentation": "opentelemetry-instrumentation-requests==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-requests==0.60b0",
},
{
"library": "sqlalchemy >= 1.0.0, < 2.1.0",
- "instrumentation": "opentelemetry-instrumentation-sqlalchemy==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-sqlalchemy==0.60b0",
},
{
"library": "starlette >= 0.13",
- "instrumentation": "opentelemetry-instrumentation-starlette==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-starlette==0.60b0",
},
{
"library": "psutil >= 5",
- "instrumentation":
"opentelemetry-instrumentation-system-metrics==0.59b0",
+ "instrumentation":
"opentelemetry-instrumentation-system-metrics==0.60b0",
},
{
"library": "tornado >= 5.1.1",
- "instrumentation": "opentelemetry-instrumentation-tornado==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-tornado==0.60b0",
},
{
"library": "tortoise-orm >= 0.17.0",
- "instrumentation": "opentelemetry-instrumentation-tortoiseorm==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-tortoiseorm==0.60b0",
},
{
"library": "pydantic >= 1.10.2",
- "instrumentation": "opentelemetry-instrumentation-tortoiseorm==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-tortoiseorm==0.60b0",
},
{
"library": "urllib3 >= 1.0.0, < 3.0.0",
- "instrumentation": "opentelemetry-instrumentation-urllib3==0.59b0",
+ "instrumentation": "opentelemetry-instrumentation-urllib3==0.60b0",
},
]
default_instrumentations = [
- "opentelemetry-instrumentation-asyncio==0.59b0",
- "opentelemetry-instrumentation-dbapi==0.59b0",
- "opentelemetry-instrumentation-logging==0.59b0",
- "opentelemetry-instrumentation-sqlite3==0.59b0",
- "opentelemetry-instrumentation-threading==0.59b0",
- "opentelemetry-instrumentation-urllib==0.59b0",
- "opentelemetry-instrumentation-wsgi==0.59b0",
+ "opentelemetry-instrumentation-asyncio==0.60b0",
+ "opentelemetry-instrumentation-dbapi==0.60b0",
+ "opentelemetry-instrumentation-logging==0.60b0",
+ "opentelemetry-instrumentation-sqlite3==0.60b0",
+ "opentelemetry-instrumentation-threading==0.60b0",
+ "opentelemetry-instrumentation-urllib==0.60b0",
+ "opentelemetry-instrumentation-wsgi==0.60b0",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_instrumentation-0.59b0/src/opentelemetry/instrumentation/version.py
new/opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/version.py
---
old/opentelemetry_instrumentation-0.59b0/src/opentelemetry/instrumentation/version.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/version.py
2020-02-02 01:00:00.000000000 +0100
@@ -12,4 +12,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-__version__ = "0.59b0"
+__version__ = "0.60b0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/opentelemetry_instrumentation-0.59b0/tests/auto_instrumentation/test_load.py
new/opentelemetry_instrumentation-0.60b0/tests/auto_instrumentation/test_load.py
---
old/opentelemetry_instrumentation-0.59b0/tests/auto_instrumentation/test_load.py
2020-02-02 01:00:00.000000000 +0100
+++
new/opentelemetry_instrumentation-0.60b0/tests/auto_instrumentation/test_load.py
2020-02-02 01:00:00.000000000 +0100
@@ -492,3 +492,54 @@
)
# dist are not comparable, being truthy is enough
self.assertTrue(new_entry_point_dist)
+
+ @patch.dict(
+ "os.environ",
+ {OTEL_PYTHON_DISABLED_INSTRUMENTATIONS: "*"},
+ )
+ @patch(
+
"opentelemetry.instrumentation.auto_instrumentation._load.get_dist_dependency_conflicts"
+ )
+ @patch(
+ "opentelemetry.instrumentation.auto_instrumentation._load.entry_points"
+ )
+ def test_no_instrumentor_called_with_wildcard(self, iter_mock, mock_dep):
+ # Mock opentelemetry_pre_instrument entry points
+ # pylint: disable=too-many-locals
+ pre_ep_mock1 = Mock()
+ pre_ep_mock1.name = "pre1"
+ pre_mock1 = Mock()
+ pre_ep_mock1.load.return_value = pre_mock1
+
+ # Mock opentelemetry_instrumentor entry points
+ ep_mock1 = Mock()
+ ep_mock1.name = "instr1"
+
+ # Mock opentelemetry_instrumentor entry points
+ post_ep_mock1 = Mock()
+ post_ep_mock1.name = "post1"
+ post_mock1 = Mock()
+ post_ep_mock1.load.return_value = post_mock1
+
+ distro_mock = Mock()
+
+ # Mock entry points in order
+ iter_mock.side_effect = [
+ (pre_ep_mock1,),
+ (ep_mock1,),
+ (post_ep_mock1,),
+ ]
+ _load._load_instrumentors(distro_mock)
+
+ self.assertEqual(iter_mock.call_count, 3)
+
+ # All opentelemetry_pre_instrument entry points should be loaded
+ pre_mock1.assert_called_once()
+
+ # No instrumentations should be loaded
+ mock_dep.assert_not_called()
+ distro_mock.load_instrumentor.assert_not_called()
+ self.assertEqual(distro_mock.load_instrumentor.call_count, 0)
+
+ # All opentelemetry_post_instrument entry points should be loaded
+ post_mock1.assert_called_once()
++++++ wrapt2.patch ++++++
Index: opentelemetry_instrumentation-0.60b0/tests/test_utils.py
===================================================================
--- opentelemetry_instrumentation-0.60b0.orig/tests/test_utils.py
+++ opentelemetry_instrumentation-0.60b0/tests/test_utils.py
@@ -15,7 +15,11 @@
import unittest
from http import HTTPStatus
-from wrapt import ObjectProxy, wrap_function_wrapper
+from wrapt import wrap_function_wrapper
+try:
+ from wrapt import BaseObjectProxy
+except ImportError:
+ from wrapt import ObjectProxy as BaseObjectProxy
from opentelemetry.context import (
_SUPPRESS_HTTP_INSTRUMENTATION_KEY,
@@ -263,23 +267,23 @@ class UnwrapTestCase(unittest.TestCase):
def test_can_unwrap_object_attribute(self):
self._wrap_method()
instance = WrappedClass()
- self.assertTrue(isinstance(instance.method, ObjectProxy))
+ self.assertTrue(isinstance(instance.method, BaseObjectProxy))
unwrap(WrappedClass, "method")
- self.assertFalse(isinstance(instance.method, ObjectProxy))
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
def test_can_unwrap_object_attribute_as_string(self):
self._wrap_method()
instance = WrappedClass()
- self.assertTrue(isinstance(instance.method, ObjectProxy))
+ self.assertTrue(isinstance(instance.method, BaseObjectProxy))
unwrap("tests.test_utils.WrappedClass", "method")
- self.assertFalse(isinstance(instance.method, ObjectProxy))
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
def test_raises_import_error_if_path_not_well_formed(self):
self._wrap_method()
instance = WrappedClass()
- self.assertTrue(isinstance(instance.method, ObjectProxy))
+ self.assertTrue(isinstance(instance.method, BaseObjectProxy))
with self.assertRaisesRegex(
ImportError, "Cannot parse '' as dotted import path"
@@ -287,23 +291,23 @@ class UnwrapTestCase(unittest.TestCase):
unwrap("", "method")
unwrap(WrappedClass, "method")
- self.assertFalse(isinstance(instance.method, ObjectProxy))
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
def test_raises_import_error_if_cannot_find_module(self):
self._wrap_method()
instance = WrappedClass()
- self.assertTrue(isinstance(instance.method, ObjectProxy))
+ self.assertTrue(isinstance(instance.method, BaseObjectProxy))
with self.assertRaisesRegex(ImportError, "No module named 'does'"):
unwrap("does.not.exist.WrappedClass", "method")
unwrap(WrappedClass, "method")
- self.assertFalse(isinstance(instance.method, ObjectProxy))
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
def test_raises_import_error_if_cannot_find_object(self):
self._wrap_method()
instance = WrappedClass()
- self.assertTrue(isinstance(instance.method, ObjectProxy))
+ self.assertTrue(isinstance(instance.method, BaseObjectProxy))
with self.assertRaisesRegex(
ImportError, "Cannot import 'NotWrappedClass' from"
@@ -311,7 +315,7 @@ class UnwrapTestCase(unittest.TestCase):
unwrap("tests.test_utils.NotWrappedClass", "method")
unwrap(WrappedClass, "method")
- self.assertFalse(isinstance(instance.method, ObjectProxy))
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
# pylint: disable=no-self-use
def test_does_nothing_if_cannot_find_attribute(self):
@@ -320,6 +324,6 @@ class UnwrapTestCase(unittest.TestCase):
def test_does_nothing_if_attribute_is_not_from_wrapt(self):
instance = WrappedClass()
- self.assertFalse(isinstance(instance.method, ObjectProxy))
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
unwrap(WrappedClass, "method")
- self.assertFalse(isinstance(instance.method, ObjectProxy))
+ self.assertFalse(isinstance(instance.method, BaseObjectProxy))
Index:
opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/utils.py
===================================================================
---
opentelemetry_instrumentation-0.60b0.orig/src/opentelemetry/instrumentation/utils.py
+++
opentelemetry_instrumentation-0.60b0/src/opentelemetry/instrumentation/utils.py
@@ -20,7 +20,10 @@ from importlib import import_module
from re import escape, sub
from typing import Any, Dict, Generator, Sequence
-from wrapt import ObjectProxy
+try:
+ from wrapt import BaseObjectProxy
+except ImportError:
+ from wrapt import ObjectProxy as BaseObjectProxy
from opentelemetry import context, trace
@@ -108,7 +111,7 @@ def unwrap(obj: object, attr: str):
) from exc
func = getattr(obj, attr, None)
- if func and isinstance(func, ObjectProxy) and hasattr(func, "__wrapped__"):
+ if func and isinstance(func, BaseObjectProxy) and hasattr(func,
"__wrapped__"):
setattr(obj, attr, func.__wrapped__)