gOdoo-cli 0.15.0__tar.gz → 0.15.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.
Files changed (104) hide show
  1. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/PKG-INFO +1 -1
  2. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/__about__.py +1 -1
  3. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/db/query.py +4 -0
  4. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/odoo_bin/cli_generate.py +17 -8
  5. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/odoo_bin/shell.py +5 -5
  6. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/models/db_connection.py +4 -2
  7. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/models/godoo_modules.py +0 -2
  8. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.codecovrc +0 -0
  9. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.devcontainer/devcontainer.json +0 -0
  10. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.env.sample +0 -0
  11. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.eslintignore +0 -0
  12. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.eslintrc.yml +0 -0
  13. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.github/FUNDING.yml +0 -0
  14. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.github/workflows/README.md +0 -0
  15. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.github/workflows/quality.yml +0 -0
  16. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.github/workflows/version-bump.yml +0 -0
  17. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.github/workflows/version-publish.yml +0 -0
  18. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.gitignore +0 -0
  19. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.pre-commit-config.yaml +0 -0
  20. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.prettierrc.yml +0 -0
  21. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/.vscode/launch.json +0 -0
  22. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/LICENSE +0 -0
  23. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/README.md +0 -0
  24. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/addons/.gitkeep +0 -0
  25. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/addons/godoo_test_succ_mod/__init__.py +0 -0
  26. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/addons/godoo_test_succ_mod/__manifest__.py +0 -0
  27. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/addons/godoo_test_succ_mod/models/__init__.py +0 -0
  28. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/addons/godoo_test_succ_mod/tests/__init__.py +0 -0
  29. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/addons/godoo_test_succ_mod/tests/data.py +0 -0
  30. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/addons/godoo_test_succ_mod/tests/test_succ.py +0 -0
  31. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/assets/godoo-main-cli.png +0 -0
  32. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/assets/odoo_logo.png +0 -0
  33. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/config/nginx.conf +0 -0
  34. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/config/postgresql.conf +0 -0
  35. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/config/supervisord.conf +0 -0
  36. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/Dockerfile +0 -0
  37. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/cups/Dockerfile +0 -0
  38. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/cups/config/cups-pdf.conf +0 -0
  39. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/cups/config/cupsd.conf +0 -0
  40. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/cups/cups_entrypoint.sh +0 -0
  41. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/depends_build.sh +0 -0
  42. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/depends_runtime.sh +0 -0
  43. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/docker-compose.base.yml +0 -0
  44. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/docker-compose.devcontainer-traefik.yml +0 -0
  45. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/docker-compose.devcontainer.yml +0 -0
  46. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/docker-compose.traefik.yml +0 -0
  47. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/docker/psql.gpg +0 -0
  48. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/godoo_src.code-workspace +0 -0
  49. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/makefile +0 -0
  50. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/odoo_manifest.yml +0 -0
  51. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/pyproject.toml +0 -0
  52. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/scripts/container_requirements.sh +0 -0
  53. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/scripts/launchodoo.sh +0 -0
  54. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/scripts/migrations/development/shrink_database.py +0 -0
  55. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/scripts/reset_devcontainer.sh +0 -0
  56. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/__init__.py +0 -0
  57. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/__main__.py +0 -0
  58. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/cli.py +0 -0
  59. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/cli_common.py +0 -0
  60. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/__init__.py +0 -0
  61. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/backup/__init__.py +0 -0
  62. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/backup/cli.py +0 -0
  63. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/backup/dump.py +0 -0
  64. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/backup/load.py +0 -0
  65. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/backup/pull.py +0 -0
  66. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/backup/util.py +0 -0
  67. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/config.py +0 -0
  68. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/db/__init__.py +0 -0
  69. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/db/cli.py +0 -0
  70. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/db/passwords.py +0 -0
  71. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/odoo_bin/__init__.py +0 -0
  72. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/odoo_bin/bootstrap.py +0 -0
  73. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/odoo_bin/godoo_test/__init__.py +0 -0
  74. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/odoo_bin/godoo_test/cli.py +0 -0
  75. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/odoo_bin/godoo_test/test_load_data.py +0 -0
  76. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/odoo_bin/godoo_test/test_run.py +0 -0
  77. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/odoo_bin/launch.py +0 -0
  78. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/odoo_bin/shell_scripts/odoo_banner.py +0 -0
  79. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/rpc/__init__.py +0 -0
  80. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/rpc/cli.py +0 -0
  81. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/rpc/config_parameters.py +0 -0
  82. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/rpc/importer.py +0 -0
  83. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/rpc/modules.py +0 -0
  84. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/rpc/translations.py +0 -0
  85. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/commands/source_get.py +0 -0
  86. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/git/__init__.py +0 -0
  87. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/git/git_odoo.py +0 -0
  88. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/git/git_odoo_addons.py +0 -0
  89. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/git/git_repo.py +0 -0
  90. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/git/git_url.py +0 -0
  91. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/git/zip_download.py +0 -0
  92. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/helpers/__init__.py +0 -0
  93. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/helpers/cli.py +0 -0
  94. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/helpers/modules_git.py +0 -0
  95. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/helpers/modules_py.py +0 -0
  96. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/helpers/odoo_files.py +0 -0
  97. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/helpers/odoo_manifest.py +0 -0
  98. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/helpers/pip.py +0 -0
  99. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/helpers/system.py +0 -0
  100. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/models/__init__.py +0 -0
  101. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/godoo_cli/models/godoo_models.py +0 -0
  102. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/src/tests/test_git_clone.py +0 -0
  103. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/thirdparty/.gitkeep +0 -0
  104. {godoo_cli-0.15.0 → godoo_cli-0.15.1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gOdoo-cli
3
- Version: 0.15.0
3
+ Version: 0.15.1
4
4
  Summary: Wrapper around Odoo-Bin with some convinience RPC functions.
5
5
  Project-URL: repository, https://github.com/OpenJKSoftware/gOdoo
6
6
  Author-email: Joshua Kreuder <Joshua_Kreuder@outlook.com>
@@ -2,7 +2,7 @@
2
2
 
3
3
  from packaging import version
4
4
 
5
- __version__ = "0.15.0" # Initial version, will be managed by Hatch
5
+ __version__ = "0.15.1" # Initial version, will be managed by Hatch
6
6
 
7
7
 
8
8
  def get_version_tuple() -> tuple[int, int, int]:
@@ -41,6 +41,7 @@ def query_database(
41
41
  db_host: Annotated[str, CLI.database.db_host] = "",
42
42
  db_port: Annotated[int, CLI.database.db_port] = 0,
43
43
  db_password: Annotated[str, CLI.database.db_password] = "",
44
+ readonly: Annotated[bool, typer.Option(help="Run query in readonly mode", show_default=True)] = True,
44
45
  ):
45
46
  """Run a Query against the database.
46
47
 
@@ -60,6 +61,7 @@ def query_database(
60
61
  username=db_user,
61
62
  password=db_password,
62
63
  db_name=db_name,
64
+ readonly=readonly,
63
65
  )
64
66
  with connection.connect() as cursor:
65
67
  try:
@@ -114,6 +116,7 @@ def is_bootstrapped(
114
116
  username=db_user,
115
117
  password=db_password,
116
118
  db_name=db_name,
119
+ readonly=True,
117
120
  )
118
121
  bootstrap_value = _is_bootstrapped(db_connection=connection)
119
122
  LOGGER.info("Odoo Database Status: %s", bootstrap_value.value)
@@ -162,6 +165,7 @@ def get_installed_modules(
162
165
  username=db_user,
163
166
  password=db_password,
164
167
  db_name=db_name,
168
+ readonly=True,
165
169
  )
166
170
  installed_modules = _get_installed_modules(db_connection=db_connection, to_install=to_install)
167
171
  if isinstance(installed_modules, int):
@@ -7,6 +7,7 @@ from pathlib import Path
7
7
  from typing import Any, Optional
8
8
 
9
9
  from ...models import GodooConfig, GodooModules
10
+ from ..db.query import DbBootstrapStatus, _is_bootstrapped
10
11
 
11
12
  LOGGER = logging.getLogger(__name__)
12
13
 
@@ -99,15 +100,23 @@ def _boostrap_command(
99
100
  init_modules = []
100
101
 
101
102
  extra_cmd_args_str = " ".join(extra_cmd_args or [])
102
- if not re.search(r"(-i|--init) ", extra_cmd_args_str):
103
- if install_workspace_modules:
104
- workspace_modules = GodooModules([godoo_config.workspace_addon_path])
105
- if workspace_addons := workspace_modules.get_modules():
106
- init_modules = [
107
- f.name for f in workspace_addons if f.version.split(".")[0] == godoo_config.odoo_version.major
108
- ]
103
+ if install_workspace_modules and not re.search(r"(-i|--init|-u|--update) ", extra_cmd_args_str):
104
+ LOGGER.debug("Auto-detecting workspace modules for Bootstrapping")
105
+ workspace_modules = GodooModules([godoo_config.workspace_addon_path])
106
+ if workspace_addons := workspace_modules.get_modules():
107
+ init_modules = [
108
+ f.name for f in workspace_addons if f.version.split(".")[0] == godoo_config.odoo_version.major
109
+ ]
109
110
  init_modules = init_modules or ["base", "web"]
110
- init_cmd = "--init " + ",".join(init_modules) if init_modules else ""
111
+
112
+ # if we are in a situation, where we call godoo bootstrap on a database that already has data,
113
+ # we should not pass --init but --update
114
+ init_cmd = ""
115
+ if init_modules:
116
+ if _is_bootstrapped(godoo_config.db_connection) == DbBootstrapStatus.BOOTSTRAPPED:
117
+ init_cmd = "--update " + ",".join(init_modules)
118
+ else:
119
+ init_cmd = "--init " + ",".join(init_modules)
111
120
 
112
121
  addon_paths_str_list = [str(p.absolute()) for p in addon_paths if p and p.exists()]
113
122
  addon_paths_str = ", ".join(addon_paths_str_list)
@@ -20,6 +20,8 @@ from ...models import GodooConfig
20
20
  CLI = CommonCLI()
21
21
  LOGGER = logging.getLogger(__name__)
22
22
 
23
+ SHELL_SCRIPTS_PATH = Path(__file__).parent / "shell_scripts"
24
+
23
25
 
24
26
  def odoo_shell_uninstall_modules(
25
27
  module_list: Annotated[list[str], typer.Argument(help="List of Modules to uninstall")],
@@ -89,8 +91,7 @@ def complete_script_name():
89
91
  Returns:
90
92
  List[str]: List of script names without their .py extension.
91
93
  """
92
- script_folder = Path(__file__).parent / "shell-scripts"
93
- return [p.stem for p in script_folder.glob("*.py")]
94
+ return [p.stem for p in SHELL_SCRIPTS_PATH.glob("*.py")]
94
95
 
95
96
 
96
97
  def odoo_shell_run_script(
@@ -114,10 +115,9 @@ def odoo_shell_run_script(
114
115
  Returns:
115
116
  int: 0 for success, non-zero for failure.
116
117
  """
117
- script_folder = Path(__file__).parent / "scripts"
118
- script_path = script_folder / f"{script_name}.py"
118
+ script_path = SHELL_SCRIPTS_PATH / f"{script_name}.py"
119
119
  if not script_path.exists():
120
- LOGGER.error("Script '%s' not found in %s", script_name, script_folder)
120
+ LOGGER.error("Script '%s' not found in %s", script_name, SHELL_SCRIPTS_PATH)
121
121
  return CLI.returner(1)
122
122
 
123
123
  shell_cmd = f"{odoo_main_path.absolute()!s}/odoo-bin shell --no-http"
@@ -39,6 +39,7 @@ class DBConnection:
39
39
  password: str
40
40
  db_name: str
41
41
  conn_timeout = 10
42
+ readonly: bool = False
42
43
 
43
44
  def get_connection(self):
44
45
  """Get a database connection."""
@@ -92,8 +93,9 @@ class DBConnection:
92
93
  cr = connection.cursor()
93
94
  try:
94
95
  yield cr
95
- LOGGER.debug("Committing DB cursor")
96
- connection.commit()
96
+ if not self.readonly:
97
+ LOGGER.debug("Committing DB cursor")
98
+ connection.commit()
97
99
  except Exception as e:
98
100
  LOGGER.warning("Rolling Back DB cursor. Got Exception: %s", e)
99
101
  connection.rollback()
@@ -90,8 +90,6 @@ class GodooModules:
90
90
  if not isinstance(addon_paths, list):
91
91
  addon_paths = [addon_paths]
92
92
  self.addon_paths = addon_paths
93
- LOGGER.debug("Initializing GodooModules")
94
- LOGGER.debug("Addon Paths: %s", ", ".join(str(p) for p in self.addon_paths))
95
93
  self.godoo_modules: dict[str, GodooModule] = {}
96
94
 
97
95
  def get_modules(
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