Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

Sopel

I'm a Python IRC bot, designed to be easy to set up and customize.
Collective - Host: opensource - https://opencollective.com/sopel - Website: https://sopel.chat/ - Code: https://github.com/sopel-irc/sopel

db: use generics instead of `typing` aliases

github.com/sopel-irc/sopel - 3106bfab05160076ddd10da8a2a9c08073ce3789 authored over 1 year ago by dgw <[email protected]>
trigger: use generics instead of `typing` aliases

github.com/sopel-irc/sopel - f8cdeec2c0b3309361109fff312fd38ce81f588b authored over 1 year ago by dgw <[email protected]>
tools.time: use generics instead of `typing` aliases

github.com/sopel-irc/sopel - b23c506909ab2311d514f0541bc335d002457246 authored over 1 year ago by dgw <[email protected]>
tests.factories: use generics instead of `typing` aliases

github.com/sopel-irc/sopel - c4aadd981ddc03d4f1b02cbeeb9c0f9bab776fd0 authored over 1 year ago by dgw <[email protected]>
tools.target: use generics instead of `typing` aliases

github.com/sopel-irc/sopel - b9784e2368fa261eb063d3bd75a09a136666de65 authored over 1 year ago by dgw <[email protected]>
irc: use generics instead of `typing` aliases

github.com/sopel-irc/sopel - 67a6e70b726b929fbc83699c7373fe123914038c authored over 1 year ago by dgw <[email protected]>
irc.capabilities: use generics instead of `typing` aliases

github.com/sopel-irc/sopel - e562df2df17fa8a4d017a4a6e39374c9ff7d9650 authored over 1 year ago by dgw <[email protected]>
config.types: use generics instead of `typing` aliases

github.com/sopel-irc/sopel - d47d2d2d5cc7819a0400a218dcbfd38a480e005b authored over 1 year ago by dgw <[email protected]>
plugins.handlers: use generics instead of `typing` aliases

github.com/sopel-irc/sopel - 85f8b82d3917135e309b6ce4efc601d4c79560a7 authored over 1 year ago by dgw <[email protected]>
irc.isupport: use generics instead of `typing` aliases

github.com/sopel-irc/sopel - 0a5a3210950b9511c53d8f25425171c69538215e authored over 1 year ago by dgw <[email protected]>
tld: fix assigning a dict to an attribute originally defined as a list

New type-hinted parser attribute to store the parsed data instead, and
delete the temporary valu...

github.com/sopel-irc/sopel - 3ffe55c097a53287a9d0d7aa159e2f33ae789a67 authored over 1 year ago by dgw <[email protected]>
plugins.handlers: handle & test case when module `__doc__` is `None`

github.com/sopel-irc/sopel - 3b948e580107eb5cf50e25af08db411db5cd19d0 authored over 1 year ago by James Gerity <[email protected]>
dev-requirements: bump mypy min/max version

We've done a bunch of work on typing, and verified that mypy 1.3 doesn't
report any new errors. ...

github.com/sopel-irc/sopel - 9b26e73547eef94ffac442fe22468962698f2b33 authored over 1 year ago by dgw <[email protected]>
Makefile: have mypy check untyped defs by default

We've fixed (almost) all of these errors. Let's make it easier to avoid
introducing new ones.

github.com/sopel-irc/sopel - f475524ac2bb8adcca719e471c9ddcceae311af5 authored over 1 year ago by dgw <[email protected]>
ip: avoid name re-use

github.com/sopel-irc/sopel - e9fd635b0cb93b78a575243025382f07e026688c authored over 1 year ago by James Gerity <[email protected]>
tld: handle mixed-type values in `params` arg to `requests.get()`

"Handle" as in, move the common params to a type-hinted module variable
and merge a copy of them...

github.com/sopel-irc/sopel - c24dfa209c3d2965939f227992c16168bc9fb69c authored over 1 year ago by dgw <[email protected]>
tld: fix reassigning local `str` variable as `List[str]`

One temporary variable to hold the raw data, and a *second* to hold the
processed values, is the...

github.com/sopel-irc/sopel - 1f435e3472568c65974fca4a3db8ab3b98b90a42 authored over 1 year ago by dgw <[email protected]>
meetbot: type hint for `meeting_actions`

