ledgered 0.9.0__tar.gz → 0.9.1.dev4__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 (56) hide show
  1. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/CHANGELOG.md +6 -0
  2. {ledgered-0.9.0/src/ledgered.egg-info → ledgered-0.9.1.dev4}/PKG-INFO +1 -1
  3. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/__version__.py +2 -2
  4. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/github.py +7 -4
  5. {ledgered-0.9.0 → ledgered-0.9.1.dev4/src/ledgered.egg-info}/PKG-INFO +1 -1
  6. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered.egg-info/SOURCES.txt +1 -0
  7. ledgered-0.9.1.dev4/tests/unit/test_github_AppRepository.py +66 -0
  8. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.codecov.yml +0 -0
  9. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.github/workflows/build_and_tests.yml +0 -0
  10. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.github/workflows/codeql-analysis.yml +0 -0
  11. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.github/workflows/fast-checks.yml +0 -0
  12. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.gitignore +0 -0
  13. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.pre-commit-config.yaml +0 -0
  14. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/LICENSE +0 -0
  15. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/README.md +0 -0
  16. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/doc/binary.md +0 -0
  17. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/doc/manifest.md +0 -0
  18. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/pyproject.toml +0 -0
  19. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/setup.cfg +0 -0
  20. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/__init__.py +0 -0
  21. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/binary.py +0 -0
  22. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/__init__.py +0 -0
  23. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/app.py +0 -0
  24. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/cli.py +0 -0
  25. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/constants.py +0 -0
  26. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/errors.py +0 -0
  27. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/manifest.py +0 -0
  28. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/tests.py +0 -0
  29. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/use_cases.py +0 -0
  30. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/utils.py +0 -0
  31. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/serializers.py +0 -0
  32. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/utils/__init__.py +0 -0
  33. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered.egg-info/dependency_links.txt +0 -0
  34. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered.egg-info/entry_points.txt +0 -0
  35. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered.egg-info/requires.txt +0 -0
  36. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered.egg-info/top_level.txt +0 -0
  37. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/Cargo.toml +0 -0
  38. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/Makefile +0 -0
  39. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/full_correct.toml +0 -0
  40. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/ledger_app.toml +0 -0
  41. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/minimal.toml +0 -0
  42. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/one_leaf.toml +0 -0
  43. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/functional/__init__.py +0 -0
  44. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/functional/conftest.py +0 -0
  45. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/functional/manifest/__init__.py +0 -0
  46. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/functional/manifest/test_cli.py +0 -0
  47. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/functional/test_github.py +0 -0
  48. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/__init__.py +0 -0
  49. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/manifest/__init__.py +0 -0
  50. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/manifest/test_app.py +0 -0
  51. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/manifest/test_manifest.py +0 -0
  52. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/manifest/test_tests.py +0 -0
  53. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/manifest/test_use_cases.py +0 -0
  54. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/test_binary.py +0 -0
  55. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/test_github.py +0 -0
  56. {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/test_serializers.py +0 -0
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.9.1] - 2025-03-26
9
+
10
+ ### Fixed
11
+
12
+ - Issue with `variant_values` when computed from a Makefile variable
13
+
8
14
  ## [0.9.0] - 2025-03-25
9
15
 
10
16
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ledgered
3
- Version: 0.9.0
3
+ Version: 0.9.1.dev4
4
4
  Summary: Python tools, utils, libraries, to be used with Ledger cryptodevices
5
5
  Author-email: Ledger <hello@ledger.fr>
6
6
  License: MIT License
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.9.0'
21
- __version_tuple__ = version_tuple = (0, 9, 0)
20
+ __version__ = version = '0.9.1.dev4'
21
+ __version_tuple__ = version_tuple = (0, 9, 1, 'dev4')
@@ -74,13 +74,13 @@ class AppRepository(PyRepository.Repository):
74
74
  @property
75
75
  def variants(self) -> List[str]:
76
76
  if not self._variant_values:
77
- self.__set_variants()
77
+ self._set_variants()
78
78
  return self._variant_values
79
79
 
80
80
  @property
81
81
  def variant_param(self) -> Optional[str]:
82
82
  if self._variant_param is None:
83
- self.__set_variants()
83
+ self._set_variants()
84
84
  return self._variant_param
85
85
 
86
86
  @property
@@ -96,16 +96,19 @@ class AppRepository(PyRepository.Repository):
96
96
  self._variant_param = None
97
97
  self._variant_values.clear()
98
98
 
99
- def __set_variants(self) -> None:
99
+ def _set_variants(self) -> None:
100
100
  """Extracts the variants from the app Makefile"""
101
101
 
102
102
  for line in self.makefile.splitlines():
103
103
  if "VARIANTS" in line:
104
104
  # Ex: `@echo VARIANTS COIN ACA ACA_XL`
