Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

relativedelta does not implement __lt__ #350

Closed
binnisb opened this issue Mar 1, 2017 · 7 comments · Fixed by #472
Closed

relativedelta does not implement __lt__ #350

binnisb opened this issue Mar 1, 2017 · 7 comments · Fixed by #472
Milestone

Comments

@binnisb
Copy link

binnisb commented Mar 1, 2017

relativedelta(months=+2) < relativedelta(months=+6)
should return be True but gets evaluated to False.

I see that relative delta does not implement lt. Is there any reason for that?

@pganssle pganssle added this to the 2.7.0 milestone Mar 1, 2017
@pganssle
Copy link
Member

pganssle commented Mar 1, 2017

I'm not sure I agree that comparison should be implemented such that it returns True or False in that way, since I don't think it really makes sense to compare to relativedelta objects like that. Consider, what should be the answers to the following comparisons?

relativedelta(months=1) < relativedelta(days=30)
relativedelta(months=5) < relativedelta(day=9, hour=2)
relativedelta(weekday=MO) < relativedelta(weekday=FR)

Basically, because relativedelta doesn't really map to any fixed time period, it doesn't make much sense to directly compare them.

@binnisb What version of dateutil and python are you using, specifically? I would expect relativedelta to raise a TypeError, not return False, and that's what I get with Python 3.6.0, dateutil 2.6.0:

>>> from dateutil import __version__
>>> __version__
'2.6.0'
>>> from dateutil.relativedelta import relativedelta
>>> relativedelta(months=3) < relativedelta(months=4)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-cf9dd5f49f4d> in <module>()
----> 1 relativedelta(months=3) < relativedelta(months=4)

TypeError: '<' not supported between instances of 'relativedelta' and 'relativedelta'

@binnisb
Copy link
Author

binnisb commented Mar 2, 2017

My version of dateutil is a bit older:

In[35]: from dateutil import __version__
In[36]: __version__
Out[37]: '2.4.1'

Using Python Anaconda version 2.7.13

@pganssle I still feel you should be able to compare them. First, you can compare datetime.timedelta, second you can do:

  ref_date = datetime.date(2001,1,1)
  if ref_date + relativedelta(dt1=dates[-2], dt2=dates[-1]) < ref_date + self.period:
    print "yay"
  else:
    print "nay"

where self.period is a relativedelta you have a comparison, and mathematically you should be able to cancel out the ref_date to compare. Therefore there must be an ordering to the relativedeltas? Or am I misunderstanding something? Maybe I am missing the point since I only use the relative deltas as a better datetime.timedelta :)

However, since newer versions of dateutil throw a type error when comparing two relativedelta values, that solves the problem of returning False when it should obviously return True, so I don't really see this as an issue anymore.

@binnisb
Copy link
Author

binnisb commented Mar 2, 2017

Update to my previous comment. I uninstalled the conda version of dateutil and installed through pip. Now it seems to have my expected behaviour, at least in the simple sense:

In[8]: from dateutil import __version__
In[9]: __version__
Out[9]: '2.6.0'
In[10]: from dateutil.relativedelta import relativedelta
In[11]: relativedelta(months=3) < relativedelta(months=4)
Out[11]: True
In[12]: relativedelta(months=+6) < relativedelta(months=+5)
Out[12]: False

@pganssle I am not getting the type error you got above.

@pferreir
Copy link

pferreir commented Mar 6, 2017

Can we at least have a way to know a delta is positive? I haven't found a good one yet. Implementing __abs__ would probably be enough.

