Eu tenho esse código e me irrita ter que fazer o cast f
duas vezes:
with h5py.File(computed_properties_path, "r") as f:
# get the set of computed metrics
computed_metrics = set()
# iterating through the file iterates through the keys which are dataset names
f = cast(Iterable[str], f)
dataset_name: str
for dataset_name in f:
# re-cast it as a file
f = cast(h5py.File, f)
dataset_group = index_hdf5(f, [dataset_name], h5py.Group)
for metric_name in dataset_group:
logger.info(f"Dataset: {dataset_name}, Metric: {metric_name}")
Só quero poder dizer ao verificador de tipo estático que, se eu iterar por um arquivo, obterei strings (que são chaves para os grupos e conjuntos de dados no arquivo).
Tentei criar este .pyi
stub para criar uma classe que faz isso, mas recebo um erro dizendo que File não está definido. Meu palpite é que isso ocorre porque o Pylance agora depende somente do meu stub, em vez de procurar definições extras no arquivo original.
Tentei várias opções diferentes por meio do Claude e do ChatGPT, mas não consigo descobrir como estender a sugestão de tipo para que o Pylance saiba que iterar por um h5py.File
objeto produzirá strings.