easycoder 260320.2__tar.gz → 260322.1__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.
- {easycoder-260320.2 → easycoder-260322.1}/PKG-INFO +1 -1
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/__init__.py +1 -1
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_core.py +27 -10
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_mqtt.py +2 -2
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_program.py +6 -2
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_server.py +16 -5
- easycoder-260320.2/lsp/.vscode/launch.json +0 -39
- easycoder-260320.2/lsp/.vscode/tasks.json +0 -22
- easycoder-260320.2/lsp/LSP_ARCHITECTURE.md +0 -430
- easycoder-260320.2/lsp/QUICK_START.md +0 -132
- easycoder-260320.2/lsp/client/out/extension.d.ts +0 -3
- easycoder-260320.2/lsp/client/out/extension.js +0 -106
- easycoder-260320.2/lsp/client/package-lock.json +0 -140
- easycoder-260320.2/lsp/client/package.json +0 -27
- easycoder-260320.2/lsp/client/src/extension.ts +0 -93
- easycoder-260320.2/lsp/client/tsconfig.json +0 -17
- easycoder-260320.2/lsp/package-lock.json +0 -51
- easycoder-260320.2/lsp/package.json +0 -85
- easycoder-260320.2/lsp/requirements.txt +0 -2
- easycoder-260320.2/lsp/server.py +0 -557
- easycoder-260320.2/lsp/syntaxes/easycoder.configuration.json +0 -22
- easycoder-260320.2/lsp/test_server.py +0 -332
- {easycoder-260320.2 → easycoder-260322.1}/.github/copilot-instructions.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/.github/workflows/conformance-report.yml +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/.gitignore +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/.vscode/EXTENSION_GUIDE.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/.vscode/PYTHON_SETUP.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/.vscode/easycoder/README.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/.vscode/easycoder/language-configuration.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/.vscode/easycoder/package.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/.vscode/easycoder/snippets/easycoder.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/.vscode/easycoder/syntaxes/easycoder.tmLanguage.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/.vscode/launch.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/.vscode/settings.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/ARCHITECTURE.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/EASYCODER_AND_WEBSON.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/EXAMPLES.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/PROJECT_OVERVIEW.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/README.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/WORKING_RULES.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/articles/Arrays and Modules.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/examples/primes/primes.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/examples/primes/primes.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/examples/wordlist/wordlist.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/examples/wordlist/wordlist.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/log/CONTRIBUTING.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/log/DEVELOPER_RESOURCES.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/log/GRAPHICS_PHASE1.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/log/PHASE1_COMPLETION_SUMMARY.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/log/PHASE_1_3_COMPLETION_REPORT.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/log/PHASE_4_COMPLETION_REPORT.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/log/PLUGIN_PATTERNS.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/log/PROJECT_COMPLETION_SUMMARY.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/log/START_HERE.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/AI/log/SYNTAX_REFACTORING.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/LICENSE +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/README.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/RELEASE_NOTES.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/backdrop.jpg +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/basic.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/README.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/actuals-python-cli.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/ec_py_runner.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/parity-report-template.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/parity-report.generated.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/parity-report.initial.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/plugin-interface-matrix.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/run_conformance.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/runner-contract.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0001-basic-assignment.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0001-basic-assignment.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0002-arithmetic-chain.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0002-arithmetic-chain.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0003-condition-branch.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0003-condition-branch.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0004-while-sum.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0004-while-sum.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0005-array-index-access.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0005-array-index-access.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0006-and-or-conditions.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0006-and-or-conditions.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0007-includes-membership.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/EC-0007-includes-membership.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/conformance/tests/index.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/README.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/RESERVED_STEMS.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/README.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/boolean.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/empty.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/ends.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/even.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/exists.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/greater.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/hasProperty.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/includes.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/is.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/less.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/list.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/none.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/not.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/numeric.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/object.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/odd.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/starts.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/conditions/string.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/add.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/append.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/assert.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/begin.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/clear.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/close.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/create.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/debug.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/decrement.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/delete.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/divide.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/download.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/exit.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/file.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/fork.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/get.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/go.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/gosub.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/if.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/import.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/increment.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/index.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/init.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/input.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/load.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/lock.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/log.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/module.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/multiply.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/negate.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/on.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/open.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/pass.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/pop.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/post.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/print.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/push.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/put.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/read.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/release.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/replace.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/return.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/run.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/save.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/script.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/send.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/set.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/shuffle.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/split.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/stack.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/stop.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/system.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/take.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/toggle.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/trim.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/truncate.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/unlock.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/use.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/variable.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/wait.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/while.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/keywords/write.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/arg.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/args.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/cat.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/cos.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/datime.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/decode.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/element.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/elements.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/empty.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/encode.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/error.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/files.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/float.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/from.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/hash.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/index.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/integer.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/json.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/keys.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/left.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/length.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/lowercase.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/memory.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/modification.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/modulo.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/newline.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/now.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/operations.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/position.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/property.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/random.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/right.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/sin.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/stringify.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/tab.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/tan.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/timestamp.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/today.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/trim.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/type.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/uppercase.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/value.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/core/values/weekday.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/PATTERNS.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/README.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/add.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/attach.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/center.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/checkbox.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/clear.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/close.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/combobox.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/create.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/dialog.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/disable.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/enable.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/group.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/hide.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/label.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/layout.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/lineinput.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/listbox.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/messagebox.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/move.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/multiline.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/on.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/pushbutton.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/remove.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/select.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/set.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/keywords/window.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/values/attribute.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/doc/graphics/values/window.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/debugger/__init__.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/debugger/ec_dbg_value_display copy.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/debugger/ec_dbg_value_display.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/debugger/ec_dbg_watch_list copy.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/debugger/ec_dbg_watchlist.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/debugger/ec_debug.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_border.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_classes.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_compiler.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_condition.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_gclasses.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_graphics.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_handler.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_keyboard.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_psutil.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_timestamp.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/ec_value.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/icons/close.png +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/icons/exit.png +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/icons/run.png +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/icons/step.png +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/icons/stop.png +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/icons/tick.png +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/mqtt_listener.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/easycoder/mqtt_publisher.py +0 -0
- {easycoder-260320.2/lsp/syntaxes → easycoder-260322.1}/easycoder.tmLanguage.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/flash.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/images/Semoigo Dawn.jpg +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/json/graphics-demo.json +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/mqtt_listen.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/mqtt_publish.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/mqtt_test.html +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/plugins/ec_p100.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/plugins/ec_points.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/plugins/ec_sql.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/pyproject.toml +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/spec/README.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/spec/easycoder-language-contract.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/spec/easycoder-plugin-contract.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/spec/easycoder-versioning-policy.md +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/test.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testController.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testDoclets.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testServer.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/test_debug_graphics.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/test_debug_launch.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/test_init_debug.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/test_initializers.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/test_mqtt_listener.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/test_mqtt_publisher.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testdbg.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testg.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testgetconfig.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testmodules.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testmqtt.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testnewui.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testrbr.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testrc.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testrmain.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/benchmark.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/child.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/ec_mqtt.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/editor_server.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/fizzbuzz.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/hello.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/mqtt.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/mqtt_listener.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/mqtt_publisher.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/parent.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/points.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/rbr_ui.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/rbrconf.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/rbrwidgets.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/server.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/server_test.html +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/server_test.sh +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/test.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/testg.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests/tests.ecs +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/tests.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testsql.py +0 -0
- {easycoder-260320.2 → easycoder-260322.1}/testui.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: easycoder
|
|
3
|
-
Version:
|
|
3
|
+
Version: 260322.1
|
|
4
4
|
Summary: Rapid scripting in English
|
|
5
5
|
Keywords: compiler,scripting,prototyping,programming,coding,python,low code,hypertalk,computer language,learn to code
|
|
6
6
|
Author-email: Graham Trott <gtanyware@gmail.com>
|
|
@@ -2120,7 +2120,7 @@ class Core(Handler):
|
|
|
2120
2120
|
return value
|
|
2121
2121
|
return None
|
|
2122
2122
|
|
|
2123
|
-
if token in ['now', 'today', 'newline', 'tab', 'empty']:
|
|
2123
|
+
if token in ['now', 'today', 'newline', 'tab', 'empty', 'cwd']:
|
|
2124
2124
|
return value
|
|
2125
2125
|
|
|
2126
2126
|
if token in ['stringify', 'prettify', 'json', 'lowercase', 'uppercase', 'hash', 'random', float, 'integer', 'encode', 'decode']:
|
|
@@ -2291,6 +2291,9 @@ class Core(Handler):
|
|
|
2291
2291
|
token = self.nextToken()
|
|
2292
2292
|
if token in ['in', 'of']:
|
|
2293
2293
|
value.target = self.nextValue() # type: ignore
|
|
2294
|
+
if self.peek() == 'type':
|
|
2295
|
+
self.nextToken()
|
|
2296
|
+
value.filter = self.nextValue() # type: ignore
|
|
2294
2297
|
return value
|
|
2295
2298
|
return None
|
|
2296
2299
|
|
|
@@ -2361,9 +2364,13 @@ class Core(Handler):
|
|
|
2361
2364
|
return ECValue(type=str, content=json.dumps(self.program.argv))
|
|
2362
2365
|
|
|
2363
2366
|
def v_arg(self, v):
|
|
2364
|
-
index = self.textify(v
|
|
2367
|
+
index = self.textify(v.index)
|
|
2368
|
+
if not hasattr(self.program, 'argv') or self.program.argv is None:
|
|
2369
|
+
RuntimeError(self.program, 'No command-line arguments were provided')
|
|
2370
|
+
return ECValue(type=str, content='')
|
|
2365
2371
|
if index >= len(self.program.argv):
|
|
2366
|
-
RuntimeError(self.program, '
|
|
2372
|
+
RuntimeError(self.program, f'Argument index {index} out of range (only {len(self.program.argv)} args provided)')
|
|
2373
|
+
return ECValue(type=str, content='')
|
|
2367
2374
|
return ECValue(type=str, content=self.program.argv[index])
|
|
2368
2375
|
|
|
2369
2376
|
def v_bool(self, v):
|
|
@@ -2373,8 +2380,8 @@ class Core(Handler):
|
|
|
2373
2380
|
return self.v_bool(v)
|
|
2374
2381
|
|
|
2375
2382
|
def v_cos(self, v):
|
|
2376
|
-
angle = self.textify(v
|
|
2377
|
-
radius = self.textify(v
|
|
2383
|
+
angle = self.textify(v.angle)
|
|
2384
|
+
radius = self.textify(v.radius)
|
|
2378
2385
|
return ECValue(type=int, content=round(math.cos(angle * 0.01745329) * radius))
|
|
2379
2386
|
|
|
2380
2387
|
def v_count(self, v):
|
|
@@ -2453,7 +2460,13 @@ class Core(Handler):
|
|
|
2453
2460
|
|
|
2454
2461
|
def v_files(self, v):
|
|
2455
2462
|
path = self.textify(v.target)
|
|
2456
|
-
|
|
2463
|
+
filter_ext = self.textify(v.filter) if v.filter else None
|
|
2464
|
+
entries = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f))]
|
|
2465
|
+
if filter_ext:
|
|
2466
|
+
exts = {e.strip().lstrip('.') for e in filter_ext.split(',')}
|
|
2467
|
+
entries = [f for f in entries if os.path.splitext(f)[1].lstrip('.').lower() in exts]
|
|
2468
|
+
entries.sort()
|
|
2469
|
+
return ECValue(type=str, content=json.dumps(entries))
|
|
2457
2470
|
|
|
2458
2471
|
def v_float(self, v):
|
|
2459
2472
|
val = self.textify(v.getContent())
|
|
@@ -2563,7 +2576,7 @@ class Core(Handler):
|
|
|
2563
2576
|
return ECValue(type=str, content=self.program.message)
|
|
2564
2577
|
|
|
2565
2578
|
def v_modification(self, v):
|
|
2566
|
-
fileName = self.textify(v
|
|
2579
|
+
fileName = self.textify(v.fileName)
|
|
2567
2580
|
ts = int(os.stat(self.resolveLocalPath(fileName)).st_mtime)
|
|
2568
2581
|
return ECValue(type=int, content=ts)
|
|
2569
2582
|
|
|
@@ -2575,6 +2588,9 @@ class Core(Handler):
|
|
|
2575
2588
|
def v_newline(self, v):
|
|
2576
2589
|
return ECValue(type=str, content='\n')
|
|
2577
2590
|
|
|
2591
|
+
def v_cwd(self, v):
|
|
2592
|
+
return ECValue(type=str, content=os.getcwd())
|
|
2593
|
+
|
|
2578
2594
|
def v_now(self, v):
|
|
2579
2595
|
return ECValue(type=int, content=int(time.time() * 1000))
|
|
2580
2596
|
|
|
@@ -2642,8 +2658,8 @@ class Core(Handler):
|
|
|
2642
2658
|
return ECValue(type=str, content='\t')
|
|
2643
2659
|
|
|
2644
2660
|
def v_tan(self, v):
|
|
2645
|
-
angle = self.textify(v
|
|
2646
|
-
radius = self.textify(v
|
|
2661
|
+
angle = self.textify(v.angle)
|
|
2662
|
+
radius = self.textify(v.radius)
|
|
2647
2663
|
return ECValue(type=int, content=round(math.tan(angle * 0.01745329) * radius))
|
|
2648
2664
|
|
|
2649
2665
|
def v_ticker(self, v):
|
|
@@ -2673,7 +2689,7 @@ class Core(Handler):
|
|
|
2673
2689
|
|
|
2674
2690
|
def v_type(self, v):
|
|
2675
2691
|
value = ECValue(type=str)
|
|
2676
|
-
val = self.textify(v
|
|
2692
|
+
val = self.textify(v.value)
|
|
2677
2693
|
if val is None:
|
|
2678
2694
|
value.setContent('none')
|
|
2679
2695
|
elif type(val) is str:
|
|
@@ -2812,6 +2828,7 @@ class Core(Handler):
|
|
|
2812
2828
|
return condition
|
|
2813
2829
|
|
|
2814
2830
|
if token == 'includes':
|
|
2831
|
+
self.nextToken()
|
|
2815
2832
|
condition.value2 = self.nextValue() # type: ignore
|
|
2816
2833
|
return condition
|
|
2817
2834
|
|
|
@@ -210,7 +210,7 @@ class ECTopic(ECObject):
|
|
|
210
210
|
return ""
|
|
211
211
|
if v is None:
|
|
212
212
|
return ""
|
|
213
|
-
return v
|
|
213
|
+
return v.name
|
|
214
214
|
|
|
215
215
|
def getQoS(self):
|
|
216
216
|
v = self.getValue()
|
|
@@ -218,7 +218,7 @@ class ECTopic(ECObject):
|
|
|
218
218
|
return 0
|
|
219
219
|
if v is None:
|
|
220
220
|
return 0
|
|
221
|
-
return int(v
|
|
221
|
+
return int(v.qos)
|
|
222
222
|
|
|
223
223
|
def textify(self):
|
|
224
224
|
v = self.getValue()
|
|
@@ -54,10 +54,14 @@ class Program:
|
|
|
54
54
|
if arg in ['-v', '--version']: return
|
|
55
55
|
if arg[0:6] == 'debug ':
|
|
56
56
|
print('Debug mode requested')
|
|
57
|
-
|
|
57
|
+
parts = arg[6:].split()
|
|
58
|
+
self.scriptName = parts[0]
|
|
59
|
+
self.argv = parts[1:]
|
|
58
60
|
self.debugging = True
|
|
59
61
|
else:
|
|
60
|
-
|
|
62
|
+
parts = arg.split()
|
|
63
|
+
self.scriptName = parts[0]
|
|
64
|
+
self.argv = parts[1:]
|
|
61
65
|
self.debugging = False
|
|
62
66
|
|
|
63
67
|
f = open(self.scriptName, 'r')
|
|
@@ -15,6 +15,7 @@ class ECServer(ECObject):
|
|
|
15
15
|
self.response_event = threading.Event()
|
|
16
16
|
self.response_value = None
|
|
17
17
|
self.response_status = 200
|
|
18
|
+
self.response_content_type = None
|
|
18
19
|
|
|
19
20
|
def setup(self, program, port):
|
|
20
21
|
self.program = program
|
|
@@ -40,6 +41,7 @@ class ECServer(ECObject):
|
|
|
40
41
|
self.response_event.clear()
|
|
41
42
|
self.response_value = None
|
|
42
43
|
self.response_status = 200
|
|
44
|
+
self.response_content_type = None
|
|
43
45
|
|
|
44
46
|
if self.onRequestPC is not None:
|
|
45
47
|
self.program.queueIntent(self.onRequestPC)
|
|
@@ -55,6 +57,8 @@ class ECServer(ECObject):
|
|
|
55
57
|
|
|
56
58
|
bottle_response.headers['Access-Control-Allow-Origin'] = '*'
|
|
57
59
|
bottle_response.status = self.response_status
|
|
60
|
+
if self.response_content_type:
|
|
61
|
+
bottle_response.content_type = self.response_content_type
|
|
58
62
|
return self.response_value or ''
|
|
59
63
|
|
|
60
64
|
t = threading.Thread(
|
|
@@ -74,9 +78,10 @@ class ECServer(ECObject):
|
|
|
74
78
|
def getBody(self):
|
|
75
79
|
return self.current_request['body'] if self.current_request else ''
|
|
76
80
|
|
|
77
|
-
def setResponse(self, value, status=200):
|
|
81
|
+
def setResponse(self, value, status=200, content_type=None):
|
|
78
82
|
self.response_value = value
|
|
79
83
|
self.response_status = status
|
|
84
|
+
self.response_content_type = content_type
|
|
80
85
|
self.response_event.set()
|
|
81
86
|
|
|
82
87
|
###############################################################################
|
|
@@ -187,10 +192,15 @@ class Server(Handler):
|
|
|
187
192
|
self.checkObjectType(record, ECServer)
|
|
188
193
|
command['server'] = record['name']
|
|
189
194
|
command['status'] = 200
|
|
190
|
-
|
|
195
|
+
command['type'] = None
|
|
196
|
+
while self.peek() == 'with':
|
|
191
197
|
self.nextToken()
|
|
192
|
-
self.
|
|
193
|
-
|
|
198
|
+
if self.peek() == 'status':
|
|
199
|
+
self.nextToken()
|
|
200
|
+
command['status'] = self.nextValue()
|
|
201
|
+
elif self.peek() == 'type':
|
|
202
|
+
self.nextToken()
|
|
203
|
+
command['type'] = self.nextValue()
|
|
194
204
|
self.add(command)
|
|
195
205
|
return True
|
|
196
206
|
return False
|
|
@@ -200,7 +210,8 @@ class Server(Handler):
|
|
|
200
210
|
server = self.getObject(record)
|
|
201
211
|
value = self.textify(command['value'])
|
|
202
212
|
status = int(self.textify(command['status'])) if isinstance(command['status'], ECValue) else command['status']
|
|
203
|
-
|
|
213
|
+
content_type = self.textify(command['type']) if isinstance(command['type'], ECValue) else command['type']
|
|
214
|
+
server.setResponse(value, status, content_type)
|
|
204
215
|
return self.nextPC()
|
|
205
216
|
|
|
206
217
|
#############################################################################
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "0.2.0",
|
|
3
|
-
"configurations": [
|
|
4
|
-
{
|
|
5
|
-
"name": "Run EasyCoder Extension",
|
|
6
|
-
"type": "extensionHost",
|
|
7
|
-
"request": "launch",
|
|
8
|
-
"runtimeExecutable": "${execPath}",
|
|
9
|
-
"args": [
|
|
10
|
-
"--extensionDevelopmentPath=${workspaceFolder}"
|
|
11
|
-
],
|
|
12
|
-
"outFiles": [
|
|
13
|
-
"${workspaceFolder}/client/out/**/*.js"
|
|
14
|
-
],
|
|
15
|
-
"preLaunchTask": "lsp: watch",
|
|
16
|
-
"env": {
|
|
17
|
-
"EASYCODER_LSP_DEBUGPY": "1"
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"name": "Attach to EasyCoder LSP (Python)",
|
|
22
|
-
"type": "python",
|
|
23
|
-
"request": "attach",
|
|
24
|
-
"connect": {
|
|
25
|
-
"host": "127.0.0.1",
|
|
26
|
-
"port": 5678
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
],
|
|
30
|
-
"compounds": [
|
|
31
|
-
{
|
|
32
|
-
"name": "Run Extension + Attach LSP",
|
|
33
|
-
"configurations": [
|
|
34
|
-
"Run EasyCoder Extension",
|
|
35
|
-
"Attach to EasyCoder LSP (Python)"
|
|
36
|
-
]
|
|
37
|
-
}
|
|
38
|
-
]
|
|
39
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "2.0.0",
|
|
3
|
-
"tasks": [
|
|
4
|
-
{
|
|
5
|
-
"label": "lsp: compile",
|
|
6
|
-
"type": "shell",
|
|
7
|
-
"options": { "cwd": "${workspaceFolder}" },
|
|
8
|
-
"command": "npm",
|
|
9
|
-
"args": ["run", "compile"],
|
|
10
|
-
"problemMatcher": ["$tsc"]
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"label": "lsp: watch",
|
|
14
|
-
"type": "shell",
|
|
15
|
-
"options": { "cwd": "${workspaceFolder}" },
|
|
16
|
-
"command": "npm",
|
|
17
|
-
"args": ["run", "watch"],
|
|
18
|
-
"isBackground": true,
|
|
19
|
-
"problemMatcher": ["$tsc-watch"]
|
|
20
|
-
}
|
|
21
|
-
]
|
|
22
|
-
}
|