105
+ # Sometimes, it can be a computed value in the Makefile, ex: `@echo VARIANTS CHAIN $(SUPPORTED_CHAINS)`
106
+ # => No solution to get them for now
105
107
  parts = line.split(" ")
106
108
  if len(parts) >= 3:
107
109
  self._variant_param = parts[2]
108
- self._variant_values = parts[3:]
110
+ if not parts[3].startswith("$("):
111
+ self._variant_values = parts[3:]
109
112
  elif "VARIANT_PARAM" in line and "=" in line:
110
113
  # There should be a single word here, ex: `VARIANT_PARAM = COIN`
111
114
  self._variant_param = line.split("=")[1].split()[0]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ledgered
3
- Version: 0.9.0
3
+ Version: 0.9.1.dev4
4
4
  Summary: Python tools, utils, libraries, to be used with Ledger cryptodevices
5
5
  Author-email: Ledger <hello@ledger.fr>
6
6
  License: MIT License
@@ -45,6 +45,7 @@ tests/functional/manifest/test_cli.py
45
45
  tests/unit/__init__.py
46
46
  tests/unit/test_binary.py
47
47
  tests/unit/test_github.py
48
+ tests/unit/test_github_AppRepository.py
48
49
  tests/unit/test_serializers.py
49
50
  tests/unit/manifest/__init__.py
50
51
  tests/unit/manifest/test_app.py
@@ -0,0 +1,66 @@
1
+ from unittest import TestCase
2
+ from unittest.mock import patch
3
+ from github import Github
4
+
5
+ from ledgered.github import AppRepository
6
+
7
+
8
+ class TestAppRepository(TestCase):
9
+ def setUp(self):
10
+ self.gh = Github()
11
+
12
+ def test__set_variants_VARIANTS(self):
13
+ param = "COIN"
14
+ coins = ["COIN1", "COIN2"]
15
+ AppRepository.makefile = f"@echo VARIANTS {param} {' '.join(coins)}"
16
+ with patch("github.Repository.Repository", AppRepository):
17
+ app_repo = self.gh.get_repo("LedgerHQ/ledgered")
18
+ self.assertIsNone(app_repo._variant_param)
19
+ self.assertListEqual(app_repo._variant_values, [])
20
+
21
+ self.assertIsNone(app_repo._set_variants())
22
+
23
+ self.assertEqual(app_repo._variant_param, param)
24
+ self.assertListEqual(app_repo._variant_values, coins)
25
+
26
+ def test__set_variants_VARIANTS_variable(self):
27
+ param = "COIN"
28
+ AppRepository.makefile = f"@echo VARIANTS {param} $(COINS)"
29
+ with patch("github.Repository.Repository", AppRepository):
30
+ app_repo = self.gh.get_repo("LedgerHQ/ledgered")
31
+ self.assertIsNone(app_repo._variant_param)
32
+ self.assertListEqual(app_repo._variant_values, [])
33
+
34
+ self.assertIsNone(app_repo._set_variants())
35
+
36
+ # `$(COIN)` can not be interpreted from Ledgered, so the variants can not be parsed
37
+ self.assertIsNone(app_repo._variant_param)
38
+ self.assertListEqual(app_repo._variant_values, [])
39
+
40
+ def test__set_variants_standard(self):
41
+ param = "COIN"
42
+ coins = ["COIN1", "COIN2"]
43
+ AppRepository.makefile = f"VARIANT_PARAM={param}\nVARIANT_VALUES = {' '.join(coins)}"
44
+ with patch("github.Repository.Repository", AppRepository):
45
+ app_repo = self.gh.get_repo("LedgerHQ/ledgered")
46
+ self.assertIsNone(app_repo._variant_param)
47
+ self.assertListEqual(app_repo._variant_values, [])
48
+
49
+ self.assertIsNone(app_repo._set_variants())
50
+
51
+ self.assertEqual(app_repo._variant_param, param)
52
+ self.assertListEqual(app_repo._variant_values, coins)
53
+
54
+ def test__set_variants_standard_variable(self):
55
+ param = "COIN"
56
+ AppRepository.makefile = f"VARIANT_PARAM= {param}\nVARIANT_VALUES = $(COINS)"
57
+ with patch("github.Repository.Repository", AppRepository):
58
+ app_repo = self.gh.get_repo("LedgerHQ/ledgered")
59
+ self.assertIsNone(app_repo._variant_param)
60
+ self.assertListEqual(app_repo._variant_values, [])
61
+
62
+ self.assertIsNone(app_repo._set_variants())
63
+
64
+ # `$(COIN)` can not be interpreted from Ledgered, so the variants can not be parsed
65
+ self.assertIsNone(app_repo._variant_param)
66
+ self.assertListEqual(app_repo._variant_values, [])
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes