specpulse 1.4.2__py3-none-any.whl → 1.4.3__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.
- specpulse/__init__.py +1 -1
- specpulse/resources/commands/claude/sp-plan.md +6 -2
- specpulse/resources/commands/claude/sp-spec.md +8 -4
- specpulse/resources/scripts/sp-pulse-plan.sh +7 -10
- specpulse/resources/scripts/sp-pulse-spec.ps1 +23 -21
- specpulse/resources/scripts/sp-pulse-spec.sh +21 -23
- specpulse/resources/scripts/sp-pulse-task.sh +7 -12
- {specpulse-1.4.2.dist-info → specpulse-1.4.3.dist-info}/METADATA +7 -2
- {specpulse-1.4.2.dist-info → specpulse-1.4.3.dist-info}/RECORD +13 -13
- {specpulse-1.4.2.dist-info → specpulse-1.4.3.dist-info}/WHEEL +0 -0
- {specpulse-1.4.2.dist-info → specpulse-1.4.3.dist-info}/entry_points.txt +0 -0
- {specpulse-1.4.2.dist-info → specpulse-1.4.3.dist-info}/licenses/LICENSE +0 -0
- {specpulse-1.4.2.dist-info → specpulse-1.4.3.dist-info}/top_level.txt +0 -0
specpulse/__init__.py
CHANGED
@@ -96,8 +96,12 @@ When called with `/sp-plan $ARGUMENTS`, I will:
|
|
96
96
|
- Create improvement strategies for technical debt
|
97
97
|
- Track future enhancement opportunities
|
98
98
|
|
99
|
-
i. **
|
100
|
-
|
99
|
+
i. **CRITICAL NUMBERING LOGIC**:
|
100
|
+
- Check if `plans/XXX-feature/plan-001.md` exists
|
101
|
+
- If plan-001.md does NOT exist: Create plan-001.md with full content from template
|
102
|
+
- If plan-001.md EXISTS: Create plan-002.md (or next number) with new content
|
103
|
+
- NEVER leave plan-001.md as placeholder if it's the first plan
|
104
|
+
j. **Write FULL plan content** to `plans/XXX-feature/plan-XXX.md`
|
101
105
|
k. **IMPORTANT**: Can EDIT files in plans/ folder, but NEVER modify templates/, scripts/, or commands/ folders
|
102
106
|
|
103
107
|
4. **For `/sp-plan validate`:**
|
@@ -43,7 +43,12 @@ When called with `/sp-spec $ARGUMENTS`, I will:
|
|
43
43
|
- If no action specified: Default to `create` with full arguments as description
|
44
44
|
|
45
45
|
3. **For `/sp-spec create [description]` or `/sp-spec [description]`:**
|
46
|
-
-
|
46
|
+
- **CRITICAL NUMBERING LOGIC**:
|
47
|
+
- Check if `specs/XXX-feature/spec-001.md` exists
|
48
|
+
- If spec-001.md does NOT exist: Create spec-001.md with full content from template
|
49
|
+
- If spec-001.md EXISTS: Create spec-002.md (or next number) with new content
|
50
|
+
- NEVER leave spec-001.md as placeholder if it's the first spec
|
51
|
+
- READ template from `templates/spec.md` and use it to generate content
|
47
52
|
- IMPORTANT: Only edit files in specs/, plans/, tasks/ folders. NEVER edit templates/, scripts/, or commands/
|
48
53
|
- Parse the description to identify:
|
49
54
|
- Functional requirements (Must/Should/Could/Won't have)
|
@@ -60,11 +65,10 @@ When called with `/sp-spec $ARGUMENTS`, I will:
|
|
60
65
|
```
|
61
66
|
- Mark any uncertainties with `[NEEDS CLARIFICATION: specific question]`
|
62
67
|
- Use detected feature context to determine target directory
|
63
|
-
-
|
64
|
-
- Write NEW specification to `specs/ID-feature-name/spec-XXX.md`
|
68
|
+
- Write FULL specification content to `specs/ID-feature-name/spec-XXX.md`
|
65
69
|
- Can EDIT files in specs/ folder, but NEVER modify templates/, scripts/, or commands/ folders
|
66
70
|
- Run validation:
|
67
|
-
- `bash scripts/sp-pulse-spec.sh "$FEATURE_DIR"`
|
71
|
+
- `bash scripts/sp-pulse-spec.sh "$FEATURE_DIR" "$SPEC_CONTENT"`
|
68
72
|
|
69
73
|
4. **For `/sp-spec update`:**
|
70
74
|
- **Show existing spec files**: List all spec-XXX.md files in current feature directory
|
@@ -59,14 +59,14 @@ else
|
|
59
59
|
error_exit "Specifications directory not found: $SPEC_DIR. Please create specification first."
|
60
60
|
fi
|
61
61
|
|
62
|
-
#
|
63
|
-
if [ -
|
64
|
-
#
|
62
|
+
# Check if plan-001.md exists
|
63
|
+
if [ -f "$PLAN_DIR/plan-001.md" ]; then
|
64
|
+
# Find next available plan number
|
65
65
|
highest_plan=$(find "$PLAN_DIR" -name "plan-*.md" -exec basename {} .md \; | sed 's/plan-//' | sort -n | tail -1)
|
66
66
|
if [ -n "$highest_plan" ]; then
|
67
67
|
plan_number=$((highest_plan + 1))
|
68
68
|
else
|
69
|
-
plan_number=
|
69
|
+
plan_number=2
|
70
70
|
fi
|
71
71
|
else
|
72
72
|
plan_number=1
|
@@ -78,17 +78,14 @@ if [ ! -f "$TEMPLATE_FILE" ]; then
|
|
78
78
|
error_exit "Template not found: $TEMPLATE_FILE"
|
79
79
|
fi
|
80
80
|
|
81
|
-
# Create
|
82
|
-
log "Creating implementation plan
|
81
|
+
# Create placeholder file for AI to generate plan
|
82
|
+
log "Creating implementation plan: $PLAN_FILE"
|
83
83
|
echo "# Implementation Plan - $FEATURE_DIR" > "$PLAN_FILE"
|
84
84
|
echo "" >> "$PLAN_FILE"
|
85
|
-
echo "<!--
|
85
|
+
echo "<!-- INSTRUCTION: Generate plan using template: $TEMPLATE_FILE -->" >> "$PLAN_FILE"
|
86
86
|
echo "<!-- SPEC_FILE: $SPEC_FILE -->" >> "$PLAN_FILE"
|
87
87
|
echo "<!-- FEATURE_DIR: $FEATURE_DIR -->" >> "$PLAN_FILE"
|
88
88
|
echo "<!-- FEATURE_ID: $FEATURE_ID -->" >> "$PLAN_FILE"
|
89
|
-
echo "" >> "$PLAN_FILE"
|
90
|
-
echo "## Awaiting AI Generation" >> "$PLAN_FILE"
|
91
|
-
echo "This plan needs to be generated from the template based on specification: $SPEC_FILE" >> "$PLAN_FILE"
|
92
89
|
|
93
90
|
# Validate plan structure
|
94
91
|
log "Validating implementation plan..."
|
@@ -48,8 +48,13 @@ if (-not (Test-Path $SpecDir)) {
|
|
48
48
|
# Find latest spec file or create new one
|
49
49
|
if ($SpecContent) {
|
50
50
|
# Find next available spec number
|
51
|
-
$existingSpecs = Get-ChildItem -Path $SpecDir -Filter "spec-*.md" -ErrorAction SilentlyContinue
|
52
|
-
|
51
|
+
$existingSpecs = Get-ChildItem -Path $SpecDir -Filter "spec-*.md" -ErrorAction SilentlyContinue | Sort-Object Name
|
52
|
+
if ($existingSpecs) {
|
53
|
+
$highestSpec = [int]($existingSpecs[-1].BaseName -replace 'spec-', '')
|
54
|
+
$specNumber = $highestSpec + 1
|
55
|
+
} else {
|
56
|
+
$specNumber = 1
|
57
|
+
}
|
53
58
|
$SpecFile = Join-Path $SpecDir ("spec-{0:D3}.md" -f $specNumber)
|
54
59
|
|
55
60
|
# Update specification with provided content
|
@@ -60,27 +65,24 @@ if ($SpecContent) {
|
|
60
65
|
Exit-WithError "Failed to write specification content: $_"
|
61
66
|
}
|
62
67
|
} else {
|
63
|
-
#
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
$
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
if (-not (Test-Path $TemplateFile)) {
|
75
|
-
Exit-WithError "Template not found: $TemplateFile"
|
76
|
-
}
|
77
|
-
Log-Message "Creating specification from template: $SpecFile"
|
78
|
-
try {
|
79
|
-
Copy-Item -Path $TemplateFile -Destination $SpecFile -Force
|
80
|
-
} catch {
|
81
|
-
Exit-WithError "Failed to copy specification template: $_"
|
68
|
+
# Interactive mode - AI should generate spec content
|
69
|
+
# Check if spec-001.md exists
|
70
|
+
$FirstSpec = Join-Path $SpecDir "spec-001.md"
|
71
|
+
if (Test-Path $FirstSpec) {
|
72
|
+
# Find next available spec number
|
73
|
+
$existingSpecs = Get-ChildItem -Path $SpecDir -Filter "spec-*.md" -ErrorAction SilentlyContinue | Sort-Object Name
|
74
|
+
if ($existingSpecs) {
|
75
|
+
$highestSpec = [int]($existingSpecs[-1].BaseName -replace 'spec-', '')
|
76
|
+
$specNumber = $highestSpec + 1
|
77
|
+
} else {
|
78
|
+
$specNumber = 2
|
82
79
|
}
|
80
|
+
} else {
|
81
|
+
$specNumber = 1
|
83
82
|
}
|
83
|
+
$SpecFile = Join-Path $SpecDir ("spec-{0:D3}.md" -f $specNumber)
|
84
|
+
Log-Message "Creating specification file for AI generation: $SpecFile"
|
85
|
+
"INSTRUCTION: Generate specification content using template at $TemplateFile" | Set-Content -Path "$SpecFile.instruction"
|
84
86
|
}
|
85
87
|
|
86
88
|
# Validate specification
|
@@ -64,41 +64,39 @@ if [ -n "$SPEC_CONTENT" ]; then
|
|
64
64
|
spec_number=1
|
65
65
|
fi
|
66
66
|
SPEC_FILE="$SPEC_DIR/spec-$(printf "%03d" $spec_number).md"
|
67
|
-
|
67
|
+
|
68
68
|
# Update specification with provided content
|
69
69
|
log "Creating specification: $SPEC_FILE"
|
70
70
|
echo "$SPEC_CONTENT" > "$SPEC_FILE" || error_exit "Failed to write specification content"
|
71
71
|
else
|
72
|
-
#
|
73
|
-
if
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
echo "# Specification - $FEATURE_DIR" > "$SPEC_FILE"
|
80
|
-
echo "" >> "$SPEC_FILE"
|
81
|
-
echo "<!-- AI: Please generate specification using template: $TEMPLATE_FILE -->" >> "$SPEC_FILE"
|
82
|
-
echo "<!-- FEATURE_DIR: $FEATURE_DIR -->" >> "$SPEC_FILE"
|
83
|
-
echo "<!-- FEATURE_ID: $FEATURE_ID -->" >> "$SPEC_FILE"
|
84
|
-
echo "" >> "$SPEC_FILE"
|
85
|
-
echo "## Awaiting AI Generation" >> "$SPEC_FILE"
|
86
|
-
echo "This specification needs to be generated from the template." >> "$SPEC_FILE"
|
72
|
+
# Interactive mode - AI should generate spec content
|
73
|
+
# Check if spec-001.md exists
|
74
|
+
if [ -f "$SPEC_DIR/spec-001.md" ]; then
|
75
|
+
# Find next available spec number
|
76
|
+
highest_spec=$(find "$SPEC_DIR" -name "spec-*.md" -exec basename {} .md \; | sed 's/spec-//' | sort -n | tail -1)
|
77
|
+
if [ -n "$highest_spec" ]; then
|
78
|
+
spec_number=$((highest_spec + 1))
|
87
79
|
else
|
88
|
-
|
80
|
+
spec_number=2
|
89
81
|
fi
|
82
|
+
SPEC_FILE="$SPEC_DIR/spec-$(printf "%03d" $spec_number).md"
|
83
|
+
log "Creating specification file for AI generation: $SPEC_FILE"
|
84
|
+
# Create placeholder file for AI to fill
|
85
|
+
echo "# Specification - $FEATURE_DIR" > "$SPEC_FILE"
|
86
|
+
echo "" >> "$SPEC_FILE"
|
87
|
+
echo "<!-- INSTRUCTION: Generate specification content using template: $TEMPLATE_FILE -->" >> "$SPEC_FILE"
|
88
|
+
echo "<!-- FEATURE_DIR: $FEATURE_DIR -->" >> "$SPEC_FILE"
|
89
|
+
echo "<!-- FEATURE_ID: $FEATURE_ID -->" >> "$SPEC_FILE"
|
90
90
|
else
|
91
|
-
# Create
|
91
|
+
# Create first spec
|
92
92
|
SPEC_FILE="$SPEC_DIR/spec-001.md"
|
93
|
-
log "Creating first specification
|
93
|
+
log "Creating first specification file for AI generation: $SPEC_FILE"
|
94
|
+
# Create placeholder file for AI to fill
|
94
95
|
echo "# Specification - $FEATURE_DIR" > "$SPEC_FILE"
|
95
96
|
echo "" >> "$SPEC_FILE"
|
96
|
-
echo "<!--
|
97
|
+
echo "<!-- INSTRUCTION: Generate specification content using template: $TEMPLATE_FILE -->" >> "$SPEC_FILE"
|
97
98
|
echo "<!-- FEATURE_DIR: $FEATURE_DIR -->" >> "$SPEC_FILE"
|
98
99
|
echo "<!-- FEATURE_ID: $FEATURE_ID -->" >> "$SPEC_FILE"
|
99
|
-
echo "" >> "$SPEC_FILE"
|
100
|
-
echo "## Awaiting AI Generation" >> "$SPEC_FILE"
|
101
|
-
echo "This specification needs to be generated from the template." >> "$SPEC_FILE"
|
102
100
|
fi
|
103
101
|
fi
|
104
102
|
|
@@ -70,14 +70,14 @@ else
|
|
70
70
|
error_exit "Plans directory not found: $PLAN_DIR. Please create plan first."
|
71
71
|
fi
|
72
72
|
|
73
|
-
#
|
74
|
-
if [ -
|
75
|
-
#
|
73
|
+
# Check if task-001.md exists
|
74
|
+
if [ -f "$TASK_DIR/task-001.md" ]; then
|
75
|
+
# Find next available task number
|
76
76
|
highest_task=$(find "$TASK_DIR" -name "task-*.md" -exec basename {} .md \; | sed 's/task-//' | sort -n | tail -1)
|
77
77
|
if [ -n "$highest_task" ]; then
|
78
78
|
task_number=$((highest_task + 1))
|
79
79
|
else
|
80
|
-
task_number=
|
80
|
+
task_number=2
|
81
81
|
fi
|
82
82
|
else
|
83
83
|
task_number=1
|
@@ -89,20 +89,15 @@ if [ ! -f "$TEMPLATE_FILE" ]; then
|
|
89
89
|
error_exit "Template not found: $TEMPLATE_FILE"
|
90
90
|
fi
|
91
91
|
|
92
|
-
# Create
|
93
|
-
log "Creating task breakdown
|
92
|
+
# Create placeholder file for AI to generate tasks
|
93
|
+
log "Creating task breakdown: $TASK_FILE"
|
94
94
|
echo "# Task Breakdown - $FEATURE_DIR" > "$TASK_FILE"
|
95
95
|
echo "" >> "$TASK_FILE"
|
96
|
-
echo "<!--
|
96
|
+
echo "<!-- INSTRUCTION: Generate tasks using template: $TEMPLATE_FILE -->" >> "$TASK_FILE"
|
97
97
|
echo "<!-- SPEC_FILE: $SPEC_FILE -->" >> "$TASK_FILE"
|
98
98
|
echo "<!-- PLAN_FILE: $PLAN_FILE -->" >> "$TASK_FILE"
|
99
99
|
echo "<!-- FEATURE_DIR: $FEATURE_DIR -->" >> "$TASK_FILE"
|
100
100
|
echo "<!-- FEATURE_ID: $FEATURE_ID -->" >> "$TASK_FILE"
|
101
|
-
echo "" >> "$TASK_FILE"
|
102
|
-
echo "## Awaiting AI Generation" >> "$TASK_FILE"
|
103
|
-
echo "Tasks need to be generated from the template based on:" >> "$TASK_FILE"
|
104
|
-
echo "- Specification: $SPEC_FILE" >> "$TASK_FILE"
|
105
|
-
echo "- Plan: $PLAN_FILE" >> "$TASK_FILE"
|
106
101
|
|
107
102
|
# Validate task structure
|
108
103
|
log "Validating task breakdown..."
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: specpulse
|
3
|
-
Version: 1.4.
|
3
|
+
Version: 1.4.3
|
4
4
|
Summary: Specification-Driven Development Framework
|
5
5
|
Home-page: https://github.com/specpulse
|
6
6
|
Author: SpecPulse
|
@@ -67,7 +67,12 @@ Dynamic: requires-python
|
|
67
67
|
|
68
68
|
SpecPulse is a universal **Specification-Driven Development (SDD)** framework that works with ANY software project - web apps, mobile apps, desktop software, games, APIs, ML projects, and more. It ensures every feature starts with clear specifications, validated plans, and tracked tasks.
|
69
69
|
|
70
|
-
> **Latest Update (v1.4.
|
70
|
+
> **Latest Update (v1.4.3)** - Script Numbering Fix:
|
71
|
+
> - 🔢 **Fixed Numbering Logic**: Spec, plan, and task files now number correctly (001, 002, 003...)
|
72
|
+
> - 📝 **No Empty First Files**: spec-001.md, plan-001.md, task-001.md always contain content
|
73
|
+
> - 🎯 **Proper Interactive Mode**: Scripts create placeholder files for AI to fill
|
74
|
+
>
|
75
|
+
> **v1.4.2** - Template System Enhancement:
|
71
76
|
> - 📁 **Physical Template Files**: Templates now exist as physical files for AI tools to read
|
72
77
|
> - 🔧 **Complete PowerShell Support**: Added PowerShell scripts matching all Bash functionality
|
73
78
|
> - 📝 **Enhanced Decomposition Templates**: Full microservice decomposition template support
|
@@ -1,4 +1,4 @@
|
|
1
|
-
specpulse/__init__.py,sha256=
|
1
|
+
specpulse/__init__.py,sha256=rf4i60l4TpV_Jt7hMWfRsHnM6K19dzCC8HAvYP9AbNw,270
|
2
2
|
specpulse/cli/__init__.py,sha256=DpX6FoRJtSNjudsmZ3mTih_RIaWyiIgxew4-f8mOmFY,70
|
3
3
|
specpulse/cli/main.py,sha256=p32z6MovqiWI94CsojLKIP65Kmq0C3sX_xpQlqXYsZM,35251
|
4
4
|
specpulse/core/__init__.py,sha256=VKHGdPDM38QM9yDIq05jxol4q8WFlFAeltOzYLsPuto,132
|
@@ -7,9 +7,9 @@ specpulse/core/validator.py,sha256=xSWqR_-ZDV-vPNEqkmK7r-YRyKvJON5wXelXz-sXGN0,2
|
|
7
7
|
specpulse/resources/commands/claude/sp-continue.md,sha256=3_vikDSNRN0slNtKQGWl9dWEgkT-Q7nFpUxHKnzBCKs,5175
|
8
8
|
specpulse/resources/commands/claude/sp-decompose.md,sha256=VBWthGczLdI6onXKdfcN5JTiRTY43Xe6OQ7JTbk3Fao,8054
|
9
9
|
specpulse/resources/commands/claude/sp-execute.md,sha256=zkWcp_u8Dz9BgFp36ikssOQZ2eM2uPOCiWtY1DsyTUk,4850
|
10
|
-
specpulse/resources/commands/claude/sp-plan.md,sha256=
|
10
|
+
specpulse/resources/commands/claude/sp-plan.md,sha256=oPr-Vz-WleQVtp_qMrxtfe6bipYIWoftmouyAPTMelY,7586
|
11
11
|
specpulse/resources/commands/claude/sp-pulse.md,sha256=VImzooetLsF65Nr082OW6JTRp5v8m7CdDhqAPBJi4vg,5267
|
12
|
-
specpulse/resources/commands/claude/sp-spec.md,sha256=
|
12
|
+
specpulse/resources/commands/claude/sp-spec.md,sha256=d8Veu2WDtmRnxl9fZl5_dzgjuxJOo_3Vu92OZYfXNQc,6551
|
13
13
|
specpulse/resources/commands/claude/sp-status.md,sha256=pUcFsYdmvAPTA1BdRjiN-AWi9I8IN4GiEErjfK4wNOU,4633
|
14
14
|
specpulse/resources/commands/claude/sp-task.md,sha256=8dy1eOBTZ9aTpiVn-R9i0jtxNUrkufD8jwyMgMxjrhQ,10121
|
15
15
|
specpulse/resources/commands/gemini/sp-continue.toml,sha256=_iyo_g9IV0-FtIpiVknKNaegmhyc3DHb41lvfpf7anU,1784
|
@@ -30,11 +30,11 @@ specpulse/resources/scripts/sp-pulse-execute.sh,sha256=696vgsj0NpV-Mr0KMyoJ63NkT
|
|
30
30
|
specpulse/resources/scripts/sp-pulse-init.ps1,sha256=NaQvpjEEfegvr2QQtYw6K_MYzh4EkfUPF7zjf_ffHUg,4799
|
31
31
|
specpulse/resources/scripts/sp-pulse-init.sh,sha256=WDSRmf-qgcSs2sGpBLe44ObL3dAvJOdnbxsmpspcglI,4368
|
32
32
|
specpulse/resources/scripts/sp-pulse-plan.ps1,sha256=Aw-XKJfLTkavYSqVD3lVs5JQ9h3K4ZcHzprqDYS8MWo,4369
|
33
|
-
specpulse/resources/scripts/sp-pulse-plan.sh,sha256=
|
34
|
-
specpulse/resources/scripts/sp-pulse-spec.ps1,sha256=
|
35
|
-
specpulse/resources/scripts/sp-pulse-spec.sh,sha256=
|
33
|
+
specpulse/resources/scripts/sp-pulse-plan.sh,sha256=bsrnLNNGnWVRCwhqdnjCaa14VX_owJriCvnGBA6M1L8,4850
|
34
|
+
specpulse/resources/scripts/sp-pulse-spec.ps1,sha256=uCuSSJ360UW70BxyLgvcaMdNsbyJFsEWkIviTwojRKc,4222
|
35
|
+
specpulse/resources/scripts/sp-pulse-spec.sh,sha256=g7EAmbg7WaRUiT6O1Qus-2XlveuSnZWV14NFtL1YYs8,5141
|
36
36
|
specpulse/resources/scripts/sp-pulse-task.ps1,sha256=Uqp6lobaQb4mW5OiQ9LjEtyuYSewcRMjUj1GqHVoh6g,5664
|
37
|
-
specpulse/resources/scripts/sp-pulse-task.sh,sha256=
|
37
|
+
specpulse/resources/scripts/sp-pulse-task.sh,sha256=38KxXIwNpBEokyFwcCbjtZ2cDVOrYPe1SNxYPx45GuQ,5860
|
38
38
|
specpulse/resources/templates/plan.md,sha256=ieouqeIhLEfzP-_vytCmKHqxNGh8ITNZ5sub3nufvZ0,3349
|
39
39
|
specpulse/resources/templates/spec.md,sha256=wGXSyD7AWRofeeW5a2rVrSIxeYK5zolQulN1xJRni44,2234
|
40
40
|
specpulse/resources/templates/task.md,sha256=X3_BOYIZ40qMGRxDs-stGh0pAVyZHYkvSNuvXJO981o,4658
|
@@ -47,9 +47,9 @@ specpulse/utils/__init__.py,sha256=VTGRDsVLl2JIXYyHB9Sidxj5acY_W-LJI2MMtY1pwb0,1
|
|
47
47
|
specpulse/utils/console.py,sha256=1Dn6m81dZa3XZkeKvGFgQywE9FyQnhlOorNtE0f86VM,14793
|
48
48
|
specpulse/utils/git_utils.py,sha256=jH5RWbC-lx2iPKVm2dWP7Iqqh1_CdmbNi7q4S_c4W8s,7393
|
49
49
|
specpulse/utils/version_check.py,sha256=9Ug0Td1SesRskx2JFy7QS59ikomKRxuSM9OUHrZtEO4,3877
|
50
|
-
specpulse-1.4.
|
51
|
-
specpulse-1.4.
|
52
|
-
specpulse-1.4.
|
53
|
-
specpulse-1.4.
|
54
|
-
specpulse-1.4.
|
55
|
-
specpulse-1.4.
|
50
|
+
specpulse-1.4.3.dist-info/licenses/LICENSE,sha256=ImSFezK-Phy0oTBqZipcajsJfPZT8mmg8m3jkgNdNhA,1066
|
51
|
+
specpulse-1.4.3.dist-info/METADATA,sha256=0sxARDERGUL3YHBXjCIdxJbZs-_fux70IWx77SUMuX4,24654
|
52
|
+
specpulse-1.4.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
53
|
+
specpulse-1.4.3.dist-info/entry_points.txt,sha256=GwMaCKWSCFZlJMrTNavEYrnREynIS6dM3B0ILxnaouA,83
|
54
|
+
specpulse-1.4.3.dist-info/top_level.txt,sha256=pEfkFil5xe38J00OHrBrJ07xpbm6bRnGhI8B07O9KeI,10
|
55
|
+
specpulse-1.4.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|