dsap-cli 1.0.0__tar.gz → 1.0.2__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.
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/.github/workflows/ci.yml +1 -1
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/.pre-commit-config.yaml +0 -5
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/PKG-INFO +4 -5
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/README.md +3 -4
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/pyproject.toml +5 -4
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/__init__.py +1 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/_version.py +2 -2
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/database.py +5 -4
- dsap_cli-1.0.0/mypy.ini +0 -7
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/.gitignore +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/CHANGELOG.md +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/LICENSE +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/USER_GUIDE.md +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/assets/dsap-cli.gif +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/__main__.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/cli.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/config.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/data/blind75.yaml +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/data/grind75.yaml +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/data/neetcode150.yaml +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/models.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/problem_sets.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/py.typed +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/sm2.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/src/dsap/ui.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/tests/__init__.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/tests/test_config.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/tests/test_database.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/tests/test_models.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/tests/test_problem_sets.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/tests/test_sm2.py +0 -0
- {dsap_cli-1.0.0 → dsap_cli-1.0.2}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dsap-cli
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: CLI tool for practicing data structures and algorithms using spaced repetition.
|
|
5
5
|
Project-URL: Repository, https://github.com/juma-paul/dsap-cli
|
|
6
6
|
Project-URL: Issues, https://github.com/juma-paul/dsap-cli/issues
|
|
@@ -30,11 +30,10 @@ Description-Content-Type: text/markdown
|
|
|
30
30
|

|
|
31
31
|

|
|
32
32
|

|
|
33
|
-

|
|
34
33
|
|
|
35
34
|
DSAP is a terminal-first CLI that schedules coding interview problems using the **SM-2 spaced repetition algorithm**, <br />helping you retain patterns long-term instead of forgetting them after solving once.
|
|
36
35
|
|
|
37
|
-
|
|
36
|
+

|
|
38
37
|
|
|
39
38
|
# Why DSAP?
|
|
40
39
|
|
|
@@ -258,13 +257,13 @@ uv run pytest
|
|
|
258
257
|
|
|
259
258
|
See the full release history in:
|
|
260
259
|
|
|
261
|
-
[CHANGELOG.md](
|
|
260
|
+
[CHANGELOG.md](https://github.com/juma-paul/dsap-cli/blob/main/CHANGELOG.md)
|
|
262
261
|
|
|
263
262
|
---
|
|
264
263
|
|
|
265
264
|
# License
|
|
266
265
|
|
|
267
|
-
This project is open source and available under the [MIT License](
|
|
266
|
+
This project is open source and available under the [MIT License](https://github.com/juma-paul/dsap-cli/blob/main/LICENSE).
|
|
268
267
|
|
|
269
268
|
---
|
|
270
269
|
|
|
@@ -6,11 +6,10 @@
|
|
|
6
6
|

|
|
7
7
|

|
|
8
8
|

|
|
9
|
-

|
|
10
9
|
|
|
11
10
|
DSAP is a terminal-first CLI that schedules coding interview problems using the **SM-2 spaced repetition algorithm**, <br />helping you retain patterns long-term instead of forgetting them after solving once.
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+

|
|
14
13
|
|
|
15
14
|
# Why DSAP?
|
|
16
15
|
|
|
@@ -234,13 +233,13 @@ uv run pytest
|
|
|
234
233
|
|
|
235
234
|
See the full release history in:
|
|
236
235
|
|
|
237
|
-
[CHANGELOG.md](
|
|
236
|
+
[CHANGELOG.md](https://github.com/juma-paul/dsap-cli/blob/main/CHANGELOG.md)
|
|
238
237
|
|
|
239
238
|
---
|
|
240
239
|
|
|
241
240
|
# License
|
|
242
241
|
|
|
243
|
-
This project is open source and available under the [MIT License](
|
|
242
|
+
This project is open source and available under the [MIT License](https://github.com/juma-paul/dsap-cli/blob/main/LICENSE).
|
|
244
243
|
|
|
245
244
|
---
|
|
246
245
|
|
|
@@ -75,7 +75,8 @@ select = ["E", "F", "I", "B"]
|
|
|
75
75
|
[tool.mypy]
|
|
76
76
|
python_version = "3.10"
|
|
77
77
|
pretty = true
|
|
78
|
-
strict =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
strict = true
|
|
79
|
+
|
|
80
|
+
[[tool.mypy.overrides]]
|
|
81
|
+
module = "tests.*"
|
|
82
|
+
ignore_errors = true
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '1.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 0,
|
|
21
|
+
__version__ = version = '1.0.2'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 2)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -13,6 +13,7 @@ from collections.abc import Iterator
|
|
|
13
13
|
from contextlib import contextmanager
|
|
14
14
|
from datetime import datetime, timedelta
|
|
15
15
|
from pathlib import Path
|
|
16
|
+
from typing import Any
|
|
16
17
|
|
|
17
18
|
from dsap.models import (
|
|
18
19
|
Difficulty,
|
|
@@ -221,7 +222,7 @@ class Database:
|
|
|
221
222
|
List of (Problem, ProblemProgress or None) tuples
|
|
222
223
|
"""
|
|
223
224
|
conditions = []
|
|
224
|
-
params: list = []
|
|
225
|
+
params: list[Any] = []
|
|
225
226
|
|
|
226
227
|
if difficulty:
|
|
227
228
|
conditions.append("p.difficulty = ?")
|
|
@@ -323,7 +324,7 @@ class Database:
|
|
|
323
324
|
"""
|
|
324
325
|
now = datetime.now().isoformat()
|
|
325
326
|
conditions = ["(pr.next_review <= ? OR pr.next_review IS NULL)"]
|
|
326
|
-
params: list = [now]
|
|
327
|
+
params: list[Any] = [now]
|
|
327
328
|
|
|
328
329
|
if difficulty:
|
|
329
330
|
conditions.append("p.difficulty = ?")
|
|
@@ -362,7 +363,7 @@ class Database:
|
|
|
362
363
|
) -> list[Problem]:
|
|
363
364
|
"""Get problems that have never been reviewed."""
|
|
364
365
|
conditions = ["pr.problem_id IS NULL"]
|
|
365
|
-
params: list = []
|
|
366
|
+
params: list[Any] = []
|
|
366
367
|
|
|
367
368
|
if problem_set:
|
|
368
369
|
conditions.append("p.problem_set = ?")
|
|
@@ -401,7 +402,7 @@ class Database:
|
|
|
401
402
|
with self._connect() as conn:
|
|
402
403
|
# Build common WHERE conditions
|
|
403
404
|
conditions = []
|
|
404
|
-
params: list = []
|
|
405
|
+
params: list[Any] = []
|
|
405
406
|
|
|
406
407
|
if difficulty:
|
|
407
408
|
conditions.append("p.difficulty = ?")
|
dsap_cli-1.0.0/mypy.ini
DELETED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|