With this, even `mypy --check-untyped-defs` is happy in this file. It
might not be perfect, but ...

github.com/sopel-irc/sopel - 99ad38f3eff5239ed2d3fad0bcb2cb108ffc3d73 authored over 1 year ago by dgw <[email protected]>
remind: annotate reminder dictionary

github.com/sopel-irc/sopel - d21af82078606988b5baddb3c3cd1fc33cb8ffd3 authored over 1 year ago by James Gerity <[email protected]>
plugins.rules: replace map with generator comprehension

github.com/sopel-irc/sopel - 098d8c309058dc794dd04d0d464598482ca94505 authored over 1 year ago by James Gerity <[email protected]>
plugins.jobs: resolve type conflict with base class

github.com/sopel-irc/sopel - 58783fb3965ddbc6c80266a68dd929ea9c6c29c3 authored over 1 year ago by James Gerity <[email protected]>
plugins.handlers: handle case when __doc__ is defined as None

github.com/sopel-irc/sopel - 64c3c82320d5ec6e00cfba5336b5fde11cfa165f authored over 1 year ago by James Gerity <[email protected]>
units: use float values to appease the type-checker

github.com/sopel-irc/sopel - 229ad796a827a8f5694c43c7b88d969c93a944e5 authored over 1 year ago by James Gerity <[email protected]>
wiktionary: add annotation for definitions

github.com/sopel-irc/sopel - a1980d3a4f93473db1f0164c762a88dbfaf65a38 authored over 1 year ago by James Gerity <[email protected]>
ip: handle possible None value for AS organization

github.com/sopel-irc/sopel - 84cc7241bacda27ec47908a80fc3d0ba08cf15af authored over 1 year ago by James Gerity <[email protected]>
translate: add annotations, sub empty tuple for False as sentinel value

github.com/sopel-irc/sopel - 9e04e162d8c362e7f34fcd98ad72ba4dbf97b367 authored over 1 year ago by James Gerity <[email protected]>
remind: initialize duration with float value

github.com/sopel-irc/sopel - dd4b51bffbe2ec93b7645b592b3db1ca63b4d2fc authored over 1 year ago by James Gerity <[email protected]>
dice: narrow type of regex match

Co-authored-by: dgw <[email protected]>

github.com/sopel-irc/sopel - fe5b60428e57166b713bbfcbf52eedd7d3927e69 authored over 1 year ago by James Gerity <[email protected]>
units: add type-narrowing helper for pattern matching

Co-authored-by: dgw <[email protected]>

github.com/sopel-irc/sopel - b3a7e0193e820c9d4f8accfb6b4a83a5347d84b4 authored over 1 year ago by James Gerity <[email protected]>
plugins: handle case where importlib returns None

github.com/sopel-irc/sopel - 84b4b0da9ba0f3e31a8f759c8edf6cc28d506a39 authored over 1 year ago by James Gerity <[email protected]>
plugins.handlers: handle cases where importlib may return None

github.com/sopel-irc/sopel - b0693b7b0da1047aa0f509a30f9d15ef6b71065d authored over 1 year ago by James Gerity <[email protected]>
plugin: type-hint `example` class + fix minor typing issue

mypy needs to know the type of `example.result`, and it wouldn't have
made much sense to add onl...

github.com/sopel-irc/sopel - a622d7c4ec437f6f40a1d34fa882fea93d777db6 authored over 1 year ago by dgw <[email protected]>
loader: mypy needs one (1) real type hint to do its job

