Browse Source

Merge pull request #548 from Avaiga/feature/#547-remove-src-folder

feature/#547 removed src folder
Toan Quach 1 năm trước cách đây
mục cha
commit
08e5fab588
100 tập tin đã thay đổi với 513 bổ sung386 xóa
  1. 4 5
      .github/sync.yml
  2. 2 2
      .github/workflows/linter.yml
  3. 3 19
      .github/workflows/packaging.yml
  4. 3 3
      .github/workflows/publish.yml
  5. 6 6
      .github/workflows/release-dev.yml
  6. 5 2
      .github/workflows/release.yml
  7. 9 0
      .github/workflows/tests.yml
  8. 18 3
      MANIFEST.in
  9. 55 6
      Pipfile
  10. 2 2
      doc/gui/extension/README.md
  11. 0 1
      frontend/taipy-gui/dom/package-lock.json
  12. 349 202
      frontend/taipy-gui/package-lock.json
  13. 1 1
      frontend/taipy-gui/webpack.config.js
  14. 6 2
      frontend/taipy/package-lock.json
  15. 1 1
      frontend/taipy/webpack.config.js
  16. 0 0
      pytest.ini
  17. 43 34
      setup.py
  18. 0 2
      src/taipy/config/MANIFEST.in
  19. 0 0
      src/taipy/config/global_app/__init__.py
  20. 0 11
      src/taipy/config/version.py
  21. 0 2
      src/taipy/core/MANIFEST.in
  22. 0 4
      src/taipy/gui/MANIFEST.in
  23. 0 1
      src/taipy/templates/MANIFEST.in
  24. 0 9
      src/taipy/templates/default/hooks/pre_gen_project.py
  25. 0 1
      src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/algorithms/__init__.py
  26. 0 1
      src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/configuration/__init__.py
  27. 0 1
      src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/pages/__init__.py
  28. 0 10
      src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/pages/page_example/page_example.py
  29. 0 10
      src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/pages/root.py
  30. 0 0
      src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/{{cookiecutter.__main_file}}.py
  31. 0 1
      src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/algos/__init__.py
  32. 0 3
      src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/algos/algos.py
  33. 0 0
      src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/config/__init__.py
  34. 0 6
      src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/config/config_with_toml.py
  35. 0 2
      src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/__init__.py
  36. 0 1
      src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/job_page/__init__.py
  37. 0 3
      src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/job_page/job_page.py
  38. 0 7
      src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/root.py
  39. 0 1
      src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/scenario_page/__init__.py
  40. 0 19
      src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/scenario_page/scenario_page.py
  41. 0 0
      taipy/__init__.py
  42. 0 0
      taipy/_cli/__init__.py
  43. 0 0
      taipy/_cli/_base_cli/__init__.py
  44. 0 0
      taipy/_cli/_base_cli/_cli.py
  45. 0 0
      taipy/_cli/_help_cli.py
  46. 0 0
      taipy/_cli/_run_cli.py
  47. 0 0
      taipy/_cli/_scaffold_cli.py
  48. 0 0
      taipy/_entrypoint.py
  49. 0 0
      taipy/_run.py
  50. 0 0
      taipy/config/.coveragerc
  51. 0 0
      taipy/config/.editorconfig
  52. 0 0
      taipy/config/.flake8
  53. 0 0
      taipy/config/.gitattributes
  54. 0 0
      taipy/config/.github/ISSUE_TEMPLATE.md
  55. 0 0
      taipy/config/.github/ISSUE_TEMPLATE/bug_report.md
  56. 0 0
      taipy/config/.github/ISSUE_TEMPLATE/feature-improvement.md
  57. 0 0
      taipy/config/.github/ISSUE_TEMPLATE/new-feature.md
  58. 0 0
      taipy/config/.github/workflows/codeql-analysis.yml
  59. 0 0
      taipy/config/.github/workflows/coverage.yml
  60. 0 0
      taipy/config/.github/workflows/generate_pyi.yml
  61. 0 0
      taipy/config/.github/workflows/publish.yml
  62. 0 0
      taipy/config/.github/workflows/release-dev.yml
  63. 0 0
      taipy/config/.github/workflows/release.yml
  64. 0 0
      taipy/config/.github/workflows/setuptools.yml
  65. 0 0
      taipy/config/.github/workflows/tests.yml
  66. 0 0
      taipy/config/.gitignore
  67. 0 0
      taipy/config/.isort.cfg
  68. 0 0
      taipy/config/.license-header
  69. 0 0
      taipy/config/.pre-commit-config.yaml
  70. 0 0
      taipy/config/CODE_OF_CONDUCT.md
  71. 0 0
      taipy/config/CONTRIBUTING.md
  72. 0 0
      taipy/config/INSTALLATION.md
  73. 0 0
      taipy/config/LICENSE
  74. 2 0
      taipy/config/MANIFEST.in
  75. 0 0
      taipy/config/Pipfile
  76. 2 2
      taipy/config/README.md
  77. 2 0
      taipy/config/__init__.py
  78. 0 0
      taipy/config/_config.py
  79. 0 0
      taipy/config/_config_comparator/__init__.py
  80. 0 0
      taipy/config/_config_comparator/_comparator_result.py
  81. 0 0
      taipy/config/_config_comparator/_config_comparator.py
  82. 0 0
      taipy/config/_init.py
  83. 0 0
      taipy/config/_serializer/__init__.py
  84. 0 0
      taipy/config/_serializer/_base_serializer.py
  85. 0 0
      taipy/config/_serializer/_json_serializer.py
  86. 0 0
      taipy/config/_serializer/_toml_serializer.py
  87. 0 0
      taipy/config/checker/__init__.py
  88. 0 0
      taipy/config/checker/_checker.py
  89. 0 0
      taipy/config/checker/_checkers/__init__.py
  90. 0 0
      taipy/config/checker/_checkers/_auth_config_checker.py
  91. 0 0
      taipy/config/checker/_checkers/_config_checker.py
  92. 0 0
      taipy/config/checker/issue.py
  93. 0 0
      taipy/config/checker/issue_collector.py
  94. 0 0
      taipy/config/common/__init__.py
  95. 0 0
      taipy/config/common/_classproperty.py
  96. 0 0
      taipy/config/common/_config_blocker.py
  97. 0 0
      taipy/config/common/_repr_enum.py
  98. 0 0
      taipy/config/common/_template_handler.py
  99. 0 0
      taipy/config/common/_validate_id.py
  100. 0 0
      taipy/config/common/frequency.py

