pypas-cli 0.2.3__tar.gz → 0.2.5__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.
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/PKG-INFO +1 -1
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/pyproject.toml +1 -1
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/config.py +4 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/exercise.py +4 -8
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/main.py +2 -1
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/PKG-INFO +1 -1
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/LICENSE +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/README.md +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/setup.cfg +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/__init__.py +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/auth.py +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/console.py +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/decorators.py +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/monads.py +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/network.py +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/sysutils.py +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/settings.py +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/SOURCES.txt +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/dependency_links.txt +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/entry_points.txt +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/requires.txt +0 -0
- {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/top_level.txt +0 -0
|
@@ -55,3 +55,7 @@ class Config:
|
|
|
55
55
|
if (p := path.parent) != base:
|
|
56
56
|
return p if not relative_to_cwd else p.relative_to(base)
|
|
57
57
|
return None
|
|
58
|
+
|
|
59
|
+
@staticmethod
|
|
60
|
+
def local_config_exists(config_file: str = settings.EXERCISE_CONFIG_FILE) -> bool:
|
|
61
|
+
return Path(config_file).exists()
|
|
@@ -3,11 +3,11 @@ from __future__ import annotations
|
|
|
3
3
|
import os
|
|
4
4
|
import re
|
|
5
5
|
import shutil
|
|
6
|
+
import subprocess
|
|
6
7
|
import tempfile
|
|
7
8
|
import zipfile
|
|
8
9
|
from pathlib import Path
|
|
9
10
|
|
|
10
|
-
import pytest
|
|
11
11
|
import toml
|
|
12
12
|
from rich.panel import Panel
|
|
13
13
|
|
|
@@ -117,13 +117,9 @@ class Exercise:
|
|
|
117
117
|
zipfile.unlink(missing_ok=True)
|
|
118
118
|
|
|
119
119
|
def test(self):
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
pypas is not able to directly test this exercise.
|
|
124
|
-
Please [i]install dependencies[/i] (usually inside a virtualenv) and run: [note]pytest""")
|
|
125
|
-
else:
|
|
126
|
-
pytest.main(args=[])
|
|
120
|
+
test_cmd = self.config.get('test_cmd', 'pytest')
|
|
121
|
+
console.info(f'Running tests with: [note]{test_cmd}[/note]')
|
|
122
|
+
subprocess.run(test_cmd, shell=True)
|
|
127
123
|
|
|
128
124
|
@classmethod
|
|
129
125
|
def from_config(cls) -> Exercise:
|
|
@@ -41,13 +41,14 @@ def get(exercise_slug: str = typer.Argument(help='Slug of exercise')):
|
|
|
41
41
|
)
|
|
42
42
|
if not Confirm.ask('Continue', default=False):
|
|
43
43
|
return
|
|
44
|
-
if
|
|
44
|
+
if Config.local_config_exists():
|
|
45
45
|
console.warning('Current folder seems to be a pypas exercise.')
|
|
46
46
|
console.info(
|
|
47
47
|
'[italic]If continue, files coming from server will [red]MESS[/red] your existing files'
|
|
48
48
|
)
|
|
49
49
|
if not Confirm.ask('Continue', default=False):
|
|
50
50
|
return
|
|
51
|
+
config = Config()
|
|
51
52
|
if exercise.download(config.get('token')):
|
|
52
53
|
exercise.unzip()
|
|
53
54
|
console.info(f'Exercise is available at [note]./{exercise.folder}[/note] [success]✔')
|
|
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
|