entangled-cli 2.0.4__tar.gz → 2.0.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 (41) hide show
  1. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/PKG-INFO +1 -1
  2. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/document.py +6 -0
  3. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/markdown_reader.py +6 -0
  4. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/tangle.py +3 -0
  5. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/pyproject.toml +1 -1
  6. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/LICENSE +0 -0
  7. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/README.md +0 -0
  8. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/__init__.py +0 -0
  9. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/code_reader.py +0 -0
  10. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/commands/__init__.py +0 -0
  11. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/commands/brei.py +0 -0
  12. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/commands/new.py +0 -0
  13. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/commands/status.py +0 -0
  14. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/commands/stitch.py +0 -0
  15. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/commands/sync.py +0 -0
  16. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/commands/tangle.py +0 -0
  17. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/commands/watch.py +0 -0
  18. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/config/__init__.py +0 -0
  19. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/config/language.py +0 -0
  20. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/config/templates.py +0 -0
  21. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/config/version.py +0 -0
  22. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/construct.py +0 -0
  23. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/errors/__init__.py +0 -0
  24. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/errors/internal.py +0 -0
  25. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/errors/user.py +0 -0
  26. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/filedb.py +0 -0
  27. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/hooks/__init__.py +0 -0
  28. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/hooks/base.py +0 -0
  29. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/hooks/build.py +0 -0
  30. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/hooks/quarto_attributes.py +0 -0
  31. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/hooks/task.py +0 -0
  32. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/logging.py +0 -0
  33. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/main.py +0 -0
  34. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/parsing.py +0 -0
  35. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/properties.py +0 -0
  36. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/py.typed +0 -0
  37. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/status.py +0 -0
  38. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/text_location.py +0 -0
  39. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/transaction.py +0 -0
  40. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/utility.py +0 -0
  41. {entangled_cli-2.0.4 → entangled_cli-2.0.5}/entangled/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: entangled-cli
3
- Version: 2.0.4
3
+ Version: 2.0.5
4
4
  Summary: Literate Programming toolbox
5
5
  Home-page: https://entangled.github.io/
6
6
  License: Apache 2
@@ -57,11 +57,17 @@ class ReferenceMap:
57
57
  default_factory=lambda: defaultdict(list)
58
58
  )
59
59
  targets: set[str] = field(default_factory=set)
60
+ alias: dict[str, str] = field(default_factory=dict)
60
61
 
61
62
  def names(self) -> Iterable[str]:
62
63
  return self.index.keys()
63
64
 
64
65
  def by_name(self, n: str) -> Iterable[CodeBlock]:
66
+ if n not in self.index and n not in self.alias:
67
+ raise AttributeError(name=n, obj=self)
68
+ if n not in self.index:
69
+ return self.by_name(self.alias[n])
70
+
65
71
  return (self.map[r] for r in self.index[n])
66
72
 
67
73
  def new_id(self, filename: str, name: str) -> ReferenceId:
@@ -130,6 +130,12 @@ class MarkdownReader(mawk.RuleSet):
130
130
  self.reference_map[ref] = code
131
131
  if target_file is not None:
132
132
  self.reference_map.targets.add(target_file)
133
+
134
+ # when both target_file and block_id are given,
135
+ # make an alias
136
+ if target_file is not None and block_id is not None:
137
+ self.reference_map.alias[target_file] = block_id
138
+
133
139
  self.content.append(ref)
134
140
  self.current_content = []
135
141
 
@@ -119,6 +119,9 @@ def tangle_ref(
119
119
  if annotation is None:
120
120
  annotation = config.annotation
121
121
 
122
+ if ref_name in refs.alias:
123
+ ref_name = refs.alias[ref_name]
124
+
122
125
  if ref_name not in refs:
123
126
  raise KeyError(ref_name)
124
127
  v = _visited or Visitor()
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "entangled-cli"
3
- version = "2.0.4"
3
+ version = "2.0.5"
4
4
  description = "Literate Programming toolbox"
5
5
  repository = "https://github.com/entangled/entangled.py"
6
6
  homepage = "https://entangled.github.io/"
File without changes
File without changes