arpakitlib 1.6.67__tar.gz → 1.6.72__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 (111) hide show
  1. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/PKG-INFO +2 -2
  2. arpakitlib-1.6.72/arpakitlib/_ar_arpakitlib_cli.py +51 -0
  3. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/README.md +1 -1
  4. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/git_set_arpakit_company_origin.sh +2 -2
  5. arpakitlib-1.6.72/arpakitlib/_arpakit_project_template/manage/poetry_add_plugin_export.sh +2 -0
  6. arpakitlib-1.6.72/arpakitlib/_arpakit_project_template/manage/poetry_config_virtualenvs.in-project_true.sh +2 -0
  7. arpakitlib-1.6.72/arpakitlib/_arpakit_project_template/manage/poetry_install.sh +2 -0
  8. arpakitlib-1.6.72/arpakitlib/_arpakit_project_template/pyproject.toml +18 -0
  9. arpakitlib-1.6.72/arpakitlib/ar_file_util.py +6 -0
  10. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_parse_command.py +9 -4
  11. arpakitlib-1.6.72/arpakitlib/ar_project_template_util.py +55 -0
  12. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_str_util.py +6 -0
  13. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/pyproject.toml +4 -4
  14. arpakitlib-1.6.67/arpakitlib/_cli.py +0 -20
  15. arpakitlib-1.6.67/arpakitlib/ar_arpakitlib_info.py +0 -13
  16. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/LICENSE +0 -0
  17. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/NOTICE +0 -0
  18. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/README.md +0 -0
  19. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/__init__.py +0 -0
  20. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/.env_example +0 -0
  21. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/.gitignore +0 -0
  22. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/.python-version +0 -0
  23. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/AUTHOR.md +0 -0
  24. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/LICENSE +0 -0
  25. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/NOTICE +0 -0
  26. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/__init__.py +0 -0
  27. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/beutify_json.py +0 -0
  28. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/docker_ps.sh +0 -0
  29. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/generate_env_example.py +0 -0
  30. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/git_commit.sh +0 -0
  31. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/git_push_dev_arpakit_company_github_1.sh +0 -0
  32. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/git_push_dev_arpakit_company_gitlab_1.sh +0 -0
  33. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/git_remote_v.sh +0 -0
  34. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/git_status.sh +0 -0
  35. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/hello_world.py +0 -0
  36. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/poetry_check.sh +0 -0
  37. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/poetry_clear_cache.sh +0 -0
  38. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/poetry_generate_requirements.txt.sh +0 -0
  39. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/poetry_lock.sh +0 -0
  40. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/poetry_remove_and_add_arpakitlib.sh +0 -0
  41. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/poetry_show.sh +0 -0
  42. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/poetry_update.sh +0 -0
  43. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/manage/poetry_update_arpakitlib.sh +0 -0
  44. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/resource/__init__.py +0 -0
  45. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/src/__init__.py +0 -0
  46. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/src/additional_model/__init__.py +0 -0
  47. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/src/additional_model/additional_model.py +0 -0
  48. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/src/business_service/__init__.py +0 -0
  49. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/src/core/__init__.py +0 -0
  50. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/src/core/const.py +0 -0
  51. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/src/core/settings.py +0 -0
  52. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/src/core/util.py +0 -0
  53. {arpakitlib-1.6.67/arpakitlib/_project_template → arpakitlib-1.6.72/arpakitlib/_arpakit_project_template}/src/util/__init__.py +0 -0
  54. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_additional_model_util.py +0 -0
  55. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_aiogram_util.py +0 -0
  56. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_arpakit_lib_module_util.py +0 -0
  57. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_arpakit_schedule_uust_api_client_util.py +0 -0
  58. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_base64_util.py +0 -0
  59. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_base_worker_util.py +0 -0
  60. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_cache_file_util.py +0 -0
  61. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_datetime_util.py +0 -0
  62. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_dict_util.py +0 -0
  63. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_dream_ai_api_client_util.py +0 -0
  64. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_encrypt_decrypt_util.py +0 -0
  65. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_enumeration_util.py +0 -0
  66. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/redoc/redoc.standalone.js +0 -0
  67. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-16x16.png +0 -0
  68. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/favicon-32x32.png +0 -0
  69. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/index.css +0 -0
  70. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/index.html +0 -0
  71. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/oauth2-redirect.html +0 -0
  72. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-initializer.js +0 -0
  73. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js +0 -0
  74. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-bundle.js.map +0 -0
  75. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
  76. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
  77. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js +0 -0
  78. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
  79. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  80. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
  81. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css +0 -0
  82. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.css.map +0 -0
  83. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js +0 -0
  84. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_static/swagger-ui/swagger-ui.js.map +0 -0
  85. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_fastapi_util.py +0 -0
  86. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_file_storage_in_dir_util.py +0 -0
  87. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_hash_util.py +0 -0
  88. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_hello_world.py +0 -0
  89. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_http_request_util.py +0 -0
  90. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_ip_util.py +0 -0
  91. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_json_db_util.py +0 -0
  92. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_json_util.py +0 -0
  93. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_jwt_util.py +0 -0
  94. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_list_of_dicts_to_xlsx.py +0 -0
  95. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_list_util.py +0 -0
  96. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_logging_util.py +0 -0
  97. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_mongodb_util.py +0 -0
  98. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_need_type_util.py +0 -0
  99. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_openai_util.py +0 -0
  100. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_operation_execution_util.py +0 -0
  101. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_postgresql_util.py +0 -0
  102. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_run_cmd_util.py +0 -0
  103. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_schedule_uust_api_client_util.py +0 -0
  104. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_settings_util.py +0 -0
  105. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_sleep_util.py +0 -0
  106. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_sqlalchemy_model_util.py +0 -0
  107. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_sqlalchemy_util.py +0 -0
  108. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_ssh_util.py +0 -0
  109. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_type_util.py +0 -0
  110. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_yookassa_api_client_util.py +0 -0
  111. {arpakitlib-1.6.67 → arpakitlib-1.6.72}/arpakitlib/ar_zabbix_util.py +0 -0
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: arpakitlib
3
- Version: 1.6.67
3
+ Version: 1.6.72
4
4
  Summary: arpakitlib
