Как импортировать модуль с "-" в его названии в transcrypt? - PullRequest
0 голосов
/ 12 октября 2018

Я пишу свой первый код транскрипта (python перенесен в JS для браузера - какая замечательная идея!), И я уже застрял, переводя этот код JS в python:

import { saveAs } from 'file-saver';
import inspect from 'browser-util-inspect';

Как видите, оба этих сторонних модуля (которые находятся в моем node_modules/ dir от npm) имеют дефисы в своем имени.Но это не разрешено Python

from node_modules.file-saver import saveAs

(потому что имена модулей Python должны быть идентификаторами), поэтому я не уверен, что делать дальше.

1 Ответ

0 голосов
/ 14 октября 2018

Должна быть возможность использовать имена модулей, содержащие -, используя псевдонимы, но это было нарушено в TS 3.7.1. Это будет исправлено в следующей вспомогательной версии, пример будет включен в автотест.Приносим извинения за неудобства.

TS 3.7.8 отсутствует, содержит исправление для этого.

[EDIT]

# __pragma__ ('alias', 'specific_module_a', 'specific-module-a')
# __pragma__ ('alias', 'S', '$')
# __pragma__ ('alias', 'test_modules_b', 'test-modules-b')
# __pragma__ ('alias', 'specific_module_b', 'specific-module-b')

from test_modules_a.__specific_module_a import the__S__Function
from test_modules_b__.__specific_module_b import theBFunction as aBFunction

the__S__Variable = 3
print (the__S__Variable)

the__S__Function (print)
aBFunction (print)

Обратите внимание, чтоПрагмы необходимы для соответствия оригинальному синтаксису Python и сканеру / анализатору Python, которые не допускают использование имен $ и - в именах.

...