Hinting the whole file can wait, but I really want to at least make
`mypy --check-untyped-defs s...

github.com/sopel-irc/sopel - 7617fc0887288581f8b67c790891774d9f8f31da authored over 1 year ago by dgw <[email protected]>
tools.web: type fixes + add tests for `iri_to_uri()`

Since `iri_to_uri()` uses `urlencode_non_ascii()`, which I modified in a
somewhat non-intuitive ...

github.com/sopel-irc/sopel - e7cd9084762be3d70e0b69fe486ca8ed0250951c authored over 1 year ago by dgw <[email protected]>
config.types: minor type hinting tweaks

Once again, needed to add one (1) type hint for mypy to be happy.

"Cannot assign to a method" i...

github.com/sopel-irc/sopel - 951d474322b2546c8ba15e25c143697779f792d5 authored over 1 year ago by dgw <[email protected]>
bot: no need to `.get()` when we've already checked `in`

Using `self.users.get(self.nick)` tricks mypy into thinking the user
object is Optional, leading...

github.com/sopel-irc/sopel - 8ffa8a8891e5c71e5a9d84f889b6d1df0dc5d846 authored over 1 year ago by dgw <[email protected]>
cli.run: 'action' option can never be None, so why default to that?

mypy gets upset at subscripting a dict using an Optional[str] key, and
rightly so. The following...

github.com/sopel-irc/sopel - 112a3ddbca1e6c7ca4d51a8cca896d9797f25ef1 authored over 1 year ago by dgw <[email protected]>
cli.plugins: tweaks to fix typing errors

mypy does not like assigning a list to an existing variable that was
already assigned as a gener...

github.com/sopel-irc/sopel - e7bcee1ef7511c725cbd2797cd55f913d2bedd2c authored over 1 year ago by dgw <[email protected]>
sopel: fastidious attention to typing, even in untyped defs

Complaining loudly if Sopel can't parse its own version number is
probably a net win, honestly.
...

github.com/sopel-irc/sopel - ac07cc9151507b092d0fc9de6d5db7aed51a80d4 authored over 1 year ago by dgw <[email protected]>
tools.calculation: simplify `guarded_*()` methods & fix typing error

`int` has `bit_length()` as a method, which is not part of the interface
defined by `numbers.Int...

github.com/sopel-irc/sopel - ea8626e46ed7eda30dabaaa52479537e94f0e3da authored over 1 year ago by dgw <[email protected]>
plugins.rules: fix outdated type annotations

Perhaps the result of two different branches being merged to master in
the "wrong" order? That's...

github.com/sopel-irc/sopel - 504e6620e01614f8c927b526b6e99edb284699ae authored over 1 year ago by dgw <[email protected]>
Merge pull request #2473 from sopel-irc/trigger-error-no-dup-timestamp

bot: don't add duplicate timestamp into error log line

github.com/sopel-irc/sopel - 7bcb942288b64c18950cfa670d4b6518fdc46c80 authored over 1 year ago by dgw <[email protected]>
remind: remove plugin reimplemented as external package w/better tests

Development moved to https://github.com/sopel-irc/sopel-remind

github.com/sopel-irc/sopel - b392f440e0c0aa9fb85c839086d79abbb524d772 authored over 1 year ago by dgw <[email protected]>
Merge pull request #2472 from SnoopJ/bugfix/url-handle-empty-hostname

safety, url: skip handling invalid links with empty hostnames

github.com/sopel-irc/sopel - 5ec9482a9b337f8b3dbad51a3a6a892e05d9fcda authored over 1 year ago by dgw <[email protected]>
meetbot: remove in favor of external package

This change leaves the references to `meetbot` in documentation for how
to use the plugin-relate...

github.com/sopel-irc/sopel - fcfc716b92d8c874e739931ee56e76c53dc4d854 authored over 1 year ago by dgw <[email protected]>
bot: don't add duplicate timestamp into error log line

If a Trigger causes an error in a plugin, we already know when the error
happened because the lo...

github.com/sopel-irc/sopel - ff643500c29509725706fdef1b21cb4e020bc9cb authored over 1 year ago by dgw <[email protected]>
Merge pull request #2470 from sopel-irc/remind-timezone-str

remind: fix import streamlining gone haywire

github.com/sopel-irc/sopel - bc5843bd26bfc17d3082bd704f09b4aa58ce1a50 authored over 1 year ago by dgw <[email protected]>
safety: skip over URL candidates with empty hostnames

github.com/sopel-irc/sopel - fda8fc493a33df42d175ecf5658df61582c225cd authored over 1 year ago by James Gerity <[email protected]>
url: skip over URL candidates with empty hostnames

github.com/sopel-irc/sopel - 8d00c93f4e6f344e3232a2c881d055ca463dc716 authored over 1 year ago by James Gerity <[email protected]>
remind: fix import streamlining gone haywire

"Unexpected AttributeError: 'str' object has no attribute 'utc'" begone.

