atlas-init 0.4.0__py3-none-any.whl → 0.4.1__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.
atlas_init/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  from pathlib import Path
2
2
 
3
- VERSION = "0.4.0"
3
+ VERSION = "0.4.1"
4
4
 
5
5
 
6
6
  def running_in_repo() -> bool:
atlas_init/cli.py CHANGED
@@ -78,7 +78,7 @@ def apply(context: typer.Context, *, skip_outputs: bool = False):
78
78
  hook_func() # type: ignore
79
79
 
80
80
 
81
- def _plan_or_apply(extra_args: list[str], command: Literal["plan", "apply"], *, skip_outputs: bool) -> list[TestSuite]:
81
+ def _plan_or_apply(extra_args: list[str], command: Literal["plan", "apply"], *, skip_outputs: bool) -> list[TestSuite]: # type: ignore
82
82
  settings = init_settings()
83
83
  logger.info(f"using the '{command}' command, extra args: {extra_args}")
84
84
  try:
atlas_init/cli_cfn/aws.py CHANGED
@@ -50,7 +50,7 @@ def deregister_cfn_resource_type(type_name: str, deregister: bool, region_filter
50
50
  logger.info(f"deregistering: {arn}")
51
51
  client.deregister_type(Arn=arn)
52
52
  if default_version_arn is not None:
53
- logger.info(f"deregistering default-arn: {arn}")
53
+ logger.info(f"deregistering default-arn: {default_version_arn}")
54
54
  client.deregister_type(Arn=default_version_arn)
55
55
  except Exception as e:
56
56
  if "The type does not exist" in repr(e):
@@ -336,7 +336,7 @@ def get_last_cfn_type(
336
336
  "Filters": {"Category": category, "TypeNamePrefix": prefix},
337
337
  "MaxResults": 100,
338
338
  }
339
- next_token = ""
339
+ next_token = "" # nosec
340
340
  for _ in range(100):
341
341
  types_response: ListTypesOutputTypeDef = client.list_types(**kwargs) # type: ignore
342
342
  next_token = types_response.get("NextToken", "")
@@ -58,7 +58,7 @@ def run_go_tests(
58
58
  repo_alias: str,
59
59
  package_prefix: str,
60
60
  settings: AtlasInitSettings,
61
- groups: list[TestSuite],
61
+ groups: list[TestSuite], # type: ignore
62
62
  mode: GoTestMode = GoTestMode.package,
63
63
  *,
64
64
  dry_run: bool = False,
@@ -1,5 +1,5 @@
1
1
  import os
2
- import subprocess
2
+ import subprocess # nosec
3
3
  import sys
4
4
  from logging import Logger
5
5
  from pathlib import Path
@@ -34,7 +34,7 @@ def run_command_is_ok(
34
34
  stdout=output,
35
35
  cwd=cwd,
36
36
  env=env,
37
- shell=True, # noqa: S602 # We control the calls to this function and don't suspect any shell injection
37
+ shell=True, # noqa: S602 # We control the calls to this function and don't suspect any shell injection #nosec
38
38
  )
39
39
  is_ok = exit_code == 0
40
40
  if is_ok:
@@ -104,6 +104,6 @@ def run_command_is_ok_output(command: str, cwd: Path, logger: Logger, env: dict
104
104
 
105
105
  def add_to_clipboard(clipboard_content: str, logger: Logger):
106
106
  if pb_binary := find_binary_on_path("pbcopy", logger, allow_missing=True):
107
- subprocess.run(pb_binary, text=True, input=clipboard_content, check=True)
107
+ subprocess.run(pb_binary, text=True, input=clipboard_content, check=True) # nosec
108
108
  else:
109
109
  logger.warning("pbcopy not found on $PATH")
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import logging
4
4
  import os
5
5
  import signal
6
- import subprocess
6
+ import subprocess # nosec
7
7
  import sys
8
8
  import threading
9
9
  import time
@@ -194,7 +194,7 @@ class RunManager:
194
194
  sys_stderr = sys.stderr
195
195
 
196
196
  def read_stderr(process: subprocess.Popen):
197
- for line in process.stderr:
197
+ for line in process.stderr: # type: ignore
198
198
  sys_stderr.write(line)
199
199
  result._add_line(line)
200
200
 
@@ -211,7 +211,7 @@ class RunManager:
211
211
  stderr=subprocess.PIPE,
212
212
  stdin=sys.stdin,
213
213
  start_new_session=True,
214
- shell=True, # noqa: S602 # We control the calls to this function and don't suspect any shell injection
214
+ shell=True, # noqa: S602 # We control the calls to this function and don't suspect any shell injection #nosec
215
215
  bufsize=0,
216
216
  text=True, # This makes it return strings instead of bytes
217
217
  ) as process:
@@ -154,7 +154,7 @@ MARKER_TEST = "Starting TestSteps: "
154
154
 
155
155
 
156
156
  class FileRef(NamedTuple):
157
- index: int
157
+ request_index: int
158
158
  line_start: int
159
159
  line_end: int
160
160
 
@@ -249,12 +249,12 @@ def parse_raw_req_responses(
249
249
  in_response = True
250
250
  current_start = i + 1
251
251
  if in_request and line.startswith(MARKER_END):
252
- key = FileRef(index=request_count, line_start=current_start, line_end=i)
252
+ key = FileRef(request_index=request_count, line_start=current_start, line_end=i)
253
253
  requests[key] = log_lines[current_start:i]
254
254
  request_count += 1
255
255
  in_request = False
256
256
  if in_response and line.startswith(MARKER_END):
257
- key = FileRef(index=request_count, line_start=current_start, line_end=i)
257
+ key = FileRef(request_index=request_count, line_start=current_start, line_end=i)
258
258
  responses[key] = log_lines[current_start:i]
259
259
  response_count += 1
260
260
  in_response = False
@@ -27,7 +27,7 @@ from atlas_init.settings.path import (
27
27
 
28
28
  logger = logging.getLogger(__name__)
29
29
 
30
- GH_TOKEN_ENV_NAME = "GH_TOKEN" # noqa: S105
30
+ GH_TOKEN_ENV_NAME = "GH_TOKEN" # noqa: S105 #nosec
31
31
  GITHUB_CI_RUN_LOGS_ENV_NAME = "GITHUB_CI_RUN_LOGS"
32
32
  GITHUB_CI_SUMMARY_DIR_ENV_NAME = "GITHUB_CI_SUMMARY_DIR_ENV_NAME"
33
33
  REQUIRED_GH_ENV_VARS = [GH_TOKEN_ENV_NAME, GITHUB_CI_RUN_LOGS_ENV_NAME]
@@ -88,7 +88,7 @@ def find_test_runs(
88
88
  repository = tf_repo()
89
89
  for workflow in repository.get_workflow_runs(
90
90
  created=f">{since.strftime('%Y-%m-%d')}",
91
- branch=branch,
91
+ branch=branch, # type: ignore
92
92
  exclude_pull_requests=True, # type: ignore
93
93
  ):
94
94
  if not include_workflow(workflow):
@@ -18,7 +18,7 @@ logger = logging.getLogger(__name__)
18
18
 
19
19
  class GoTestStatus(StrEnum):
20
20
  RUN = "RUN"
21
- PASS = "PASS" # noqa: S105
21
+ PASS = "PASS" # noqa: S105 #nosec
22
22
  FAIL = "FAIL"
23
23
  SKIP = "SKIP"
24
24
 
@@ -108,7 +108,7 @@ def iter_blocks(block: Block, level: int | None = None) -> Iterable[Block]:
108
108
  hcl="\n".join(block_lines),
109
109
  )
110
110
  if line_level_start_names.get(level) is not None:
111
- raise ValueError(f"Unfinished block @ {line_nr} in {block.name} at level {level}")
111
+ raise ValueError(f"Unfinished block @ {line_nr} in {block.name} at level {level}") # pyright: ignore
112
112
 
113
113
 
114
114
  def hcl_attrs(block: Block) -> dict[str, str]:
@@ -1,6 +1,4 @@
1
- # import typer
2
-
3
-
1
+ # pyright: reportIncompatibleMethodOverride=none
4
2
  from collections import defaultdict
5
3
  from collections.abc import Iterable
6
4
  from functools import total_ordering
@@ -210,7 +210,7 @@ class Schema(BaseModelLocal):
210
210
 
211
211
 
212
212
  class Resource(BaseModelLocal):
213
- schema: Schema
213
+ schema: Schema # pyright: ignore
214
214
  name: SnakeCaseString
215
215
 
216
216
  @property
@@ -254,7 +254,7 @@ class AtlasInitSettings(AtlasInitPaths, ExternalSettings):
254
254
  return variables
255
255
 
256
256
 
257
- def active_suites(settings: AtlasInitSettings) -> list[TestSuite]:
257
+ def active_suites(settings: AtlasInitSettings) -> list[TestSuite]: # type: ignore
258
258
  repo_path, cwd_rel_path = repo_path_rel_path()
259
259
  return config_active_suites(settings.config, repo_path, cwd_rel_path, settings.test_suites_parsed)
260
260
 
@@ -21,7 +21,7 @@ class RealmSettings(_EnvVarsGenerated):
21
21
  MONGODB_REALM_FUNCTION_ID: str
22
22
  MONGODB_REALM_FUNCTION_NAME: str
23
23
  MONGODB_REALM_BASE_URL: str
24
- RANDOM_INT_100K: str = Field(default_factory=lambda: str(random.randint(0, 100_000))) # noqa: S311 # not used for cryptographic purposes
24
+ RANDOM_INT_100K: str = Field(default_factory=lambda: str(random.randint(0, 100_000))) # noqa: S311 # not used for cryptographic purposes # nosec
25
25
 
26
26
 
27
27
  class EnvVarsGenerated(AtlasSettings):
@@ -11,7 +11,7 @@ locals {
11
11
  resource_actions_yaml = file("${path.module}/resource_actions.yaml")
12
12
  services = yamldecode(local.services_yaml)
13
13
  resource_actions = yamldecode(local.resource_actions_yaml)
14
- role_name = "cfn-execution-role-${var.cfn_profile}"
14
+ role_name = "mongodb-atlas-cfn-${var.cfn_profile}"
15
15
  iam_policy_statement = {
16
16
  Sid = "Original"
17
17
  Action = local.resource_actions
@@ -22,7 +22,7 @@ resource "mongodbatlas_cloud_provider_access_authorization" "auth_role" {
22
22
 
23
23
 
24
24
  resource "aws_iam_role" "aws_role" {
25
- name = "atlas_init_aws_role_${var.name_suffix}"
25
+ name = "mongodb-atlas-ainit-${var.name_suffix}"
26
26
 
27
27
  assume_role_policy = <<EOF
28
28
  {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atlas-init
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Project-URL: Documentation, https://github.com/EspenAlbert/atlas-init#readme
5
5
  Project-URL: Issues, https://github.com/EspenAlbert/atlas-init/issues
6
6
  Project-URL: Source, https://github.com/EspenAlbert/atlas-init
@@ -11,19 +11,19 @@ Classifier: Programming Language :: Python
11
11
  Classifier: Programming Language :: Python :: 3.12
12
12
  Requires-Python: >=3.12
13
13
  Requires-Dist: appdirs==1.4.4
14
- Requires-Dist: boto3==1.34.55
14
+ Requires-Dist: boto3==1.35.92
15
15
  Requires-Dist: gitpython==3.1.42
16
16
  Requires-Dist: humanize==4.9.0
17
17
  Requires-Dist: model-lib==0.0.30
18
18
  Requires-Dist: mypy-boto3-cloudformation==1.34.66
19
- Requires-Dist: orjson==3.9.15
20
- Requires-Dist: pydantic-settings==2.2.1
19
+ Requires-Dist: orjson==3.10.13
20
+ Requires-Dist: pydantic-settings==2.7.1
21
21
  Requires-Dist: pygithub==2.3.0
22
- Requires-Dist: requests==2.31.0
22
+ Requires-Dist: requests==2.32.2
23
23
  Requires-Dist: rich==13.7.1
24
24
  Requires-Dist: stringcase==1.2.0
25
25
  Requires-Dist: tenacity==8.2.3
26
- Requires-Dist: typer==0.12.0
26
+ Requires-Dist: typer==0.15.1
27
27
  Description-Content-Type: text/markdown
28
28
 
29
29
  # Atlas Init - A CLI for developing integrations with MongoDB Atlas
@@ -1,22 +1,22 @@
1
- atlas_init/__init__.py,sha256=Apo32gKgpNqF8mnbsNQRTC3jDk0A8kgYlHfKm0SQkf8,372
1
+ atlas_init/__init__.py,sha256=hcYIXZJV2-mrLNX9jKTnKK2SSftQXbrqcaDq8Wspcyc,372
2
2
  atlas_init/__main__.py,sha256=dY1dWWvwxRZMmnOFla6RSfti-hMeLeKdoXP7SVYqMUc,52
3
3
  atlas_init/atlas_init.yaml,sha256=DN9zGb8Ll6krET9FgRSSYkvwLAaRNhrd1n-yPanbv9w,2283
4
- atlas_init/cli.py,sha256=De4198R8ylSowyJlkhjbgboniu6BQcMtzNcHi9xdRC4,9246
4
+ atlas_init/cli.py,sha256=znbyirZl_tChG4SoGQPEM5iSsJiSVslCdExSja1qvUo,9262
5
5
  atlas_init/cli_args.py,sha256=tiwUYAE0JBSl9lHV6VJ41vFCU90ChBZ4mKvi-YoF_HY,541
6
6
  atlas_init/humps.py,sha256=l0ZXXuI34wwd9TskXhCjULfGbUyK-qNmiyC6_2ow6kU,7339
7
7
  atlas_init/terraform.yaml,sha256=qPrnbzBEP-JAQVkYadHsggRnDmshrOJyiv0ckyZCxwY,2734
8
8
  atlas_init/typer_app.py,sha256=RjOZRIV-hacWksgjLB0ip4DgA1fz5x-yHRWuSwSGEws,4254
9
9
  atlas_init/cli_cfn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  atlas_init/cli_cfn/app.py,sha256=DCwEp7kwJMytuy13jHr2M1jJ6sMWTthOc-LkHtNvoew,6104
11
- atlas_init/cli_cfn/aws.py,sha256=NQ4vj6oN7m0SkOwoU5Og0iqrRIhSIhAgBbYj4zLlj38,17886
11
+ atlas_init/cli_cfn/aws.py,sha256=KtJWJmYDknPFtd4j6evMFRwmnFGcLYUFHArV6J49TjI,17911
12
12
  atlas_init/cli_cfn/cfn_parameter_finder.py,sha256=tAadNF1M_U2BTY-m9fXVXFXNQRvfudOja97jT3AiVaI,10811
13
13
  atlas_init/cli_cfn/contract.py,sha256=6gRCvKRh6bn6BiQ3wyai_XNUwbWSqSRlg5GFvSdEcRc,7886
14
14
  atlas_init/cli_cfn/example.py,sha256=_JuFyNEb7QvD4T8jQyAPI3TgnHW0wz0kVuncB5UkbEA,8530
15
15
  atlas_init/cli_cfn/files.py,sha256=kwKDh__O__it2Shz3pHhnle4XUesRd4P929twxUODfI,2651
16
16
  atlas_init/cli_helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- atlas_init/cli_helper/go.py,sha256=rD2xQpgPBhMfoj8q9V7r2nD6eLVK8VCiPD2NYBW8Df4,8636
18
- atlas_init/cli_helper/run.py,sha256=wrt4YvMrqYhODbsSF-SRnqDw2LCu-gR7UPeURMMm6aE,3635
19
- atlas_init/cli_helper/run_manager.py,sha256=JDIi6eRaTF6AEQE_s8cxMPf62k2nuh_tBNjFvL7dbZ8,8990
17
+ atlas_init/cli_helper/go.py,sha256=9a-hyQMZs_u4D3N2U7aVJGtd972TdcqJ05VlZTbuiBY,8652
18
+ atlas_init/cli_helper/run.py,sha256=va1eFP-hRvM76lVzvqH8eqGnyfcbzgR0zCMbL9Neb58,3660
19
+ atlas_init/cli_helper/run_manager.py,sha256=USNRHSm1zuu4H9NRamnxQ2D4gKzrHLk8dZe0G95Be14,9022
20
20
  atlas_init/cli_helper/sdk.py,sha256=exh58-VZwxtosaxM269C62EEy1VnpJPOVziPDPkGsmE,2983
21
21
  atlas_init/cli_helper/sdk_auto_changes.py,sha256=oWyXw7P0PdO28hclRvza_RcIVXAyzu0lCYTJTNBDMeo,189
22
22
  atlas_init/cli_helper/tf_runner.py,sha256=ZEh4WlI-6RV84uBtGNcFgAr8M03As-BLz4fu9wCPULw,3327
@@ -26,30 +26,29 @@ atlas_init/cli_root/trigger.py,sha256=In3oS-z8gYYsPxQjHsGmqB1AsUtHPDTxwva5arsajv
26
26
  atlas_init/cli_tf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  atlas_init/cli_tf/app.py,sha256=0Y5c-Pc9ibOz6kXvFlL-yhH_fx1nHLgBgK9OAVqjX9s,11390
28
28
  atlas_init/cli_tf/changelog.py,sha256=biWYKf1pZvXZ-jEgcZ5q9sY7nTGrL2PuI0h9mCILf_g,3181
29
- atlas_init/cli_tf/debug_logs.py,sha256=NvIEtOb30aK_drYgNyYDsXt7uNtw6L9vhIZicANyDRQ,10022
29
+ atlas_init/cli_tf/debug_logs.py,sha256=P78XnlvBj0rBSceLF3nIuHPIRBnKKw1Ya2gY2zkbTsU,10046
30
30
  atlas_init/cli_tf/debug_logs_test_data.py,sha256=s85x78pFweVyqL2BchkLuvuG9hm-bwl8zcSO-IQqm6c,9736
31
31
  atlas_init/cli_tf/debug_logs_test_data_package_config.py,sha256=BOAgln1pWne_ZhP6a0SM2ddn2csr0sgGkYf2kMS_V9o,1666
32
- atlas_init/cli_tf/github_logs.py,sha256=ny-sr5UKxzE-6QzblyaCmJdHe7xNR1Om0smlQhq6qng,8257
33
- atlas_init/cli_tf/go_test_run.py,sha256=LQUQ-3zJ8EUCixwu33QTAzUns3um793osst8tE0UKjk,6792
34
- atlas_init/cli_tf/go_test_run_format.py,sha256=OUd6QPHDeTzbwVuh6MhP-xXgjOOGP9W_sCLJ8KylBTs,1201
32
+ atlas_init/cli_tf/github_logs.py,sha256=3QnN77qGM9fWNxamh_j7HfXcNPKrg26ut38g9cVoF6g,8280
33
+ atlas_init/cli_tf/go_test_run.py,sha256=N1iUUKjtyVc97TvQX8U43SIX4llOxnEXkPeC40SCcXw,6799
35
34
  atlas_init/cli_tf/go_test_summary.py,sha256=agr4SITgxchjgOzRpScoTUk-iG38QDLkpnsMtTW9GTY,5382
36
35
  atlas_init/cli_tf/mock_tf_log.py,sha256=-ZOtQmy9w7k7HvrywMqlgohZ6Kerojk-P_xtiTaZ4sc,7555
37
36
  atlas_init/cli_tf/schema.py,sha256=iwvb4wD2Wba0MMu7ooTNAIi1jHbpLiXGPOT51_o_YW8,12431
38
37
  atlas_init/cli_tf/schema_go_parser.py,sha256=PiRfFFVnkhltxcGFfOCgH53wwzIEynw2BXmSfaINLL8,8294
39
38
  atlas_init/cli_tf/schema_inspection.py,sha256=ujLvGfg3baByND4nRD0drZoI45STxo3VfYvim-PfVOc,1764
40
- atlas_init/cli_tf/schema_table.py,sha256=1i6urBFNVpyopmLbDkYhL3pceKc9NJBCphfVIbm-K6Y,5229
39
+ atlas_init/cli_tf/schema_table.py,sha256=sxH-WUvBOHPI-HH2-2Y_MwKN-_POlQX3599h6YbfY1U,5261
41
40
  atlas_init/cli_tf/schema_table_models.py,sha256=9gS3gYris0MjEWsY_gbLWcZwJokCUJS1TcVXnq7w5SA,5003
42
41
  atlas_init/cli_tf/schema_v2.py,sha256=NtVW3lPKxHtCMBEwo9zThARpy9oQRbsKd0NrhymAyyE,21960
43
42
  atlas_init/cli_tf/schema_v2_api_parsing.py,sha256=8XtwHNU84VPMATD3CbE-TLeVlgxqZggxY5QQ5YjhX4w,12888
44
43
  atlas_init/cli_tf/schema_v2_sdk.py,sha256=AsAERT18FC97Gdb8r-qFInr4pSA15IGMUvCn-065XGE,12630
45
- atlas_init/cli_tf/schema_v3.py,sha256=f0m1VoCVukIqyfMee1K-11GfWv_AIKoI4mRAMBYa17k,5769
44
+ atlas_init/cli_tf/schema_v3.py,sha256=LUeI2kniUDfd-5iP1TCLXb-Js92VYSXB6FCVLDYAIak,5788
46
45
  atlas_init/cli_tf/schema_v3_sdk.py,sha256=5RWbhqKT8jEGgJrQaaT7xTRToviIzZZOxuJO5MNLYwo,9929
47
46
  atlas_init/cli_tf/schema_v3_sdk_base.py,sha256=oe7WRZc0R_UYP5Yry4kDAMxOKAUHvQrc9bIdjfLshYk,2131
48
47
  atlas_init/cli_tf/schema_v3_sdk_create.py,sha256=64AluGbQP47RRdY6Cz4KZRN9DdQISW5lLxQ-E1od5dc,8342
49
48
  atlas_init/cli_tf/hcl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
49
  atlas_init/cli_tf/hcl/cli.py,sha256=6V1kU_a1c4LA3rS7sWN821gQex00fb70AUyd07xO0es,5760
51
50
  atlas_init/cli_tf/hcl/cluster_mig.py,sha256=kMb_0V_XWr_iQj-mZZ-mmzIvYOLfuC4FYGYYSe9VKkQ,12496
52
- atlas_init/cli_tf/hcl/parser.py,sha256=NVe55u386U7YSKdT8ZCJ-rPV7O3BgNoyZ_bHsjxGYjQ,4814
51
+ atlas_init/cli_tf/hcl/parser.py,sha256=wqj0YIn9nyEfjRqZnM7FH4yL43-K9ANvRiy9RCahImc,4833
53
52
  atlas_init/cloud/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
53
  atlas_init/cloud/aws.py,sha256=AXVobJ724S6OeEs_uXH9dvecc_klnXqejRnI7KaLyzo,4935
55
54
  atlas_init/repos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -58,8 +57,8 @@ atlas_init/repos/go_sdk.py,sha256=1OzM9DjHEAzAAuI9ygoRRuhUK2gqpOhXExXRqhqa0tg,17
58
57
  atlas_init/repos/path.py,sha256=wrT8e01OBoAHj8iMrxqutgqWu-BHPe9-bEWtcZRu238,4187
59
58
  atlas_init/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
59
  atlas_init/settings/config.py,sha256=jQvLmPEocnXyfcKkTshp3TfQNPEuTayRauuOUqixPBA,6378
61
- atlas_init/settings/env_vars.py,sha256=ZtpuRnCObUCki1RtwseGpm1Jd10wehWP9NneE-ZzJ84,10643
62
- atlas_init/settings/env_vars_generated.py,sha256=0ae1KFgRMo4KzmfidI3oo_dkTWZy5uMEpx593qrwNaM,972
60
+ atlas_init/settings/env_vars.py,sha256=1M4EKveUbrHaEuSyWyZ_bdK7MUTHhBu8-tFGSimqCCI,10659
61
+ atlas_init/settings/env_vars_generated.py,sha256=c3dMShnSvqLsiJTIMoHCpC9Tvk35b5lra40Ske9l4gE,980
63
62
  atlas_init/settings/interactive.py,sha256=Xy1Z5WMAOSaJ-vQI_4xjAbSR92rWQgnffwVoDT27L68,340
64
63
  atlas_init/settings/path.py,sha256=KkXysu6-0AuSjsvYGknYGJX1hL2j1RD-Fpf8KsVYpkE,2618
65
64
  atlas_init/settings/rich_utils.py,sha256=aIENYZ18XDqpK-f8zSNwL8PnOlW4Wv0BUT4x3REWHBM,1993
@@ -75,11 +74,11 @@ atlas_init/tf/modules/aws_vars/aws_vars.tf,sha256=0SItDIZUWQCpw4o0y2jZjUY1LnUeUd
75
74
  atlas_init/tf/modules/aws_vpc/aws_vpc.tf,sha256=TnWyDFLHi_aYEnqRCNLDjQmCSUPA0x_4A9fCvXL0vO0,1838
76
75
  atlas_init/tf/modules/aws_vpc/provider.tf,sha256=0c2_hW9dSnwbK_1xdD4iSLiD6PACneBx5rEW06uWYlM,210
77
76
  atlas_init/tf/modules/cfn/assume_role_services.yaml,sha256=Sv-FPsLeZ0K_3x0Eq5iJcf7yGe5ax8I0uqzvUlMZDOY,94
78
- atlas_init/tf/modules/cfn/cfn.tf,sha256=53zvs0pm_dosX1U666su2FI4fH7CbbelXkgXdN0l8O4,3020
77
+ atlas_init/tf/modules/cfn/cfn.tf,sha256=ajBFLh0RYwAqRhp9-yanYKqfjNus0r88_gxRFdFfEj4,3019
79
78
  atlas_init/tf/modules/cfn/kms.tf,sha256=W-HfFbQ2J1GQC279Ou-PLq4huf0mGn235BCEgO7n9aI,1635
80
79
  atlas_init/tf/modules/cfn/resource_actions.yaml,sha256=rPQZ46YiN-PnpY91hDPOFJgZtlAiyIiyVE3P9yvo50o,540
81
80
  atlas_init/tf/modules/cfn/variables.tf,sha256=qbYffl4ly0K8IRTwG3P7-Yyzm5OBTVRZCmDP69WMp44,379
82
- atlas_init/tf/modules/cloud_provider/cloud_provider.tf,sha256=FWExSFKOX239XQaG1AFIRZHQij5NM6sjAWCm3xGDFsQ,1281
81
+ atlas_init/tf/modules/cloud_provider/cloud_provider.tf,sha256=l1Tf0FegoeHYUvBmMBv60ZtZjeKIkT9S6mS4cc6815M,1281
83
82
  atlas_init/tf/modules/cloud_provider/provider.tf,sha256=IDpMSLO3GjkxCvF-4qdHugxYq_w-Epujr51HZf_xB0Y,237
84
83
  atlas_init/tf/modules/cluster/cluster.tf,sha256=TId4JsmSDlSHtIzmo3p4GKUVRhzZK9eoiI7DmoYgdq0,3041
85
84
  atlas_init/tf/modules/cluster/provider.tf,sha256=RmUmMzMfOT5LZIWYqxM2EgtkI7JWqZfj3p3TxZkZoLk,161
@@ -91,7 +90,7 @@ atlas_init/tf/modules/vpc_peering/vpc_peering.tf,sha256=hJ3KJdGbLpOQednUpVuiJ0Cq
91
90
  atlas_init/tf/modules/vpc_privatelink/atlas-privatelink.tf,sha256=FloaaX1MNDvoMZxBnEopeLKyfIlq6kaX2dmx8WWlXNU,1298
92
91
  atlas_init/tf/modules/vpc_privatelink/variables.tf,sha256=gktHCDYD4rz6CEpLg5aiXcFbugw4L5S2Fqc52QYdJyc,255
93
92
  atlas_init/tf/modules/vpc_privatelink/versions.tf,sha256=G0u5V_Hvvrkux_tqfOY05pA-GzSp_qILpfx1dZaTGDc,237
94
- atlas_init-0.4.0.dist-info/METADATA,sha256=VAQENKFxJsftUijGbvzjueVwsuiNsbOpEHlV7ZyQ-YQ,5661
95
- atlas_init-0.4.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
96
- atlas_init-0.4.0.dist-info/entry_points.txt,sha256=oSNFIEAS9nUZyyZ8Fc-0F0U5j-NErygy01LpJVSHapQ,57
97
- atlas_init-0.4.0.dist-info/RECORD,,
93
+ atlas_init-0.4.1.dist-info/METADATA,sha256=SHZ54VmuOMTcNQp_1wQpDAlw0LHeAEYifDrk15yva3g,5662
94
+ atlas_init-0.4.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
95
+ atlas_init-0.4.1.dist-info/entry_points.txt,sha256=oSNFIEAS9nUZyyZ8Fc-0F0U5j-NErygy01LpJVSHapQ,57
96
+ atlas_init-0.4.1.dist-info/RECORD,,
@@ -1,31 +0,0 @@
1
- from collections import Counter
2
-
3
- from github.WorkflowJob import WorkflowJob
4
- from zero_3rdparty import datetime_utils
5
-
6
- from atlas_init.cli_tf.go_test_run import GoTestRun, GoTestStatus
7
-
8
-
9
- def format_job(job: WorkflowJob) -> str:
10
- date = datetime_utils.date_filename(job.created_at)
11
- exec_time = "0s"
12
- if complete_ts := job.completed_at:
13
- exec_time = f"{(complete_ts - job.created_at).total_seconds()}s"
14
- return f"{date}_{job.workflow_name}_attempt{job.run_attempt}_ ({exec_time})"
15
-
16
-
17
- def job_summary(runs: list[GoTestRun]) -> tuple[WorkflowJob, str]:
18
- status_counts: dict[GoTestStatus, int] = Counter()
19
- for run in runs:
20
- status_counts[run.status] += 1
21
- line = [f"{key}={status_counts[key]}" for key in sorted(status_counts.keys())]
22
- job = runs[0].job
23
- return job, f"{format_job(job)}:" + ",".join(line)
24
-
25
-
26
- def fail_test_summary(runs: list[GoTestRun]) -> str:
27
- failed_runs = [r for r in runs if r.is_failure]
28
- failed_details: list[str] = [run.finish_summary() for run in failed_runs]
29
- failed_names = [f"- {run.name}" for run in failed_runs]
30
- delimiter = "\n" + "-" * 40 + "\n"
31
- return "\n".join(failed_details) + delimiter + "\n".join(failed_names)