eplang 7.0.0__py3-none-any.whl

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.
Files changed (107) hide show
  1. epl/.ai_config.json +5 -0
  2. epl/__init__.py +62 -0
  3. epl/__main__.py +11 -0
  4. epl/ai.py +842 -0
  5. epl/ast_nodes.py +843 -0
  6. epl/async_io.py +275 -0
  7. epl/block_editor.py +734 -0
  8. epl/bytecode_cache.py +116 -0
  9. epl/ci_gen.py +431 -0
  10. epl/cli.py +1517 -0
  11. epl/compiler.py +2593 -0
  12. epl/concurrency.py +428 -0
  13. epl/concurrency_real.py +730 -0
  14. epl/copilot.py +941 -0
  15. epl/database.py +896 -0
  16. epl/database_real.py +848 -0
  17. epl/debugger.py +645 -0
  18. epl/deploy.py +2129 -0
  19. epl/desktop.py +966 -0
  20. epl/doc_linter.py +1196 -0
  21. epl/environment.py +150 -0
  22. epl/errors.py +482 -0
  23. epl/ffi.py +305 -0
  24. epl/formatter.py +313 -0
  25. epl/github_tools.py +77 -0
  26. epl/gui.py +360 -0
  27. epl/hot_reload.py +208 -0
  28. epl/html_gen.py +267 -0
  29. epl/interpreter.py +3242 -0
  30. epl/ios_gen.py +909 -0
  31. epl/js_transpiler.py +851 -0
  32. epl/kotlin_gen.py +2711 -0
  33. epl/lexer.py +467 -0
  34. epl/lsp_server.py +1139 -0
  35. epl/micropython_transpiler.py +501 -0
  36. epl/models/Modelfile +999 -0
  37. epl/networking.py +601 -0
  38. epl/notebook.py +634 -0
  39. epl/official_packages/epl-db/README.md +29 -0
  40. epl/official_packages/epl-db/epl.toml +9 -0
  41. epl/official_packages/epl-db/examples/basic.epl +7 -0
  42. epl/official_packages/epl-db/src/main.epl +49 -0
  43. epl/official_packages/epl-test/README.md +30 -0
  44. epl/official_packages/epl-test/epl.toml +9 -0
  45. epl/official_packages/epl-test/examples/basic.epl +7 -0
  46. epl/official_packages/epl-test/src/main.epl +60 -0
  47. epl/official_packages/epl-web/README.md +30 -0
  48. epl/official_packages/epl-web/epl.toml +9 -0
  49. epl/official_packages/epl-web/examples/basic.epl +10 -0
  50. epl/official_packages/epl-web/src/main.epl +87 -0
  51. epl/package_index.py +876 -0
  52. epl/package_manager.py +5251 -0
  53. epl/packager.py +772 -0
  54. epl/parser.py +2972 -0
  55. epl/playground.py +749 -0
  56. epl/profiler.py +495 -0
  57. epl/publisher.py +523 -0
  58. epl/python_transpiler.py +732 -0
  59. epl/registry.json +285 -0
  60. epl/registry.py +675 -0
  61. epl/registry_server.py +536 -0
  62. epl/resolver.py +588 -0
  63. epl/runtime.c +2319 -0
  64. epl/site_generator.py +1043 -0
  65. epl/stdlib/api.epl +41 -0
  66. epl/stdlib/auth.epl +53 -0
  67. epl/stdlib/collections.epl +189 -0
  68. epl/stdlib/crypto.epl +47 -0
  69. epl/stdlib/datetime.epl +85 -0
  70. epl/stdlib/encoding.epl +49 -0
  71. epl/stdlib/functional.epl +86 -0
  72. epl/stdlib/html.epl +45 -0
  73. epl/stdlib/http.epl +62 -0
  74. epl/stdlib/io.epl +71 -0
  75. epl/stdlib/json.epl +26 -0
  76. epl/stdlib/math.epl +168 -0
  77. epl/stdlib/net.epl +75 -0
  78. epl/stdlib/os.epl +70 -0
  79. epl/stdlib/regex.epl +38 -0
  80. epl/stdlib/registry.json +90 -0
  81. epl/stdlib/sql.epl +66 -0
  82. epl/stdlib/string.epl +121 -0
  83. epl/stdlib/template.epl +29 -0
  84. epl/stdlib/testing.epl +104 -0
  85. epl/stdlib/web.epl +139 -0
  86. epl/stdlib/websocket.epl +57 -0
  87. epl/stdlib.py +9482 -0
  88. epl/store_backends.py +538 -0
  89. epl/templates/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  90. epl/templates/android/gradlew +248 -0
  91. epl/templates/android/gradlew.bat +92 -0
  92. epl/test_framework.py +748 -0
  93. epl/tokens.py +499 -0
  94. epl/type_checker.py +679 -0
  95. epl/type_system.py +867 -0
  96. epl/vm.py +3046 -0
  97. epl/wasm_web.py +1248 -0
  98. epl/web.py +2993 -0
  99. epl/workspace.py +433 -0
  100. epl/wsgi.py +566 -0
  101. eplang-7.0.0.dist-info/METADATA +1569 -0
  102. eplang-7.0.0.dist-info/RECORD +107 -0
  103. eplang-7.0.0.dist-info/WHEEL +5 -0
  104. eplang-7.0.0.dist-info/entry_points.txt +2 -0
  105. eplang-7.0.0.dist-info/licenses/LICENSE +21 -0
  106. eplang-7.0.0.dist-info/top_level.txt +3 -0
  107. main.py +2647 -0
