summary refs log tree commit diff
path: root/synapse/events (follow)
Commit message (Expand)AuthorAgeFilesLines
* fix: Push notifications for invite over federation (#13719)Kateřina Churanová2022-09-281-0/+4
* Don't include redundant prev_state in new events (#13791)Denis2022-09-201-1/+0
* Rename the `EventFormatVersions` enum values so that they line up with room v...reivilibre2022-09-073-9/+9
* Instrument `_check_sigs_and_hash_and_fetch` to trace time spent in child conc...Eric Eastwood2022-08-231-0/+2
* MSC2716v4 room version - remove namespace from MSC2716 event content fields (...Eric Eastwood2022-08-191-1/+1
* Update type of `EventContext.rejected` (#13460)Richard van der Hoff2022-08-041-4/+3
* Don't pull out the full state when creating an event (#13281)Erik Johnston2022-07-181-1/+7
* Use state before join to determine if we `_should_perform_remote_join` (#13270)David Robertson2022-07-151-1/+1
* Uniformize spam-checker API, part 5: expand other spam-checker callbacks to r...David Teller2022-07-111-35/+128
* Make `_get_state_map_for_room` not break when room state events don't contain...David Teller2022-07-071-8/+1
* Uniformize spam-checker API, part 4: port other spam-checker callbacks to ret...David Teller2022-06-131-80/+197
* Remove `room_version` param from `validate_event_for_room_version`Richard van der Hoff2022-06-121-0/+4
* Wait for lazy join to complete when getting current state (#12872)Erik Johnston2022-06-011-1/+2
* Merge branch 'master' into developErik Johnston2022-05-311-20/+27
|\
| * Fix import in module_api module and docs on the new check_event_for_spam sign...Brendan Abolivier2022-05-311-22/+27
* | Rename storage classes (#12913)Erik Johnston2022-05-311-5/+5
* | Uniformize spam-checker API, part 3: Expand check_event_for_spam with the abi...David Teller2022-05-301-7/+13
* | Bump jsonschema stubs (#12912)David Robertson2022-05-301-2/+7
|/
* Uniformize spam-checker API, part 2: check_event_for_spam (#12808)David Teller2022-05-231-10/+39
* add SpamChecker callback for silently dropping inbound federated events (#12744)Jess Porter2022-05-231-0/+40
* Update EventContext `get_current_event_ids` and `get_prev_event_ids` to accep...Shay2022-05-201-4/+15
* Consolidate logic for parsing relations. (#12693)Patrick Cloke2022-05-161-0/+45
* SpamChecker metrics (#12513)Jess Porter2022-05-131-23/+58
* Refactor `EventContext` (#12689)Erik Johnston2022-05-101-145/+32
* Add some type hints to datastore. (#12477)Dirk Klimpel2022-05-101-1/+2
* Implement cancellation support/protection for module callbacks (#12568)Sean Quah2022-05-093-20/+64
* Use `ParamSpec` in a few places (#12667)David Robertson2022-05-091-3/+12
* Convert stringy power levels to integers on room upgrade (#12657)David Robertson2022-05-071-16/+45
* Update mypy to 0.950 and fix complaints (#12650)David Robertson2022-05-061-1/+3
* Include bundled aggregations for the latest event in a thread. (#12273)Patrick Cloke2022-05-041-22/+33
* fix importsRichard van der Hoff2022-05-031-1/+2
* minor wording fix in docstringRichard van der Hoff2022-05-031-3/+2
* Exclude OOB memberships from the federation sender (#12570)Richard van der Hoff2022-05-031-4/+11
* Consistently use collections.abc.Mapping to check frozendict. (#12564)Patrick Cloke2022-04-271-3/+4
* Misc. clean-ups to the relations code (#12519)Patrick Cloke2022-04-251-1/+1
* Fix `/room/.../event/...` to return the *original* event after any edits (#12...Richard van der Hoff2022-04-191-8/+13
* Remove references to unstable identifiers from MSC3440. (#12382)Patrick Cloke2022-04-121-6/+0
* Add a callback to react to 3PID associations (#12302)Brendan Abolivier2022-03-311-0/+26
* Fix typechecker problems exposed by signedjson 1.1.2 (#12326)David Robertson2022-03-291-1/+1
* Bump `black` and `click` versions (#12320)David Robertson2022-03-291-1/+1
* Move get_bundled_aggregations to relations handler. (#12237)Patrick Cloke2022-03-181-1/+1
* Correct `check_username_for_spam` annotations and docs (#12246)David Robertson2022-03-181-4/+3
* Fix bundling aggregations if unsigned is not a returned event field. (#12234)Patrick Cloke2022-03-161-3/+6
* fix misleading comment in `check_events_for_spam` (#12203)Shay2022-03-101-2/+2
* Support stable identifiers for MSC3440: Threading (#12151)Patrick Cloke2022-03-101-1/+8
* Add third_party module callbacks to check if a user can delete a room and dea...Will Hunt2022-03-091-0/+55
* Merge remote-tracking branch 'origin/release-v1.54' into developRichard van der Hoff2022-03-041-3/+7
|\
| * Correctly register deactivation and profile update module callbacks (#12141)Brendan Abolivier2022-03-031-3/+7
* | Use the proper serialization format when bundling aggregations. (#12090)Patrick Cloke2022-03-031-27/+54
|/
* Add module callbacks called for reacting to deactivation status change and pr...Brendan Abolivier2022-03-011-3/+53
* Faster joins: persist to database (#12012)Richard van der Hoff2022-03-011-0/+9
* Remove `HomeServer.get_datastore()` (#12031)Richard van der Hoff2022-02-232-2/+2
* Fix incorrect thread summaries when the latest event is edited. (#11992)Patrick Cloke2022-02-151-24/+45
* Remove deprecated user_may_create_room_with_invites callback (#11950)Brendan Abolivier2022-02-111-42/+0
* Improvements to bundling aggregations. (#11815)Patrick Cloke2022-01-261-17/+40
* Fix another jsonschema typecheck error (#11830)David Robertson2022-01-251-4/+2
* Ignore the jsonschema type. (#11817)Patrick Cloke2022-01-251-1/+3
* Do not try to serialize raw aggregations dict. (#11791)Patrick Cloke2022-01-211-2/+2
* Add `FrozenEvent.get_state_key` and use it in a couple of places (#11793)Richard van der Hoff2022-01-212-5/+10
* Use auto_attribs/native type hints for attrs classes. (#11692)Patrick Cloke2022-01-131-9/+9
* Bundle aggregations outside of the serialization method. (#11612)Patrick Cloke2022-01-071-89/+37
* Do not bundle aggregations for APIs which shouldn't include them. (#11592)Patrick Cloke2021-12-201-1/+1
* Do not allow cross-room relations, per MSC2674. (#11516)Patrick Cloke2021-12-091-4/+7
* Include bundled aggregations in /sync and related fixes (#11478)Patrick Cloke2021-12-061-23/+35
* Bundle relations of relations into the `/relations` result. (#11284)Patrick Cloke2021-11-301-0/+8
* Fix using MSC2716 batch sending with event persistence workers (#11220)Tulir Asokan2021-11-291-0/+5
* Refactor the code to inject bundled relations during serialization. (#11408)Patrick Cloke2021-11-231-64/+82
* Get db signatures file to pass mypy (#11312)David Robertson2021-11-111-7/+5
* Add remaining type hints to `synapse.events`. (#11098)Patrick Cloke2021-11-022-81/+148
* Make `check_event_allowed` module API callback not fail open (accept events) ...reivilibre2021-11-011-4/+5
* Implement an `on_new_event` callback (#11126)Brendan Abolivier2021-10-261-0/+31
* Add a thread relation type per MSC3440. (#11088)Patrick Cloke2021-10-211-0/+17
* Include rejected status when we log events. (#11008)Richard van der Hoff2021-10-191-6/+10
* Move experimental & retention config out of the server module. (#11070)Patrick Cloke2021-10-151-4/+2
* Add type hints to synapse.events.*. (#11066)Patrick Cloke2021-10-137-139/+177
* Pass through `SynapseError`s that are raised from experimental `check_event_a...reivilibre2021-10-111-0/+9
* Add a spamchecker method to allow or deny 3pid invites (#10894)Brendan Abolivier2021-10-061-0/+35
* Add a spamchecker callback to allow or deny room joins (#10910)Brendan Abolivier2021-10-061-0/+24
* Strip "join_authorised_via_users_server" from join events which do not need i...Patrick Cloke2021-09-301-1/+1
* Use direct references for configuration variables (part 6). (#10916)Patrick Cloke2021-09-292-4/+4
* Use `RoomVersion` objects (#10934)Richard van der Hoff2021-09-291-20/+0
* Add a spamchecker callback to allow or deny room creation based on invites (#...Brendan Abolivier2021-09-241-0/+42
* Use direct references for configuration variables (part 5). (#10897)Patrick Cloke2021-09-242-3/+3
* Factor out a separate `EventContext.for_outlier` (#10883)Richard van der Hoff2021-09-221-4/+10
* Include outlier status in `str(event)` for V2/V3 events (#10879)Richard van der Hoff2021-09-221-22/+12
* Rename MSC2716 things from `chunk` to `batch` to match `/batch_send` endpoint...Eric Eastwood2021-09-211-3/+3
* Use direct references for some configuration variables (#10798)Patrick Cloke2021-09-131-1/+1
* Support MSC3375: room version 9. (#10747)Patrick Cloke2021-09-031-0/+2
* Validate new m.room.power_levels events (#10232)Aaron Raimist2021-08-262-3/+79
* Port the PresenceRouter module interface to the new generic interface (#10524)Azrenbeth2021-08-171-36/+156
* Clean up some logging in the federation event handler (#10591)Richard van der Hoff2021-08-161-1/+2
* When redacting, keep event fields around that maintain the historical event s...Eric Eastwood2021-08-091-1/+7
* Make historical events discoverable from backfill for servers without any scr...Eric Eastwood2021-07-281-0/+3
* Restricted rooms (MSC3083) should not have their allow key redacted. (#10489)Patrick Cloke2021-07-281-0/+2
* Port the ThirdPartyEventRules module interface to the new generic interface (...Brendan Abolivier2021-07-201-42/+203
* Do not include signatures/hashes in make_{join,leave,knock} responses. (#10404)Patrick Cloke2021-07-161-0/+14
* Use inline type hints in various other places (in `synapse/`) (#10380)Jonathan de Jong2021-07-153-23/+23
* Move methods involving event authentication to EventAuthHandler. (#10268)Patrick Cloke2021-07-011-5/+7
* Correct type hints for synapse.event_auth. (#10253)Patrick Cloke2021-06-302-34/+37
* Fix wrapping of legacy check_registration_for_spam (#10238)Brendan Abolivier2021-06-231-6/+7
* Add endpoints for backfilling history (MSC2716) (#9247)Eric Eastwood2021-06-222-2/+24
* Standardise the module interface (#10062)Brendan Abolivier2021-06-181-88/+218
* Implement knock feature (#6739)Sorunome2021-06-091-7/+12
* Add missing type hints to handlers and fix a Spam Checker type hint. (#9896)Patrick Cloke2021-04-291-1/+4
* Remove `synapse.types.Collection` (#9856)Richard van der Hoff2021-04-221-2/+1
* Remove redundant "coding: utf-8" lines (#9786)Jonathan de Jong2021-04-148-8/+0
* Bugbear: Add Mutable Parameter fixes (#9682)Jonathan de Jong2021-04-081-4/+10
* Add a Synapse Module for configuring presence update routing (#9491)Andrew Morgan2021-04-061-0/+104
* Add type hints to misc. files. (#9676)Patrick Cloke2021-03-241-7/+8
* Ensure we use a copy of the event content dict before modifying it in seriali...Andrew Morgan2021-03-171-2/+12
* Prep work for removing `outlier` from `internal_metadata` (#9411)Richard van der Hoff2021-03-172-3/+8
* Pass SSO IdP information to spam checker's registration function (#9626)Andrew Morgan2021-03-161-3/+26
* Update black, and run auto formatting over the codebase (#9381)Eric Eastwood2021-02-164-5/+7
* Add check_media_file_for_spam spam checker hookErik Johnston2021-02-041-0/+47
* Remote dependency on distutils (#9125)Richard van der Hoff2021-01-151-1/+2
* Implement MSC2176: Updated redaction rules (#8984)Patrick Cloke2021-01-051-2/+14
* Allow spam-checker modules to be provide async methods. (#8890)David Teller2020-12-111-16/+39
* Use TYPE_CHECKING instead of magic MYPY variable. (#8770)Patrick Cloke2020-11-171-3/+2
* Block clients from sending server ACLs that lock the local server out. (#8708)Erik Johnston2020-11-031-9/+18
* Use `%r` rather than `%s` for stringifying events (#8679)Richard van der Hoff2020-10-291-2/+2
* Fix typos and spelling errors. (#8639)Patrick Cloke2020-10-232-2/+2
* Fix modifying events in `ThirdPartyRules` modules (#8564)Richard van der Hoff2020-10-161-1/+1
* Merge pull request #8535 from matrix-org/rav/third_party_events_updatesRichard van der Hoff2020-10-152-6/+19
|\
| * guard against accidental modificationRichard van der Hoff2020-10-132-3/+10
| * Allow ThirdPartyRules modules to replace event contentRichard van der Hoff2020-10-131-3/+9
* | Merge pull request #8537 from matrix-org/rav/simplify_locally_reject_inviteRichard van der Hoff2020-10-151-8/+13
|\ \
| * | Simplify `_locally_reject_invite`Richard van der Hoff2020-10-131-8/+13
| |/
* / Make sure a retention policy is a state event (#8527)Brendan Abolivier2020-10-141-0/+3
|/
* Combine `SpamCheckerApi` with the more generic `ModuleApi`. (#8464)Richard van der Hoff2020-10-072-4/+4
* Additional tests for third-party event rules (#8468)Richard van der Hoff2020-10-061-5/+7
* Fix third-party event modules for `check_visibility_can_be_modified` checkRichard van der Hoff2020-10-051-1/+3
* Allow ThirdPartyEventRules modules to manipulate public room state (#8292)Andrew Morgan2020-10-051-6/+45
* Remove stream ordering from Metadata dict (#8452)Richard van der Hoff2020-10-052-2/+9
* Various clean ups to room stream tokens. (#8423)Erik Johnston2020-09-291-3/+3
* Stop sub-classing object (#8249)Patrick Cloke2020-09-046-7/+7
* Add StreamStore to mypy (#8232)Erik Johnston2020-09-021-2/+2
* Convert additional databases to async/await part 2 (#8200)Patrick Cloke2020-09-011-7/+12
* Allow capping a room's retention policy (#8104)Brendan Abolivier2020-08-241-56/+3
* Allow denying or shadow banning registrations via the spam checker (#8034)Patrick Cloke2020-08-201-2/+33
* Be more tolerant of membership events in unknown rooms (#8110)Richard van der Hoff2020-08-201-0/+2
* Add type hints to handlers.message and events.builder (#8067)Erik Johnston2020-08-121-27/+31
* Convert synapse.api to async/await (#8031)Patrick Cloke2020-08-061-1/+1
* Rename database classes to make some sense (#8033)Erik Johnston2020-08-051-1/+1
* Convert a synapse.events to async/await. (#7949)Patrick Cloke2020-07-274-68/+67
* Convert state resolution to async/await (#7942)Patrick Cloke2020-07-241-2/+2
* Fix deprecation warning: import ABC from collections.abc (#7892)Karthikeyan Singaravelan2020-07-201-3/+3
* Add `HomeServer.signing_key` property (#7805)Richard van der Hoff2020-07-081-1/+1
* Replace all remaining six usage with native Python 3 equivalents (#7704)Dagfinn Ilmari Mannsåker2020-06-162-10/+6
* Replace iteritems/itervalues/iterkeys with native versions. (#7692)Patrick Cloke2020-06-152-6/+2
* Strictly enforce canonicaljson requirements in a new room version (#7381)Patrick Cloke2020-05-142-1/+41
* Extend spam checker to allow for multiple modules (#7435)Andrew Morgan2020-05-081-39/+39
* Fix bug in EventContext.deserialize. (#7393)Erik Johnston2020-05-051-2/+5
* Remove special auth and redaction rules for aliases events in experimental ro...Patrick Cloke2020-03-091-7/+5
* Store room_versions in EventBase objects (#6875)Richard van der Hoff2020-03-052-24/+43
* Merge pull request #6872 from matrix-org/rav/dictpropertyRichard van der Hoff2020-02-181-81/+118
|\
| * Rewrite _EventInternalMetadata to back it with a _dictRichard van der Hoff2020-02-141-16/+39
| * Replace _event_dict_property with DictPropertyRichard van der Hoff2020-02-141-65/+79
* | Add type hints to the spam check module (#6915)Patrick Cloke2020-02-141-18/+26
|/
* Filter the results of user directory searching via the spam checker (#6888)Patrick Cloke2020-02-141-0/+27
* Add a `make_event_from_dict` method (#6858)Richard van der Hoff2020-02-072-9/+17
* remove unused room_version_to_event_format (#6857)Richard van der Hoff2020-02-071-23/+1
* Third party event rules Update (#6781)PeerD2020-02-061-3/+4
* Add typing to SyncHandler (#6821)Erik Johnston2020-02-031-7/+11
* Pass room_version into add_hashes_and_signaturesRichard van der Hoff2020-01-301-1/+1
* Pass room_version into create_local_event_from_event_dictRichard van der Hoff2020-01-301-22/+18
* Store the room version in EventBuilderRichard van der Hoff2020-01-301-5/+7
* Type defintions for use in refactoring for redaction changes (#6803)Richard van der Hoff2020-01-301-2/+3
* Set the PL for aliases events to 0.Richard van der Hoff2020-01-291-1/+1
* Factor out a `copy_power_levels_contents` methodRichard van der Hoff2020-01-291-1/+36
* Make 'event.redacts' never raise. (#6771)Erik Johnston2020-01-231-4/+24
* Add StateMap type alias (#6715)Erik Johnston2020-01-161-6/+5
* Change EventContext to use the Storage class (#6564)Erik Johnston2019-12-202-16/+22
* Merge branch 'develop' into babolivier/message_retentionBrendan Abolivier2019-11-261-30/+129
|\
| * Fix bug which caused rejected events to be stored with the wrong room state ...Richard van der Hoff2019-11-061-2/+23
| * Add some checks that we aren't using state from rejected events (#6330)Richard van der Hoff2019-11-051-5/+44
| * Improve documentation for EventContext fields (#6319)Richard van der Hoff2019-11-051-26/+65
* | Implement per-room message retention policiesBrendan Abolivier2019-11-041-3/+97
|/
* Factor out an _AsyncEventContextImpl (#6298)Richard van der Hoff2019-11-011-65/+42
* Expose some homeserver functionality to spam checkers (#6259)Travis Ralston2019-10-311-1/+13
* Convert EventContext to attrs (#6218)Richard van der Hoff2019-10-281-61/+39
* Merge pull request #5805 from matrix-org/erikj/validate_stateErik Johnston2019-08-011-2/+9
|\
| * Validate well-known state events are state events.Erik Johnston2019-07-311-2/+9
* | Fix spelling.Erik Johnston2019-08-011-1/+3
|/
* Don't allow clients to send tombstones that reference the same roomErik Johnston2019-07-311-0/+7
* Replace returnValue with return (#5736)Amber Brown2019-07-234-30/+26
* Remove the ability to query relations when the original event was redacted. (...Andrew Morgan2019-07-182-4/+23
* Add origin_server_ts and sender fields to m.replace (#5613)Andrew Morgan2019-07-051-1/+5
* Move logging utilities out of the side drawer of util/ and into logging/ (#5606)Amber Brown2019-07-041-1/+1
* Run Black. (#5482)Amber Brown2019-06-207-106/+98
* Merge pull request #5480 from matrix-org/erikj/extremities_dummy_eventsErik Johnston2019-06-191-0/+12
|\
| * Run as background process and fix commentsErik Johnston2019-06-191-1/+1
| * Add experimental option to reduce extremities.Erik Johnston2019-06-181-0/+12
* | Make check_threepid_can_be_invited asyncBrendan Abolivier2019-06-171-0/+1
* | Add third party rules hook for 3PID invitesBrendan Abolivier2019-06-171-1/+31
* | Add third party rules hook into create roomErik Johnston2019-06-171-3/+24
|/
* Add plugin APIs for implementations of custom event rules.Brendan Abolivier2019-06-141-0/+62
* Fix appservice timestamp massaging (#5233)Tulir Asokan2019-05-241-1/+6
* Don't bundle events in /sync or /eventsErik Johnston2019-05-211-2/+3
* Fix error handling for rooms whose versions are unknown. (#5219)Richard van der Hoff2019-05-212-5/+9
* Add a test room version which updates event ID format (#5210)Richard van der Hoff2019-05-201-1/+22
* Rename relation types to match MSCErik Johnston2019-05-201-3/+3
* Fixup bsaed on review commentsErik Johnston2019-05-171-3/+1
* Add basic editing supportErik Johnston2019-05-161-4/+26
* Add aggregations APIErik Johnston2019-05-161-3/+31
* Allow client event serialization to be asyncErik Johnston2019-05-141-0/+44
* Do checks on aliases for incoming m.room.aliases events (#5128)Brendan Abolivier2019-05-082-4/+19
* Remove periods from copyright headers (#5046)Andrew Morgan2019-04-111-1/+1
* Collect room-version variations into one place (#4969)Richard van der Hoff2019-04-013-25/+29
* Make `prev_state` field optionalErik Johnston2019-03-081-1/+0
* Implement soft failErik Johnston2019-03-061-0/+14
* Enable room version v3Erik Johnston2019-01-291-0/+2
* Merge branch 'develop' of github.com:matrix-org/synapse into erikj/redactions...Erik Johnston2019-01-291-2/+3
|\
| * Merge pull request #4514 from matrix-org/erikj/remove_event_idErik Johnston2019-01-291-2/+3
| |\
| | * Don't assert an event must have an event IDErik Johnston2019-01-291-2/+3
* | | Fixup commentErik Johnston2019-01-291-2/+2
* | | kill vdh test some moreErik Johnston2019-01-291-2/+1
* | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/redactions...Erik Johnston2019-01-293-79/+320
|\| |
| * | Implement event format v2Erik Johnston2019-01-293-19/+106
| |/
| * Don't set event_id twiceErik Johnston2019-01-291-2/+0
| * Refactor event building into EventBuilderErik Johnston2019-01-291-65/+219
* | Drop vdh supportErik Johnston2019-01-291-2/+0
* | Add docstringErik Johnston2019-01-291-0/+12
* | Implement rechecking of redactionsErik Johnston2019-01-291-0/+3
|/
* Merge pull request #4494 from matrix-org/erikj/fixup_event_validatorErik Johnston2019-01-291-23/+37
|\
| * Remove duplicate checksErik Johnston2019-01-291-14/+0
| * Fix up error messagesErik Johnston2019-01-291-2/+2
| * Fold validate into validate_newErik Johnston2019-01-291-16/+11
| * Split up event validation between event and builderErik Johnston2019-01-281-20/+53
* | Refactor event signing to work on dictsErik Johnston2019-01-281-12/+35
|/
* Require event format version to parse or create eventsErik Johnston2019-01-252-2/+73
* Merge branch 'develop' of github.com:matrix-org/synapse into erikj/msc_1813Erik Johnston2019-01-251-2/+7
|\
| * Merge pull request #4405 from matrix-org/erikj/fixup_rejecting_invitesErik Johnston2019-01-241-2/+7
| |\
| | * Use term 'out of band membership' insteadErik Johnston2019-01-241-4/+5
| | * Clarify the invite flowsErik Johnston2019-01-231-2/+6
* | | Review commentsErik Johnston2019-01-241-1/+2
* | | Implement MSC 1813 - Add room version to make APIsErik Johnston2019-01-231-1/+16
|/ /
* | isortErik Johnston2019-01-231-3/+1
* | Add support for persisting event format versionsErik Johnston2019-01-231-0/+5
|/
* Add helpers for getting prev and auth events (#4139)Erik Johnston2018-11-061-0/+18
* Disable frozen dicts by default (#3987)Amber Brown2018-10-021-3/+10
* Fix handling of redacted events from federationErik Johnston2018-09-131-0/+5
* Handle delta_ids being None in _update_context_for_auth_eventsRichard van der Hoff2018-07-231-1/+2
* CommentsErik Johnston2018-07-231-2/+3
* Only get cached state from context in persist_eventErik Johnston2018-07-231-0/+13
* Fix missing attributes on workers.Erik Johnston2018-07-231-4/+6
* Fix EventContext when using workersErik Johnston2018-07-231-7/+7
* Update docstrings to make senseErik Johnston2018-07-231-5/+8
* Add support for updating stateErik Johnston2018-07-231-0/+19
* Make EventContext lazy load stateErik Johnston2018-07-231-41/+112
* pep8Erik Johnston2018-07-231-1/+1