envrcctl 0.2.6__tar.gz → 0.2.7__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 (52) hide show
  1. {envrcctl-0.2.6 → envrcctl-0.2.7}/PKG-INFO +1 -1
  2. {envrcctl-0.2.6 → envrcctl-0.2.7}/pyproject.toml +1 -1
  3. {envrcctl-0.2.6 → envrcctl-0.2.7}/scripts/release_artifacts.py +35 -3
  4. {envrcctl-0.2.6 → envrcctl-0.2.7}/.gitignore +0 -0
  5. {envrcctl-0.2.6 → envrcctl-0.2.7}/LICENSE +0 -0
  6. {envrcctl-0.2.6 → envrcctl-0.2.7}/README.md +0 -0
  7. {envrcctl-0.2.6 → envrcctl-0.2.7}/completions/envrcctl.bash +0 -0
  8. {envrcctl-0.2.6 → envrcctl-0.2.7}/completions/envrcctl.fish +0 -0
  9. {envrcctl-0.2.6 → envrcctl-0.2.7}/completions/envrcctl.zsh +0 -0
  10. {envrcctl-0.2.6 → envrcctl-0.2.7}/scripts/build_macos_auth_helper.sh +0 -0
  11. {envrcctl-0.2.6 → envrcctl-0.2.7}/scripts/generate_completions.py +0 -0
  12. {envrcctl-0.2.6 → envrcctl-0.2.7}/scripts/macos/envrcctl-macos-auth.swift +0 -0
  13. {envrcctl-0.2.6 → envrcctl-0.2.7}/scripts/package_for_ship.sh +0 -0
  14. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/__init__.py +0 -0
  15. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/audit.py +0 -0
  16. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/auth.py +0 -0
  17. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/cli.py +0 -0
  18. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/command_runner.py +0 -0
  19. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/envrc.py +0 -0
  20. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/envrcctl-macos-auth.bak +0 -0
  21. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/errors.py +0 -0
  22. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/keychain.py +0 -0
  23. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/main.py +0 -0
  24. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/managed_block.py +0 -0
  25. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/secrets.py +0 -0
  26. {envrcctl-0.2.6 → envrcctl-0.2.7}/src/envrcctl/secretservice.py +0 -0
  27. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/__init__.py +0 -0
  28. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/conftest.py +0 -0
  29. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/helpers/__init__.py +0 -0
  30. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/helpers/cli_support.py +0 -0
  31. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_audit.py +0 -0
  32. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_audit_cli.py +0 -0
  33. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_auth.py +0 -0
  34. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_cli.py +0 -0
  35. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_cli_doctor.py +0 -0
  36. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_cli_errors.py +0 -0
  37. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_cli_eval.py +0 -0
  38. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_cli_exec.py +0 -0
  39. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_cli_helpers.py +0 -0
  40. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_cli_inject.py +0 -0
  41. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_cli_migrate.py +0 -0
  42. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_cli_secret_get.py +0 -0
  43. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_cli_secret_list.py +0 -0
  44. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_cli_secret_set_unset.py +0 -0
  45. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_command_runner.py +0 -0
  46. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_envrc.py +0 -0
  47. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_keychain.py +0 -0
  48. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_main.py +0 -0
  49. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_managed_block.py +0 -0
  50. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_secrets.py +0 -0
  51. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_secretservice.py +0 -0
  52. {envrcctl-0.2.6 → envrcctl-0.2.7}/tests/test_smoke.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: envrcctl
3
- Version: 0.2.6
3
+ Version: 0.2.7
4
4
  Summary: Manage .envrc with managed blocks and OS-backed secrets.
5
5
  Project-URL: Homepage, https://github.com/rioriost/envrcctl
6
6
  Project-URL: Issues, https://github.com/rioriost/envrcctl/issues
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "envrcctl"
3
- version = "0.2.6"
3
+ version = "0.2.7"
4
4
  description = "Manage .envrc with managed blocks and OS-backed secrets."
5
5
  readme = { file = "README.md", content-type = "text/markdown" }
6
6
  license = "MIT"
@@ -70,6 +70,24 @@ def dependency_name(requirement: str) -> str:
70
70
  return normalize_package_name(base)
71
71
 
72
72
 
73
+ def package_dependencies(block: str) -> list[str]:
74
+ deps_match = re.search(r"dependencies = \[(.*?)\]\n", block, re.DOTALL)
75
+ if not deps_match:
76
+ return []
77
+
78
+ dependencies: list[str] = []
79
+ for match in re.finditer(r'\{ name = "([^"]+)"(?:, marker = "([^"]+)")?', deps_match.group(1)):
80
+ name = normalize_package_name(match.group(1))
81
+ marker = match.group(2)
82
+ if marker and "win32" in marker.lower():
83
+ continue
84
+ if marker and "windows" in marker.lower():
85
+ continue
86
+ dependencies.append(name)
87
+
88
+ return dependencies
89
+
90
+
73
91
  def uv_lock_package_block(lock_text: str, package_name: str) -> str:
74
92
  normalized = normalize_package_name(package_name)
75
93
  current: list[str] = []
@@ -111,10 +129,24 @@ def extract_sdist_url_and_sha(block: str, package_name: str) -> tuple[str, str]:
111
129
 
112
130
  def dependency_resource_specs(repo_root: Path) -> list[tuple[str, str, str]]:
113
131
  lock_text = (repo_root / "uv.lock").read_text(encoding="utf-8")
114
- specs: list[tuple[str, str, str]] = []
132
+ ordered_names: list[str] = []
133
+ seen: set[str] = set()
134
+ queue = [dependency_name(req) for req in project_dependencies(repo_root / "pyproject.toml")]
135
+
136
+ while queue:
137
+ package_name = normalize_package_name(queue.pop(0))
138
+ if package_name in seen:
139
+ continue
140
+ seen.add(package_name)
141
+ ordered_names.append(package_name)
115
142
 
116
- for requirement in project_dependencies(repo_root / "pyproject.toml"):
117
- package_name = dependency_name(requirement)
143
+ block = uv_lock_package_block(lock_text, package_name)
144
+ for dependency in package_dependencies(block):
145
+ if dependency not in seen and dependency not in queue:
146
+ queue.append(dependency)
147
+
148
+ specs: list[tuple[str, str, str]] = []
149
+ for package_name in ordered_names:
118
150
  block = uv_lock_package_block(lock_text, package_name)
119
151
  url, sha256 = extract_sdist_url_and_sha(block, package_name)
120
152
  specs.append((package_name, url, sha256))
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
File without changes