+ 4 - 5
.github/sync.yml

@@ -4,8 +4,8 @@ group:
     Avaiga/taipy-core
     Avaiga/taipy-gui
     Avaiga/taipy-rest
-    
-  files: 
+
+  files:
     - .flake8
     - .gitattributes
     - .license-header
@@ -14,7 +14,6 @@ group:
     - LICENSE
     - mypy.ini
     - pyproject.toml
-    - src/taipy/__init__.py
+    - taipy/__init__.py
     # - .isort.cfg
-    # - src/__init__.py
-    
+    # - __init__.py

+ 2 - 2
.github/workflows/linter.yml

@@ -21,7 +21,7 @@ jobs:
           use-pylint: false
           use-isort: false
           use-mypy: false
-          extra-black-options: "--line-length=120"
+          extra-black-options: "--line-length=120 --diff"
           extra-pycodestyle-options: "--max-line-length=120  --exclude=tests/gui --ignore=E121,E123,E126,E226,E24,E704,W503,W504,E203"
-          extra-mypy-options: "--ignore-missing-imports --implicit-optional --no-namespace-packages --exclude (src/taipy/templates/|generate_pyi.py) --follow-imports skip"
+          extra-mypy-options: "--ignore-missing-imports --implicit-optional --no-namespace-packages --exclude (taipy/templates/|generate_pyi.py) --follow-imports skip"
           extra-isort-options: "--line-length=120 --force-grid-wrap=10 --multi-line=VERTICAL_HANGING_INDENT --trailing-comma"

+ 3 - 19
.github/workflows/packaging.yml

@@ -28,30 +28,14 @@ jobs:
         with:
           python-version: ${{ matrix.python-versions }}
 
-      - name: Get taipy-gui version from setup.py
-        id: taipy_gui_version
+      - name: Build frontends
         run: |
-          echo """
-          with open('setup.py') as f:
-              for line in f:
-                  if 'taipy-gui' in line:
-                      start = line.find('taipy-gui')
-                      end = line.rstrip().find('\",')
-                      print(f'VERSION={line[start:end]}')
-                      break
-          """ > ${{ runner.temp }}/get_gui_version.py
-          python ${{ runner.temp }}/get_gui_version.py >> $GITHUB_OUTPUT
-
-      - name: Install dependencies
-        run: |
-          python -m pip install --upgrade pip
-          # install taipy-gui from based on setup.py version
-          pip install "${{ steps.taipy_gui_version.outputs.VERSION }}"
+          python tools/frontend/bundle_build.py
 
       - name: Install Taipy without dependencies
         run: |
           pip install .
-          rm -rf src
+          rm -rf taipy
 
           python -c "import taipy as tp; tp.Scenario"
           python -c "import taipy as tp; tp.gui"

+ 3 - 3
.github/workflows/publish.yml

@@ -25,7 +25,7 @@ jobs:
         run: |
           echo """
           import json, sys, os
-          with open(f\"src{os.sep}taipy{os.sep}version.json\") as version_file:
+          with open(f\"taipy{os.sep}version.json\") as version_file:
             version_o = json.load(version_file)
           version = f'{version_o.get(\"major\")}.{version_o.get(\"minor\")}.{version_o.get(\"patch\")}'
           if vext := version_o.get(\"ext\"):
@@ -87,12 +87,12 @@ jobs:
       - name: Prepare tests on unix
         if: matrix.os != 'windows-latest'
         run: |
-          rm -rf src
+          rm -rf taipy
 
       - name: Prepare tests on windows
         if: matrix.os == 'windows-latest'
         run: |
-          rmdir -Recurse -Force src
+          rmdir -Recurse -Force taipy
 
       - name: Install and test package
         run: |

+ 6 - 6
.github/workflows/release-dev.yml

@@ -31,7 +31,7 @@ jobs:
           echo """
           import json, sys, os
           SUFFIX = 'dev'