github.com/sopel-irc/sopel - 65a82c602696353e0593f3087a4e5a1a5f162e28 authored over 1 year ago by dgw <[email protected]>
Merge pull request #2462 from sopel-irc/mypy-error-cleanup

mypy: fix currently known type-checking errors

github.com/sopel-irc/sopel - 488071b56c2d040ac118211abe260041ff14edfa authored over 1 year ago by dgw <[email protected]>
plugins.rules: optimize `last_time` implementation

Together, we found the balance between brevity + clarity, and also
eliminated a local variable a...

github.com/sopel-irc/sopel - 1cec5312ee5e2dfefc1f835fa85662d1e5cd32d1 authored over 1 year ago by dgw <[email protected]>
Merge pull request #2468 from sopel-irc/rm-datetime.utcX

Replace uses of deprecated `datetime.utcnow()`

github.com/sopel-irc/sopel - a73a44fe81ba31e9da0873402f8eebd54ce4e0a6 authored over 1 year ago by dgw <[email protected]>
docs: remove outdated tutorials link; update rST comment

I think we should eventually (as it says) merge the website and Sphinx
documentation, rather tha...

github.com/sopel-irc/sopel - 053251ac99532480917120a7f5817a4613dd1572 authored over 1 year ago by dgw <[email protected]>
irc.backends: asyncio exports exceptions at module top level, so use 'em

The documentation goes straight to listing the exception classes as
direct members of `asyncio`,...

github.com/sopel-irc/sopel - 49c7bc839763f8992bbbe25ff954dd352e31399b authored over 1 year ago by dgw <[email protected]>
Merge pull request #2458 from sopel-irc/test-sasl-edges

test: cover obvious SASL PLAIN edge cases

github.com/sopel-irc/sopel - 9a5e84d9578710cda07e815a417102a92fcf3412 authored over 1 year ago by dgw <[email protected]>
Merge pull request #2453 from half-duplex/translate-help

translate: Make help more helpful about language :hints

github.com/sopel-irc/sopel - 4ea258fa4fe9efa7f86332e6a61602c1e1a6ac0e authored over 1 year ago by dgw <[email protected]>
irc: replace use of deprecated `datetime.utcnow()`

github.com/sopel-irc/sopel - 4522c5b32ebc27f9f43483f61b02f2b11eb4910e authored over 1 year ago by dgw <[email protected]>
coretasks: replace use of deprecated `datetime.utcnow()`

github.com/sopel-irc/sopel - 58151088db06574d4d53aec31e3d60918161bf2c authored over 1 year ago by dgw <[email protected]>
uptime: replace use of deprecated `datetime.utcnow()`

github.com/sopel-irc/sopel - ced222c93b76e776c9bf4d8639b2873aa71d4bc0 authored over 1 year ago by dgw <[email protected]>
tools.time: replace use of deprecated `datetime.utcnow()`

github.com/sopel-irc/sopel - ff468d6118575eec254762adb8d6b319a782842d authored over 1 year ago by dgw <[email protected]>
remind: replace use of deprecated `datetime.utcfromtimestamp()`

github.com/sopel-irc/sopel - 571444b31c50e723761df080013e5f0dcfddd719 authored over 1 year ago by dgw <[email protected]>
trigger: replace use of deprecated `datetime.utcnow()`

github.com/sopel-irc/sopel - 28e972dcf341f1346740daca4d541be36edad773 authored over 1 year ago by dgw <[email protected]>
docs: remove deprecated `datetime.utcnow()` in `tools.time` sample code

github.com/sopel-irc/sopel - e84ac51efecea80cdf5096604c0a9c521235baf9 authored over 1 year ago by dgw <[email protected]>
bot: replace use of deprecated `datetime.utcnow()`

github.com/sopel-irc/sopel - 89a0d710b0cc8d2883fa09e41b90225c022eb0bf authored over 1 year ago by dgw <[email protected]>
plugins.rules: replace use of deprecated `datetime.utcnow()`

github.com/sopel-irc/sopel - 6ea03e5204ad7baed89e283ef8d0d8cf5536a988 authored over 1 year ago by dgw <[email protected]>
Merge pull request #2446 from Exirel/test-coverage-tool-time

tools.time: tweaks & tests

