labview-fpga-hdl-tools 2.0.0.dev7__tar.gz → 2.0.0.dev8__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 (28) hide show
  1. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/PKG-INFO +1 -1
  2. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/install_dependencies.py +41 -3
  3. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/pyproject.toml +1 -1
  4. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/LICENSE +0 -0
  5. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/README.md +0 -0
  6. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/.gitignore +0 -0
  7. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/__init__.py +0 -0
  8. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/__main__.py +0 -0
  9. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/check_syntax.py +0 -0
  10. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/command_config.py +0 -0
  11. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/command_hooks.py +0 -0
  12. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/common.py +0 -0
  13. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/compile_modelsim_lib.py +0 -0
  14. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/compile_project.py +0 -0
  15. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/create_lvbitx.py +0 -0
  16. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/create_modelsim_project.py +0 -0
  17. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/create_vivado_project.py +0 -0
  18. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/gen_labview_target_plugin.py +0 -0
  19. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/generate_vhdl.py +0 -0
  20. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/get_window_netlist.py +0 -0
  21. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/install_labview_target_plugin.py +0 -0
  22. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/launch_modelsim.py +0 -0
  23. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/launch_vivado.py +0 -0
  24. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/migrate_clip.py +0 -0
  25. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/nihdlsettings_default.py +0 -0
  26. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/process_constraints.py +0 -0
  27. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/reporting.py +0 -0
  28. {labview_fpga_hdl_tools-2.0.0.dev7 → labview_fpga_hdl_tools-2.0.0.dev8}/labview_fpga_hdl_tools/sim_modelsim.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: labview-fpga-hdl-tools
3
- Version: 2.0.0.dev7
3
+ Version: 2.0.0.dev8
4
4
  Summary: LabVIEW FPGA HDL Tools
5
5
  License: MIT
6
6
  Author: Salvador Santolucito
@@ -80,6 +80,36 @@ def _get_commit_hash(repo_path):
80
80
  return None
81
81
 
82
82
 
83
+ def _get_installed_version(repo_name, repo_path, deps_dir):
84
+ """Return the currently installed version of a cloned dependency, or None.
85
+
86
+ Prefers the version recorded in the ``.dep-info`` marker file, falling back
87
+ to ``git describe`` for repos cloned before markers were introduced.
88
+ """
89
+ for marker in sorted(deps_dir.glob(f"{repo_name}-*{_DEP_INFO_SUFFIX}")):
90
+ try:
91
+ for line in marker.read_text(encoding="utf-8").splitlines():
92
+ if line.startswith("Version:"):
93
+ return line.split(":", 1)[1].strip()
94
+ except OSError:
95
+ continue
96
+
97
+ try:
98
+ result = subprocess.run(
99
+ ["git", "-C", str(repo_path), "describe", "--tags", "--always"],
100
+ capture_output=True,
101
+ text=True,
102
+ check=True,
103
+ )
104
+ described = result.stdout.strip()
105
+ if described:
106
+ return _normalize_tag(described)
107
+ except (subprocess.CalledProcessError, OSError):
108
+ pass
109
+
110
+ return None
111
+
112
+
83
113
  def _write_dep_marker(repo, repo_name, tag, requested, repo_url, repo_path, deps_dir):
84
114
  """Write a version marker file next to a cloned dependency.
85
115
 
@@ -354,14 +384,22 @@ def _clone_repo_at_tag(repo, tag_or_spec, base_dir, delete_allowed=False, allow_
354
384
 
355
385
  # Check if already exists and prompt user
356
386
  if repo_path.exists():
357
- reporter.detail(f" [INFO] Repository {repo_name} already exists at {repo_path}")
387
+ installed_version = _get_installed_version(repo_name, repo_path, base_dir)
388
+ present_desc = (
389
+ f"{repo_name} version {installed_version}" if installed_version else repo_name
390
+ )
391
+ reporter.detail(f" [INFO] {present_desc} already present at {repo_path}")
358
392
 
359
393
  if delete_allowed:
360
394
  response = "y"
361
395
  reporter.detail(f" Auto-deleting and re-cloning (--delete flag set)")
362
396
  else:
363
397
  try:
364
- response = input(f" Delete and re-clone? (y/N): ").strip().lower()
398
+ response = (
399
+ input(f" {present_desc} already present. Delete and re-clone? (y/N): ")
400
+ .strip()
401
+ .lower()
402
+ )
365
403
  except EOFError:
366
404
  # Non-interactive/CI run: there is no stdin to prompt on. Default
367
405
  # to the safe "keep existing clone" choice instead of crashing;
@@ -397,7 +435,7 @@ def _clone_repo_at_tag(repo, tag_or_spec, base_dir, delete_allowed=False, allow_
397
435
  text=True,
398
436
  check=True,
399
437
  )
400
- reporter.success(f" [OK] Successfully cloned {repo_name}")
438
+ reporter.success(f" [OK] Installed {repo_name} version {_normalize_tag(tag)}")
401
439
  _write_dep_marker(repo, repo_name, tag, tag_or_spec, repo_url, repo_path, base_dir)
402
440
  return True
403
441
 
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "labview-fpga-hdl-tools"
7
- version = "2.0.0.dev7"
7
+ version = "2.0.0.dev8"
8
8
  description = "LabVIEW FPGA HDL Tools"
9
9
  authors = [
10
10
  "Salvador Santolucito <salvador.santolucito@gmail.com>"