Правильно повторно выставить подмодуль (или это ошибка в pylance)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Правильно повторно выставить подмодуль (или это ошибка в pylance)

Сообщение Anonymous »

Я работаю над пакетом Python chemcoord с несколькими подпакетами, некоторые из которых должны быть доступны в корневом пространстве имен.
Репозиторий находится здесь,
соответствующий файл __init__.py находится здесь.
Например, существует chemcoord.cartesian_coordinates.xyz_functions, который должен быть доступен как chemcoord.xyz_functions
Доступность, в частности, означает, что пользователь должен иметь возможность писать:

Код: Выделить всё

from chemcoord.xyz_functions import allclose
Если я напишу в своем __init__.py

Код: Выделить всё

import chemcoord.cartesian_coordinates.xyz_functions as xyz_functions
тогда я смогу использовать chemcoord.xyz_functions в коде, но не смогу

Код: Выделить всё

from chemcoord.xyz_functions import allclose
Если я сделаю дополнительный уродливый/хакерский (?) трюк, изменив sys.modules в __init__.py, как в

Код: Выделить всё

import sys
sys.modules["chemcoord.xyz_functions"] = xyz_functions
тогда я смогу писать

Код: Выделить всё

from chemcoord.xyz_functions import allclose
Но это кажется уродливым и хакерским.
Недавно я получил предупреждения от PyLance о

Импортировать «chemcoord.xyz_functions» не удалось.

Это приводит к двум моим вопросам:
  • Является ли мой подход правильное повторное раскрытие подмодуля или есть более чистый способ?
  • Если ответ на вопрос 1 решен, но я все еще получаю предупреждения от PyLance, есть ли ошибка в PyLance< /code>?


Подробнее здесь: https://stackoverflow.com/questions/793 ... in-pylance
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»