5
5
  Home-page: https://github.com/ARPAKIT-Company/arpakitlib
6
6
  License: Apache-2.0
7
- Keywords: arpakit,arpakitlib,arpakit-company,arpakitcompany,arpakit_company
7
+ Keywords: arpakitlib,arpakit,arpakit-company,arpakitcompany,arpakit_company
8
8
  Author: arpakit
9
9
  Author-email: arpakit@gmail.com
10
10
  Requires-Python: >=3.12,<4.0
@@ -0,0 +1,51 @@
1
+ # arpakit
2
+
3
+ import logging
4
+ import sys
5
+
6
+ from arpakitlib.ar_need_type_util import parse_need_type, NeedTypes
7
+ from arpakitlib.ar_parse_command import parse_command
8
+ from arpakitlib.ar_project_template_util import init_arpakit_project_template
9
+ from arpakitlib.ar_str_util import raise_if_string_blank
10
+
11
+ _logger = logging.getLogger(__name__)
12
+
13
+
14
+ def _arpakitlib_cli(*, full_command: str):
15
+ _logger.info("start _arpakitlib_cli")
16
+
17
+ parsed_command = parse_command(text=full_command)
18
+ parsed_command.raise_for_command(needed_command="arpakitlib", lower_=True)
19
+
20
+ command = parsed_command.get_value_by_keys(keys=["command", "c"])
21
+ if command:
22
+ command = command.strip()
23
+ if not command:
24
+ raise Exception(f"not command, command={command}")
25
+
26
+ _logger.info(f"start {command}")
27
+
28
+ if command == "help":
29
+ pass
30
+
31
+ elif command == "init_arpakit_project_template":
32
+ project_dirpath = raise_if_string_blank(parsed_command.get_value_by_keys(keys=["pd", "project_dirpath"]))
33
+ remove_if_exists: bool = parse_need_type(
34
+ value=parsed_command.get_value_by_keys(keys=["rie", "remove_if_exists"]),
35
+ need_type=NeedTypes.bool_
36
+ )
37
+ project_name = raise_if_string_blank(parsed_command.get_value_by_keys(keys=["pm", "project_name"]))
38
+ init_arpakit_project_template(
39
+ project_dirpath=project_dirpath, remove_if_exists=remove_if_exists, project_name=project_name
40
+ )
41
+
42
+ else:
43
+ raise Exception(f"not recognized command, command={command}")
44
+
45
+ _logger.info(f"finish {command}")
46
+
47
+ _logger.info("finish _arpakitlib_cli")
48
+
49
+
50
+ if __name__ == '__main__':
51
+ _arpakitlib_cli(full_command=" ".join(sys.argv))
@@ -1,4 +1,4 @@
1
- # {REPOSITORY_DIRNAME}
1
+ # {PROJECT_NAME}
2
2
 
3
3
  ....
4
4
 
@@ -1,7 +1,7 @@
1
1
  cd ..
2
2
 
3
3
  git remote remove arpakit_company_github_1