(I can work on a PR if you think it's a good idea)

@pganssle
Copy link
Member

pganssle commented Mar 6, 2017

@pferreir As I said above, relativedelta is not inherently positive or negative or larger or smaller than another relativedelta. Consider:

from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta

TD_ZERO = timedelta(0)

def diff_is_negative(dt, delta):
    return (dt + delta) - dt < TD_ZERO

rd = relativedelta(month=3)
print(diff_is_negative(datetime(2016, 4, 1), rd))    # True
print(diff_is_negative(datetime(2016, 2, 1), rd))    # False

I don't think there will be any intuitive semantics for comparing relativedelta objects in general that allows them to be meaningfully categorized as bigger or smaller than one another. There are some subsets of relativedelta for which comparison is meaningful (e.g. relativedelta(months=1) is unambiguously smaller than relativedelta(months=2)), but there are a lot of edge cases (e.g. relativedelta(months=1) vs. relativedelta(days=30)) where the difference in magnitude depends on the context.

Presumably if you're looking for a way to compare relativedelta objects, you have some specific semantics in mind. Likely those semantics won't generalize and so shouldn't be implemented in dateutil, but there's nothing stopping you from subclassing relativedelta to implement your own comparison semantics, e.g.:

from dateutil.relativedelta import relativedelta

class RelativeDeltaMonthComparisons(relativedelta):
    """ A comparable version of `relativedelta` that compares less
        than based on month offset """
    def __lt__(self, other):
        return self.months < other.months

@pferreir
Copy link

pferreir commented Mar 7, 2017

@pganssle, I get that, it makes perfect sense. However, would it really hurt implementing __abs__? Only the actual "delta" part would change sign. You're already defining __neg__, which does something very similar.

@pganssle
Copy link
Member

I'd have to think about it in terms of implementing __abs__. Given that we implement __neg__ already, that does seem like it would have clear enough semantics. The main thing I'm not certain is obvious would be what would happen with something like relativedelta(weekday=MO(-1)). I'm guessing it's unaffected by __neg__ and should also be unaffected by __abs__, but that may be surprising.

@pganssle pganssle mentioned this issue Mar 11, 2018
Jackenmen added a commit to Cog-Creators/Red-DiscordBot that referenced this issue Sep 6, 2021
* Added years and months to parse_timedelta

* Added new parse_datetimedelta along with classes for relative dates

* Switched datetime as dt to just datetime for clarity

* Changed to returning relativedelta instead of datetime

* Fixed single char typo

* After some digging, removed min and max from relative delta b/c of dateutil/dateutil#350

* Add dateutil to intersphinx mapping

* Change uppercase D in RelativeDeltaConverter to a lowercase D

* Fix cross-references in docstrings

* Add new class and methods to __all__

* Remove get_relativedelta_converter()

* style

* Fix name of parse_relativedelta test

* more style

* Re-export new class and function in `redbot.core.commands`

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Red-GitHubBot pushed a commit to Red-GitHubBot/Red-DiscordBot that referenced this issue Sep 8, 2021
…ators#5000)

* Added years and months to parse_timedelta

* Added new parse_datetimedelta along with classes for relative dates

* Switched datetime as dt to just datetime for clarity

* Changed to returning relativedelta instead of datetime

* Fixed single char typo

* After some digging, removed min and max from relative delta b/c of dateutil/dateutil#350

* Add dateutil to intersphinx mapping

* Change uppercase D in RelativeDeltaConverter to a lowercase D

* Fix cross-references in docstrings

* Add new class and methods to __all__

* Remove get_relativedelta_converter()

* style

* Fix name of parse_relativedelta test

* more style

* Re-export new class and function in `redbot.core.commands`

(cherry picked from commit ed9bb77)

Co-authored-by: Zoë F <zoe@dataleek.io>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Jackenmen added a commit to Cog-Creators/Red-DiscordBot that referenced this issue Sep 8, 2021
…5300)

* Added years and months to parse_timedelta

* Added new parse_datetimedelta along with classes for relative dates

* Switched datetime as dt to just datetime for clarity

* Changed to returning relativedelta instead of datetime

* Fixed single char typo

* After some digging, removed min and max from relative delta b/c of dateutil/dateutil#350

* Add dateutil to intersphinx mapping

* Change uppercase D in RelativeDeltaConverter to a lowercase D

* Fix cross-references in docstrings

* Add new class and methods to __all__

* Remove get_relativedelta_converter()

