Your message dated Sun, 8 Feb 2026 11:43:05 +0000
with message-id <[email protected]>
and subject line Fixed in 0.4.0-1
has caused the Debian Bug report #1084343,
regarding python-open-meteo: FTBFS: E open_meteo.exceptions.OpenMeteoError: 
(500, {'message': '500: Internal Server Error'})
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1084343: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1084343
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:python-open-meteo
Version: 0.3.1-2
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules build
make: pyversions: No such file or directory
py3versions: no X-Python3-Version in control file, using supported versions
dh build --buildsystem=pybuild --with python3
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" 
module
I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation --wheel 
--outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12
* Building wheel...
Successfully built open_meteo-0.0.0-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with 
"installer" module
   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; 
python3.12 -m pytest -v
/usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:208: PytestDeprecationWarning: 
The configuration option "asyncio_default_fixture_loop_scope" is unset.
The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will 
default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to 
avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", 
"module", "package", "session"

  warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))
============================= test session starts ==============================
platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 -- 
/usr/bin/python3.12
cachedir: .pytest_cache
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build
configfile: pyproject.toml
plugins: syrupy-4.7.1, typeguard-4.3.0, asyncio-0.24.0a1, aresponses-3.0.0, 
cov-5.0.0
asyncio: mode=Mode.AUTO, default_loop_scope=None
collecting ... collected 5 items

tests/test_open_meteo.py::test_json_request PASSED                       [ 20%]
tests/test_open_meteo.py::test_internal_session PASSED                   [ 40%]
tests/test_open_meteo.py::test_timeout FAILED                            [ 60%]
tests/test_open_meteo.py::test_http_error400 PASSED                      [ 80%]
tests/test_open_meteo.py::test_http_error500 PASSED                      [100%]

=================================== FAILURES ===================================
_________________________________ test_timeout _________________________________

aresponses = <aresponses.main.ResponsesMockServer object at 0x7fcd4f12aab0>

    async def test_timeout(aresponses: ResponsesMockServer) -> None:
        """Test request timeout."""
# Faking a timeout by sleeping
        async def response_handler(_: aiohttp.ClientResponse) -> Response:
            await asyncio.sleep(2)
            return aresponses.Response(body="Goodmorning!")
aresponses.add("example.com", "/api/", "POST", response_handler) async with aiohttp.ClientSession() as session:
            open_meteo = OpenMeteo(
                session=session,
                request_timeout=1,
            )
            with pytest.raises(OpenMeteoConnectionError):
              assert await open_meteo._request(URL("http://example.com/api/";))

tests/test_open_meteo.py:65:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = OpenMeteo(request_timeout=1, session=<aiohttp.client.ClientSession object 
at 0x7fcd4f12aea0>, _close_session=False)
url = URL('http://example.com/api/')

    async def _request(self, url: URL) -> str:
        """Handle a request to the Open-Meteo API.
A generic method for sending/handling HTTP requests done against
        the public Open-Meteo API.
Args:
        ----
            url: URL to call.
Returns:
        -------
            A Python dictionary (JSON decoded) with the response from
            the API.
Raises:
        ------
            OpenMeteoConnectionError: An error occurred while communicating with
                the Open-Meteo API.
            OpenMeteoError: Received an unexpected response from the Open-Meteo
                API.
        """
        if self.session is None:
            self.session = ClientSession()
            self._close_session = True
try:
            async with asyncio.timeout(self.request_timeout):
                response = await self.session.get(url)
        except asyncio.TimeoutError as exception:
            msg = "Timeout occurred while connecting to the Open-Meteo API"
            raise OpenMeteoConnectionError(msg) from exception
        except (
            ClientError,
            ClientResponseError,
            socket.gaierror,
        ) as exception:
            msg = "Error occurred while communicating with Open-Meteo API"
            raise OpenMeteoConnectionError(msg) from exception
        content_type = response.headers.get("Content-Type", "")
        if (response.status // 100) in [4, 5]:
            if "application/json" in content_type:
                data = await response.json()
                response.close()
                if data.get("error") is True and (reason := data.get("reason")):
                    raise OpenMeteoError(reason)
                raise OpenMeteoError(response.status, data)
            contents = await response.read()
            response.close()
          raise OpenMeteoError(response.status, {"message": 
contents.decode("utf8")})
E           open_meteo.exceptions.OpenMeteoError: (500, {'message': '500: 
Internal Server Error'})

open_meteo/open_meteo.py:86: OpenMeteoError
------------------------------ Captured log call -------------------------------
ERROR    aiohttp.server:web_protocol.py:448 Missing return statement on request 
handler
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/aiohttp/web_protocol.py", line 653, in 
finish_response
    prepare_meth = resp.prepare
                   ^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'prepare'

---------- coverage: platform linux, python 3.12.7-final-0 -----------
Name                       Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------
open_meteo/open_meteo.py      58     15     18      3    74%   66-75, 82, 90-91, 
136-150, 177-184, 188->exit
----------------------------------------------------------------------
TOTAL                        294     15     34      3    94%

3 files skipped due to complete coverage.

Required test coverage of 90.0% reached. Total coverage: 93.90%
=========================== short test summary info ============================
FAILED tests/test_open_meteo.py::test_timeout - open_meteo.exceptions.OpenMet...
========================= 1 failed, 4 passed in 0.37s ==========================
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; python3.12 -m pytest -v
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.12 
returned exit code 13
make: *** [debian/rules:9: build] Error 25
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202410/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

Thanks.

--- End Message ---
--- Begin Message ---
This is fixed.

--- End Message ---

Reply via email to