github.com/sopel-irc/sopel - ed726e68c1c09b74133fac3df9d1f3a288e651f8 authored over 1 year ago by dgw <[email protected]>
test: verify CAP END + QUIT after ERR_SASLABORTED

github.com/sopel-irc/sopel - 967d034f8c4560265c3d87bd2d5da14d620f0c2a authored over 1 year ago by dgw <[email protected]>
url: yield correct type in `process_urls()`

github.com/sopel-irc/sopel - f8ac3264ca9179d92d6410fd9e75794d908f1acb authored over 1 year ago by dgw <[email protected]>
plugins.rules: add missing interface methods/props to `AbstractRule`

Resolving type-checking in `bot` led to new errors, because `Rule` had
some methods & properties...

github.com/sopel-irc/sopel - 9ab27f694bb530296bba96a022f05fcc25001841 authored over 1 year ago by dgw <[email protected]>
bot: address type-checking errors

github.com/sopel-irc/sopel - f642873747cf81411daeab26db849b783ab6bc9e authored over 1 year ago by dgw <[email protected]>
plugins.rules: fix mypy check errors with optional datetimes and `<`/`>`

github.com/sopel-irc/sopel - caf1c073fe05564cb9ae03e570948b35baa661ed authored over 1 year ago by dgw <[email protected]>
Merge pull request #2434 from SnoopJ/feature/gh2325-rework-rate-limit

Add more placeholders to rate-limit messages, move template interpolation from `Rule` to `Sopel`

github.com/sopel-irc/sopel - 1538ec8e04c209ff0c20e20c55b23dd3804c7590 authored over 1 year ago by dgw <[email protected]>
Merge pull request #2444 from sopel-irc/extract-reddit

reddit: extract to external package

github.com/sopel-irc/sopel - d84ffb277a13f459f9a600f8a625612b6f809ac2 authored over 1 year ago by dgw <[email protected]>
test: cover 400-bytes and over-400-bytes SASL AUTHENTICATE behavior

Plus bonus typo fix in test_coretasks_cap.py suite (docstring)

github.com/sopel-irc/sopel - dec946632054ead1359f341a4a1b3c598c47f719 authored over 1 year ago by dgw <[email protected]>
test: verify coretasks behavior on unexpected AUTHENTICATE PLAIN reply

SASL PLAIN expects:

C: AUTHENTICATE PLAIN
S: AUTHENTICATE +
C: AUTHENTICATE base64-encode...

github.com/sopel-irc/sopel - 6981980281bbe637c5c339204a7ffc83dd43a5eb authored over 1 year ago by dgw <[email protected]>
rules: use timezone-aware datetime objects in RuleMetrics

github.com/sopel-irc/sopel - 9c90af52b4ed5c8a2d62d265a508e9475206a0aa authored over 1 year ago by James Gerity <[email protected]>
bot, rules, test: use metrics objects to check rate limit

github.com/sopel-irc/sopel - fddd611146544f2151102786bcdf32d7439dd485 authored over 1 year ago by James Gerity <[email protected]>
bot, rules: expose rate limit information as properties

github.com/sopel-irc/sopel - fde59422f38ba28916aba8e69d8ff1ea8e076133 authored over 1 year ago by James Gerity <[email protected]>
bot: default message to None, simplify condition

Co-authored-by: Florian Strzelecki <[email protected]>

github.com/sopel-irc/sopel - cc037e25663aa1a79c8db4e8e07ab127572c0c49 authored over 1 year ago by James Gerity <[email protected]>
test: use pytz in test_rulemetrics()

Co-authored-by: Florian Strzelecki <[email protected]>

github.com/sopel-irc/sopel - 9873465df182c34801e1f3a3f2be90760508d9c6 authored over 1 year ago by James Gerity <[email protected]>
rules: define last_time property on RuleMetrics

Co-authored-by: Florian Strzelecki <[email protected]>

github.com/sopel-irc/sopel - 2341e01de4364a8c739e36569494c3080b1b5f04 authored over 1 year ago by James Gerity <[email protected]>
bot: add time_left, time_left_sec template fields

github.com/sopel-irc/sopel - 45505521dd96da4b8b132a39ce1cb2e212574f59 authored over 1 year ago by James Gerity <[email protected]>
rules: replace datetime.replace() usage with pytz.localize()

