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__)
 
 

Reply via email to