Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-python-engineio for openSUSE:Factory checked in at 2025-04-22 17:29:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-python-engineio (Old) and /work/SRC/openSUSE:Factory/.python-python-engineio.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-python-engineio" Tue Apr 22 17:29:32 2025 rev:11 rq:1271277 version:4.12.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-python-engineio/python-python-engineio.changes 2025-03-24 13:32:51.961360449 +0100 +++ /work/SRC/openSUSE:Factory/.python-python-engineio.new.30101/python-python-engineio.changes 2025-04-22 17:30:15.576062925 +0200 @@ -1,0 +2,9 @@ +Wed Apr 16 10:52:22 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaub...@suse.com> + +- Update to 4.12.0 + * Optimize packet parsing to avoid unnecessary calls to + JSON parser (#399) + * Pass `environ` as a second argument to callable option + `cors_allowed_origins` #398) + +------------------------------------------------------------------- Old: ---- python-engineio-4.11.2.tar.gz New: ---- python-engineio-4.12.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-python-engineio.spec ++++++ --- /var/tmp/diff_new_pack.Ll88Uz/_old 2025-04-22 17:30:16.016081408 +0200 +++ /var/tmp/diff_new_pack.Ll88Uz/_new 2025-04-22 17:30:16.020081576 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-python-engineio -Version: 4.11.2 +Version: 4.12.0 Release: 0 Summary: EngineIO server License: MIT ++++++ python-engineio-4.11.2.tar.gz -> python-engineio-4.12.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-engineio-4.11.2/.github/FUNDING.yml new/python-engineio-4.12.0/.github/FUNDING.yml --- old/python-engineio-4.11.2/.github/FUNDING.yml 2024-12-29 20:17:38.000000000 +0100 +++ new/python-engineio-4.12.0/.github/FUNDING.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -github: miguelgrinberg -patreon: miguelgrinberg -open_collective: python-socketio -custom: https://paypal.me/miguelgrinberg diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-engineio-4.11.2/.github/ISSUE_TEMPLATE/bug_report.md new/python-engineio-4.12.0/.github/ISSUE_TEMPLATE/bug_report.md --- old/python-engineio-4.11.2/.github/ISSUE_TEMPLATE/bug_report.md 2024-12-29 20:17:38.000000000 +0100 +++ new/python-engineio-4.12.0/.github/ISSUE_TEMPLATE/bug_report.md 2025-04-12 17:26:51.000000000 +0200 @@ -23,7 +23,7 @@ A clear and concise description of what you expected to happen. **Logs** -Please provide relevant logs from the server and the client. On the Python server and client, add the `logger=True` and `engineio_logger=True` arguments to your `Server()` or `Client()` objects to get logs dumped on your terminal. If you are using the JavaScript client, see [here](https://socket.io/docs/logging-and-debugging/) for how to enable logs. +Please provide relevant logs from the server and the client. On the Python server and client, add the `logger=True` and `engineio_logger=True` arguments to your `Server()` or `Client()` objects to get logs dumped on your terminal. If you are using the JavaScript client, see [here](https://socket.io/docs/v4/logging-and-debugging/) for how to enable logs. **Additional context** Add any other context about the problem here. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-engineio-4.11.2/.github/ISSUE_TEMPLATE/feature_request.md new/python-engineio-4.12.0/.github/ISSUE_TEMPLATE/feature_request.md --- old/python-engineio-4.11.2/.github/ISSUE_TEMPLATE/feature_request.md 2024-12-29 20:17:38.000000000 +0100 +++ new/python-engineio-4.12.0/.github/ISSUE_TEMPLATE/feature_request.md 2025-04-12 17:26:51.000000000 +0200 @@ -17,7 +17,7 @@ A clear and concise description of any alternative solutions or features you've considered. **Logs** -Please provide relevant logs from the server and the client. On the Python server and client, add the `logger=True` and `engineio_logger=True` arguments to your `Server()` or `Client()` objects to get logs dumped on your terminal. If you are using the JavaScript client, see [here](https://socket.io/docs/logging-and-debugging/) for how to enable logs. +Please provide relevant logs from the server and the client. On the Python server and client, add the `logger=True` and `engineio_logger=True` arguments to your `Server()` or `Client()` objects to get logs dumped on your terminal. If you are using the JavaScript client, see [here](https://socket.io/docs/v4/logging-and-debugging/) for how to enable logs. **Additional context** Add any other context or screenshots about the feature request here. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-engineio-4.11.2/CHANGES.md new/python-engineio-4.12.0/CHANGES.md --- old/python-engineio-4.11.2/CHANGES.md 2024-12-29 20:17:38.000000000 +0100 +++ new/python-engineio-4.12.0/CHANGES.md 2025-04-12 17:26:51.000000000 +0200 @@ -1,5 +1,10 @@ # python-engineio change log +**Release 4.12.0** - 2025-04-12 + +- Optimize packet parsing to avoid unnecessary calls to JSON parser [#399](https://github.com/miguelgrinberg/python-engineio/issues/399) ([commit](https://github.com/miguelgrinberg/python-engineio/commit/2dda203103d93bc751ab0967719f18318cffc8da)) +- Pass `environ` as a second argument to callable option `cors_allowed_origins` [#398](https://github.com/miguelgrinberg/python-engineio/issues/398) ([commit](https://github.com/miguelgrinberg/python-engineio/commit/5cb561101dfcaed06bc9d73486515da93ead1752)) (thanks **wft-swas**!) + **Release 4.11.2** - 2024-12-29 - Fix incorrect disconnection reason reported when browser page is closed ([commit](https://github.com/miguelgrinberg/python-engineio/commit/132fbd9b2728c342fb989d559fa8c24b324c3cf3)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-engineio-4.11.2/examples/client/asyncio/latency_client.py new/python-engineio-4.12.0/examples/client/asyncio/latency_client.py --- old/python-engineio-4.11.2/examples/client/asyncio/latency_client.py 2024-12-29 20:17:38.000000000 +0100 +++ new/python-engineio-4.12.0/examples/client/asyncio/latency_client.py 2025-04-12 17:26:51.000000000 +0200 @@ -21,7 +21,6 @@ @eio.on('message') async def on_message(data): - global start_timer latency = time.time() - start_timer print(f'latency is {latency * 1000:.2f} ms') await eio.sleep(1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-engineio-4.11.2/examples/client/threads/latency_client.py new/python-engineio-4.12.0/examples/client/threads/latency_client.py --- old/python-engineio-4.11.2/examples/client/threads/latency_client.py 2024-12-29 20:17:38.000000000 +0100 +++ new/python-engineio-4.12.0/examples/client/threads/latency_client.py 2025-04-12 17:26:51.000000000 +0200 @@ -19,7 +19,6 @@ @eio.on('message') def on_message(data): - global start_timer latency = time.time() - start_timer print(f'latency is {latency * 1000:.2f} ms') eio.sleep(1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-engineio-4.11.2/pyproject.toml new/python-engineio-4.12.0/pyproject.toml --- old/python-engineio-4.11.2/pyproject.toml 2024-12-29 20:17:38.000000000 +0100 +++ new/python-engineio-4.12.0/pyproject.toml 2025-04-12 17:26:51.000000000 +0200 @@ -1,6 +1,6 @@ [project] name = "python-engineio" -version = "4.11.2" +version = "4.12.0" authors = [{name = "Miguel Grinberg", email = "miguel.grinb...@gmail.com"}] description = "Engine.IO server and client for Python" classifiers = [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-engineio-4.11.2/src/engineio/base_server.py new/python-engineio-4.12.0/src/engineio/base_server.py --- old/python-engineio-4.11.2/src/engineio/base_server.py 2024-12-29 20:17:38.000000000 +0100 +++ new/python-engineio-4.12.0/src/engineio/base_server.py 2025-04-12 17:26:51.000000000 +0200 @@ -282,29 +282,33 @@ 'response': message.encode('utf-8')} def _cors_allowed_origins(self, environ): - default_origins = [] - if 'wsgi.url_scheme' in environ and 'HTTP_HOST' in environ: - default_origins.append('{scheme}://{host}'.format( - scheme=environ['wsgi.url_scheme'], host=environ['HTTP_HOST'])) - if 'HTTP_X_FORWARDED_PROTO' in environ or \ - 'HTTP_X_FORWARDED_HOST' in environ: - scheme = environ.get( - 'HTTP_X_FORWARDED_PROTO', - environ['wsgi.url_scheme']).split(',')[0].strip() - default_origins.append('{scheme}://{host}'.format( - scheme=scheme, host=environ.get( - 'HTTP_X_FORWARDED_HOST', environ['HTTP_HOST']).split( - ',')[0].strip())) if self.cors_allowed_origins is None: - allowed_origins = default_origins + allowed_origins = [] + if 'wsgi.url_scheme' in environ and 'HTTP_HOST' in environ: + allowed_origins.append('{scheme}://{host}'.format( + scheme=environ['wsgi.url_scheme'], + host=environ['HTTP_HOST'])) + if 'HTTP_X_FORWARDED_PROTO' in environ or \ + 'HTTP_X_FORWARDED_HOST' in environ: + scheme = environ.get( + 'HTTP_X_FORWARDED_PROTO', + environ['wsgi.url_scheme']).split(',')[0].strip() + allowed_origins.append('{scheme}://{host}'.format( + scheme=scheme, host=environ.get( + 'HTTP_X_FORWARDED_HOST', + environ['HTTP_HOST']).split( + ',')[0].strip())) elif self.cors_allowed_origins == '*': allowed_origins = None elif isinstance(self.cors_allowed_origins, str): allowed_origins = [self.cors_allowed_origins] elif callable(self.cors_allowed_origins): origin = environ.get('HTTP_ORIGIN') - allowed_origins = [origin] \ - if self.cors_allowed_origins(origin) else [] + try: + is_allowed = self.cors_allowed_origins(origin, environ) + except TypeError: + is_allowed = self.cors_allowed_origins(origin) + allowed_origins = [origin] if is_allowed else [] else: allowed_origins = self.cors_allowed_origins return allowed_origins diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-engineio-4.11.2/src/engineio/packet.py new/python-engineio-4.12.0/src/engineio/packet.py --- old/python-engineio-4.11.2/src/engineio/packet.py 2024-12-29 20:17:38.000000000 +0100 +++ new/python-engineio-4.12.0/src/engineio/packet.py 2025-04-12 17:26:51.000000000 +0200 @@ -72,11 +72,11 @@ else: self.packet_type = int(encoded_packet[0]) try: - self.data = self.json.loads(encoded_packet[1:]) - if isinstance(self.data, int): + if encoded_packet[1].isnumeric(): # do not allow integer payloads, see # github.com/miguelgrinberg/python-engineio/issues/75 # for background on this decision raise ValueError - except ValueError: + self.data = self.json.loads(encoded_packet[1:]) + except (ValueError, IndexError): self.data = encoded_packet[1:]