<feed xmlns='http://www.w3.org/2005/Atom'>
<title>searxng/searx/exceptions.py, branch master</title>
<subtitle>Free internet metasearch engine which aggregates results from various search services and databases</subtitle>
<id>https://git.ikboikov.net/searxng/atom?h=master</id>
<link rel='self' href='https://git.ikboikov.net/searxng/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/'/>
<updated>2025-10-05T09:44:13Z</updated>
<entry>
<title>[fix] ModuleNotFoundError: No module named 'lxml' (#5254)</title>
<updated>2025-10-05T09:44:13Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarIT.de</email>
</author>
<published>2025-10-05T09:44:13Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=34eb32f4185a784fdf29ef990ddb1bcd79a90fe1'/>
<id>urn:sha1:34eb32f4185a784fdf29ef990ddb1bcd79a90fe1</id>
<content type='text'>
When installing SearXNG (e.g.):

    pip install --use-pep517 --no-build-isolation -e .

An import exception is raised:

    ModuleNotFoundError: No module named 'lxml'

The ``setup.py`` file imports ``searx``, which in turn triggers various other
imports.  However, the name XPath is only needed for type checking.

Closes: https://github.com/searxng/searxng/issues/5177

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;</content>
</entry>
<entry>
<title>[upd] pypi: Bump black from 24.3.0 to 25.9.0 (#5251)</title>
<updated>2025-09-26T10:35:57Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarIT.de</email>
</author>
<published>2025-09-26T10:35:57Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=81cbe0befe993b57b7daee2643e6016586262436'/>
<id>urn:sha1:81cbe0befe993b57b7daee2643e6016586262436</id>
<content type='text'>
In 25.1.0 [2] an old bug has been fixed: "Docstring formatting does not apply to
module docstrings" [3].

[1] https://github.com/psf/black/blob/main/CHANGES.md#2590
[2] https://github.com/psf/black/blob/main/CHANGES.md#2510
[3] https://github.com/psf/black/issues/4094

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;</content>
</entry>
<entry>
<title>[mod] addition of various type hints / engine processors</title>
<updated>2025-09-18T17:40:03Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2025-09-11T17:10:27Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=8f8343dc0d78bb57215afc3e99fd9000fce6e0cf'/>
<id>urn:sha1:8f8343dc0d78bb57215afc3e99fd9000fce6e0cf</id>
<content type='text'>
Continuation of #5147 .. typification of the engine processors.

BTW:

- removed obsolete engine property https_support
- fixed &amp; improved currency_convert
- engine instances can now implement a engine.setup method

[#5147] https://github.com/searxng/searxng/pull/5147

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
<entry>
<title>[mod] addition of various type hints / tbc</title>
<updated>2025-09-03T11:37:36Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2025-08-22T15:17:51Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=57b9673efb1b4fd18a3ac15e26da642201e2cd33'/>
<id>urn:sha1:57b9673efb1b4fd18a3ac15e26da642201e2cd33</id>
<content type='text'>
- pyright configuration [1]_
- stub files: types-lxml [2]_
- addition of various type hints
- enable use of new type system features on older Python versions [3]_
- ``.tool-versions`` - set python to lowest version we support (3.10.18) [4]_:
  Older versions typically lack some typing features found in newer Python
  versions.  Therefore, for local type checking (before commit), it is necessary
  to use the older Python interpreter.

.. [1] https://docs.basedpyright.com/v1.20.0/configuration/config-files/
.. [2] https://pypi.org/project/types-lxml/
.. [3] https://typing-extensions.readthedocs.io/en/latest/#
.. [4] https://mise.jdx.dev/configuration.html#tool-versions

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
Format: reST
</content>
</entry>
<entry>
<title>[fix] cleanup: rename `searx` leftovers to `SearXNG` (#5049)</title>
<updated>2025-07-26T04:22:46Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarIT.de</email>
</author>
<published>2025-07-26T04:22:46Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=649a8dd577b7db5549a34af6f667daf1b61ffb6b'/>
<id>urn:sha1:649a8dd577b7db5549a34af6f667daf1b61ffb6b</id>
<content type='text'>
Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;</content>
</entry>
<entry>
<title>[fix] engine: duckduckgo - CAPTCHA detection</title>
<updated>2024-10-19T12:55:44Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2024-10-19T12:19:27Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=050451347b021d05d26c7a0797c790bbd83442e4'/>
<id>urn:sha1:050451347b021d05d26c7a0797c790bbd83442e4</id>
<content type='text'>
The previous implementation could not distinguish a CAPTCHA response from an
ordinary result list.  In the previous implementation a CAPTCHA was taken as a
result list where no items are in.

DDG does not block IPs.  Instead, a CAPTCHA wall is placed in front of request
on a dubious request.

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
<entry>
<title>[mod] pylint all files with one profile / drop PYLINT_SEARXNG_DISABLE_OPTION</title>
<updated>2024-03-11T13:55:38Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2024-03-11T13:06:26Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=542f7d0d7bd1a12e1884ba4a1508b40e2514d472'/>
<id>urn:sha1:542f7d0d7bd1a12e1884ba4a1508b40e2514d472</id>
<content type='text'>
In the past, some files were tested with the standard profile, others with a
profile in which most of the messages were switched off ... some files were not
checked at all.

- ``PYLINT_SEARXNG_DISABLE_OPTION`` has been abolished
- the distinction ``# lint: pylint`` is no longer necessary
- the pylint tasks have been reduced from three to two

  1. ./searx/engines -&gt; lint engines with additional builtins
  2. ./searx ./searxng_extra ./tests -&gt; lint all other python files

Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
<entry>
<title>[fix] spelling</title>
<updated>2023-09-18T14:20:27Z</updated>
<author>
<name>jazzzooo</name>
<email>38244149+jazzzooo@users.noreply.github.com</email>
</author>
<published>2023-09-15T07:53:03Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=223b3487c38a2390ad936943266a44da9cbb810a'/>
<id>urn:sha1:223b3487c38a2390ad936943266a44da9cbb810a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[doc] Add doc-strings to searx.exceptions</title>
<updated>2023-01-29T18:06:19Z</updated>
<author>
<name>Markus Heiser</name>
<email>markus.heiser@darmarit.de</email>
</author>
<published>2023-01-29T17:51:13Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=feccee01c004f1e6cf2242dc33c8f3456e1b4e1a'/>
<id>urn:sha1:feccee01c004f1e6cf2242dc33c8f3456e1b4e1a</id>
<content type='text'>
Signed-off-by: Markus Heiser &lt;markus.heiser@darmarit.de&gt;
</content>
</entry>
<entry>
<title>search.suspended_time settings: bug fixes</title>
<updated>2023-01-28T10:24:14Z</updated>
<author>
<name>Alexandre Flament</name>
<email>alex@al-f.net</email>
</author>
<published>2023-01-28T10:24:14Z</published>
<link rel='alternate' type='text/html' href='https://git.ikboikov.net/searxng/commit/?id=37addec69e4211aac6b2302c82cb5c5c7b1d5e04'/>
<id>urn:sha1:37addec69e4211aac6b2302c82cb5c5c7b1d5e04</id>
<content type='text'>
* fix type in settings.yml: replace suspend_times by suspended_times
* always use delay defined in settings.yml:
  * HTTP status 402 and 403: read the value from settings.yml instead of using the hardcoded value of 1 day.
  * startpage engine: CAPTCHA suspend the engine for one day instead of one week
</content>
</entry>
</feed>
