##// END OF EJS Templates
typing: make `bundlerepository` subclass `localrepository` while type checking...
typing: make `bundlerepository` subclass `localrepository` while type checking Currently, `mercurial/bundlerepo.py` is excluded from pytype, mostly because it complains that various `ui` and `vfs` fields in `localrepository` are missing. (`bundlerepository` dynamically subclasses `localrepository` when it is instantiated, so it works at runtime.) This makes that class hierarchy known to pytype. Having a protocol for `Repository` is probably the right thing to do, but that will be a lot of work and this still reflects the class at runtime. Subclassing also has the benefit of making sure any method overrides have a matching signature, so maybe this is a situation where we do both of these things. (I'm not sure how clear the diagnostics are if a class *almost* implements a protocol, but is missing a method argument or similar.) The subclassing is not done outside of type checking runs to avoid any side effects on already complex code.

File last commit:

r52762:37a07941 stable
r52763:9d4ad05b default
Show More
Cargo.toml
19 lines | 404 B | application/toml | TOMLLexer
[package]
name = "hg-cpython"
version = "0.1.0"
authors = ["Georges Racinet <gracinet@anybox.fr>"]
edition = "2021"
[lib]
name='rusthg'
crate-type = ["cdylib"]
[dependencies]
cpython = { version = "0.7.1", features = ["extension-module"] }
crossbeam-channel = "0.5.6"
hg-core = { path = "../hg-core"}
libc = "0.2.137"
log = "0.4.17"
env_logger = "0.9.3"
stable_deref_trait = "1.2.0"
vcsgraph = "0.2.0"