summary refs log blame commit diff
path: root/mypy.ini
blob: cfe7e77c2151a6fe6a81afec0ef580e5e788c065 (plain) (tree)
1
2
3
4
5
6
7
8
9
      
                         
                                                              
                       


                         
                       
                          
                           
 
       
               









                                                      







                                        


                                                      
 
                                         
                                           
                                             
                                                      
                                               
                                                
                                           














                                                









                                                         
                                          
                                          
                                             


                                                               
                              




                                    
















                                            
 

                            

                            

                            

                            

                            

                            

                            




                                          

                            

                            

                              

                            

                            

                            

                            

                            
                     
                            

                               

                            

                                                  

                                                

                                               

                                                   

                                                     

                                                        

                                                       

                                                   

                                          

                                                

                                             

                                           

                                                  

                                                  


                                                        



                            
                     
                            
                                    
 
                                         

                                 
                                        
                            
 
                   
                            


                                             





                                                                                  
 
                
                             

                             
                    
                             
                 
                             
                


                             
 
              
                             
                
                             
              
                             

                             
                      
                             
               
                             
            
                             
           
                             
              
                             
 
             
                             
              
                             

                             
                     
                             
 
                          
                             
                    
                             
                
                             
 
                                    
                             
 
              
                             
 
                 
                             
 
                         
                             
 
                   
                             
             
                             
 
                
                             
           
                             

                             
[mypy]
namespace_packages = True
plugins = mypy_zope:plugin, scripts-dev/mypy_synapse_plugin.py
follow_imports = normal
check_untyped_defs = True
show_error_codes = True
show_traceback = True
mypy_path = stubs
warn_unreachable = True
local_partial_types = True
no_implicit_optional = True

files =
  scripts-dev/,
  setup.py,
  synapse/,
  tests/

# Note: Better exclusion syntax coming in mypy > 0.910
# https://github.com/python/mypy/pull/11329
#
# For now, set the (?x) flag enable "verbose" regexes
# https://docs.python.org/3/library/re.html#re.X
exclude = (?x)
  ^(
   |scripts-dev/build_debian_packages.py
   |scripts-dev/check_signature.py
   |scripts-dev/definitions.py
   |scripts-dev/federation_client.py
   |scripts-dev/hash_history.py
   |scripts-dev/list_url_patterns.py
   |scripts-dev/release.py
   |scripts-dev/tail-synapse.py

   |synapse/_scripts/export_signing_key.py
   |synapse/_scripts/move_remote_media_to_new_store.py
   |synapse/_scripts/synapse_port_db.py
   |synapse/_scripts/update_synapse_database.py

   |synapse/storage/databases/__init__.py
   |synapse/storage/databases/main/cache.py
   |synapse/storage/databases/main/devices.py
   |synapse/storage/databases/main/event_federation.py
   |synapse/storage/databases/main/push_rule.py
   |synapse/storage/databases/main/roommember.py
   |synapse/storage/databases/main/state.py
   |synapse/storage/schema/

   |tests/api/test_auth.py
   |tests/api/test_ratelimiting.py
   |tests/app/test_openid_listener.py
   |tests/appservice/test_scheduler.py
   |tests/config/test_cache.py
   |tests/config/test_tls.py
   |tests/crypto/test_keyring.py
   |tests/events/test_presence_router.py
   |tests/events/test_utils.py
   |tests/federation/test_federation_catch_up.py
   |tests/federation/test_federation_sender.py
   |tests/federation/test_federation_server.py
   |tests/federation/transport/test_knocking.py
   |tests/federation/transport/test_server.py
   |tests/handlers/test_typing.py
   |tests/http/federation/test_matrix_federation_agent.py
   |tests/http/federation/test_srv_resolver.py
   |tests/http/test_fedclient.py
   |tests/http/test_proxyagent.py
   |tests/http/test_servlet.py
   |tests/http/test_site.py
   |tests/logging/__init__.py
   |tests/logging/test_terse_json.py
   |tests/module_api/test_api.py
   |tests/push/test_email.py
   |tests/push/test_presentable_names.py
   |tests/push/test_push_rule_evaluator.py
   |tests/rest/client/test_transactions.py
   |tests/rest/media/v1/test_media_storage.py
   |tests/scripts/test_new_matrix_user.py
   |tests/server.py
   |tests/server_notices/test_resource_limits_server_notices.py
   |tests/state/test_v2.py
   |tests/storage/test_base.py
   |tests/storage/test_roommember.py
   |tests/test_metrics.py
   |tests/test_phone_home.py
   |tests/test_server.py
   |tests/test_state.py
   |tests/test_terms_auth.py
   |tests/unittest.py
   |tests/util/caches/test_cached_call.py
   |tests/util/caches/test_deferred_cache.py
   |tests/util/caches/test_descriptors.py
   |tests/util/caches/test_response_cache.py
   |tests/util/caches/test_ttlcache.py
   |tests/util/test_async_helpers.py
   |tests/util/test_batching_queue.py
   |tests/util/test_dict_cache.py
   |tests/util/test_expiring_cache.py
   |tests/util/test_file_consumer.py
   |tests/util/test_linearizer.py
   |tests/util/test_logcontext.py
   |tests/util/test_lrucache.py
   |tests/util/test_rwlock.py
   |tests/util/test_wheel_timer.py
   |tests/utils.py
   )$