-          with open(f\"src{os.sep}taipy{os.sep}version.json\") as version_file:
+          with open(f\"taipy{os.sep}version.json\") as version_file:
               version_o = json.load(version_file)
           version = f'{version_o.get(\"major\")}.{version_o.get(\"minor\")}.{version_o.get(\"patch\")}'
           if vext := version_o.get(\"ext\"):
@@ -46,7 +46,7 @@ jobs:
         run: |
           echo """
           import json, os
-          with open(f\"src{os.sep}taipy{os.sep}version.json\") as version_file:
+          with open(f\"taipy{os.sep}version.json\") as version_file:
               version_o = json.load(version_file)
           version = f'{version_o.get(\"major\")}.{version_o.get(\"minor\")}.{version_o.get(\"patch\")}'
           if vext := version_o.get(\"ext\"):
@@ -149,17 +149,17 @@ jobs:
         run: |
           echo """
           import json, os
-          with open(f'src{os.sep}taipy{os.sep}version.json') as version_file:
+          with open(f'taipy{os.sep}version.json') as version_file:
               version_o = json.load(version_file)
               if version_o is None or 'dev' not in version_o['ext']:
                   raise ValueError('Invalid version file. Version must contain dev suffix.')
               prev_version = version_o['ext']
               new_version = 'dev' + str(int(version_o['ext'].replace('dev', '')) + 1)
-              with open(f'src{os.sep}taipy{os.sep}version.json') as r:
+              with open(f'taipy{os.sep}version.json') as r:
                   text = r.read().replace(prev_version, new_version)
-              with open(f'src{os.sep}taipy{os.sep}version.json', mode='w') as w:
+              with open(f'taipy{os.sep}version.json', mode='w') as w:
                   w.write(text)
-              with open(f\"src{os.sep}taipy{os.sep}version.json\") as version_file:
+              with open(f\"taipy{os.sep}version.json\") as version_file:
                   version_o = json.load(version_file)
               version = f'{version_o.get(\"major\")}.{version_o.get(\"minor\")}.{version_o.get(\"patch\")}'
               if vext := version_o.get(\"ext\"):

+ 5 - 2
.github/workflows/release.yml

@@ -16,6 +16,9 @@ jobs:
       - uses: actions/setup-python@v4
         with:
           python-version: 3.11
+      - uses: actions/setup-node@v4
+        with:
+          node-version: '20'
 
       - name: Extract branch name
         shell: bash
@@ -26,7 +29,7 @@ jobs:
         run: |
           echo """
           import json, sys, os
-          with open(f\"src{os.sep}taipy{os.sep}version.json\") as version_file:
+          with open(f\"taipy{os.sep}version.json\") as version_file:
               version_o = json.load(version_file)
           version = f'{version_o.get(\"major\")}.{version_o.get(\"minor\")}.{version_o.get(\"patch\")}'
           if vext := version_o.get(\"ext\"):
@@ -40,7 +43,7 @@ jobs:
         run: |
           echo """
           import json, sys, os
-          with open(f\"src{os.sep}taipy{os.sep}version.json\") as version_file:
+          with open(f\"taipy{os.sep}version.json\") as version_file:
               version = json.load(version_file)
           if f'release/{version.get(\"major\")}.{version.get(\"minor\")}' != sys.argv[1]:
               raise ValueError(f'Branch name mismatch: release/{version.get(\"major\")}.{version.get(\"minor\")} != {sys.argv[1]}')

+ 9 - 0
.github/workflows/tests.yml

@@ -21,8 +21,17 @@ jobs:
       - uses: actions/setup-python@v4
         with:
           python-version: ${{ matrix.python-versions }}
+      - uses: actions/setup-node@v4
+        with:
+          node-version: '20'
+
+
+      - name: install libmagic on macos
+        if: matrix.os == 'macos-latest'
+        run: brew install libmagic
 
       - name: Tests
+        if: matrix.os != 'windows-latest' || matrix.python-versions != '3.8'
         run: |
           pip install tox
           tox -e tests

+ 18 - 3
MANIFEST.in

@@ -1,3 +1,18 @@
-include src/taipy/*.json
-include src/taipy/gui_core/*.json
-include src/taipy/gui_core/lib/*.js
+include taipy/*.json
+include taipy/gui_core/*.json
+include taipy/gui_core/lib/*.js
+
+include taipy/config/*.pyi
+include taipy/config/*.json
+
+include taipy/core/*.json
+include taipy/core/config/*.json
+
+recursive-include taipy/gui/webapp *
+include taipy/gui/version.json
+include taipy/gui/viselements.json
+include taipy/gui/*.pyi
+
+include taipy/rest/*.json
+
+recursive-include taipy/templates *

+ 55 - 6
Pipfile

@@ -4,26 +4,75 @@ verify_ssl = true
 name = "pypi"
 
 [packages]
+apispec = {extras = ["yaml"], version = "==6.3"}
+apispec-webframeworks = "==0.5.2"
 "backports.zoneinfo" = {version="==0.2.1", markers="python_version < '3.9'", extras=["tzdata"]}
 cookiecutter = "==2.1.1"
-taipy-gui = {ref = "develop", git = "https://github.com/avaiga/taipy-gui.git"}
-taipy-rest = {ref = "develop", git = "https://github.com/avaiga/taipy-rest.git"}
-taipy-templates = {ref = "develop", git = "https://github.com/avaiga/taipy-templates.git"}
+deepdiff = "==6.2.2"
+flask = "==3.0.0"
+flask-cors = "==4.0.0"
+flask-socketio = "==5.3.6"
+Flask-RESTful = ">=0.3.9"
+gevent = "==23.7.0"
+gevent-websocket = "==0.10.1"
+gitignore-parser = "==0.1.1"
+kthread = "==0.2.3"
+markdown = "==3.4.4"
+marshmallow = "==3.20.1"
+modin = {extras = ["dask"], version = "==0.23.0"}
+networkx = "==2.6"
+openpyxl = "==3.1.2"
+pandas = "==2.0.0"
+pyarrow = "==10.0.1"
+pymongo = {extras = ["srv"], version = "==4.2.0"}
+python-dotenv = "==1.0.0"
+python-magic = {version = "==0.4.24", markers="sys_platform != 'win32'"}
+python-magic-bin = {version = "==0.4.14", markers="sys_platform == 'win32'"}
+pytz = "==2021.3"
+simple-websocket = "==0.10.1"
+sqlalchemy = "==2.0.16"
+toml = "==0.10"
+twisted = "==23.8.0"
+tzlocal = "==3.0"
 
 [dev-packages]
 autopep8 = "*"
 black = "*"
 flake8 = "*"
 flake8-docstrings = "*"
+ipython = "*"
+ipykernel = "*"
 isort = "*"
+mkdocs = "*"
+mkdocs-autorefs = "*"
+mkdocs-include-markdown-plugin = "*"
+mkdocs-macros-plugin = "*"
+mkdocs-material = "==7.3.0"
+mkdocs-material-extensions = "*"
+mkdocstrings = "*"
+mongomock = "*"
 mypy = "*"
+requests = "*"
+pandas-stubs = "*"
+playwright = "*"
 pre-commit = "*"
+pyopenssl = "*"
 pytest = "*"
-tox = "*"
-types-python-dateutil = "*"
-mongomock = "*"
+pytest-cov = "*"
 pytest-mock = "*"
+pytest-playwright = "*"
+pytest-timeout = "*"
+python-dotenv = "*"
 testbook = "*"
+tox = "*"
+twine = "*"
+types-flask = "*"
+types-Flask-Cors = "*"
+types-Markdown = "*"
+types-python-dateutil = "*"
+types-pytz = "*"
+types-toml = ">=0.10.0"
+types-tzlocal = "*"
 
 [requires]
 python_version = "3"

+ 2 - 2
doc/gui/extension/README.md

@@ -56,8 +56,8 @@ the Taipy GUI installation:
 - If you build from a local copy (a clone, for example) of the
   [`taipy-gui` repository](https://github.com/Avaiga/taipy-gui/),
   this variable should be set to the path of the directory two levels above the directory where this
-  README file is located, then down to the "src" directory (i.e., the result of the Unix command
-  "``readlink -f `pwd`/../../src``").
+  README file is located, then down to the "taipy" directory (i.e., the result of the Unix command
+  "``readlink -f `pwd`/../../taipy``").
 - If you are building this extension library example from an installation of Taipy GUI, you can
   get that location issuing the command `pip show taipy-gui`.
 

+ 0 - 1
frontend/taipy-gui/dom/package-lock.json

@@ -14,7 +14,6 @@
       }
     },
     "../packaging": {
-      "name": "taipy-gui",
       "version": "3.1.0"
     },
     "node_modules/js-tokens": {

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 349 - 202
frontend/taipy-gui/package-lock.json


+ 1 - 1
frontend/taipy-gui/webpack.config.js

@@ -28,7 +28,7 @@ const taipyBundle = "taipy-gui"
 const reactBundleName = "TaipyGuiDependencies"
 const taipyBundleName = "TaipyGui"
 
-const basePath = "../../src/taipy/gui/webapp";
+const basePath = "../../taipy/gui/webapp";
 const webAppPath = resolveApp(basePath);
 const reactManifestPath = resolveApp(basePath + "/" + reactBundle + "-manifest.json");
 const reactDllPath = resolveApp(basePath + "/" + reactBundle + ".dll.js")

+ 6 - 2
frontend/taipy/package-lock.json

@@ -21,7 +21,7 @@
         "formik": "^2.2.9",
         "react": "^18.2.0",
         "react-dom": "^18.2.0",
-        "taipy-gui": "file:../../../.virtualenvs/taipy-OW_uNObx/Lib/site-packages/taipy/gui/webapp"
+        "taipy-gui": "file:../../taipy/gui/webapp"
       },
       "devDependencies": {
         "@types/react": "^18.0.15",
@@ -42,6 +42,10 @@
     },
     "../../../.virtualenvs/taipy-OW_uNObx/Lib/site-packages/taipy/gui/webapp": {
       "name": "taipy-gui",
+      "version": "3.1.0",
+      "extraneous": true
+    },
+    "../../taipy/gui/webapp": {
       "version": "3.1.0"
     },
     "node_modules/@aashutoshrathi/word-wrap": {
@@ -4915,7 +4919,7 @@
       }
     },
     "node_modules/taipy-gui": {
-      "resolved": "../../../.virtualenvs/taipy-OW_uNObx/Lib/site-packages/taipy/gui/webapp",
+      "resolved": "../../taipy/gui/webapp",
       "link": true
     },
     "node_modules/tapable": {

+ 1 - 1
frontend/taipy/webpack.config.js

@@ -22,7 +22,7 @@ module.exports = (_env, options) => {
         entry: ["./src/index.ts"],
         output: {
             filename: "taipy-gui-core.js",
-            path: path.resolve(__dirname, "../../src/taipy/gui_core/lib"),
+            path: path.resolve(__dirname, "../../taipy/gui_core/lib"),
             library: {
                 // Camel case transformation of the library name "example"
                 name: "TaipyGuiCore",

+ 0 - 0
src/taipy/gui/pytest.ini → pytest.ini


+ 43 - 34
setup.py

@@ -13,18 +13,17 @@
 
 
 import json
-import os
-import sysconfig
-from importlib.util import find_spec
+import subprocess
 from pathlib import Path
 
-from setuptools import find_namespace_packages, find_packages, setup
+from setuptools import find_packages, setup
 from setuptools.command.build_py import build_py
 
-with open("README.md", "rb") as readme_file:
-    readme = readme_file.read().decode("UTF-8")
+root_folder = Path(__file__).parent
 
-with open(f"src{os.sep}taipy{os.sep}version.json") as version_file:
+readme = Path(root_folder / "README.md").read_text("UTF-8")
+
+with open(root_folder / "taipy" / "version.json") as version_file:
     version = json.load(version_file)
     version_string = f'{version.get("major", 0)}.{version.get("minor", 0)}.{version.get("patch", 0)}'
     if vext := version.get("ext"):
@@ -33,11 +32,42 @@ with open(f"src{os.sep}taipy{os.sep}version.json") as version_file:
 requirements = [
     "backports.zoneinfo>=0.2.1,<0.3;python_version<'3.9'",
     "cookiecutter>=2.1.1,<2.2",
-    "taipy-gui@git+https://git@github.com/Avaiga/taipy-gui.git@develop",
-    "taipy-rest@git+https://git@github.com/Avaiga/taipy-rest.git@develop",
-    "taipy-templates@git+https://git@github.com/Avaiga/taipy-templates.git@develop",
+    "toml>=0.10,<0.11",
+    "deepdiff>=6.2,<6.3",
+    "pyarrow>=10.0.1,<11.0",
+    "networkx>=2.6,<3.0",
+    "openpyxl>=3.1.2,<3.2",
+    "modin[dask]>=0.23.0,<1.0",
+    "pymongo[srv]>=4.2.0,<5.0",
+    "sqlalchemy>=2.0.16,<2.1",
+    "flask>=3.0.0,<3.1",
+    "flask-cors>=4.0.0,<5.0",
+    "flask-socketio>=5.3.6,<6.0",
+    "markdown>=3.4.4,<4.0",
+    "pandas>=2.0.0,<3.0",
+    "python-dotenv>=1.0.0,<1.1",
+    "pytz>=2021.3,<2022.2",
+    "tzlocal>=3.0,<5.0",
+    "backports.zoneinfo>=0.2.1,<0.3;python_version<'3.9'",
+    "gevent>=23.7.0,<24.0",
+    "gevent-websocket>=0.10.1,<0.11",
+    "kthread>=0.2.3,<0.3",
+    "gitignore-parser>=0.1,<0.2",
+    "simple-websocket>=0.10.1,<1.0",
+    "twisted>=23.8.0,<24.0",
+    "flask-restful>=0.3.9,<0.4",
+    "passlib>=1.7.4,<1.8",
+    "marshmallow>=3.20.1,<3.30",
+    "apispec[yaml]>=6.3,<7.0",
+    "apispec-webframeworks>=0.5.2,<0.6",
 ]
 
+
+def get_requirements():
+    # TODO get requirements from the different setups in tools/packages (removing taipy packages)
+    return requirements
+
+
 test_requirements = ["pytest>=3.8"]
 
 extras_require = {
@@ -52,29 +82,9 @@ extras_require = {
 }
 
 
-def _build_webapp():
-    already_exists = Path("./src/taipy/gui_core/lib/taipy-gui-core.js").exists()
-    if not already_exists:
-        # default site-packages path is from the current python interpreter
-        site_packages_path = sysconfig.get_path("purelib")
-        # taipy-gui should be available through setup_requires option
-        # taipy-gui at this step is installed in a backend site-packages separated from the one being used by pip
-        if find_spec("taipy") and find_spec("taipy.gui"):
-            import taipy
-
-            site_packages_path = Path(taipy.__file__).absolute().parent.parent
-
-        # Specify the correct path to taipy-gui in gui/.env file
-        env_file_path = Path(__file__).absolute().parent / "frontend" / "taipy" / ".env"
-        if not os.path.exists(env_file_path):
-            with open(env_file_path, "w") as env_file:
-                env_file.write(f"TAIPY_GUI_DIR={site_packages_path}\n")
-        os.system("cd frontend/taipy && npm ci && npm run build")
-
-
 class NPMInstall(build_py):
     def run(self):
-        _build_webapp()
+        subprocess.run(["python", "bundle_build.py"], cwd=root_folder / "tools" / "frontend", check=True, shell=True)
         build_py.run(self)
 
 
@@ -93,7 +103,7 @@ setup(
         "Programming Language :: Python :: 3.11",
     ],
     description="A 360° open-source platform from Python pilots to production-ready web apps.",
-    install_requires=requirements,
+    install_requires=get_requirements(),
     entry_points={
         "console_scripts": [
             "taipy = taipy._entrypoint:_entrypoint",
@@ -104,8 +114,7 @@ setup(
     long_description_content_type="text/markdown",
     keywords="taipy",
     name="taipy",
-    package_dir={"": "src"},
-    packages=find_namespace_packages(where="src") + find_packages(include=["taipy"]),
+    packages=find_packages(include=["taipy", "taipy.*"]),
     include_package_data=True,
     test_suite="tests",
     url="https://github.com/avaiga/taipy",

+ 0 - 2
src/taipy/config/MANIFEST.in

@@ -1,2 +0,0 @@
-include src/taipy/config/*.pyi
-include src/taipy/config/*.json

+ 0 - 0
src/taipy/config/global_app/__init__.py


+ 0 - 11
src/taipy/config/version.py

@@ -1,11 +0,0 @@
-import json
-import os
-
-
-def _get_version():
-    with open(f"{os.path.dirname(os.path.abspath(__file__))}{os.sep}version.json") as version_file:
-        version = json.load(version_file)
-        version_string = f'{version.get("major", 0)}.{version.get("minor", 0)}.{version.get("patch", 0)}'
-        if vext := version.get("ext"):
-            version_string = f"{version_string}.{vext}"
-    return version_string

+ 0 - 2
src/taipy/core/MANIFEST.in

@@ -1,2 +0,0 @@
-include src/taipy/core/*.json
-include src/taipy/core/config/*.json

+ 0 - 4
src/taipy/gui/MANIFEST.in

@@ -1,4 +0,0 @@
-recursive-include src/taipy/gui/webapp *
-include src/taipy/gui/version.json
-include src/taipy/gui/viselements.json
-include src/taipy/gui/*.pyi

+ 0 - 1
src/taipy/templates/MANIFEST.in

@@ -1 +0,0 @@
-recursive-include src/taipy/templates *

+ 0 - 9
src/taipy/templates/default/hooks/pre_gen_project.py

@@ -1,9 +0,0 @@
-import sys
-
-pages = "{{ cookiecutter.__pages }}".split(" ")
-# Remove empty string from pages list
-pages = [page for page in pages if page != ""]
-
-for page in pages:
-    if not page.isidentifier():
-        sys.exit(f'Page name "{page}" is not a valid Python identifier. Please choose another name.')

+ 0 - 1
src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/algorithms/__init__.py

@@ -1 +0,0 @@
-from algorithms import *

+ 0 - 1
src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/configuration/__init__.py

@@ -1 +0,0 @@
-from .config import *

+ 0 - 1
src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/pages/__init__.py

@@ -1 +0,0 @@
-from .root import root_page

+ 0 - 10
src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/pages/page_example/page_example.py

@@ -1,10 +0,0 @@
-"""
-A page of the application.
-Page content is imported from the page_example.md file.
-
-Please refer to https://docs.taipy.io/en/latest/manuals/gui/pages for more details.
-"""
-
-from taipy.gui import Markdown
-
-page_example = Markdown("pages/page_example/page_example.md")

+ 0 - 10
src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/pages/root.py

@@ -1,10 +0,0 @@
-"""
-The root page of the application.
-Page content is imported from the root.md file.
-
-Please refer to https://docs.taipy.io/en/latest/manuals/gui/pages for more details.
-"""
-
-from taipy.gui import Markdown
-
-root_page = Markdown("pages/root.md")

+ 0 - 0
src/taipy/templates/default/{{cookiecutter.__root_folder_name}}/{{cookiecutter.__main_file}}.py


+ 0 - 1
src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/algos/__init__.py

@@ -1 +0,0 @@
-from .algos import clean_data

+ 0 - 3
src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/algos/algos.py

@@ -1,3 +0,0 @@
-def clean_data(df, replacement_type):
-    df = df.fillna(replacement_type)
-    return df

+ 0 - 0
src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/config/__init__.py


+ 0 - 6
src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/config/config_with_toml.py

@@ -1,6 +0,0 @@
-from taipy import Config
-
-
-def configure():
-    Config.load("config/config.toml")
-    return Config.scenarios["scenario_configuration"]

+ 0 - 2
src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/__init__.py

@@ -1,2 +0,0 @@
-from .job_page import job_page
-from .scenario_page import scenario_page

+ 0 - 1
src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/job_page/__init__.py

@@ -1 +0,0 @@
-from .job_page import job_page

+ 0 - 3
src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/job_page/job_page.py

@@ -1,3 +0,0 @@
-from taipy.gui import Markdown
-
-job_page = Markdown("pages/job_page/job_page.md")

+ 0 - 7
src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/root.py

@@ -1,7 +0,0 @@
-from taipy.gui import Markdown
-
-selected_scenario = None
-selected_data_node = None
-content = ""
-
-root = Markdown("pages/root.md")

+ 0 - 1
src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/scenario_page/__init__.py

@@ -1 +0,0 @@
-from .scenario_page import scenario_page

+ 0 - 19
src/taipy/templates/scenario-management/{{cookiecutter.__root_folder_name}}/pages/scenario_page/scenario_page.py

@@ -1,19 +0,0 @@
-from taipy.gui import Markdown, notify
-
-from .data_node_management import manage_partial
-
-
-def notify_on_submission(state, submitable, details):
-    if details["submission_status"] == "COMPLETED":
-        notify(state, "success", "Submision completed!")
-    elif details["submission_status"] == "FAILED":
-        notify(state, "error", "Submission failed!")
-    else:
-        notify(state, "info", "In progress...")
-
-
-def manage_data_node_partial(state):
-    manage_partial(state)
-
-
-scenario_page = Markdown("pages/scenario_page/scenario_page.md")

+ 0 - 0
src/taipy/__init__.py → taipy/__init__.py


+ 0 - 0
src/__init__.py → taipy/_cli/__init__.py


+ 0 - 0
src/taipy/_cli/_base_cli/__init__.py → taipy/_cli/_base_cli/__init__.py


+ 0 - 0
src/taipy/_cli/_base_cli/_cli.py → taipy/_cli/_base_cli/_cli.py


+ 0 - 0
src/taipy/_cli/_help_cli.py → taipy/_cli/_help_cli.py


+ 0 - 0
src/taipy/_cli/_run_cli.py → taipy/_cli/_run_cli.py


+ 0 - 0
src/taipy/_cli/_scaffold_cli.py → taipy/_cli/_scaffold_cli.py


+ 0 - 0
src/taipy/_entrypoint.py → taipy/_entrypoint.py


+ 0 - 0
src/taipy/_run.py → taipy/_run.py


+ 0 - 0
src/taipy/config/.coveragerc → taipy/config/.coveragerc


+ 0 - 0
src/taipy/config/.editorconfig → taipy/config/.editorconfig


+ 0 - 0
src/taipy/config/.flake8 → taipy/config/.flake8


+ 0 - 0
src/taipy/config/.gitattributes → taipy/config/.gitattributes


+ 0 - 0
src/taipy/config/.github/ISSUE_TEMPLATE.md → taipy/config/.github/ISSUE_TEMPLATE.md


+ 0 - 0
src/taipy/config/.github/ISSUE_TEMPLATE/bug_report.md → taipy/config/.github/ISSUE_TEMPLATE/bug_report.md


+ 0 - 0
src/taipy/config/.github/ISSUE_TEMPLATE/feature-improvement.md → taipy/config/.github/ISSUE_TEMPLATE/feature-improvement.md


+ 0 - 0
src/taipy/config/.github/ISSUE_TEMPLATE/new-feature.md → taipy/config/.github/ISSUE_TEMPLATE/new-feature.md


+ 0 - 0
src/taipy/config/.github/workflows/codeql-analysis.yml → taipy/config/.github/workflows/codeql-analysis.yml


+ 0 - 0
src/taipy/config/.github/workflows/coverage.yml → taipy/config/.github/workflows/coverage.yml


+ 0 - 0
src/taipy/config/.github/workflows/generate_pyi.yml → taipy/config/.github/workflows/generate_pyi.yml


+ 0 - 0
src/taipy/config/.github/workflows/publish.yml → taipy/config/.github/workflows/publish.yml


+ 0 - 0
src/taipy/config/.github/workflows/release-dev.yml → taipy/config/.github/workflows/release-dev.yml


+ 0 - 0
src/taipy/config/.github/workflows/release.yml → taipy/config/.github/workflows/release.yml


+ 0 - 0
src/taipy/config/.github/workflows/setuptools.yml → taipy/config/.github/workflows/setuptools.yml


+ 0 - 0
src/taipy/config/.github/workflows/tests.yml → taipy/config/.github/workflows/tests.yml


+ 0 - 0
src/taipy/config/.gitignore → taipy/config/.gitignore


+ 0 - 0
src/taipy/config/.isort.cfg → taipy/config/.isort.cfg


+ 0 - 0
src/taipy/config/.license-header → taipy/config/.license-header


+ 0 - 0
src/taipy/config/.pre-commit-config.yaml → taipy/config/.pre-commit-config.yaml


+ 0 - 0
src/taipy/config/CODE_OF_CONDUCT.md → taipy/config/CODE_OF_CONDUCT.md


+ 0 - 0
src/taipy/config/CONTRIBUTING.md → taipy/config/CONTRIBUTING.md


+ 0 - 0
src/taipy/config/INSTALLATION.md → taipy/config/INSTALLATION.md


+ 0 - 0
src/taipy/config/LICENSE → taipy/config/LICENSE


+ 2 - 0
taipy/config/MANIFEST.in

@@ -0,0 +1,2 @@
+include taipy/config/*.pyi
+include taipy/config/*.json

+ 0 - 0
src/taipy/config/Pipfile → taipy/config/Pipfile


+ 2 - 2
src/taipy/config/README.md → taipy/config/README.md

@@ -1,7 +1,7 @@
 # 🚧 Under construction 🚧
 
-WARNING: The Taipy team is performing a repository restructuration. This current repository taipy-config is about to be 
-merged into the main repository: taipy. Once the merge is done, the current code base will be in the 
+WARNING: The Taipy team is performing a repository restructuration. This current repository taipy-config is about to be
+merged into the main repository: taipy. Once the merge is done, the current code base will be in the
 [taipy repository](https://github.com/Avaiga/taipy). The migration should take a maximum of a few days.
 <br>
 

+ 2 - 0
src/taipy/config/__init__.py → taipy/config/__init__.py

@@ -23,6 +23,8 @@ from typing import List
 from ._init import Config
 from .checker.issue import Issue
 from .checker.issue_collector import IssueCollector
+from .common.frequency import Frequency
+from .common.scope import Scope
 from .global_app.global_app_config import GlobalAppConfig
 from .section import Section
 from .unique_section import UniqueSection

+ 0 - 0
src/taipy/config/_config.py → taipy/config/_config.py


+ 0 - 0
src/taipy/_cli/__init__.py → taipy/config/_config_comparator/__init__.py


+ 0 - 0
src/taipy/config/_config_comparator/_comparator_result.py → taipy/config/_config_comparator/_comparator_result.py


+ 0 - 0
src/taipy/config/_config_comparator/_config_comparator.py → taipy/config/_config_comparator/_config_comparator.py


+ 0 - 0
src/taipy/config/_init.py → taipy/config/_init.py


+ 0 - 0
src/taipy/config/_config_comparator/__init__.py → taipy/config/_serializer/__init__.py


+ 0 - 0
src/taipy/config/_serializer/_base_serializer.py → taipy/config/_serializer/_base_serializer.py


+ 0 - 0
src/taipy/config/_serializer/_json_serializer.py → taipy/config/_serializer/_json_serializer.py


+ 0 - 0
src/taipy/config/_serializer/_toml_serializer.py → taipy/config/_serializer/_toml_serializer.py


+ 0 - 0
src/taipy/config/_serializer/__init__.py → taipy/config/checker/__init__.py


+ 0 - 0
src/taipy/config/checker/_checker.py → taipy/config/checker/_checker.py


+ 0 - 0
src/taipy/config/checker/__init__.py → taipy/config/checker/_checkers/__init__.py


+ 0 - 0
src/taipy/config/checker/_checkers/_auth_config_checker.py → taipy/config/checker/_checkers/_auth_config_checker.py


+ 0 - 0
src/taipy/config/checker/_checkers/_config_checker.py → taipy/config/checker/_checkers/_config_checker.py


+ 0 - 0
src/taipy/config/checker/issue.py → taipy/config/checker/issue.py


+ 0 - 0
src/taipy/config/checker/issue_collector.py → taipy/config/checker/issue_collector.py


+ 0 - 0
src/taipy/config/checker/_checkers/__init__.py → taipy/config/common/__init__.py


+ 0 - 0
src/taipy/config/common/_classproperty.py → taipy/config/common/_classproperty.py


+ 0 - 0
src/taipy/config/common/_config_blocker.py → taipy/config/common/_config_blocker.py


+ 0 - 0
src/taipy/config/common/_repr_enum.py → taipy/config/common/_repr_enum.py


+ 0 - 0
src/taipy/config/common/_template_handler.py → taipy/config/common/_template_handler.py


+ 0 - 0
src/taipy/config/common/_validate_id.py → taipy/config/common/_validate_id.py


+ 0 - 0
src/taipy/config/common/frequency.py → taipy/config/common/frequency.py


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác