making-with-code-cli 5.2.0__tar.gz → 5.2.1__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 (43) hide show
  1. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/PKG-INFO +1 -1
  2. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/pyproject.toml +3 -1
  3. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/settings.py +1 -1
  4. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/setup/tasks.py +18 -0
  5. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/section/edit.py +1 -1
  6. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/README.md +0 -0
  7. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/__init__.py +0 -0
  8. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/cli.py +0 -0
  9. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/curriculum.py +0 -0
  10. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/decorators.py +0 -0
  11. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/errors.py +0 -0
  12. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/git_backend/__init__.py +0 -0
  13. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/git_backend/base_backend.py +0 -0
  14. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/git_backend/mwc_backend.py +0 -0
  15. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/git_wrapper.py +0 -0
  16. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/helpers.py +0 -0
  17. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/mwc_accounts_api.py +0 -0
  18. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/setup/__init__.py +0 -0
  19. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/styles.py +0 -0
  20. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/submit.py +0 -0
  21. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/__init__.py +0 -0
  22. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/assess.py +0 -0
  23. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/check/__init__.py +0 -0
  24. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/check/check_module.py +0 -0
  25. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/gitea_api/api.py +0 -0
  26. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/gitea_api/exceptions.py +0 -0
  27. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/log.py +0 -0
  28. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/patch.py +0 -0
  29. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/section/__init__.py +0 -0
  30. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/section/create.py +0 -0
  31. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/section/delete.py +0 -0
  32. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/section/show.py +0 -0
  33. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/setup.py +0 -0
  34. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/status.py +0 -0
  35. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/student/__init__.py +0 -0
  36. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/student/create.py +0 -0
  37. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/student/edit.py +0 -0
  38. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/student/remove.py +0 -0
  39. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/student_repo_functions.py +0 -0
  40. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/student_repos.py +0 -0
  41. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/teach/update.py +0 -0
  42. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/update/__init__.py +0 -0
  43. {making_with_code_cli-5.2.0 → making_with_code_cli-5.2.1}/src/making_with_code_cli/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: making-with-code-cli
3
- Version: 5.2.0
3
+ Version: 5.2.1
4
4
  Summary: Courseware for Making With Code
5
5
  Author: Chris Proctor
6
6
  Author-email: Chris Proctor <chris@chrisproctor.net>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "making-with-code-cli"
3
- version = "5.2.0"
3
+ version = "5.2.1"
4
4
  description = "Courseware for Making With Code"
5
5
  authors = [{ name = "Chris Proctor", email = "chris@chrisproctor.net" }]
6
6
  requires-python = ">=3.11,<4.0"
@@ -41,3 +41,5 @@ docs = [
41
41
  "sphinx>=8.2.3,<9",
42
42
  "sphinx-rtd-theme>=3.0.2,<4",
43
43
  ]
44
+ [tool.uv]
45
+ check-url = "https://pypi.org/simple/"
@@ -14,7 +14,7 @@ def get_settings_path(settings_path=None):
14
14
  elif "MWC_CONFIG" in os.environ:
15
15
  return Path(os.environ["MWC_CONFIG"])
16
16
  else:
17
- xdg_config_home = os.environ.get("XDG_CONFIG_HOME", str(Path.home() / ".config"))
17
+ xdg_config_home = Path(os.environ.get("XDG_CONFIG_HOME", Path.home() / ".config"))
18
18
  return xdg_config_home / "mwc" / "settings.toml"
19
19
 
20
20
  def read_settings(settings_path=None):
@@ -403,10 +403,28 @@ class InstallVSCode(InstallPackage):
403
403
  brew_name = "visual-studio-code"
404
404
  brew_cask = True
405
405
 
406
+ def is_complete(self):
407
+ if Platform.detect() == Platform.MAC:
408
+ app_locations = [
409
+ Path("/Applications/Visual Studio Code.app"),
410
+ Path.home() / "Applications/Visual Studio Code.app",
411
+ ]
412
+ return self.executable_on_path("code") or any(p.exists() for p in app_locations)
413
+ return self.executable_on_path("code")
414
+
406
415
  def run_task(self):
407
416
  if Platform.detect() in (Platform.UBUNTU, Platform.WSL):
408
417
  run("sudo snap install --classic code", shell=True, check=True)
409
418
  else:
419
+ # If brew has a stale record of VS Code but the app is missing,
420
+ # the upgrade will fail. Zap the cask first to clear brew's state.
421
+ stale = run(
422
+ "brew list --cask visual-studio-code",
423
+ shell=True, capture_output=True
424
+ ).returncode == 0
425
+ if stale:
426
+ run("brew uninstall --cask --zap --force visual-studio-code",
427
+ shell=True, check=True)
410
428
  super().run_task()
411
429
 
412
430
  class InstallImageMagick(InstallPackage):
@@ -19,7 +19,7 @@ from making_with_code_cli.styles import (
19
19
  @click.option("--curriculum-site-url", help="URL for curriculum website. e.g. https://makingwithcode.org")
20
20
  @click.option("--course-name", help="MWC course name")
21
21
  @click.option("--code", help="Code students can use to join the section")
22
- @click.option("--roster", click.Path(exists=True), help="csv file containing student information")
22
+ @click.option("--roster", type=click.Path(exists=True), help="csv file containing student information")
23
23
  @click.option('-r', "--remove", is_flag=True, help="When using a roster, remove existing students not on roster")
24
24
  @click.option('-f', "--force", is_flag=True, help="When using a roster, update existing student passwords")
25
25
  @handle_mwc_errors