[mypy-synapse.api.*]
disallow_untyped_defs = True

[mypy-synapse.app.*]
disallow_untyped_defs = True

[mypy-synapse.appservice.*]
disallow_untyped_defs = True

[mypy-synapse.config._base]
disallow_untyped_defs = True

[mypy-synapse.crypto.*]
disallow_untyped_defs = True

[mypy-synapse.event_auth]
disallow_untyped_defs = True

[mypy-synapse.events.*]
disallow_untyped_defs = True

[mypy-synapse.federation.*]
disallow_untyped_defs = True

[mypy-synapse.federation.transport.client]
disallow_untyped_defs = False

[mypy-synapse.handlers.*]
disallow_untyped_defs = True

[mypy-synapse.http.server]
disallow_untyped_defs = True

[mypy-synapse.logging.context]
disallow_untyped_defs = True

[mypy-synapse.metrics.*]
disallow_untyped_defs = True

[mypy-synapse.module_api.*]
disallow_untyped_defs = True

[mypy-synapse.notifier]
disallow_untyped_defs = True

[mypy-synapse.push.*]
disallow_untyped_defs = True

[mypy-synapse.replication.*]
disallow_untyped_defs = True

[mypy-synapse.rest.*]
disallow_untyped_defs = True

[mypy-synapse.server_notices.*]
disallow_untyped_defs = True

[mypy-synapse.state.*]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.account_data]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.client_ips]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.directory]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.e2e_room_keys]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.end_to_end_keys]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.event_push_actions]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.events_bg_updates]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.events_worker]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.room]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.room_batch]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.profile]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.stats]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.state_deltas]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.transactions]
disallow_untyped_defs = True

[mypy-synapse.storage.databases.main.user_erasure_store]
disallow_untyped_defs = True

[mypy-synapse.storage.util.*]
disallow_untyped_defs = True

[mypy-synapse.streams.*]
disallow_untyped_defs = True

[mypy-synapse.util.*]
disallow_untyped_defs = True

[mypy-synapse.util.caches.treecache]
disallow_untyped_defs = False

[mypy-tests.handlers.test_user_directory]
disallow_untyped_defs = True

[mypy-tests.storage.test_profile]
disallow_untyped_defs = True

[mypy-tests.storage.test_user_directory]
disallow_untyped_defs = True

[mypy-tests.rest.*]
disallow_untyped_defs = True

[mypy-tests.federation.transport.test_client]
disallow_untyped_defs = True


;; Dependencies without annotations
;; Before ignoring a module, check to see if type stubs are available.
;; The `typeshed` project maintains stubs here:
;;     https://github.com/python/typeshed/tree/master/stubs
;; and for each package `foo` there's a corresponding `types-foo` package on PyPI,
;; which we can pull in as a dev dependency by adding to `setup.py`'s
;; `CONDITIONAL_REQUIREMENTS["mypy"]` list.

[mypy-authlib.*]
ignore_missing_imports = True

[mypy-bcrypt]
ignore_missing_imports = True

[mypy-canonicaljson]
ignore_missing_imports = True

[mypy-constantly]
ignore_missing_imports = True

[mypy-daemonize]
ignore_missing_imports = True

[mypy-h11]
ignore_missing_imports = True

[mypy-hiredis]
ignore_missing_imports = True

[mypy-hyperlink]
ignore_missing_imports = True

[mypy-ijson.*]
ignore_missing_imports = True

[mypy-importlib_metadata.*]
ignore_missing_imports = True

[mypy-jaeger_client.*]
ignore_missing_imports = True

[mypy-josepy.*]
ignore_missing_imports = True

[mypy-jwt.*]
ignore_missing_imports = True

[mypy-lxml]
ignore_missing_imports = True

[mypy-msgpack]
ignore_missing_imports = True

[mypy-nacl.*]
ignore_missing_imports = True

[mypy-netaddr]
ignore_missing_imports = True

[mypy-parameterized.*]
ignore_missing_imports = True

[mypy-phonenumbers.*]
ignore_missing_imports = True

[mypy-prometheus_client.*]
ignore_missing_imports = True

[mypy-pymacaroons.*]
ignore_missing_imports = True

[mypy-pympler.*]
ignore_missing_imports = True

[mypy-rust_python_jaeger_reporter.*]
ignore_missing_imports = True

[mypy-saml2.*]
ignore_missing_imports = True

[mypy-sentry_sdk]
ignore_missing_imports = True

[mypy-service_identity.*]
ignore_missing_imports = True

[mypy-signedjson.*]
ignore_missing_imports = True

[mypy-treq.*]
ignore_missing_imports = True

[mypy-twisted.*]
ignore_missing_imports = True

[mypy-zope]
ignore_missing_imports = True

[mypy-incremental.*]
ignore_missing_imports = True