如何在transcrypt中导入名称中带有“-”的模块?

时间:2018-10-11 23:02:06

标签: transcrypt

我正在编写我的第一个转密码(将Python转换为浏览器的JS,这是个好主意!),我已经陷入困境,将JS代码翻译成python:

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

如您所见,这两个第三方模块(都在我的node_modules/目录中,来自npm)的名称中都带有连字符。但这不是合法的python

from node_modules.file-saver import saveAs

(因为python模块名称必须是标识符),所以我不确定如何继续。

1 个答案:

答案 0 :(得分:0)

应该可以使用包含-的模块名称(使用别名),但是在TS 3.7.1中已被破坏 它将在下一个次要版本中修复,示例将包含在自动测试中。 抱歉给您带来不便。

TS 3.7.8已发布,其中包含针对此问题的修复程序。

[编辑]

# __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)

请注意,需要使用pragma来符合原始的Python语法和Python扫描器/解析器,但名称中不允许使用$和-。