Comments (8)
Ah. I noticed this issue but I didn't realize I had introduced it -- I assumed the enabled
field had always been required (as I, perhaps incorrectly, put in the docs in #741).
from urlwatch.
You're right, it's due to adding the __kind__
attribute. It's because util.TrackSubClasses
uses that attribute to exclude the base classes from the __subclasses__
attribute.
from urlwatch.
Perhaps __base_kind__
was the solution after all since the secondary purpose of __kind__
is to signal __subclasses__
membership. What a footgun!
from urlwatch.
Maybe util.TrackSubClasses
should be changed to not look at __kind__
but use __mro__
or something?
from urlwatch.
That was my first thought, but looking at the way it is implemented in filters.py
it seems likely that mro would be insufficient because not all classes inheriting from FilterBase
have a __kind__
and several methods seem to iterate over __subclasses__
such that their behavior would change if all the classes which don't have __kind__
were included.
from urlwatch.
That was my first thought, but looking at the way it is implemented in
filters.py
it seems likely that mro would be insufficient because not all classes inheriting fromFilterBase
have a__kind__
and several methods seem to iterate over__subclasses__
such that their behavior would change if all the classes which don't have__kind__
were included.
I mean, adding __kind__
to all the subclasses should be relatively easy to do if this provides a rather practical fix?
from urlwatch.
If that worked it would be great, but it appears to me that __kind__
is serving a dual purpose and that one of it's purposes is to distinguish between __kind__
and non-__kind__
classes. Hopefully I'm wrong.
from urlwatch.
Ok, visually scanning the code quickly, maybe the only example is FilterBase.auto_process
. In that function, if we were to use the mro approach, filters
would include classes that don't currently have a __kind__
attribute. If that's not acceptable we could filter our the filters
that don't have the __kind__
attribute. There might be other such cases that require care.
from urlwatch.
Related Issues (20)
- Socks proxy HOT 3
- urlwatch in github actions? HOT 2
- Best practice for a bunch of keywords for several urls HOT 1
- `--test-reporter` option is ignoring separated flag
- different line height / vertical spacing / between urlwatch 2.22 and 2.28 HOT 11
- [pyppeteer] No module named 'pyppeteer' using Docker python3.10 bookworm HOT 1
- Reporting blanks HOT 28
- add support to specify multiple recipients per URL HOT 7
- YAML Anchors/Aliases not working HOT 4
- CSS Filter "AttributeError: 'CSSSelector' object has no attribute 'evaluate'" HOT 2
- FEATURE: Support multiple reporters with different options HOT 6
- Meaning of max_tries is confusing
- urlwatch stopped working HOT 4
- sendmail is not documented HOT 2
- Randomly "not enough values to unpack" Python errors HOT 4
- Cache inconsistency creating new items from nowhere HOT 3
- Feature request: Extension of regex filtering to extract data HOT 7
- Consider releasing version 2.29 HOT 5
- Question - Report http errors only once HOT 5
- urlwatch 2.25-1 on Debian Stable 12.5 (navigate fails) HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from urlwatch.