epl/.ai_config.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "provider": "groq",
3
+ "api_key": "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",
4
+ "model": null
5
+ }
epl/__init__.py ADDED
@@ -0,0 +1,62 @@
1
+ """
2
+ EPL - English Programming Language v7.0
3
+ A production-ready independent programming language with English syntax.
4
+
5
+ Phase 6: Mobile & Desktop (Build Apps with UIs)
6
+ - 6a Desktop GUI: Compose Multiplatform Desktop apps with native packaging (MSI/DMG/DEB/RPM)
7
+ - 6b Android: Enhanced Jetpack Compose + Views, Room DB, Retrofit, Navigation, APK build
8
+ - 6c Web Apps: Browser-ready SPAs via JS transpilation, WASM+JS glue, Kotlin/JS, PWA support
9
+
10
+ Targets: Bytecode VM (default), Interpreter, LLVM Native, JavaScript, Node.js,
11
+ Kotlin/Android, MicroPython/IoT, Desktop (Compose), Web (JS/WASM/Kotlin-JS)
12
+ Features: Web Framework, GUI, Package Manager, ORM, Debugger, LSP, Testing,
13
+ AI Assistant, C FFI, Desktop Apps, Mobile Apps, Web SPAs
14
+ """
15
+
16
+ from __future__ import annotations
17
+
18
+ from importlib import import_module
19
+ from typing import TYPE_CHECKING, Any
20
+
21
+ __version__ = "7.0.0"
22
+ __author__ = "EPL Team"
23
+
24
+ if TYPE_CHECKING:
25
+ from epl.environment import Environment
26
+ from epl.errors import EPLError
27
+ from epl.interpreter import Interpreter
28
+ from epl.lexer import Lexer
29
+ from epl.parser import Parser
30
+
31
+ _LAZY_EXPORTS = {
32
+ "Lexer": ("epl.lexer", "Lexer"),
33
+ "Parser": ("epl.parser", "Parser"),
34
+ "Interpreter": ("epl.interpreter", "Interpreter"),
35
+ "Environment": ("epl.environment", "Environment"),
36
+ "EPLError": ("epl.errors", "EPLError"),
37
+ }
38
+
39
+ __all__ = [
40
+ "__version__",
41
+ "__author__",
42
+ "Lexer",
43
+ "Parser",
44
+ "Interpreter",
45
+ "Environment",
46
+ "EPLError",
47
+ ]
48
+
49
+
50
+ def __getattr__(name: str) -> Any:
51
+ """Keep package import lightweight while preserving the public API."""
52
+ try:
53
+ module_name, attr_name = _LAZY_EXPORTS[name]
54
+ except KeyError as exc:
55
+ raise AttributeError(f"module 'epl' has no attribute {name!r}") from exc
56
+ value = getattr(import_module(module_name), attr_name)
57
+ globals()[name] = value
58
+ return value
59
+
60
+
61
+ def __dir__() -> list[str]:
62
+ return sorted(set(globals()) | set(_LAZY_EXPORTS))
epl/__main__.py ADDED
@@ -0,0 +1,11 @@
1
+ """Allow running EPL as `python -m epl <file.epl>` or `epl <file.epl>`."""
2
+ import sys
3
+ import os
4
+
5
+ # Ensure project root is on path
6
+ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
7
+
8
+ from epl.cli import main
9
+
10
+ if __name__ == "__main__":
11
+ main()