Markus Heiser
86b4d2f2d0
[mod] activate pyright checks (in CI)
...
We have been using a static type checker (pyright) for a long time, but its
check was not yet a prerequisite for passing the quality gate. It was checked
in the CI, but the error messages were only logged.
As is always the case in life, with checks that you have to do but which have no
consequences; you neglect them :-)
We didn't activate the checks back then because we (even today) have too much
monkey patching in our code (not only in the engines, httpx and others objects
are also affected).
We want to replace monkey patching with clear interfaces for a long time, the
basis for this is increased typing and we can only achieve this if we make type
checking an integral part of the quality gate.
This PR activates the type check; in order to pass the check, a few typings
were corrected in the code, but most type inconsistencies were deactivated via
inline comments.
This was particularly necessary in places where the code uses properties that
stick to the objects (monkey patching). The sticking of properties only happens
in a few places, but the access to these properties extends over the entire
code, which is why there are many `# type: ignore` markers in the code ... which
we will hopefully be able to remove again successively in the future.
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-04-27 18:31:52 +02:00
Markus Heiser
542f7d0d7b
[mod] pylint all files with one profile / drop PYLINT_SEARXNG_DISABLE_OPTION
...
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 -> lint engines with additional builtins
2. ./searx ./searxng_extra ./tests -> lint all other python files
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-03-11 14:55:38 +01:00
Markus Heiser
50d5a9ff60
[fix] issues reported by pylint 3.1.0
...
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-03-09 09:28:13 +01:00
jazzzooo
223b3487c3
[fix] spelling
2023-09-18 16:20:27 +02:00
Markus Heiser
2de007138c
[fix] prepare for pylint 2.14.0
...
Remove issue reported by Pylint 2.14.0:
- no-self-use: has been moved to optional extension [1]
- The refactoring checker now also raises 'consider-using-generator' messages
for max(), min() and sum(). [2]
.pylintrc:
- <option name>-hint has been removed since long, Pylint 2.14.0 raises an
error on invalid options
- bad-continuation and bad-whitespace have been removed [3]
[1] https://pylint.pycqa.org/en/latest/whatsnew/2/2.14/summary.html#removed-checkers
[2] https://pylint.pycqa.org/en/latest/whatsnew/2/2.14/full.html#what-s-new-in-pylint-2-14-0
[2] https://pylint.pycqa.org/en/latest/whatsnew/2/2.6/summary.html#summary-release-highlights
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2022-06-03 15:41:52 +02:00
Martin Fischer
6d43cf7952
[typing] add optional attrs to Plugin
2022-01-17 11:42:48 +01:00
Martin Fischer
bb06758a7b
[refactor] add type hints & remove Setting._post_init
...
Previously the Setting classes used a horrible _post_init
hack that prevented proper type checking.
2022-01-06 14:21:14 +01:00
Markus Heiser
3d96a9839a
[format.python] initial formatting of the python code
...
This patch was generated by black [1]::
make format.python
[1] https://github.com/psf/black
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-12-27 09:26:22 +01:00
Markus Heiser
fcdc2c2cd2
[format.python] disable py code formatting for some hunks of code
...
Disable the python code formatting from python-black, where the readability of
code suffers by formatting.
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-12-27 09:16:03 +01:00
Markus Heiser
5731b6b700
[mod] searx.plugins.prepare_package_resources() - use generators
...
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-10-07 18:41:56 +02:00
Markus Heiser
aa5a5147b2
[fix] searx.plugins.initialize() - don't miss module & module-name
...
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-10-07 18:41:41 +02:00
Alexandre Flament
2b4fef7118
plugins: refactor initialization
...
add a new function "init" call when the app starts.
The function can:
* return False to disable the plugin.
* modify the Flask app.
2021-10-06 19:18:19 +02:00
Alexandre Flament
0f43b39eac
[enh] add hostname_replace plugin
...
* backport of https://github.com/searx/searx/pull/2724
* allow to remove result if the replacement is the boolean value false
2021-09-11 13:23:06 +02:00
Alexandre Flament
3f3b5d6181
[mod] plugins: minor change
...
required attributes: display a different message
when the attribute has the wrong type
2021-08-14 18:03:31 +02:00
Alexandre Flament
881659ca9d
[mod] oscar theme: /preferences : HTML detail order match visual tabs
...
First details about the general tab, then detail about UI tab, etc...
No functionnal change
2021-06-17 15:29:07 +02:00
Alexandre Flament
f83b64270c
[mod] oscar theme /preferences: reorganize the preferences
...
close #115
2021-06-17 15:29:07 +02:00
Alexandre Flament
4b07df62e5
[mod] move all default settings into searx.settings_defaults
2021-06-01 08:10:15 +02:00
Markus Heiser
247c46c6b0
[drop] plugin HTTPS rewrite - rule base is to old (update is to big)
...
The usefulness of the _HTTPS rewrite_ plugin is questionable:
- the 36 rule files have not been updated since 2015 [1]
- actual there are 23760 rule files in the https-everywhere repo [2]
For the first, we can remove this plugin. For a complete new implementation, it
might be good to know that there is a project "https-everywhere : Privacy for
Pythons" [3]
related: https://github.com/return42/searx-next/issues/8
[1] https://github.com/return42/searx-next/tree/d187a1d/searx/plugins/https_rules
[2] https://github.com/EFForg/https-everywhere/tree/master/src/chrome/content/rules
[3] https://github.com/jayvdb/https-everywhere-py
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2021-04-22 11:47:16 +02:00
Alexandre Flament
b00d108673
[mod] pylint: numerous minor code fixes
2020-12-01 15:21:19 +01:00
Alexandre Flament
3038052c79
[mod] remove unused import
...
use
from searx.engines.duckduckgo import _fetch_supported_languages, supported_languages_url # NOQA
so it is possible to easily remove all unused import using autoflake:
autoflake --in-place --recursive --remove-all-unused-imports searx tests
2020-11-14 14:11:02 +01:00
Marc Abonce Seguin
32957cdf49
add Ahmia filter plugin for onion results
2020-10-25 17:59:43 -07:00
Venca24
c9593c8ffd
[enh] add plugin converting strings into hash digests
2020-10-23 21:25:10 +02:00
Adam Tauber
a05c660e30
[enh] add ability to set enabled plugins from settings - closes #1613 #778
2020-10-09 14:12:31 +02:00
Dalf
1022228d95
Drop Python 2 (1/n): remove unicode string and url_utils
2020-09-10 10:39:04 +02:00
Noémi Ványi
74013c212a
Revert "[enh] new plugin to open results on new browser tabs"
...
This reverts commit ab6a7601cb
.
Closes #2037
2020-07-29 22:10:16 +02:00
Adam Tauber
93ac4db312
[enh] copy atime_ns and mtime_ns of external plugin resources
2020-07-28 13:57:57 +02:00
Adam Tauber
164e4725f3
[mod] add dedicated directory to external plugins with gitignore file
2020-07-28 13:10:40 +02:00
Adam Tauber
3f60bb470a
[fix] correct imported modules
2020-07-28 13:10:40 +02:00
Adam Tauber
dff879d07d
[fix] resolve minor review issues
2020-07-28 13:10:40 +02:00
Adam Tauber
e45a269ecb
[mod] create static directory for each external plugin
2020-07-28 13:10:40 +02:00
Adam Tauber
81e9c75534
[fix] pep8
2020-07-28 13:10:40 +02:00
Adam Tauber
7b93d11d84
[fix] add plugin sha sum check to be able to copy updated resources
2020-07-28 13:10:40 +02:00
Adam Tauber
1f2dc6c647
[enh] add external plugin support
2020-07-28 13:10:40 +02:00
jibe-b
575159b194
[enh] oa_doi_rewrite plugin broadens doai_rewrite
2017-11-01 14:22:26 +01:00
Adam Tauber
52e615dede
[enh] py3 compatibility
2017-05-15 12:02:30 +02:00
Alexandre Flament
84a2c97a65
[mod] searx uses flask framework only in webapp.py. Make migration to another framework easier.
2017-01-02 12:06:04 +01:00
David A Roberts
678b9e994a
[enh] infinite scroll
...
resolves #649
2016-08-11 19:16:42 +10:00
David A Roberts
117d36b66e
Add Crossref search engine and DOAI rewrite plugin
2016-08-10 11:15:30 +10:00
Adam Tauber
257e52954a
[enh][fix] update to latest dependencies ++ fix tests & travis test runner
...
WARNING: dependency changes
2016-07-04 22:46:43 +02:00
Kirill Isakov
3246541bdc
[WIP] Add vim-hotkeys plugin
2016-04-23 22:26:02 +06:00
Adam Tauber
ab6a7601cb
[enh] new plugin to open results on new browser tabs
2016-02-10 18:04:04 +01:00
Adam Tauber
6424a7702d
Merge branch 'remove_trackers_plugin' of https://github.com/Cqoicebordel/searx into Cqoicebordel-remove_trackers_plugin
...
Conflicts:
searx/plugins/__init__.py
2015-06-21 16:56:00 +02:00
Luc Didry
0fe362bacf
Change self plugin to self_info + change self_info description
2015-06-15 13:36:38 +02:00
Luc Didry
41fd748cdf
Merge self_ip and self_useragent into one plugin
2015-06-15 10:22:37 +02:00
Luc Didry
538029dc14
Add a self user agent plugin
...
Just like with the "ip" query, duckduckgo gives the server's
information with the "user agent" query.
This corrects this behavior by adding a plugin based on self_ip.py plugin.
2015-06-14 21:08:38 +02:00
Cqoicebordel
617495cca8
Add a plugin to remove trackers from results URLs
2015-06-09 16:16:07 +02:00
Adam Tauber
d2a636f75d
[mod] https rewrite pluginification
2015-04-13 00:30:12 +02:00
Adam Tauber
146928a749
[doc] plugin license infos
2015-04-13 00:08:04 +02:00
Adam Tauber
973c97c85b
[enh] new plugin: search on category select (currently only in oscar theme)
...
TODO
purge mootools from default/courgette and integrate jquery ++ this theme
2015-04-12 19:27:48 +02:00
Adam Tauber
dd84814b68
[enh] plugins: client side dependency support
2015-04-12 19:24:01 +02:00