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.
Files changed (22) hide show
  1. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/PKG-INFO +1 -1
  2. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/pyproject.toml +1 -1
  3. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/config.py +4 -0
  4. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/exercise.py +4 -8
  5. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/main.py +2 -1
  6. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/PKG-INFO +1 -1
  7. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/LICENSE +0 -0
  8. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/README.md +0 -0
  9. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/setup.cfg +0 -0
  10. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/__init__.py +0 -0
  11. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/auth.py +0 -0
  12. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/console.py +0 -0
  13. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/decorators.py +0 -0
  14. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/monads.py +0 -0
  15. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/network.py +0 -0
  16. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/lib/sysutils.py +0 -0
  17. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas/settings.py +0 -0
  18. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/SOURCES.txt +0 -0
  19. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/dependency_links.txt +0 -0
  20. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/entry_points.txt +0 -0
  21. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/requires.txt +0 -0
  22. {pypas_cli-0.2.3 → pypas_cli-0.2.5}/src/pypas_cli.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pypas-cli
3
- Version: 0.2.3
3
+ Version: 0.2.5
4
4
  Summary: Python Practical Assignments
5
5
  Author-email: Sergio Delgado Quintero <sdelquin@gmail.com>
6
6
  Maintainer-email: Sergio Delgado Quintero <sdelquin@gmail.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pypas-cli"
3
- version = "0.2.3"
3
+ version = "0.2.5"
4
4
  description = "Python Practical Assignments"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -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
- if Path('requirements.txt').exists():
121
- console.print("""[red]Attention[/red]
122
- A [i]requirements.txt[/i] file is detected in the current directory!
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 (config := Config()).exists():
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]✔')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pypas-cli
3
- Version: 0.2.3
3
+ Version: 0.2.5
4
4
  Summary: Python Practical Assignments
5
5
  Author-email: Sergio Delgado Quintero <sdelquin@gmail.com>
6
6
  Maintainer-email: Sergio Delgado Quintero <sdelquin@gmail.com>
File without changes
File without changes
File without changes