py2ecma 0.0.2.post4.dev0__tar.gz → 0.0.2.post9.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/PKG-INFO +1 -1
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/install.sh +1 -1
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/arguments.py +6 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/comprehensions.py +10 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/node.py +1 -1
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/parser.py +2 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/conf.py +3 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/dependency/getdeps.py +1 -1
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/javascript/builtins.js +1 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/javascript/comprehensions.js +25 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/linker/jsloader.py +3 -1
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/linker/packager.py +4 -2
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/dataclasses.py +5 -9
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/types.py +1 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/transpiler.py +3 -1
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/helpers.py +6 -1
- py2ecma-0.0.2.post9.dev0/variables.env +1 -0
- py2ecma-0.0.2.post4.dev0/variables.env +0 -1
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/.coveragerc +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/.envrc +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/.gitignore +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/.gitlab-ci.yml +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/Dockerfile +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/LICENSE-2.0.txt +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/Makefile +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/README.md +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/conftest.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/Makefile +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/api/modules.rst +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/api/py2ecma.codegenerator.rst +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/api/py2ecma.dependency.rst +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/api/py2ecma.lexer.rst +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/api/py2ecma.linker.rst +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/api/py2ecma.modules.rst +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/api/py2ecma.rst +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/api/py2ecma.watcher.rst +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/conf.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/index.rst +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/py.typed +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/pyproject.toml +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/run.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/README.md +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/build.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/check.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/deploy.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/format.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/install_ci.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/install_from_requirements.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/install_pkg.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/install_runtime.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/release.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/tests-cov.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/tests.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/verify.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/version.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/version_patch.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/scripts/version_sanitized.sh +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/__main__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/enums.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nameconverter.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/asyncs.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/classes.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/controlflow.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/expressions.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/functions.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/imports.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/literals.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/module.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/statements.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/subscripting.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nintermediate/variables.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/optimizer.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/specialcases.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/traversers.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/dependency/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/dependency/excludes.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/dependency/sortedset.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/dependency/spec.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/filesystem.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/get_logger.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/javascript/base.js +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/javascript/classes.js +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/javascript/dict.js +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/javascript/exceptions.js +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/javascript/list.js +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/javascript/set.js +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/javascript/strings.js +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/lexer/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/lexer/syntaxtree.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/linker/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/main.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/minimizer/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/minimizer/closure.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/codecs.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/collections.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/copy.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/datetime.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/enum.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/functools.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/json.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/keyword.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/math.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/operator.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/re.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/re_/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/re_/translate.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/sre_compile.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/sre_constants.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/sre_parse.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/stubs.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/sys.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/modules/time.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/progress.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/py.typed +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/watcher/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/watcher/autocompile.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/advanced/macros.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/advanced/test_getters.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/advanced/test_setters.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/module/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/module/testthis.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/relative/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/relative/rel.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/relative/sec.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/shared/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/shared/sharedlib.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/src/sharedt.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/src/simple.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/src/test.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/test.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/simple.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/test.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/test_imports.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/__init__.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_asserts.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_boolean.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_builtins.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_classes.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_decorators.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_dicts.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_exceptions.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_flow.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_for.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_functions.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_inheritance.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_lambda.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_lists.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_methods.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_nummerical.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_sets.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_strings.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_tuple.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_variables.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/regression/test_while.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/resources/jsload.js +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/simple.html +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/simple.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/stdlib/test_copy.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/stdlib/test_json.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/stdlib/test_math.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/stdlib/test_re.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/stdlib/test_time.py +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/uv.lock +0 -0
- {py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/version.txt +0 -0
|
@@ -56,6 +56,12 @@ def arg_parser() -> argparse.ArgumentParser:
|
|
|
56
56
|
" the current directory.",
|
|
57
57
|
metavar="dir",
|
|
58
58
|
)
|
|
59
|
+
parser.add_argument(
|
|
60
|
+
"--imports",
|
|
61
|
+
dest="imports",
|
|
62
|
+
metavar="output.js",
|
|
63
|
+
help="List of imports that can be injected at the top of the bundle file",
|
|
64
|
+
)
|
|
59
65
|
parser.add_argument(
|
|
60
66
|
"-c",
|
|
61
67
|
"--clean",
|
|
@@ -25,6 +25,16 @@ class SetComp(Node):
|
|
|
25
25
|
elt: Node
|
|
26
26
|
generators: List[Node]
|
|
27
27
|
|
|
28
|
+
def code(self):
|
|
29
|
+
yield "__set_comprehension__("
|
|
30
|
+
yield "("
|
|
31
|
+
yield self.generators[-1].target
|
|
32
|
+
yield ") => ("
|
|
33
|
+
yield self.elt
|
|
34
|
+
yield "), ["
|
|
35
|
+
yield self.join(", ", self.generators)
|
|
36
|
+
yield "])"
|
|
37
|
+
|
|
28
38
|
|
|
29
39
|
@dataclass
|
|
30
40
|
class GeneratorComp(Node):
|
|
@@ -8,7 +8,7 @@ class Node:
|
|
|
8
8
|
def code(self):
|
|
9
9
|
raise NotImplementedError(
|
|
10
10
|
"Itermediate node type '{}'".format(self.__class__.__name__)
|
|
11
|
-
+ " is missing the code() method override"
|
|
11
|
+
+ f" is missing the code() method override, issue is present in {self.__file__}"
|
|
12
12
|
)
|
|
13
13
|
|
|
14
14
|
@staticmethod
|
|
@@ -600,6 +600,8 @@ def class_body(tree, name, module, file_):
|
|
|
600
600
|
|
|
601
601
|
def visit_FunctionDef(self, node):
|
|
602
602
|
decorators = [n.id for n in node.decorator_list]
|
|
603
|
+
print("====================================================")
|
|
604
|
+
print(self.file)
|
|
603
605
|
return CD.Method(
|
|
604
606
|
__file__=self.file,
|
|
605
607
|
name=node.name,
|
|
@@ -8,6 +8,7 @@ class TranspilerConfig:
|
|
|
8
8
|
input_file: Path
|
|
9
9
|
output_file: Path
|
|
10
10
|
build_dir: Path
|
|
11
|
+
imports: Path | None
|
|
11
12
|
|
|
12
13
|
clean_build: bool
|
|
13
14
|
recursive: bool
|
|
@@ -22,6 +23,8 @@ class TranspilerConfig:
|
|
|
22
23
|
self.input_file = Path(argparser.input)
|
|
23
24
|
self.output_file = Path(argparser.output_file)
|
|
24
25
|
self.build_dir = Path(argparser.build_dir)
|
|
26
|
+
self.imports = Path(argparser.imports) \
|
|
27
|
+
if argparser.imports is not None else None
|
|
25
28
|
|
|
26
29
|
self.clean_build = argparser.clean
|
|
27
30
|
self.recursive = argparser.recursive
|
|
@@ -76,7 +76,7 @@ def getdeps(filename):
|
|
|
76
76
|
continue
|
|
77
77
|
path = find_import_src(mod, filename)
|
|
78
78
|
if path is None:
|
|
79
|
-
logger.error("Could not find origin of module({})"
|
|
79
|
+
logger.error(f"Could not find origin of module({mod}) for file {filename}")
|
|
80
80
|
raise ImportError("Could not find: {}".format(mod))
|
|
81
81
|
logger.info('dependency found: "{}"'.format(path))
|
|
82
82
|
filepaths.append(path)
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/javascript/comprehensions.js
RENAMED
|
@@ -28,6 +28,31 @@ var __list_comprehension__ = (elt, generators, li) => {
|
|
|
28
28
|
return li;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
|
|
32
|
+
var __set_comprehension__ = (elt, generators, li) => {
|
|
33
|
+
if (li === undefined) {
|
|
34
|
+
li = set();
|
|
35
|
+
}
|
|
36
|
+
if (generators.length > 1) {
|
|
37
|
+
var generator = generators[0];
|
|
38
|
+
for (let el of __Iterator__(generator.iter)) {
|
|
39
|
+
if (generator.ifs(el)) {
|
|
40
|
+
var tail = generators.slice(1);
|
|
41
|
+
tail[0].iter = el;
|
|
42
|
+
__set_comprehension__(elt, tail, li);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
var generator = generators[0];
|
|
47
|
+
for (let el of __Iterator__(generator.iter)) {
|
|
48
|
+
if (generator.ifs(el)) {
|
|
49
|
+
li.add(elt(el));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return li;
|
|
54
|
+
}
|
|
55
|
+
|
|
31
56
|
var __dict_comprehension__ = (elt, val, generators, li) => {
|
|
32
57
|
if (li === undefined) {
|
|
33
58
|
var li = dict();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import os
|
|
2
|
+
from pathlib import Path
|
|
2
3
|
|
|
3
4
|
from ..filesystem import loadsrc
|
|
4
5
|
|
|
@@ -50,10 +51,11 @@ def src_strings():
|
|
|
50
51
|
return loadsrc(filepath)
|
|
51
52
|
|
|
52
53
|
|
|
53
|
-
def jssources() -> str:
|
|
54
|
+
def jssources(imports: str | Path | None = None) -> str:
|
|
54
55
|
return "\n".join(
|
|
55
56
|
[
|
|
56
57
|
src_base(),
|
|
58
|
+
loadsrc(str(imports)) if imports else "",
|
|
57
59
|
src_exceptions(),
|
|
58
60
|
src_builtins(),
|
|
59
61
|
src_classes(),
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import ast
|
|
2
|
+
from pathlib import Path
|
|
2
3
|
|
|
3
4
|
from .jsloader import jssources
|
|
4
5
|
|
|
5
6
|
|
|
6
|
-
def package(cache):
|
|
7
|
-
|
|
7
|
+
def package(cache, imports: Path | None):
|
|
8
|
+
|
|
9
|
+
all = jssources(imports) + "var __exports__ = {};\n"
|
|
8
10
|
for dep, src in cache.items():
|
|
9
11
|
dep = dep.replace(".__init__", "")
|
|
10
12
|
wsrc = wrap_iife(src)
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import _thread
|
|
2
|
-
import builtins
|
|
1
|
+
#import _thread
|
|
3
2
|
import copy
|
|
4
3
|
import functools
|
|
5
|
-
import inspect
|
|
6
4
|
import keyword
|
|
7
5
|
import re
|
|
8
6
|
import sys
|
|
@@ -375,7 +373,7 @@ def _recursive_repr(user_function):
|
|
|
375
373
|
|
|
376
374
|
@functools.wraps(user_function)
|
|
377
375
|
def wrapper(self):
|
|
378
|
-
key = id(self)
|
|
376
|
+
key = id(self)
|
|
379
377
|
if key in repr_running:
|
|
380
378
|
return "..."
|
|
381
379
|
repr_running.add(key)
|
|
@@ -397,8 +395,6 @@ def _create_fn(name, args, body, *, globals=None, locals=None, return_type=MISSI
|
|
|
397
395
|
# __builtins__ may be the "builtins" module or
|
|
398
396
|
# the value of its "__dict__",
|
|
399
397
|
# so make sure "__builtins__" is the module.
|
|
400
|
-
if globals is not None and "__builtins__" not in globals:
|
|
401
|
-
globals["__builtins__"] = builtins
|
|
402
398
|
return_annotation = ""
|
|
403
399
|
if return_type is not MISSING:
|
|
404
400
|
locals["_return_type"] = return_type
|
|
@@ -1005,9 +1001,9 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen):
|
|
|
1005
1001
|
# we're here the overwriting is unconditional.
|
|
1006
1002
|
cls.__hash__ = hash_action(cls, field_list)
|
|
1007
1003
|
|
|
1008
|
-
if not getattr(cls, "__doc__"):
|
|
1009
|
-
|
|
1010
|
-
|
|
1004
|
+
#if not getattr(cls, "__doc__"):
|
|
1005
|
+
# # Create a class doc-string.
|
|
1006
|
+
# cls.__doc__ = cls.__name__ + str(inspect.signature(cls)).replace(" -> None", "")
|
|
1011
1007
|
|
|
1012
1008
|
return cls
|
|
1013
1009
|
|
|
@@ -47,6 +47,7 @@ def transpiler(
|
|
|
47
47
|
input_file: Path,
|
|
48
48
|
output_file: Path,
|
|
49
49
|
build_dir: Path,
|
|
50
|
+
imports: Path | None,
|
|
50
51
|
clean_build: bool = False,
|
|
51
52
|
minimize: bool = False,
|
|
52
53
|
recursive: bool = True,
|
|
@@ -126,7 +127,7 @@ def transpiler(
|
|
|
126
127
|
return __inner__
|
|
127
128
|
|
|
128
129
|
def bundler(src_cache, output_file):
|
|
129
|
-
bundle = package(src_cache)
|
|
130
|
+
bundle = package(src_cache, imports)
|
|
130
131
|
if not minimize:
|
|
131
132
|
import jsbeautifier # type: ignore
|
|
132
133
|
|
|
@@ -166,6 +167,7 @@ class Transpiler:
|
|
|
166
167
|
input_file=self.config.input_file,
|
|
167
168
|
output_file=self.config.output_file,
|
|
168
169
|
build_dir=self.config.build_dir,
|
|
170
|
+
imports=self.config.imports,
|
|
169
171
|
clean_build=self.config.clean_build,
|
|
170
172
|
minimize=self.config.minimize,
|
|
171
173
|
recursive=self.config.recursive,
|
|
@@ -317,7 +317,12 @@ def jsfstest(data_dir, cwd="", py_path=""):
|
|
|
317
317
|
f.write(py_src)
|
|
318
318
|
|
|
319
319
|
py_result = func()
|
|
320
|
-
transpiler(
|
|
320
|
+
transpiler(
|
|
321
|
+
Path(main_file),
|
|
322
|
+
Path("bundle.js"),
|
|
323
|
+
build_dir=Path("build"),
|
|
324
|
+
clean_build=True,
|
|
325
|
+
imports=None)
|
|
321
326
|
with open("bundle.js") as f:
|
|
322
327
|
js_body = f.read()
|
|
323
328
|
js_src = (
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
VERSION=v0.0.2-9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
VERSION=v0.0.2-4
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/api/py2ecma.codegenerator.rst
RENAMED
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/docs/source/api/py2ecma.dependency.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/nameconverter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/optimizer.py
RENAMED
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/specialcases.py
RENAMED
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/src/py2ecma/codegenerator/traversers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/module/__init__.py
RENAMED
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/module/testthis.py
RENAMED
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/relative/__init__.py
RENAMED
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/relative/rel.py
RENAMED
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/relative/sec.py
RENAMED
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/shared/__init__.py
RENAMED
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/shared/sharedlib.py
RENAMED
|
File without changes
|
{py2ecma-0.0.2.post4.dev0 → py2ecma-0.0.2.post9.dev0}/tests/imports/resources/src/sharedt.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|