4
- git remote add arpakit_company_github_1 git@github.com:ARPAKIT-Company/{REPOSITORY_DIRNAME}.git
4
+ git remote add arpakit_company_github_1 git@github.com:ARPAKIT-Company/{PROJECT_NAME}.git
5
5
 
6
6
  git remote remove arpakit_company_gitlab_1
7
- git remote add arpakit_company_gitlab_1 git@gitlab.com:ARPAKIT-Company/{REPOSITORY_DIRNAME}.git
7
+ git remote add arpakit_company_gitlab_1 git@gitlab.com:ARPAKIT-Company/{PROJECT_NAME}.git
@@ -0,0 +1,2 @@
1
+ cd ..
2
+ poetry self add poetry-plugin-export
@@ -0,0 +1,2 @@
1
+ cd ..
2
+ poetry config virtualenvs.in-project true
@@ -0,0 +1,18 @@
1
+ [tool.poetry]
2
+ name = "{PROJECT_NAME}"
3
+ version = "0.1.0"
4
+ description = "{PROJECT_NAME}"
5
+ authors = ["arpakit <arpakit@gmail.com>", "arpakit_support <support@arpakit.com>"]
6
+ license = "Apache License 2.0"
7
+ readme = "README.md"
8
+ keywords = ["{PROJECT_NAME}", "arpakit", "arpakit-company", "arpakitcompany", "arpakit_company"]
9
+ package-mode = false
10
+
11
+
12
+ [tool.poetry.dependencies]
13
+ python = "^3.12"
14
+
15
+
16
+ [build-system]
17
+ requires = ["poetry-core"]
18
+ build-backend = "poetry.core.masonry.api"
@@ -0,0 +1,6 @@
1
+ import os
2
+
3
+
4
+ def raise_if_path_not_exists(path: str):
5
+ if not os.path.exists(path):
6
+ raise Exception(f"path {path} not exists")
@@ -1,7 +1,6 @@
1
1
  # arpakit
2
2
 
3
3
  import shlex
4
- from typing import Optional
5
4
 
6
5
  from pydantic import BaseModel
7
6
 
@@ -40,9 +39,15 @@ class ParsedCommand(BaseModel):
40
39
  def values(self) -> list[str]:
41
40
  return [self.key_to_value[k] for k in self.keys]
42
41
 
43
- def get_value_by_key(self, key: str) -> Optional[str]:
42
+ def get_value_by_key(self, key: str) -> str | None:
44
43
  return self.key_to_value.get(key)
45
44
 
45
+ def get_value_by_keys(self, keys: list[str]) -> str | None:
46
+ for key in keys:
47
+ if self.key_exists(key=key):
48
+ return self.get_value_by_key(key=key)
49
+ return None
50
+
46
51
  def key_exists(self, key: str) -> bool:
47
52
  return key in self.key_to_value.keys()
48
53
 
@@ -55,7 +60,7 @@ class ParsedCommand(BaseModel):
55
60
  def has_flag(self, flag: str) -> bool:
56
61
  return flag in self.flags
57
62
 
58
- def get_value_by_index(self, index: int) -> Optional[str]:
63
+ def get_value_by_index(self, index: int) -> str | None:
59
64
  if index >= len(self.values_without_key):
60
65
  return None
61
66
  return self.values_without_key[index]
@@ -72,7 +77,7 @@ def parse_command(text: str) -> ParsedCommand:
72
77
 
73
78
  res = ParsedCommand(command=parts[0])
74
79
 
75
- last_key: Optional[str] = None
80
+ last_key: str | None = None
76
81
  for part in parts[1:]:
77
82
  part = part.strip()
78
83
 