* style

* Fix name of parse_relativedelta test

* more style

* Re-export new class and function in `redbot.core.commands`

(cherry picked from commit ed9bb77)

Co-authored-by: Zoë F <zoe@dataleek.io>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Zoë F <zoe@dataleek.io>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
phenom4n4n added a commit to Server-Knight/Red-DiscordBot that referenced this issue Sep 12, 2021
* [CustomCommands/Docs] Fix argument name in `[p]cc show command` docstring (Cog-Creators#5149)

* [CustomCom] Fix argument name in ``[p]cc show`` command docstring

* update docs

* Add missing changelog entries to Red 3.4.12 changelog (Cog-Creators#5148)

* Add missing changelog entries to Red 3.4.12 changelog

* Update contribs list

* .

* Apply suggestions from code review

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>

* Add simple PR template (Cog-Creators#5150)

* Version bump to 3.5.0.dev1 (Cog-Creators#5154)

* Allow `menu()` to listen to both adding and removing reactions (Cog-Creators#4517)

* Raise on an uncompliant message in Context.maybe_send_embed() (Cog-Creators#4465)

* Raise on uncompliant message

* just wait for me to be done flame! (grammar+testing)

* i liked this better

* Refined debuginfo (Cog-Creators#5156)

* Oh my gosh Kowlin is finishing work!?

* fix style

* use f-strings

* moar f-strings actually

* Fix style...

* I did a poor job of find-replacing things

* Improve code readability per previous Kowlin's style

* And reformat it in such a way that get jack through the day

* Okay maybe some whitespace

* Update core_commands.py

* Update core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Improve release correctness and safety by using GH Environments (Cog-Creators#5167)

* Improve release safety by using GH Environments

* Exit early when just returning version

* Add cherry_picker configuration (Cog-Creators#5168)

* [Warnings] Allow for 0 point warnings (Cog-Creators#5178)

* [Downloader] Fix formatting for red version requirement notices (Cog-Creators#5183)

* use rich console print for red colour (Cog-Creators#5184)

* [Audio] UX improvements to `[p]summon` command (Cog-Creators#5186)

* Add a per guild max volume setting (Cog-Creators#5165)

* Oh great... someone touched Audio again.

* How did that get in there?

* Style? Style.

* Update DO link (Cog-Creators#5209)

* fix typo (Cog-Creators#5207)

* Fix base branch used for PyPI release? (Cog-Creators#5212)

* [Audio] Add a wait time before auto disconnect (Cog-Creators#5188)

* Update lavalink.py

* Add comment

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* [Docs] Fix warning block in Mod cog guide (Cog-Creators#5220)

* [Docs] Add Oracle Cloud $300 credits to hosting guide

* [Docs] Fix argument formatting in Admin cog guide

* [Docs] Getting started guide: fix incorrect information / typos (Cog-Creators#5180)

* [Docs] Update alias userdoc to reflect updated help menu layout (Cog-Creators#5048)

* [Logging] Make Rich more copy-/paste-able (Cog-Creators#5181)

* commit work, mostly untested

* v minor refactor

* force new renderer

* Code style changes

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* [Docs] Add intents / public bots guide (Cog-Creators#5221)

* [Docs] Add intents / public bots guide

* [Docs] Intent guide: update on d.py

* [Trivia] Validate custom trivia file upload using schema (Cog-Creators#4659)

* Add custom trivia list schema validation and test

* Address review

* Improve error formatting in trivia list test

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* [Alias] Fix double plural grammar in alias docstring (Cog-Creators#5092)

* [Mutes] Fix NotFound error when trying to delete message (Cog-Creators#5163)

* [Mutes] Fix NotFound error when trying to delete message

* other occurances

* [Mod] Check if guild is unavailable in tempban expirations (Cog-Creators#5173)

* [Mod] Check if guild.me is None else continue in tempban expirations.

* Check for guild.unavailable instead of guild.me being None.

* Initial support for Discord timestamping (Cog-Creators#5155)

* Initial support for Discord timestamping

* Fix timezones

* Fix userinfo for users with member.joined_at equal to None

* Simplify

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* [Downloader] Suppress NotFound errors in `[p]cog update` command (Cog-Creators#5109)

* [Downloader] Suppress NotFound errors when cog update message is deleted

* occurance 2

* [Downloader] Fix various formatting issues in cog update notices (Cog-Creators#5185)

* again :P

* some more

* fix

* [Core] add `ctx.tick()` to `[p]invite` (Cog-Creators#5199)

* Document parameters in remaining chat_formatting functions (Cog-Creators#5215)

* [Docs] Fix changelog entry from being under the wrong section (Cog-Creators#5236)

* [Help] Let owners set menu reaction timeout (Cog-Creators#5205)

* initial help reaction timeout with min 15, max 300

* slight wording change

* docs!

* aaa

* Suggestions from code review, thank Jack!

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* [Admin] Allow selfroleset command to consume multiple roles (Cog-Creators#5238)

* Initial commit

* update docs

* remove usage kwargs

* style

* Type hint with SelfRole and not discord.Role

* fix docstring

* Various improvements, fixes

* i need to wake up

* more improvements

* AAAA

* add back check

* Improve converter error

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Accept mentions in `[p]cleanup user` (Cog-Creators#5169)

* Accept mentions in `[p]cleanup user`

* Updated spacing & formatting on info logging

* Whoops...

Co-authored-by: Kowlin <boxedpp@gmail.com>

* [Streams] Improve config calls in stream alerts (Cog-Creators#4968)

* [Streams] Improve config calls in stream alerts.

* config->guild_data, style changes

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Allow dots in the middle of repo names (Cog-Creators#5214)

* Allow dots in the middle of repo names

* Screw you, Black

* Add test for presence of upper and lower bound on Python version (Cog-Creators#5198)

* Add test for presence of upper and lower bound on Python version

* [part 1/3] Test that this works, DO NOT MERGE

* [part 2/3] Test that this works, DO NOT MERGE

* [part 3/3] Revert unwanted changes, NOW YOU CAN MERGE!

* [Filter] Add filter clear commands (Cog-Creators#4981)

* [Filter] Add filter clear commands

* define messagepredicate

* actually send msg, lol

* deco fixes

* black

* [Docs] Update filter documentation

* fixes

* style

* Add missing whitespace

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* [Mod] Send ban reason on Temp Bans (Cog-Creators#4837)

* [Mod] Send ban reason on Temp Bans

* If none

* Locale friendly

* Fixes for black style

* Use double line break to distinguish between reason header

* Check settings

* Black

* Reduce the number of config calls

* remove additional config call

* fixes

* style

* We're already in `if reason` so this is always True

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Add toggleable notification of deleted messages count in Cleanup (Cog-Creators#5218)

* Addition of cleanup notification.

* black

* subtract invoking message from count

* Update redbot/cogs/cleanup/cleanup.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* be explicity about kwarg

* address review

* style

* Fix type hints

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* [Audio] Update Lavalink.jar build (Cog-Creators#5233)

* [Mod] Add user hierarchy check to [p]rename (Cog-Creators#5211)

* added hierarchy check for rename

added hierarchy check for rename from utils

* format and self check

changed formats and added statement if me != member

* black format

apply black formatting and fix typo

* tox style 

tox i guess

* tox again 

:<

* Update redbot/cogs/mod/names.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Fix styling

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Invalidate cache in filter clear commands

* Add commands for editing aliases (Cog-Creators#5108)

* [Alias] Added alias edit and alias global edit

* Comment and whitespace only changes

* Docstring fix

* Remove more whitespace

* Add `the` before some English purists make a PR for this...

Co-authored-by: npc203 <npc203@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* [Streams] Check non-existent streams more than once (Cog-Creators#5223)

* [Streams] Check non-existent streams more than once

- For YouTube streams, it seems like the RSS feed may sometimes return
  an HTTP 404 for a channel, even though the channel exists.
- If this happens more than a few times, then we should declare the
  stream as non-existent, and purge it from the list of streams we
  check.

* [Streams] Move retry_count reset for YouTubeStream

- Reset after the RSS check, since that is the only place where we raise
  StreamNotFound in that function.

* [Streams] Increase retry to 20

* [Streams] Reduce retry count to 10

* [Trivia] Handle potential Discord errors in session (Cog-Creators#5172)

* [Trivia] Handle potential Discord errors in session.

* Hm why did I put HTTPException in there

* Revert "Hm why did I put HTTPException in there"

This reverts commit dc5cb99.

* Revert "[Trivia] Handle potential Discord errors in session."

This reverts commit d90e45f.

* Handle Discord errors in _error_handler.

* [Cleanup] Handle NotFound error of prompt in check_100_plus (Cog-Creators#5191)

* [Cleanup] Handle HTTPException of prompt in check_100_plus

* Update redbot/cogs/cleanup/cleanup.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Improve and add more usage of discord timestamps (Cog-Creators#5241)

* Improve and add more usage of discord timestamps

* How did that whitespace get there?

* Update Mac OS instructions to work properly on Apple Silicon (Cog-Creators#5234)

* Add `[p]diagnoseissues` command (Cog-Creators#5243)

* Split `Requires._transition_state` into reusable methods for Diagnoser

* (style) Fix line length

* Add missing .format()

* Add handling for user permissions, privilege level, Permissions rules

* Add missing awaits, use correct method in user perms check, add 'the'

* Fix .format() fields

* Add comment

* Add new file to labeler's configuration

* Add the command to the documentation

* All the work from DiagnoserCog

You can find the commit history of it here:
https://github.com/jack1142/DiagnoserCog

* Fix circular import

* Make channel argument optional

* Add a tip about channels from different servers

* Add `RelativedeltaConverter` and `parse_relativedelta` (Cog-Creators#5000)

* Added years and months to parse_timedelta

* Added new parse_datetimedelta along with classes for relative dates

* Switched datetime as dt to just datetime for clarity

* Changed to returning relativedelta instead of datetime

* Fixed single char typo

* After some digging, removed min and max from relative delta b/c of dateutil/dateutil#350

* Add dateutil to intersphinx mapping

* Change uppercase D in RelativeDeltaConverter to a lowercase D

* Fix cross-references in docstrings

* Add new class and methods to __all__

* Remove get_relativedelta_converter()

* style

* Fix name of parse_relativedelta test

* more style

* Re-export new class and function in `redbot.core.commands`

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* [Core] Add more APIs for allowlists and blocklists (Cog-Creators#5206)

* [Core] Blacklist api

* [Core] Use to_add, remove star from other method calls

* various touch ups

* style

* fix doc style

* [Core] Remove iterable import

* [Core] Update commands to use the blacklist/whitelist api

* Change signatures to not use `*args`

* Update all usage of private cache to the new public APIs

* Update the docstrings

* Update the usage in diagnoser

Co-authored-by: Kreusada <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update deps, allow Python 3.9, drop Fedora 32 (Cog-Creators#5121)

* Update deps + allow Python 3.9

* Add in updates from Jack's branch

* Fix multiple target for cross-reference warnings

* Update a few more Python 3.8 occurrences

* Bump further

* Don't install tox in CodeQL environment

* Bump Python version in docs to 3.9.7

* more bumps

* Add missing pin

* Stop using the deprecated distro.linux_distribution()

* Suppress deprecation warning

* Fix OpenSUSE Leap instructions

* Drop Fedora 32

* Add Python 3.10-dev to CI

* meh

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Add Debian 11 to install guide and clarify "Buster" as Debian 10 (Cog-Creators#5217)

* Clarify Debian 10 as "Buster"

* Add Debian 11 Install

* This typo would of bugged my OCD...

* Clarify Debian 10 as "Buster"

* Add Debian 11 Install

* This typo would of bugged my OCD...

* Add apt upgrade line to doc

* Removing dupe for Debian 11
I'm not sure how that happened, but oh well...

* [Docs] Update Cleanup docs with new cleanupset command group (Cog-Creators#5245)

* Add cleanupset commands to cleanup docs

* fix spacing

* shown -> sent

* update command docstring

* Fix trailing whitespace and use same style for docs

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Add CommandConverter and CogConverter + add usage in Core (Cog-Creators#5037)

* add commands, cog converter

* properly use type_checking

* make core commands use command converter

* update commands to use cogconverter

* fix undefined variable name, style

* Update redbot/core/commands/converter.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/commands/converter.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/core_commands.py

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* update cog argument names

* update documentation arg names

* update more docs

* This new Sphinx is annoying about this...

* I'm questioning my skills

* Fix name error in `[p]embedset showsettings` when command is not given

* Do not use the new cog converter in `[p]command enablecog`

This is needed so that a cog that isn't loaded but was disabled
can be enabled back.

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>

* Red 3.4.13 - Changelog (Cog-Creators#5302)

* Add 3.4.13 section

* PR 5156 (issue 4997)

* PR 5178 (issue 5177)

* PR 5185, 5187

* PR 5184

* PR 5186

* PR 5165

* PR 5188

* PR 5225

* PR 5180

* PR 5181 (issue 4868)

* PR 5221 (issue 5216)

* PR 4659 (issue 4571)

* PR 5173

* PR 5155, 5241

* PR 5199

* PR 5205 (issue 4074)

* PR 5238 (issue 5237)

* PR 5169

* PR 5214

* PR 4981 (issue 4841)

* PR 4837 (issue 4836)

* PR 5218 (issue 4732)

* PR 5233

* PR 5211 (issue 5187)

* PR 5108

* PR 5223 (issue 5195)

* PR 5234

* PR 5243 (issue 4717)

* PR 5000 (issue 4140)

* PR 5206 (issue 5171)

* PR 5121 (issue 4655)

* PR 5217 (issue 5213)

* PR 5037

* PR 5109, 5163, 5172, 5191

* PR 4968

* PR 5048, 5092, 5149, 5207, 5209, 5215, 5219, 5220

* Fill 'Read before updating' section

* Add contributor list

* few fixes

* Apply suggestions from code review

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>

Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>

Co-authored-by: Kreusada <67752638+Kreusada@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: Flame442 <34169552+Flame442@users.noreply.github.com>
Co-authored-by: Draper <27962761+Drapersniper@users.noreply.github.com>
Co-authored-by: Dav <dav@mail.stopdavabuse.de>
Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
Co-authored-by: Just-Jojo <62262765+Just-Jojo@users.noreply.github.com>
Co-authored-by: Vexed <gh.vexed@gmail.com>
Co-authored-by: MAX <63972751+maxbooiii@users.noreply.github.com>
Co-authored-by: fredster33 <64927044+fredster33@users.noreply.github.com>
Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com>
Co-authored-by: Vexed <vex@vexcodes.com>
Co-authored-by: Twentysix <Twentysix26@users.noreply.github.com>
Co-authored-by: Grant LeBlanc <37914048+leblancg@users.noreply.github.com>
Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com>
Co-authored-by: GhOsT <79806064+Arman0334@users.noreply.github.com>
Co-authored-by: Kowlin <boxedpp@gmail.com>
Co-authored-by: Jamie <31554168+flaree@users.noreply.github.com>
Co-authored-by: Enul <xchedeiklo@gmail.com>
Co-authored-by: Samuel <50765275+npc203@users.noreply.github.com>
Co-authored-by: npc203 <npc203@users.noreply.github.com>
Co-authored-by: Lui <injabie3@gmail.com>
Co-authored-by: Zoë F <zoe@dataleek.io>
Co-authored-by: palmtree5 <3577255+palmtree5@users.noreply.github.com>
Co-authored-by: Ryan <twinshadow@shadowhime.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants