python-skills 1.0.0__tar.gz → 1.0.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 (105) hide show
  1. {python_skills-1.0.0 → python_skills-1.0.1}/PKG-INFO +1 -1
  2. {python_skills-1.0.0 → python_skills-1.0.1}/pyproject.toml +1 -1
  3. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/opencode.py +4 -3
  4. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/windsurf.py +4 -3
  5. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/state.py +8 -1
  6. {python_skills-1.0.0 → python_skills-1.0.1}/.gitignore +0 -0
  7. {python_skills-1.0.0 → python_skills-1.0.1}/LICENSE +0 -0
  8. {python_skills-1.0.0 → python_skills-1.0.1}/README.md +0 -0
  9. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/__init__.py +0 -0
  10. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/__main__.py +0 -0
  11. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/__init__.py +0 -0
  12. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/agent_skills.py +0 -0
  13. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/aider_adapter.py +0 -0
  14. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/base.py +0 -0
  15. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/claude.py +0 -0
  16. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/cline.py +0 -0
  17. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/codex.py +0 -0
  18. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/continue_adapter.py +0 -0
  19. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/cursor.py +0 -0
  20. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/gemini.py +0 -0
  21. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/goose.py +0 -0
  22. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/junie.py +0 -0
  23. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/kiro.py +0 -0
  24. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/roo.py +0 -0
  25. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/universal.py +0 -0
  26. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/vscode.py +0 -0
  27. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/adapters/zed.py +0 -0
  28. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/cli.py +0 -0
  29. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/config.py +0 -0
  30. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/detector.py +0 -0
  31. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/installer.py +0 -0
  32. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/markers.py +0 -0
  33. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/skills/__init__.py +0 -0
  34. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/skills/loader.py +0 -0
  35. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/skills/metadata.py +0 -0
  36. {python_skills-1.0.0 → python_skills-1.0.1}/python_skills/skills/registry.py +0 -0
  37. {python_skills-1.0.0 → python_skills-1.0.1}/skills/advanced_python.md +0 -0
  38. {python_skills-1.0.0 → python_skills-1.0.1}/skills/anti_patterns/index.md +0 -0
  39. {python_skills-1.0.0 → python_skills-1.0.1}/skills/comprehensions.md +0 -0
  40. {python_skills-1.0.0 → python_skills-1.0.1}/skills/control_flow.md +0 -0
  41. {python_skills-1.0.0 → python_skills-1.0.1}/skills/data_structures.md +0 -0
  42. {python_skills-1.0.0 → python_skills-1.0.1}/skills/debugging/common_bugs.md +0 -0
  43. {python_skills-1.0.0 → python_skills-1.0.1}/skills/debugging/inspection_techniques.md +0 -0
  44. {python_skills-1.0.0 → python_skills-1.0.1}/skills/debugging/root_cause.md +0 -0
  45. {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/application_logging.md +0 -0
  46. {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/cli_apps.md +0 -0
  47. {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/configuration.md +0 -0
  48. {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/database.md +0 -0
  49. {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/dependency_management.md +0 -0
  50. {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/http_clients.md +0 -0
  51. {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/modules_packages.md +0 -0
  52. {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/packaging.md +0 -0
  53. {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/project_structure.md +0 -0
  54. {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/pyproject_toml.md +0 -0
  55. {python_skills-1.0.0 → python_skills-1.0.1}/skills/engineering/virtual_environments.md +0 -0
  56. {python_skills-1.0.0 → python_skills-1.0.1}/skills/functions.md +0 -0
  57. {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/async_concurrency.md +0 -0
  58. {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/error_handling.md +0 -0
  59. {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/protocols_generics.md +0 -0
  60. {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/type_hints.md +0 -0
  61. {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/validation_pipeline.md +0 -0
  62. {python_skills-1.0.0 → python_skills-1.0.1}/skills/generation/workflow.md +0 -0
  63. {python_skills-1.0.0 → python_skills-1.0.1}/skills/oop.md +0 -0
  64. {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/abstractions.md +0 -0
  65. {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/comments.md +0 -0
  66. {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/documentation.md +0 -0
  67. {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/duplication.md +0 -0
  68. {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/maintainability.md +0 -0
  69. {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/naming.md +0 -0
  70. {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/quality_functions.md +0 -0
  71. {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/readability.md +0 -0
  72. {python_skills-1.0.0 → python_skills-1.0.1}/skills/quality/type_annotations.md +0 -0
  73. {python_skills-1.0.0 → python_skills-1.0.1}/skills/refactoring/behavior_preservation.md +0 -0
  74. {python_skills-1.0.0 → python_skills-1.0.1}/skills/refactoring/incremental.md +0 -0
  75. {python_skills-1.0.0 → python_skills-1.0.1}/skills/refactoring/interface_stability.md +0 -0
  76. {python_skills-1.0.0 → python_skills-1.0.1}/skills/refactoring/safe_refactoring.md +0 -0
  77. {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/auth_boundaries.md +0 -0
  78. {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/command_injection.md +0 -0
  79. {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/dependency_risks.md +0 -0
  80. {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/file_handling.md +0 -0
  81. {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/input_validation.md +0 -0
  82. {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/path_traversal.md +0 -0
  83. {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/secrets.md +0 -0
  84. {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/sql_injection.md +0 -0
  85. {python_skills-1.0.0 → python_skills-1.0.1}/skills/security/unsafe_deserialization.md +0 -0
  86. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/argparse.md +0 -0
  87. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/collections.md +0 -0
  88. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/datetime.md +0 -0
  89. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/functools.md +0 -0
  90. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/itertools.md +0 -0
  91. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/json.md +0 -0
  92. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/logging.md +0 -0
  93. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/os_sys.md +0 -0
  94. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/pathlib.md +0 -0
  95. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/re.md +0 -0
  96. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/statistics.md +0 -0
  97. {python_skills-1.0.0 → python_skills-1.0.1}/skills/stdlib/subprocess.md +0 -0
  98. {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/async_tests.md +0 -0
  99. {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/coverage.md +0 -0
  100. {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/edge_cases.md +0 -0
  101. {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/fixtures_mocks.md +0 -0
  102. {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/organization.md +0 -0
  103. {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/parameterized.md +0 -0
  104. {python_skills-1.0.0 → python_skills-1.0.1}/skills/testing/regression_tests.md +0 -0
  105. {python_skills-1.0.0 → python_skills-1.0.1}/skills/variables_types.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: python-skills
3
- Version: 1.0.0
3
+ Version: 1.0.1
4
4
  Summary: Python engineering skills for AI coding agents
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.10
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "python-skills"
7
- version = "1.0.0"
7
+ version = "1.0.1"
8
8
  description = "Python engineering skills for AI coding agents"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -10,16 +10,17 @@ class OpenCodeAdapter(AgentSkillsAdapter):
10
10
 
11
11
  OpenCode discovers skills from:
12
12
  - .agents/skills/<name>/SKILL.md (cross-agent standard)
13
- - .opencode/skills/<name>/SKILL.md (native)
13
+ - .opencode/skills/<name>/SKILL.md (native, fallback)
14
14
  - .claude/skills/<name>/SKILL.md (Claude Code compat)
15
15
 
16
- We install to .agents/skills/ (shared) and .opencode/skills/ (native).
16
+ We install to .agents/skills/ (shared). OpenCode discovers from the
17
+ shared directory natively, so no separate native directory is needed.
17
18
  """
18
19
 
19
20
  target_name = "opencode"
20
21
  display_name = "OpenCode"
21
22
  agent_skills_dir = ".agents/skills"
22
- native_skills_dir = ".opencode/skills"
23
+ native_skills_dir = None
23
24
  detection_app_command = "opencode"
24
25
  detection_project_markers = [".opencode", "opencode.json", "opencode.jsonc"]
25
26
 
@@ -10,16 +10,17 @@ class WindsurfAdapter(AgentSkillsAdapter):
10
10
 
11
11
  Windsurf discovers skills from:
12
12
  - .agents/skills/<name>/SKILL.md (cross-agent standard)
13
- - .windsurf/skills/<name>/SKILL.md (native)
13
+ - .windsurf/skills/<name>/SKILL.md (native, fallback)
14
14
  - .claude/skills/<name>/SKILL.md (Claude Code compat)
15
15
 
16
- We install to .agents/skills/ (shared) and .windsurf/skills/ (native).
16
+ We install to .agents/skills/ (shared). Windsurf discovers from the
17
+ shared directory natively, so no separate native directory is needed.
17
18
  """
18
19
 
19
20
  target_name = "windsurf"
20
21
  display_name = "Windsurf"
21
22
  agent_skills_dir = ".agents/skills"
22
- native_skills_dir = ".windsurf/skills"
23
+ native_skills_dir = None
23
24
  detection_project_markers = [".windsurf", ".devin"]
24
25
 
25
26
  def _get_global_path(self) -> Path:
@@ -91,7 +91,14 @@ class LockManager:
91
91
  if self.lock_file.exists():
92
92
  try:
93
93
  data = json.loads(self.lock_file.read_text(encoding="utf-8"))
94
- self._lock = LockState(**data)
94
+ targets_raw = data.pop("targets", {})
95
+ lock = LockState(**data)
96
+ for name, ts_data in targets_raw.items():
97
+ files_raw = ts_data.pop("files", [])
98
+ ts = TargetState(**ts_data)
99
+ ts.files = [FileRecord(**f) for f in files_raw]
100
+ lock.targets[name] = ts
101
+ self._lock = lock
95
102
  return self._lock
96
103
  except Exception:
97
104
  pass
File without changes
File without changes
File without changes