@@ -0,0 +1,55 @@
1
+ # arpakit
2
+ import logging
3
+ import os
4
+
5
+ from arpakitlib.ar_file_util import raise_if_path_not_exists
6
+
7
+ _ARPAKIT_LIB_MODULE_VERSION = "3.0"
8
+
9
+ _logger = logging.getLogger(__name__)
10
+
11
+
12
+ def init_arpakit_project_template(
13
+ *, project_dirpath: str, remove_if_exists: bool = False, project_name: str | None = None
14
+ ):
15
+ if project_name:
16
+ project_name = project_name.strip()
17
+ if not project_name:
18
+ project_name = None
19
+
20
+ source_template_dirpath = os.path.join(os.path.dirname(__file__), "_arpakit_project_template")
21
+
22
+ raise_if_path_not_exists(path=source_template_dirpath)
23
+
24
+ project_dirpath = os.path.abspath(project_dirpath)
25
+
26
+ filepath_to_content = {}
27
+
28
+ for root_filepath, dir_filepaths, file_filepaths in os.walk(source_template_dirpath):
29
+ dir_filepaths[:] = [d for d in dir_filepaths if d != "__pycache__"]
30
+ relative_filepath = os.path.relpath(root_filepath, source_template_dirpath)
31
+ target_root_filepath = os.path.normpath(os.path.join(project_dirpath, relative_filepath))
32
+ for file in file_filepaths:
33
+ source_file_filepath = os.path.join(root_filepath, file)
34
+ target_file_filepath = os.path.normpath(os.path.join(target_root_filepath, file))
35
+
36
+ with open(source_file_filepath, "r", encoding="utf-8") as f:
37
+ content = f.read()
38
+
39
+ if project_name is not None:
40
+ content = content.replace("{PROJECT_NAME}", project_name)
41
+
42
+ filepath_to_content[target_file_filepath] = content
43
+
44
+ if not os.path.exists(project_dirpath):
45
+ os.makedirs(project_dirpath)
46
+
47
+ for target_file_filepath, content in filepath_to_content.items():
48
+ if os.path.exists(target_file_filepath) and not remove_if_exists:
49
+ _logger.info(f"skip existing file: {target_file_filepath}")
50
+ continue
51
+ _logger.info(f"initing file: {target_file_filepath}")
52
+ os.makedirs(os.path.dirname(target_file_filepath), exist_ok=True)
53
+ with open(target_file_filepath, "w", encoding="utf-8") as f:
54
+ f.write(content)
55
+ _logger.info(f"file was inited: {target_file_filepath}")
@@ -73,6 +73,12 @@ def remove_tags_and_html(string: str) -> str:
73
73
  return remove_tags(remove_html(string))
74
74
 
75
75
 
76
+ def raise_if_string_blank(string: str) -> str:
77
+ if not string:
78
+ raise ValueError("not string")
79
+ return string
80
+
81
+
76
82
  def __example():
77
83
  pass
78
84
 
@@ -1,13 +1,12 @@
1
1
  [tool.poetry]
2
2
  name = "arpakitlib"
3
- version = "1.6.67"
3
+ version = "1.6.72"
4
4
  description = "arpakitlib"
5
5
  authors = ["arpakit <arpakit@gmail.com>", "arpakit_support <support@arpakit.com>"]
6
6
  license = "Apache License 2.0"
7
7
  readme = "README.md"
8
+ keywords = ["arpakitlib", "arpakit", "arpakit-company", "arpakitcompany", "arpakit_company"]
8
9
  package-mode = true
9
- repository = "https://github.com/ARPAKIT-Company/arpakitlib"
10
- keywords = ["arpakit", "arpakitlib", "arpakit-company", "arpakitcompany", "arpakit_company"]
11
10
  classifiers = [
12
11
  "Development Status :: 4 - Beta",
13
12
  "Intended Audience :: Developers",
@@ -18,6 +17,7 @@ classifiers = [
18
17
  "Operating System :: OS Independent",
19
18
  "Topic :: Software Development :: Libraries"
20
19
  ]
20
+ repository = "https://github.com/ARPAKIT-Company/arpakitlib"
21
21
 
22
22
  [tool.poetry.dependencies]
23
23
  python = "^3.12"
@@ -61,4 +61,4 @@ requires = ["poetry-core"]
61
61
  build-backend = "poetry.core.masonry.api"
62
62
 
63
63
  [tool.poetry.scripts]
64
- arpakitlib = "arpakitlib._cli:cli"
64
+ arpakitlib = "arpakitlib._ar_arpakitlib_cli:_arpakitlib_cli"
@@ -1,20 +0,0 @@
1
- # arpakit
2
-
3
- import sys
4
-
5
- from arpakitlib.ar_parse_command import parse_command
6
-
7
-
8
- def _cli():
9
- parsed_command = parse_command(text=" ".join(sys.argv))
10
- parsed_command.raise_for_command(needed_command="arpakitlib", lower_=True)
11
-
12
- print(parsed_command)
13
-
14
-
15
- def __example():
16
- _cli()
17
-
18
-
19
- if __name__ == '__main__':
20
- __example()
@@ -1,13 +0,0 @@
1
- # arpakit
2
-
3
- _INFO = (
4
- "arpakitlib"
5
- "\nauthor: Arsen Sabirzyanov"
6
- "\nTelegram: https://t.me/arpakit"
7
- "\ndomain: arpakit.com"
8
- "\nemail: arpakit@gmail.com, support@arpakit.com"
9
- )
10
-
11
-
12
- def get_arpakitlib_info() -> str:
13
- return _INFO
File without changes
File without changes
File without changes