pyEDAA.CLITool 0.3.4__tar.gz → 0.3.8__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 (29) hide show
  1. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/PKG-INFO +33 -37
  2. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/__init__.py +1 -1
  3. pyedaa_clitool-0.3.8/pyEDAA/CLITool/py.typed +0 -0
  4. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA.CLITool.egg-info/PKG-INFO +33 -37
  5. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA.CLITool.egg-info/SOURCES.txt +1 -0
  6. pyedaa_clitool-0.3.8/pyEDAA.CLITool.egg-info/requires.txt +46 -0
  7. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyproject.toml +20 -5
  8. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/setup.py +7 -5
  9. pyedaa_clitool-0.3.4/pyEDAA.CLITool.egg-info/requires.txt +0 -50
  10. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/LICENSE.md +0 -0
  11. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/README.md +0 -0
  12. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/Aldec/ActiveHDL.py +0 -0
  13. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/Aldec/RivieraPRO.py +0 -0
  14. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/Aldec/__init__.py +0 -0
  15. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/Docker.py +0 -0
  16. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/GHDL.py +0 -0
  17. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/GTKWave.py +0 -0
  18. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/IntelFPGA/Quartus.py +0 -0
  19. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/IntelFPGA/__init__.py +0 -0
  20. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/Lattice/Diamond.py +0 -0
  21. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/Lattice/__init__.py +0 -0
  22. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/Mentor/ModelSim.py +0 -0
  23. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/Mentor/__init__.py +0 -0
  24. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/Xilinx/ISE.py +0 -0
  25. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/Xilinx/Vivado.py +0 -0
  26. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA/CLITool/Xilinx/__init__.py +0 -0
  27. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA.CLITool.egg-info/dependency_links.txt +0 -0
  28. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/pyEDAA.CLITool.egg-info/top_level.txt +0 -0
  29. {pyedaa_clitool-0.3.4 → pyedaa_clitool-0.3.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyEDAA.CLITool
3
- Version: 0.3.4
3
+ Version: 0.3.8
4
4
  Summary: An abstraction layer of EDA CLI tools.
5
5
  Home-page: https://GitHub.com/edaa-org/pyEDAA.CLITool
6
6
  Author: Patrick Lehmann
@@ -25,53 +25,49 @@ Classifier: Development Status :: 4 - Beta
25
25
  Requires-Python: >=3.9
26
26
  Description-Content-Type: text/markdown
27
27
  License-File: LICENSE.md
28
- Requires-Dist: py-flags~=1.1
29
- Requires-Dist: pyTooling~=8.4
30
28
  Requires-Dist: pyVHDLModel~=0.31
29
+ Requires-Dist: pyTooling~=8.7
31
30
  Provides-Extra: doc
32
- Requires-Dist: sphinx_rtd_theme~=3.0; extra == "doc"
33
- Requires-Dist: sphinx-copybutton>=0.5.2; extra == "doc"
34
- Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "doc"
35
- Requires-Dist: docutils_stubs~=0.0.22; extra == "doc"
36
- Requires-Dist: sphinx_design~=0.6.1; extra == "doc"
31
+ Requires-Dist: pyVHDLModel~=0.31; extra == "doc"
37
32
  Requires-Dist: sphinx_reports~=0.9; extra == "doc"
33
+ Requires-Dist: docutils_stubs~=0.0.22; extra == "doc"
38
34
  Requires-Dist: sphinx~=8.2; extra == "doc"
39
- Requires-Dist: py-flags~=1.1; extra == "doc"
40
- Requires-Dist: pyTooling~=8.4; extra == "doc"
41
- Requires-Dist: autoapi>=2.0.1; extra == "doc"
42
- Requires-Dist: sphinx_autodoc_typehints~=3.1; extra == "doc"
43
35
  Requires-Dist: docutils~=0.21; extra == "doc"
44
- Requires-Dist: pyVHDLModel~=0.31; extra == "doc"
36
+ Requires-Dist: sphinx_design~=0.6; extra == "doc"
37
+ Requires-Dist: sphinx_rtd_theme~=3.0; extra == "doc"
38
+ Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "doc"
39
+ Requires-Dist: autoapi>=2.0.1; extra == "doc"
40
+ Requires-Dist: sphinx-copybutton>=0.5; extra == "doc"
41
+ Requires-Dist: pyTooling~=8.7; extra == "doc"
42
+ Requires-Dist: sphinx_autodoc_typehints~=3.2; extra == "doc"
45
43
  Provides-Extra: test
46
- Requires-Dist: typing_extensions~=4.13; extra == "test"
47
- Requires-Dist: lxml~=5.3; extra == "test"
48
- Requires-Dist: Coverage~=7.8; extra == "test"
49
- Requires-Dist: py-flags~=1.1; extra == "test"
50
- Requires-Dist: pytest~=8.3; extra == "test"
51
- Requires-Dist: pyTooling~=8.4; extra == "test"
52
- Requires-Dist: pytest-cov~=6.1; extra == "test"
53
- Requires-Dist: mypy~=1.15; extra == "test"
44
+ Requires-Dist: pytest~=8.4; extra == "test"
45
+ Requires-Dist: lxml~=6.0; extra == "test"
54
46
  Requires-Dist: pyVHDLModel~=0.31; extra == "test"
47
+ Requires-Dist: typing_extensions~=4.15; extra == "test"
48
+ Requires-Dist: Coverage~=7.10; extra == "test"
49
+ Requires-Dist: mypy[reports]~=1.18; extra == "test"
50
+ Requires-Dist: pytest-cov~=7.0; extra == "test"
51
+ Requires-Dist: pyTooling~=8.7; extra == "test"
55
52
  Provides-Extra: all
56
- Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "all"
53
+ Requires-Dist: pytest~=8.4; extra == "all"
54
+ Requires-Dist: lxml~=6.0; extra == "all"
55
+ Requires-Dist: pyVHDLModel~=0.31; extra == "all"
56
+ Requires-Dist: sphinx_reports~=0.9; extra == "all"
57
+ Requires-Dist: docutils_stubs~=0.0.22; extra == "all"
57
58
  Requires-Dist: sphinx~=8.2; extra == "all"
58
- Requires-Dist: autoapi>=2.0.1; extra == "all"
59
- Requires-Dist: sphinx_autodoc_typehints~=3.1; extra == "all"
59
+ Requires-Dist: typing_extensions~=4.15; extra == "all"
60
+ Requires-Dist: Coverage~=7.10; extra == "all"
60
61
  Requires-Dist: docutils~=0.21; extra == "all"
61
- Requires-Dist: Coverage~=7.8; extra == "all"
62
- Requires-Dist: typing_extensions~=4.13; extra == "all"
63
- Requires-Dist: docutils_stubs~=0.0.22; extra == "all"
64
- Requires-Dist: pyTooling~=8.4; extra == "all"
65
- Requires-Dist: sphinx-copybutton>=0.5.2; extra == "all"
66
- Requires-Dist: lxml~=5.3; extra == "all"
67
- Requires-Dist: sphinx_design~=0.6.1; extra == "all"
68
- Requires-Dist: sphinx_reports~=0.9; extra == "all"
69
- Requires-Dist: py-flags~=1.1; extra == "all"
70
- Requires-Dist: pytest~=8.3; extra == "all"
71
- Requires-Dist: pytest-cov~=6.1; extra == "all"
62
+ Requires-Dist: sphinx_design~=0.6; extra == "all"
72
63
  Requires-Dist: sphinx_rtd_theme~=3.0; extra == "all"
73
- Requires-Dist: mypy~=1.15; extra == "all"
74
- Requires-Dist: pyVHDLModel~=0.31; extra == "all"
64
+ Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "all"
65
+ Requires-Dist: mypy[reports]~=1.18; extra == "all"
66
+ Requires-Dist: pytest-cov~=7.0; extra == "all"
67
+ Requires-Dist: autoapi>=2.0.1; extra == "all"
68
+ Requires-Dist: sphinx-copybutton>=0.5; extra == "all"
69
+ Requires-Dist: pyTooling~=8.7; extra == "all"
70
+ Requires-Dist: sphinx_autodoc_typehints~=3.2; extra == "all"
75
71
  Dynamic: author
76
72
  Dynamic: author-email
77
73
  Dynamic: classifier
@@ -34,7 +34,7 @@ __author__ = "Patrick Lehmann"
34
34
  __email__ = "Paebbels@gmail.com"
35
35
  __copyright__ = "2014-2025, Patrick Lehmann, Unai Martinez-Corral"
36
36
  __license__ = "Apache License, Version 2.0"
37
- __version__ = "0.3.4"
37
+ __version__ = "0.3.8"
38
38
  __keywords__ = ["cli", "abstraction layer", "eda"]
39
39
 
40
40
  from pathlib import Path
File without changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyEDAA.CLITool
3
- Version: 0.3.4
3
+ Version: 0.3.8
4
4
  Summary: An abstraction layer of EDA CLI tools.
5
5
  Home-page: https://GitHub.com/edaa-org/pyEDAA.CLITool
6
6
  Author: Patrick Lehmann
@@ -25,53 +25,49 @@ Classifier: Development Status :: 4 - Beta
25
25
  Requires-Python: >=3.9
26
26
  Description-Content-Type: text/markdown
27
27
  License-File: LICENSE.md
28
- Requires-Dist: py-flags~=1.1
29
- Requires-Dist: pyTooling~=8.4
30
28
  Requires-Dist: pyVHDLModel~=0.31
29
+ Requires-Dist: pyTooling~=8.7
31
30
  Provides-Extra: doc
32
- Requires-Dist: sphinx_rtd_theme~=3.0; extra == "doc"
33
- Requires-Dist: sphinx-copybutton>=0.5.2; extra == "doc"
34
- Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "doc"
35
- Requires-Dist: docutils_stubs~=0.0.22; extra == "doc"
36
- Requires-Dist: sphinx_design~=0.6.1; extra == "doc"
31
+ Requires-Dist: pyVHDLModel~=0.31; extra == "doc"
37
32
  Requires-Dist: sphinx_reports~=0.9; extra == "doc"
33
+ Requires-Dist: docutils_stubs~=0.0.22; extra == "doc"
38
34
  Requires-Dist: sphinx~=8.2; extra == "doc"
39
- Requires-Dist: py-flags~=1.1; extra == "doc"
40
- Requires-Dist: pyTooling~=8.4; extra == "doc"
41
- Requires-Dist: autoapi>=2.0.1; extra == "doc"
42
- Requires-Dist: sphinx_autodoc_typehints~=3.1; extra == "doc"
43
35
  Requires-Dist: docutils~=0.21; extra == "doc"
44
- Requires-Dist: pyVHDLModel~=0.31; extra == "doc"
36
+ Requires-Dist: sphinx_design~=0.6; extra == "doc"
37
+ Requires-Dist: sphinx_rtd_theme~=3.0; extra == "doc"
38
+ Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "doc"
39
+ Requires-Dist: autoapi>=2.0.1; extra == "doc"
40
+ Requires-Dist: sphinx-copybutton>=0.5; extra == "doc"
41
+ Requires-Dist: pyTooling~=8.7; extra == "doc"
42
+ Requires-Dist: sphinx_autodoc_typehints~=3.2; extra == "doc"
45
43
  Provides-Extra: test
46
- Requires-Dist: typing_extensions~=4.13; extra == "test"
47
- Requires-Dist: lxml~=5.3; extra == "test"
48
- Requires-Dist: Coverage~=7.8; extra == "test"
49
- Requires-Dist: py-flags~=1.1; extra == "test"
50
- Requires-Dist: pytest~=8.3; extra == "test"
51
- Requires-Dist: pyTooling~=8.4; extra == "test"
52
- Requires-Dist: pytest-cov~=6.1; extra == "test"
53
- Requires-Dist: mypy~=1.15; extra == "test"
44
+ Requires-Dist: pytest~=8.4; extra == "test"
45
+ Requires-Dist: lxml~=6.0; extra == "test"
54
46
  Requires-Dist: pyVHDLModel~=0.31; extra == "test"
47
+ Requires-Dist: typing_extensions~=4.15; extra == "test"
48
+ Requires-Dist: Coverage~=7.10; extra == "test"
49
+ Requires-Dist: mypy[reports]~=1.18; extra == "test"
50
+ Requires-Dist: pytest-cov~=7.0; extra == "test"
51
+ Requires-Dist: pyTooling~=8.7; extra == "test"
55
52
  Provides-Extra: all
56
- Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "all"
53
+ Requires-Dist: pytest~=8.4; extra == "all"
54
+ Requires-Dist: lxml~=6.0; extra == "all"
55
+ Requires-Dist: pyVHDLModel~=0.31; extra == "all"
56
+ Requires-Dist: sphinx_reports~=0.9; extra == "all"
57
+ Requires-Dist: docutils_stubs~=0.0.22; extra == "all"
57
58
  Requires-Dist: sphinx~=8.2; extra == "all"
58
- Requires-Dist: autoapi>=2.0.1; extra == "all"
59
- Requires-Dist: sphinx_autodoc_typehints~=3.1; extra == "all"
59
+ Requires-Dist: typing_extensions~=4.15; extra == "all"
60
+ Requires-Dist: Coverage~=7.10; extra == "all"
60
61
  Requires-Dist: docutils~=0.21; extra == "all"
61
- Requires-Dist: Coverage~=7.8; extra == "all"
62
- Requires-Dist: typing_extensions~=4.13; extra == "all"
63
- Requires-Dist: docutils_stubs~=0.0.22; extra == "all"
64
- Requires-Dist: pyTooling~=8.4; extra == "all"
65
- Requires-Dist: sphinx-copybutton>=0.5.2; extra == "all"
66
- Requires-Dist: lxml~=5.3; extra == "all"
67
- Requires-Dist: sphinx_design~=0.6.1; extra == "all"
68
- Requires-Dist: sphinx_reports~=0.9; extra == "all"
69
- Requires-Dist: py-flags~=1.1; extra == "all"
70
- Requires-Dist: pytest~=8.3; extra == "all"
71
- Requires-Dist: pytest-cov~=6.1; extra == "all"
62
+ Requires-Dist: sphinx_design~=0.6; extra == "all"
72
63
  Requires-Dist: sphinx_rtd_theme~=3.0; extra == "all"
73
- Requires-Dist: mypy~=1.15; extra == "all"
74
- Requires-Dist: pyVHDLModel~=0.31; extra == "all"
64
+ Requires-Dist: sphinxcontrib-mermaid~=1.0; extra == "all"
65
+ Requires-Dist: mypy[reports]~=1.18; extra == "all"
66
+ Requires-Dist: pytest-cov~=7.0; extra == "all"
67
+ Requires-Dist: autoapi>=2.0.1; extra == "all"
68
+ Requires-Dist: sphinx-copybutton>=0.5; extra == "all"
69
+ Requires-Dist: pyTooling~=8.7; extra == "all"
70
+ Requires-Dist: sphinx_autodoc_typehints~=3.2; extra == "all"
75
71
  Dynamic: author
76
72
  Dynamic: author-email
77
73
  Dynamic: classifier
@@ -11,6 +11,7 @@ pyEDAA/CLITool/Docker.py
11
11
  pyEDAA/CLITool/GHDL.py
12
12
  pyEDAA/CLITool/GTKWave.py
13
13
  pyEDAA/CLITool/__init__.py
14
+ pyEDAA/CLITool/py.typed
14
15
  pyEDAA/CLITool/Aldec/ActiveHDL.py
15
16
  pyEDAA/CLITool/Aldec/RivieraPRO.py
16
17
  pyEDAA/CLITool/Aldec/__init__.py
@@ -0,0 +1,46 @@
1
+ pyVHDLModel~=0.31
2
+ pyTooling~=8.7
3
+
4
+ [all]
5
+ pytest~=8.4
6
+ lxml~=6.0
7
+ pyVHDLModel~=0.31
8
+ sphinx_reports~=0.9
9
+ docutils_stubs~=0.0.22
10
+ sphinx~=8.2
11
+ typing_extensions~=4.15
12
+ Coverage~=7.10
13
+ docutils~=0.21
14
+ sphinx_design~=0.6
15
+ sphinx_rtd_theme~=3.0
16
+ sphinxcontrib-mermaid~=1.0
17
+ mypy[reports]~=1.18
18
+ pytest-cov~=7.0
19
+ autoapi>=2.0.1
20
+ sphinx-copybutton>=0.5
21
+ pyTooling~=8.7
22
+ sphinx_autodoc_typehints~=3.2
23
+
24
+ [doc]
25
+ pyVHDLModel~=0.31
26
+ sphinx_reports~=0.9
27
+ docutils_stubs~=0.0.22
28
+ sphinx~=8.2
29
+ docutils~=0.21
30
+ sphinx_design~=0.6
31
+ sphinx_rtd_theme~=3.0
32
+ sphinxcontrib-mermaid~=1.0
33
+ autoapi>=2.0.1
34
+ sphinx-copybutton>=0.5
35
+ pyTooling~=8.7
36
+ sphinx_autodoc_typehints~=3.2
37
+
38
+ [test]
39
+ pytest~=8.4
40
+ lxml~=6.0
41
+ pyVHDLModel~=0.31
42
+ typing_extensions~=4.15
43
+ Coverage~=7.10
44
+ mypy[reports]~=1.18
45
+ pytest-cov~=7.0
46
+ pyTooling~=8.7
@@ -1,16 +1,31 @@
1
1
  [build-system]
2
2
  requires = [
3
- "setuptools ~= 79.0",
3
+ "setuptools >= 80.0",
4
4
  "wheel ~= 0.45",
5
- "pyTooling ~= 8.4"
5
+ "pyTooling ~= 8.7"
6
6
  ]
7
7
  build-backend = "setuptools.build_meta"
8
8
 
9
- [tool.black]
10
- line-length = 120
9
+ [tool.pylint.format]
10
+ indent-string="\t"
11
+ max-line-length = 120
12
+ ignore-long-lines = "^.{0,110}#: .*"
13
+
14
+ [tool.pylint.basic]
15
+ argument-naming-style = "camelCase"
16
+ attr-naming-style = "camelCase"
17
+ class-attribute-naming-style = "camelCase"
18
+ class-const-naming-style = "UPPER_CASE"
19
+ class-naming-style = "PascalCase"
20
+ const-naming-style = "UPPER_CASE"
21
+ function-naming-style = "camelCase"
22
+ inlinevar-naming-style = "camelCase"
23
+ method-naming-style = "PascalCase"
24
+ module-naming-style = "any"
25
+ variable-naming-style = "camelCase"
11
26
 
12
27
  [tool.mypy]
13
- files = ["pyEDAA.CLITool"]
28
+ packages = ["pyEDAA.CLITool"]
14
29
  python_version = "3.13"
15
30
  #ignore_missing_imports = true
16
31
  strict = true
@@ -39,7 +39,8 @@ packageName = "pyEDAA.CLITool"
39
39
  packageDirectory = packageName.replace(".", "/")
40
40
  packageInformationFile = Path(f"{packageDirectory}/__init__.py")
41
41
 
42
- setup(**DescribePythonPackageHostedOnGitHub(
42
+ setup(
43
+ **DescribePythonPackageHostedOnGitHub(
43
44
  packageName=packageName,
44
45
  description="An abstraction layer of EDA CLI tools.",
45
46
  gitHubNamespace=gitHubNamespace,
@@ -48,7 +49,8 @@ setup(**DescribePythonPackageHostedOnGitHub(
48
49
  classifiers=list(DEFAULT_CLASSIFIERS) + [
49
50
  "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)"
50
51
  ],
51
- dataFiles={
52
- packageName: ["py.typed"]
53
- }
54
- ))
52
+ dataFiles={
53
+ packageName: ["py.typed"]
54
+ }
55
+ )
56
+ )
@@ -1,50 +0,0 @@
1
- py-flags~=1.1
2
- pyTooling~=8.4
3
- pyVHDLModel~=0.31
4
-
5
- [all]
6
- sphinxcontrib-mermaid~=1.0
7
- sphinx~=8.2
8
- autoapi>=2.0.1
9
- sphinx_autodoc_typehints~=3.1
10
- docutils~=0.21
11
- Coverage~=7.8
12
- typing_extensions~=4.13
13
- docutils_stubs~=0.0.22
14
- pyTooling~=8.4
15
- sphinx-copybutton>=0.5.2
16
- lxml~=5.3
17
- sphinx_design~=0.6.1
18
- sphinx_reports~=0.9
19
- py-flags~=1.1
20
- pytest~=8.3
21
- pytest-cov~=6.1
22
- sphinx_rtd_theme~=3.0
23
- mypy~=1.15
24
- pyVHDLModel~=0.31
25
-
26
- [doc]
27
- sphinx_rtd_theme~=3.0
28
- sphinx-copybutton>=0.5.2
29
- sphinxcontrib-mermaid~=1.0
30
- docutils_stubs~=0.0.22
31
- sphinx_design~=0.6.1
32
- sphinx_reports~=0.9
33
- sphinx~=8.2
34
- py-flags~=1.1
35
- pyTooling~=8.4
36
- autoapi>=2.0.1
37
- sphinx_autodoc_typehints~=3.1
38
- docutils~=0.21
39
- pyVHDLModel~=0.31
40
-
41
- [test]
42
- typing_extensions~=4.13
43
- lxml~=5.3
44
- Coverage~=7.8
45
- py-flags~=1.1
46
- pytest~=8.3
47
- pyTooling~=8.4
48
- pytest-cov~=6.1
49
- mypy~=1.15
50
- pyVHDLModel~=0.31
File without changes
File without changes