github.com/sopel-irc/sopel - 7c54f28fee1e8b7c9d0c4baaf714642c2eac7d76 authored over 1 year ago by James Gerity <[email protected]>
test: add tests for rate-limit template fields

github.com/sopel-irc/sopel - f83d9a09426de9b8b666ed1679a7923226845669 authored over 1 year ago by James Gerity <[email protected]>
doc: list available rate-limit placeholders

Co-authored-by: Florian Strzelecki <[email protected]>

github.com/sopel-irc/sopel - 79eebb75b9c2e79603dcdc308d89ed0d5fc2986a authored over 1 year ago by James Gerity <[email protected]>
bot, rules, test: replace message getters with message template properties

Co-authored-by: dgw <[email protected]>
Co-authored-by: Florian Strzelecki <florian.strzelecki@...

github.com/sopel-irc/sopel - c7590892305672e8bef83b37baa7e97c7ea261da authored over 1 year ago by James Gerity <[email protected]>
bot, rules: add at_time parameter in rate-limit check methods

Co-authored-by: Florian Strzelecki <[email protected]>
Co-authored-by: dgw <dgw@techn...

github.com/sopel-irc/sopel - c280fc4da797663d323e7ed0dcf594d472af7011 authored over 1 year ago by James Gerity <[email protected]>
Merge pull request #2452 from Exirel/test-tools-target

test: fully cover sopel.tools.target

github.com/sopel-irc/sopel - 7179686b7a532374e9a96aa6f139f8302c4eb88d authored over 1 year ago by dgw <[email protected]>
target: add minor type annotations

github.com/sopel-irc/sopel - 855f82759c6ec50dceda611a130a2f2b68f36281 authored over 1 year ago by Florian Strzelecki <[email protected]>
test: add tests for target.User and target.Channel

Co-authored-by: James Gerity <[email protected]>

github.com/sopel-irc/sopel - 83755ca1429d8227f19b95dfc9c7697dcb527fc1 authored over 1 year ago by Florian Strzelecki <[email protected]>
test: split get_timezone tests

Co-authored-by: James Gerity <[email protected]>

github.com/sopel-irc/sopel - 7b9445faa89abc603cad14b239c10b1b9de563d3 authored over 1 year ago by Florian Strzelecki <[email protected]>
time: replace a tuple by Duration, a named tuple

github.com/sopel-irc/sopel - 6ed936584227ca82005ea6f6d2e0d0b2ab67b9b1 authored over 1 year ago by Florian Strzelecki <[email protected]>
time: validate_timezone(None) raises ValueError

Co-authored-by: dgw <[email protected]>

github.com/sopel-irc/sopel - 499483b1e4adfd0499bddb961620641d3ad45134 authored over 1 year ago by Florian Strzelecki <[email protected]>
time: add type annotations (with type checking fixes)

github.com/sopel-irc/sopel - 7258beec4ed758bfc79b4f8ad1eb03db3d2602f5 authored over 1 year ago by Florian Strzelecki <[email protected]>
test: fully cover sopel.tools.time

github.com/sopel-irc/sopel - a10a75c09d8d317b42561eea824226e094a20695 authored over 1 year ago by Florian Strzelecki <[email protected]>
Merge pull request #2450 from sopel-irc/bot.say-fix-safe-length

irc: fix `bot.say()` handling of `truncation` & `trailing` args

github.com/sopel-irc/sopel - 30a5aae41fad675a835b3a6300f97297f4c6b173 authored over 1 year ago by dgw <[email protected]>
Merge pull request #2448 from sopel-irc/bot-mode-flag

core: better bot-mode handling

github.com/sopel-irc/sopel - 74b8d4db34e377dba34612837abc5b8d43b86971 authored over 1 year ago by dgw <[email protected]>
translate: hint hint in help

Co-authored-by: dgw <[email protected]>

github.com/sopel-irc/sopel - 831bdc2bfaf3a3605898228110abce73934bccc7 authored over 1 year ago by Trevor Bergeron <[email protected]>
coretasks: type-hint `_record_who()`

No related errors are reported by mypy, so it should be good to go.

github.com/sopel-irc/sopel - 7feeaf5192becc2c5deedea499a115ae07c0837b authored over 1 year ago by dgw <[email protected]>