dancealgorithm 0.1.0__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 (78) hide show
  1. dancealgorithm-0.1.0/LICENSE +22 -0
  2. dancealgorithm-0.1.0/PKG-INFO +199 -0
  3. dancealgorithm-0.1.0/README.md +174 -0
  4. dancealgorithm-0.1.0/pyproject.toml +64 -0
  5. dancealgorithm-0.1.0/setup.cfg +4 -0
  6. dancealgorithm-0.1.0/src/dancealgorithm/__init__.py +128 -0
  7. dancealgorithm-0.1.0/src/dancealgorithm/__main__.py +8 -0
  8. dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Campus/Solution.java +198 -0
  9. dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Campus/__init__.py +34 -0
  10. dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Flight/Solution.java +204 -0
  11. dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Flight/__init__.py +34 -0
  12. dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Smart/Solution.java +220 -0
  13. dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA - Smart/__init__.py +34 -0
  14. dancealgorithm-0.1.0/src/dancealgorithm/assignments/DA.txt +29 -0
  15. dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Advertisement/Solution.java +141 -0
  16. dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Advertisement/__init__.py +34 -0
  17. dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Electric/Solution.java +168 -0
  18. dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Electric/__init__.py +34 -0
  19. dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Emergency/Solution.java +159 -0
  20. dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK - Emergency/__init__.py +34 -0
  21. dancealgorithm-0.1.0/src/dancealgorithm/assignments/FK.txt +26 -0
  22. dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - Classroom/Solution.java +87 -0
  23. dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - Classroom/__init__.py +34 -0
  24. dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - Interference/Solution.java +88 -0
  25. dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - Interference/__init__.py +34 -0
  26. dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - University/Solution.java +88 -0
  27. dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC - University/__init__.py +34 -0
  28. dancealgorithm-0.1.0/src/dancealgorithm/assignments/GC.txt +25 -0
  29. dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Cloud/Solution.java +115 -0
  30. dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Cloud/__init__.py +34 -0
  31. dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Disaster/Solution.java +116 -0
  32. dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Disaster/__init__.py +34 -0
  33. dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Hospital/Solution.java +115 -0
  34. dancealgorithm-0.1.0/src/dancealgorithm/assignments/K - Hospital/__init__.py +34 -0
  35. dancealgorithm-0.1.0/src/dancealgorithm/assignments/K.txt +38 -0
  36. dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Delivery/Solution.java +180 -0
  37. dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Delivery/__init__.py +34 -0
  38. dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Drilling/Solution.java +197 -0
  39. dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Drilling/__init__.py +34 -0
  40. dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Flight/Solution.java +180 -0
  41. dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC - Flight/__init__.py +34 -0
  42. dancealgorithm-0.1.0/src/dancealgorithm/assignments/LC.txt +31 -0
  43. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Commerce/Solution.java +162 -0
  44. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Commerce/__init__.py +34 -0
  45. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Commerce/dataset.csv +16 -0
  46. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Customer/Solution.java +144 -0
  47. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Customer/__init__.py +34 -0
  48. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Customer/dataset.csv +16 -0
  49. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Library/Solution.java +162 -0
  50. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Library/__init__.py +34 -0
  51. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS - Library/dataset.csv +16 -0
  52. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MS.txt +32 -0
  53. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Emergency/Solution.java +211 -0
  54. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Emergency/__init__.py +34 -0
  55. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Logistics/Solution.java +189 -0
  56. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Logistics/__init__.py +34 -0
  57. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Skyconnect/Solution.java +204 -0
  58. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG - Skyconnect/__init__.py +34 -0
  59. dancealgorithm-0.1.0/src/dancealgorithm/assignments/MSG.txt +28 -0
  60. dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Commerce/Solution.java +147 -0
  61. dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Commerce/__init__.py +34 -0
  62. dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Commerce/dataset.csv +16 -0
  63. dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Movie/Solution.java +148 -0
  64. dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Movie/__init__.py +34 -0
  65. dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Movie/dataset.csv +16 -0
  66. dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Online/Solution.java +147 -0
  67. dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Online/__init__.py +34 -0
  68. dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS - Online/dataset.csv +16 -0
  69. dancealgorithm-0.1.0/src/dancealgorithm/assignments/QS.txt +33 -0
  70. dancealgorithm-0.1.0/src/dancealgorithm/assignments/__init__.py +65 -0
  71. dancealgorithm-0.1.0/src/dancealgorithm/cli.py +349 -0
  72. dancealgorithm-0.1.0/src/dancealgorithm/config.py +125 -0
  73. dancealgorithm-0.1.0/src/dancealgorithm/downloader.py +330 -0
  74. dancealgorithm-0.1.0/src/dancealgorithm.egg-info/PKG-INFO +199 -0
  75. dancealgorithm-0.1.0/src/dancealgorithm.egg-info/SOURCES.txt +76 -0
  76. dancealgorithm-0.1.0/src/dancealgorithm.egg-info/dependency_links.txt +1 -0
  77. dancealgorithm-0.1.0/src/dancealgorithm.egg-info/entry_points.txt +3 -0
  78. dancealgorithm-0.1.0/src/dancealgorithm.egg-info/top_level.txt +1 -0
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 DanceAlgorithm Maintainer
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
@@ -0,0 +1,199 @@
1
+ Metadata-Version: 2.4
2
+ Name: dancealgorithm
3
+ Version: 0.1.0
4
+ Summary: DanceAlgorithm: Instant DAA Algorithms, Lab Problem Sheets, Datasets, and Code Vault.
5
+ Author: DanceAlgorithm Maintainer
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/AdityaxDeore/dancealgorithm
8
+ Keywords: dancealgorithm,daa,algorithms,problem-sheets,datasets,cli
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Education
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Topic :: Education
21
+ Requires-Python: >=3.9
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Dynamic: license-file
25
+
26
+ # ⚡ DanceAlgorithm
27
+
28
+ > **Instant DAA Problem Sheets, Datasets, Solutions & Algorithm Vault**
29
+ > Download, extract, organize, and directly **import** all 24 Design & Analysis of Algorithms (DAA) lab practical problem sheets, datasets, and Java solutions cleanly onto your PC with a single command or Python import.
30
+
31
+ [![PyPI Version](https://img.shields.io/pypi/v/dancealgorithm.svg)](https://pypi.org/project/dancealgorithm/)
32
+ [![Python Version](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/)
33
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
34
+ [![Zero Dependencies](https://img.shields.io/badge/dependencies-0%20runtime-brightgreen.svg)]()
35
+
36
+ ---
37
+
38
+ ## 🌟 The Magic Experience
39
+
40
+ ### Option A: Install & Extract All 24 Problem Sheets to `C:\DAA_Assignments`
41
+
42
+ ```powershell
43
+ pip install dancealgorithm; dance
44
+ ```
45
+
46
+ Or run `dance` (or `dancealgorithm`) anytime in your terminal:
47
+
48
+ ```powershell
49
+ dance
50
+ ```
51
+
52
+ Your `C:\DAA_Assignments` folder is cleanly populated with all 24 problem sheets:
53
+
54
+ ```text
55
+ C:\DAA_Assignments\
56
+ ├── MS - Customer/
57
+ │ ├── dataset.csv
58
+ │ └── Solution.java
59
+ ├── MS - Commerce/
60
+ │ ├── dataset.csv
61
+ │ └── Solution.java
62
+ ├── MS - Library/
63
+ ├── ...
64
+ └── LC - Flight/
65
+ └── Solution.java
66
+ ```
67
+
68
+ ---
69
+
70
+ ## 🚀 Quick Terminal CLI Usage
71
+
72
+ ### 1. View Algorithm Notes & Time Complexities directly on screen
73
+
74
+ No files extracted — instant terminal reference cheat sheets:
75
+
76
+ ```powershell
77
+ # Merge Sort recurrence & analysis
78
+ dance MS.txt
79
+
80
+ # Quick Sort partition & analysis
81
+ dance QS.txt
82
+
83
+ # Dijkstra shortest path analysis
84
+ dance DA.txt
85
+
86
+ # Graph Coloring backtracking analysis
87
+ dance GC.txt
88
+
89
+ # Fractional Knapsack greedy proof
90
+ dance FK.txt
91
+
92
+ # 0/1 Knapsack dynamic programming
93
+ dance K.txt
94
+
95
+ # Multistage Graph backward DP
96
+ dance MSG.txt
97
+
98
+ # Least Cost Branch & Bound TSP
99
+ dance LC.txt
100
+ ```
101
+
102
+ *(You can also use `dancealgorithm DA.txt` or `dance DA`)*
103
+
104
+ ### 2. Extract a Specific Assignment Folder
105
+
106
+ Extract only that particular folder:
107
+
108
+ ```powershell
109
+ # Extract unquoted or quoted
110
+ dance MSG - Logistics
111
+ dance "DA - Smart"
112
+ dance "GC - Classroom"
113
+ dance "MS - Customer"
114
+
115
+ # Or extract by problem number
116
+ dance 1
117
+ dance 13
118
+ dance 19
119
+ ```
120
+
121
+ ### 3. List All Available Problem Sheets & Notes
122
+
123
+ ```powershell
124
+ dance list
125
+ ```
126
+
127
+ ---
128
+
129
+ ## 🐍 Option B: Direct Python Import
130
+
131
+ All 24 assignments can be directly inspected or extracted programmatically:
132
+
133
+ ```python
134
+ import dancealgorithm
135
+
136
+ # 1. Access code directly
137
+ code = dancealgorithm.get("MSG - Logistics").code
138
+ print(code)
139
+
140
+ # 2. Extract a specific sheet
141
+ dancealgorithm.extract("MSG - Logistics")
142
+
143
+ # 3. Extract all sheets to custom destination
144
+ dancealgorithm.extract(destination="D:/MyLabs")
145
+
146
+ # 4. Open destination folder in Windows Explorer
147
+ dancealgorithm.open_folder()
148
+ ```
149
+
150
+ ---
151
+
152
+ ## 📚 Complete Catalogue of All 24 DAA Problem Sheets
153
+
154
+ | No. | Algorithm | Category | Problem Sheet Title | Time Complexity |
155
+ |---|---|---|---|---|
156
+ | **01** | Merge Sort | Divide & Conquer | `MS - Customer` | $O(n \log n)$ |
157
+ | **02** | Merge Sort | Divide & Conquer | `MS - Commerce` | $O(n \log n)$ |
158
+ | **03** | Merge Sort | Divide & Conquer | `MS - Library` | $O(n \log n)$ |
159
+ | **04** | Quick Sort | Divide & Conquer | `QS - Movie` | $O(n \log n)$ avg |
160
+ | **05** | Quick Sort | Divide & Conquer | `QS - Commerce` | $O(n \log n)$ avg |
161
+ | **06** | Quick Sort | Divide & Conquer | `QS - Online` | $O(n \log n)$ avg |
162
+ | **07** | Fractional Knapsack | Greedy Method | `FK - Emergency` | $O(n \log n)$ |
163
+ | **08** | Fractional Knapsack | Greedy Method | `FK - Electric` | $O(n \log n)$ |
164
+ | **09** | Fractional Knapsack | Greedy Method | `FK - Advertisement` | $O(n \log n)$ |
165
+ | **10** | Dijkstra | Shortest Path | `DA - Smart` | $O(V^2)$ / $O(E \log V)$ |
166
+ | **11** | Dijkstra | Shortest Path | `DA - Campus` | $O(V^2)$ / $O(E \log V)$ |
167
+ | **12** | Dijkstra | Shortest Path | `DA - Flight` | $O(V^2)$ / $O(E \log V)$ |
168
+ | **13** | Multistage Graph | Dynamic Programming | `MSG - Logistics` | $O(V + E)$ |
169
+ | **14** | Multistage Graph | Dynamic Programming | `MSG - Skyconnect` | $O(V + E)$ |
170
+ | **15** | Multistage Graph | Dynamic Programming | `MSG - Emergency` | $O(V + E)$ |
171
+ | **16** | 0/1 Knapsack | Dynamic Programming | `K - Disaster` | $O(n \cdot W)$ |
172
+ | **17** | 0/1 Knapsack | Dynamic Programming | `K - Hospital` | $O(n \cdot W)$ |
173
+ | **18** | 0/1 Knapsack | Dynamic Programming | `K - Cloud` | $O(n \cdot W)$ |
174
+ | **19** | Graph Coloring | Backtracking | `GC - Classroom` | $O(V \cdot m^V)$ |
175
+ | **20** | Graph Coloring | Backtracking | `GC - Interference` | $O(V \cdot m^V)$ |
176
+ | **21** | Graph Coloring | Backtracking | `GC - University` | $O(V \cdot m^V)$ |
177
+ | **22** | LC Branch & Bound | Branch & Bound | `LC - Delivery` | $O(n! \cdot n^2)$ |
178
+ | **23** | LC Branch & Bound | Branch & Bound | `LC - Drilling` | $O(n! \cdot n^2)$ |
179
+ | **24** | LC Branch & Bound | Branch & Bound | `LC - Flight` | $O(n! \cdot n^2)$ |
180
+
181
+ ---
182
+
183
+ ## ⚙️ Configuration
184
+
185
+ View or update your default preferences:
186
+
187
+ ```powershell
188
+ # Set custom destination folder
189
+ dance config --set-dest "D:\My_DAA_Folder"
190
+
191
+ # Reset configuration back to system defaults
192
+ dance config --reset
193
+ ```
194
+
195
+ ---
196
+
197
+ ## 📄 License
198
+
199
+ MIT © [AdityaxDeore](https://github.com/AdityaxDeore)
@@ -0,0 +1,174 @@
1
+ # ⚡ DanceAlgorithm
2
+
3
+ > **Instant DAA Problem Sheets, Datasets, Solutions & Algorithm Vault**
4
+ > Download, extract, organize, and directly **import** all 24 Design & Analysis of Algorithms (DAA) lab practical problem sheets, datasets, and Java solutions cleanly onto your PC with a single command or Python import.
5
+
6
+ [![PyPI Version](https://img.shields.io/pypi/v/dancealgorithm.svg)](https://pypi.org/project/dancealgorithm/)
7
+ [![Python Version](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
+ [![Zero Dependencies](https://img.shields.io/badge/dependencies-0%20runtime-brightgreen.svg)]()
10
+
11
+ ---
12
+
13
+ ## 🌟 The Magic Experience
14
+
15
+ ### Option A: Install & Extract All 24 Problem Sheets to `C:\DAA_Assignments`
16
+
17
+ ```powershell
18
+ pip install dancealgorithm; dance
19
+ ```
20
+
21
+ Or run `dance` (or `dancealgorithm`) anytime in your terminal:
22
+
23
+ ```powershell
24
+ dance
25
+ ```
26
+
27
+ Your `C:\DAA_Assignments` folder is cleanly populated with all 24 problem sheets:
28
+
29
+ ```text
30
+ C:\DAA_Assignments\
31
+ ├── MS - Customer/
32
+ │ ├── dataset.csv
33
+ │ └── Solution.java
34
+ ├── MS - Commerce/
35
+ │ ├── dataset.csv
36
+ │ └── Solution.java
37
+ ├── MS - Library/
38
+ ├── ...
39
+ └── LC - Flight/
40
+ └── Solution.java
41
+ ```
42
+
43
+ ---
44
+
45
+ ## 🚀 Quick Terminal CLI Usage
46
+
47
+ ### 1. View Algorithm Notes & Time Complexities directly on screen
48
+
49
+ No files extracted — instant terminal reference cheat sheets:
50
+
51
+ ```powershell
52
+ # Merge Sort recurrence & analysis
53
+ dance MS.txt
54
+
55
+ # Quick Sort partition & analysis
56
+ dance QS.txt
57
+
58
+ # Dijkstra shortest path analysis
59
+ dance DA.txt
60
+
61
+ # Graph Coloring backtracking analysis
62
+ dance GC.txt
63
+
64
+ # Fractional Knapsack greedy proof
65
+ dance FK.txt
66
+
67
+ # 0/1 Knapsack dynamic programming
68
+ dance K.txt
69
+
70
+ # Multistage Graph backward DP
71
+ dance MSG.txt
72
+
73
+ # Least Cost Branch & Bound TSP
74
+ dance LC.txt
75
+ ```
76
+
77
+ *(You can also use `dancealgorithm DA.txt` or `dance DA`)*
78
+
79
+ ### 2. Extract a Specific Assignment Folder
80
+
81
+ Extract only that particular folder:
82
+
83
+ ```powershell
84
+ # Extract unquoted or quoted
85
+ dance MSG - Logistics
86
+ dance "DA - Smart"
87
+ dance "GC - Classroom"
88
+ dance "MS - Customer"
89
+
90
+ # Or extract by problem number
91
+ dance 1
92
+ dance 13
93
+ dance 19
94
+ ```
95
+
96
+ ### 3. List All Available Problem Sheets & Notes
97
+
98
+ ```powershell
99
+ dance list
100
+ ```
101
+
102
+ ---
103
+
104
+ ## 🐍 Option B: Direct Python Import
105
+
106
+ All 24 assignments can be directly inspected or extracted programmatically:
107
+
108
+ ```python
109
+ import dancealgorithm
110
+
111
+ # 1. Access code directly
112
+ code = dancealgorithm.get("MSG - Logistics").code
113
+ print(code)
114
+
115
+ # 2. Extract a specific sheet
116
+ dancealgorithm.extract("MSG - Logistics")
117
+
118
+ # 3. Extract all sheets to custom destination
119
+ dancealgorithm.extract(destination="D:/MyLabs")
120
+
121
+ # 4. Open destination folder in Windows Explorer
122
+ dancealgorithm.open_folder()
123
+ ```
124
+
125
+ ---
126
+
127
+ ## 📚 Complete Catalogue of All 24 DAA Problem Sheets
128
+
129
+ | No. | Algorithm | Category | Problem Sheet Title | Time Complexity |
130
+ |---|---|---|---|---|
131
+ | **01** | Merge Sort | Divide & Conquer | `MS - Customer` | $O(n \log n)$ |
132
+ | **02** | Merge Sort | Divide & Conquer | `MS - Commerce` | $O(n \log n)$ |
133
+ | **03** | Merge Sort | Divide & Conquer | `MS - Library` | $O(n \log n)$ |
134
+ | **04** | Quick Sort | Divide & Conquer | `QS - Movie` | $O(n \log n)$ avg |
135
+ | **05** | Quick Sort | Divide & Conquer | `QS - Commerce` | $O(n \log n)$ avg |
136
+ | **06** | Quick Sort | Divide & Conquer | `QS - Online` | $O(n \log n)$ avg |
137
+ | **07** | Fractional Knapsack | Greedy Method | `FK - Emergency` | $O(n \log n)$ |
138
+ | **08** | Fractional Knapsack | Greedy Method | `FK - Electric` | $O(n \log n)$ |
139
+ | **09** | Fractional Knapsack | Greedy Method | `FK - Advertisement` | $O(n \log n)$ |
140
+ | **10** | Dijkstra | Shortest Path | `DA - Smart` | $O(V^2)$ / $O(E \log V)$ |
141
+ | **11** | Dijkstra | Shortest Path | `DA - Campus` | $O(V^2)$ / $O(E \log V)$ |
142
+ | **12** | Dijkstra | Shortest Path | `DA - Flight` | $O(V^2)$ / $O(E \log V)$ |
143
+ | **13** | Multistage Graph | Dynamic Programming | `MSG - Logistics` | $O(V + E)$ |
144
+ | **14** | Multistage Graph | Dynamic Programming | `MSG - Skyconnect` | $O(V + E)$ |
145
+ | **15** | Multistage Graph | Dynamic Programming | `MSG - Emergency` | $O(V + E)$ |
146
+ | **16** | 0/1 Knapsack | Dynamic Programming | `K - Disaster` | $O(n \cdot W)$ |
147
+ | **17** | 0/1 Knapsack | Dynamic Programming | `K - Hospital` | $O(n \cdot W)$ |
148
+ | **18** | 0/1 Knapsack | Dynamic Programming | `K - Cloud` | $O(n \cdot W)$ |
149
+ | **19** | Graph Coloring | Backtracking | `GC - Classroom` | $O(V \cdot m^V)$ |
150
+ | **20** | Graph Coloring | Backtracking | `GC - Interference` | $O(V \cdot m^V)$ |
151
+ | **21** | Graph Coloring | Backtracking | `GC - University` | $O(V \cdot m^V)$ |
152
+ | **22** | LC Branch & Bound | Branch & Bound | `LC - Delivery` | $O(n! \cdot n^2)$ |
153
+ | **23** | LC Branch & Bound | Branch & Bound | `LC - Drilling` | $O(n! \cdot n^2)$ |
154
+ | **24** | LC Branch & Bound | Branch & Bound | `LC - Flight` | $O(n! \cdot n^2)$ |
155
+
156
+ ---
157
+
158
+ ## ⚙️ Configuration
159
+
160
+ View or update your default preferences:
161
+
162
+ ```powershell
163
+ # Set custom destination folder
164
+ dance config --set-dest "D:\My_DAA_Folder"
165
+
166
+ # Reset configuration back to system defaults
167
+ dance config --reset
168
+ ```
169
+
170
+ ---
171
+
172
+ ## 📄 License
173
+
174
+ MIT © [AdityaxDeore](https://github.com/AdityaxDeore)
@@ -0,0 +1,64 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "dancealgorithm"
7
+ version = "0.1.0"
8
+ description = "DanceAlgorithm: Instant DAA Algorithms, Lab Problem Sheets, Datasets, and Code Vault."
9
+ readme = "README.md"
10
+ requires-python = ">=3.9"
11
+ license = "MIT"
12
+ authors = [
13
+ { name = "DanceAlgorithm Maintainer" }
14
+ ]
15
+ keywords = [
16
+ "dancealgorithm",
17
+ "daa",
18
+ "algorithms",
19
+ "problem-sheets",
20
+ "datasets",
21
+ "cli"
22
+ ]
23
+ classifiers = [
24
+ "Development Status :: 4 - Beta",
25
+ "Environment :: Console",
26
+ "Intended Audience :: Education",
27
+ "Intended Audience :: Developers",
28
+ "Operating System :: OS Independent",
29
+ "Programming Language :: Python :: 3",
30
+ "Programming Language :: Python :: 3.9",
31
+ "Programming Language :: Python :: 3.10",
32
+ "Programming Language :: Python :: 3.11",
33
+ "Programming Language :: Python :: 3.12",
34
+ "Programming Language :: Python :: 3.13",
35
+ "Topic :: Education"
36
+ ]
37
+ dependencies = []
38
+
39
+ [project.scripts]
40
+ dancealgorithm = "dancealgorithm.cli:main"
41
+ dance = "dancealgorithm.cli:main"
42
+
43
+ [project.urls]
44
+ Homepage = "https://github.com/AdityaxDeore/dancealgorithm"
45
+
46
+ [tool.setuptools.packages.find]
47
+ where = ["src"]
48
+ exclude = ["*.__pycache__*", "__pycache__"]
49
+
50
+ [tool.setuptools.package-data]
51
+ dancealgorithm = [
52
+ "assignments/**/*",
53
+ ]
54
+
55
+ [tool.setuptools.exclude-package-data]
56
+ dancealgorithm = [
57
+ "**/__pycache__/**",
58
+ "**/*.pyc",
59
+ "**/*.pyo",
60
+ "**/*.class"
61
+ ]
62
+
63
+
64
+
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,128 @@
1
+ """
2
+ DanceAlgorithm - Instant DAA Algorithms, Lab Problem Sheets, Datasets & Code Vault.
3
+ All 24 Practical Exam Problem Sheets & Algorithm Notes Bundled & Instantly Importable.
4
+ """
5
+ from __future__ import annotations
6
+
7
+ import os
8
+ import sys
9
+ from pathlib import Path
10
+ from typing import Any, Dict, List, Optional, Union
11
+
12
+ __version__ = "0.1.0"
13
+
14
+ # Import bundled assignments registry and sheets
15
+ from dancealgorithm.assignments import ASSIGNMENTS_DIR, REGISTRY, SHEETS
16
+
17
+ # Expose assignments mapping (e.g. dancealgorithm.assignments[1])
18
+ assignments: Dict[Any, Any] = REGISTRY
19
+
20
+ for sheet in SHEETS:
21
+ title = getattr(sheet, "TITLE", None)
22
+ if not title:
23
+ continue
24
+
25
+ sheet_aliases = {title}
26
+ # Sanitized alias
27
+ sheet_aliases.add(title.replace(" ", "_").replace("-", "_").replace("—", "_"))
28
+ sheet_aliases.add(title.replace(" ", "").replace("-", "").replace("—", ""))
29
+
30
+ for alias in sheet_aliases:
31
+ setattr(sys.modules[__name__], alias, sheet)
32
+ sys.modules[f"dancealgorithm.{alias}"] = sheet
33
+
34
+
35
+ def get(identifier: Union[int, str]) -> Any:
36
+ """
37
+ Get a specific problem sheet module by number (1..24), ID (e.g. 'ps1', 'PS01'),
38
+ or keyword/name (e.g. 'Customer', 'MS - Customer', 'GC - Classroom').
39
+ """
40
+ if identifier in REGISTRY:
41
+ return REGISTRY[identifier]
42
+
43
+ if isinstance(identifier, int):
44
+ if identifier in REGISTRY:
45
+ return REGISTRY[identifier]
46
+
47
+ norm = str(identifier).strip().lower().replace("-", "").replace("_", "").replace(" ", "").replace("—", "")
48
+ digits = "".join(filter(str.isdigit, norm))
49
+ if digits:
50
+ val = int(digits)
51
+ if val in REGISTRY:
52
+ return REGISTRY[val]
53
+
54
+ # Keyword search across sheet titles
55
+ for sheet in SHEETS:
56
+ clean_title = sheet.TITLE.lower().replace("-", "").replace("_", "").replace(" ", "").replace("—", "")
57
+ if norm in clean_title or clean_title in norm:
58
+ return sheet
59
+
60
+ raise KeyError(f"Problem sheet not found for '{identifier}'. Available: 1..24.")
61
+
62
+
63
+ # Convenience alias: dancealgorithm.ps(1)
64
+ ps = get
65
+
66
+
67
+ def list_assignments() -> List[Dict[str, Any]]:
68
+ """
69
+ List all available DAA practical assignments with titles and paths.
70
+ """
71
+ catalog = []
72
+ for sheet in SHEETS:
73
+ catalog.append({
74
+ "title": sheet.TITLE,
75
+ "path": sheet.PATH,
76
+ "has_solution": sheet.JAVA_SOLUTION.exists(),
77
+ "has_dataset": sheet.DATASET_PATH.exists(),
78
+ })
79
+ return catalog
80
+
81
+
82
+ def extract(
83
+ sheet: Optional[Union[int, str]] = None,
84
+ destination: Optional[Union[str, Path]] = None,
85
+ overwrite: bool = True,
86
+ ) -> List[Path]:
87
+ """
88
+ Extract all problem sheets or a specific one to the destination directory.
89
+ Default destination is C:\\DAA_Assignments (or ~/DAA_Assignments).
90
+ """
91
+ from dancealgorithm.config import get_destination
92
+ from dancealgorithm.downloader import extract_bundled
93
+
94
+ target = Path(destination) if destination else get_destination()
95
+ sub_filt = str(sheet) if sheet is not None else None
96
+ return extract_bundled(target, subject_filter=sub_filt, overwrite=overwrite)
97
+
98
+
99
+ def open_folder(destination: Optional[Union[str, Path]] = None) -> None:
100
+ """
101
+ Open the assignments destination folder in Windows File Explorer.
102
+ """
103
+ from dancealgorithm.config import get_destination
104
+ target = Path(destination) if destination else get_destination()
105
+ target.mkdir(parents=True, exist_ok=True)
106
+ if sys.platform == "win32":
107
+ os.system(f'explorer "{target}"')
108
+
109
+
110
+ def __getattr__(name: str) -> Any:
111
+ try:
112
+ return get(name)
113
+ except KeyError:
114
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
115
+
116
+
117
+ __all__ = [
118
+ "__version__",
119
+ "assignments",
120
+ "get",
121
+ "ps",
122
+ "list_assignments",
123
+ "extract",
124
+ "open_folder",
125
+ ]
126
+
127
+
128
+
@@ -0,0 +1,8 @@
1
+ """
2
+ Entry point for python -m dancealgorithm.
3
+ """
4
+ import sys
5
+ from dancealgorithm.cli import main
6
+
7
+ if __name__ == "__main__":
8
+ sys.exit(main())