MatrixSynapse/synapse/config
David Robertson 313581e4e9
Use importlib.metadata to read requirements (#12088)
* Pull runtime dep checks into their own module
* Reimplement `check_requirements` using `importlib`

I've tried to make this clearer. We start by working out which of
Synapse's requirements we need to be installed here and now. I was
surprised that there wasn't an easier way to see which packages were
installed by a given extra.

I've pulled out the error messages into functions that deal with "is
this for an extra or not". And I've rearranged the loop over two
different sets of requirements into one loop with a "must be instaled"
flag.

I hope you agree that this is clearer.

* Test cases
2022-03-01 17:44:41 +00:00
..
__init__.py Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
__main__.py Additional type hints for config module. (#11465) 2021-12-01 07:28:23 -05:00
_base.py Add missing type hints to config base classes (#11377) 2021-11-23 15:21:19 +00:00
_base.pyi Add missing type hints to config base classes (#11377) 2021-11-23 15:21:19 +00:00
_util.py Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
account_validity.py Default value for `public_baseurl` (#11210) 2021-11-08 14:13:10 +00:00
api.py Fix up docs for `track_puppeted_user_ips` (again) (#11757) 2022-01-17 14:55:30 +00:00
appservice.py Add support for MSC3202: sending one-time key counts and fallback key usage states to Application Services. (#11617) 2022-02-24 17:55:45 +00:00
auth.py Fix copy-paste error in the password section of the sample-config. (#10804) 2021-09-13 08:58:34 -04:00
cache.py Use importlib.metadata to read requirements (#12088) 2022-03-01 17:44:41 +00:00
captcha.py Clean-up the template loading code. (#9200) 2021-01-27 10:59:50 -05:00
cas.py Additional type hints for config module. (#11465) 2021-12-01 07:28:23 -05:00
consent.py Use direct references for some configuration variables (part 3) (#10885) 2021-09-23 07:13:34 -04:00
database.py Additional type hints for config module. (#11465) 2021-12-01 07:28:23 -05:00
emailconfig.py Use auto_attribs/native type hints for attrs classes. (#11692) 2022-01-13 13:49:28 +00:00
experimental.py Add support for MSC3202: sending one-time key counts and fallback key usage states to Application Services. (#11617) 2022-02-24 17:55:45 +00:00
federation.py Use inline type hints in various other places (in `synapse/`) (#10380) 2021-07-15 11:02:43 +01:00
groups.py Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
homeserver.py Move experimental & retention config out of the server module. (#11070) 2021-10-15 14:30:48 +00:00
jwt.py Add config for customizing the claim used for JWT logins. (#11361) 2021-11-22 13:01:03 -05:00
key.py Additional type hints for the config module, part 2. (#11480) 2021-12-09 16:15:46 +00:00
logger.py Remove support for the legacy structured logging configuration. (#12008) 2022-02-17 13:32:18 +00:00
metrics.py Use importlib.metadata to read requirements (#12088) 2022-03-01 17:44:41 +00:00
modules.py Fix some indentation inconsistencies in the sample config (modules) (#11838) 2022-01-27 10:06:29 +00:00
oembed.py Request JSON for oEmbed requests (and ignore XML only providers). (#10759) 2021-09-08 07:17:52 -04:00
oidc.py Use importlib.metadata to read requirements (#12088) 2022-03-01 17:44:41 +00:00
password_auth_providers.py Port the Password Auth Providers module interface to the new generic interface (#10548) 2021-10-13 11:21:52 +00:00
push.py Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
ratelimiting.py Add a ratelimiter for 3pid invite (#11892) 2022-02-03 14:28:15 +01:00
redis.py Use importlib.metadata to read requirements (#12088) 2022-03-01 17:44:41 +00:00
registration.py Add a config flag to inhibit `M_USER_IN_USE` during registration (#11743) 2022-01-26 13:02:54 +01:00
repository.py Use importlib.metadata to read requirements (#12088) 2022-03-01 17:44:41 +00:00
retention.py Move experimental & retention config out of the server module. (#11070) 2021-10-15 14:30:48 +00:00
room.py Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
room_directory.py Re-apply: Move glob_to_regex and re_word_boundary to matrix-python-common #11505 (#11687) 2022-01-05 11:41:49 +00:00
saml2.py Use importlib.metadata to read requirements (#12088) 2022-03-01 17:44:41 +00:00
server.py Use room version 9 as the default room version (per MSC3589). (#12058) 2022-02-22 14:09:40 +00:00
server_notices.py Require direct references to configuration variables. (#10985) 2021-10-06 10:47:41 -04:00
spam_checker.py Use inline type hints in various other places (in `synapse/`) (#10380) 2021-07-15 11:02:43 +01:00
sso.py Additional type hints for config module. (#11465) 2021-12-01 07:28:23 -05:00
stats.py Remove functionality associated with unused historical stats tables (#9721) 2021-07-08 16:57:13 +01:00
third_party_event_rules.py Port the ThirdPartyEventRules module interface to the new generic interface (#10386) 2021-07-20 12:39:46 +02:00
tls.py Re-apply: Move glob_to_regex and re_word_boundary to matrix-python-common #11505 (#11687) 2022-01-05 11:41:49 +00:00
tracer.py Use importlib.metadata to read requirements (#12088) 2022-03-01 17:44:41 +00:00
user_directory.py Add an admin API to run background jobs. (#11352) 2021-11-19 19:39:46 +00:00
voip.py
workers.py Use auto_attribs/native type hints for attrs classes. (#11692) 2022-01-13 13:49:28 +00:00