dir-content-diff 1.14.1__tar.gz → 1.15.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.
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.auto-changelog-template.hbs +2 -2
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.github/ISSUE_TEMPLATE/bug_report.yaml +20 -19
- dir_content_diff-1.15.1/.github/ISSUE_TEMPLATE/feature_request.yaml +56 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.github/ISSUE_TEMPLATE/how_to_use.yaml +19 -18
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.github/pull_request_template.md +1 -1
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.github/workflows/commitlint.yml +2 -3
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.github/workflows/publish-sdist.yml +4 -4
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.github/workflows/run-tox.yml +14 -13
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.gitignore +6 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.pre-commit-config.yaml +11 -8
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/CHANGELOG.md +26 -1
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/CONTRIBUTING.md +1 -1
- {dir_content_diff-1.14.1/dir_content_diff.egg-info → dir_content_diff-1.15.1}/PKG-INFO +27 -13
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/README.md +21 -6
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/commitlint.config.js +11 -1
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/base_comparators.py +202 -70
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/cli/__init__.py +13 -4
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/comparators/dependencies.json +1 -1
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/core.py +1 -1
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1/dir_content_diff.egg-info}/PKG-INFO +27 -13
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff.egg-info/SOURCES.txt +3 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff.egg-info/requires.txt +4 -4
- dir_content_diff-1.15.1/dir_content_diff.egg-info/scm_file_list.json +76 -0
- dir_content_diff-1.15.1/dir_content_diff.egg-info/scm_version.json +8 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/docs/source/conf.py +1 -1
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/pyproject.toml +8 -4
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/setup.py +1 -1
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/comparators/test_voxcell.py +14 -12
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/conftest.py +48 -51
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/test_base.py +383 -50
- dir_content_diff-1.15.1/tests/test_cli_exit_code.py +69 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/test_missing_deps.py +5 -7
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/test_parallel_execution.py +5 -6
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tox.ini +12 -11
- dir_content_diff-1.14.1/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -56
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.auto-changelog +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.codespellignorelines +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.codespellrc +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.copier-answers.yml +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.copyright.tmpl +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.coveragerc +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.coveragerc_min_versions +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.gitattributes +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.github/dependabot.yml +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.gitreview +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.pylintrc +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/.readthedocs.yml +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/AUTHORS.md +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/LICENSE.txt +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/MANIFEST.in +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/codecov.yml +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/__init__.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/comparators/__init__.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/comparators/morphio.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/comparators/pandas.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/comparators/voxcell.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/config.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/parallel_utils.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/pytest_plugin.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/registry.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff/util.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff.egg-info/dependency_links.txt +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff.egg-info/entry_points.txt +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/dir_content_diff.egg-info/top_level.txt +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/docs/Makefile +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/docs/source/.gitignore +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/docs/source/api_ref.rst +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/docs/source/changelog.rst +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/docs/source/contributing.rst +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/docs/source/index.rst +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/package.json +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/setup.cfg +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/__init__.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/comparators/__init__.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/comparators/test_morphio.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/comparators/test_pandas.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/generate_test_files.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/test_attrs_validation.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/test_cli.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/test_pytest_plugin.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/test_util.py +0 -0
- {dir_content_diff-1.14.1 → dir_content_diff-1.15.1}/tests/test_version.py +0 -0
|
@@ -120,7 +120,7 @@ Example Definitions
|
|
|
120
120
|
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
|
|
121
121
|
{{/commit-list}}
|
|
122
122
|
|
|
123
|
-
{{#commit-list merges heading='### Changes to Test
|
|
123
|
+
{{#commit-list merges heading='### Changes to Test Assets' message='^[tT]est:|^[tT]est\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
|
|
124
124
|
- {{message}} ({{author}}{{#if href}} - [#{{id}}]({{href}}){{/if}})
|
|
125
125
|
{{/commit-list}}
|
|
126
126
|
|
|
@@ -174,7 +174,7 @@ Example Definitions
|
|
|
174
174
|
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
|
|
175
175
|
{{/commit-list}}
|
|
176
176
|
|
|
177
|
-
{{#commit-list commits heading='### Changes to Test
|
|
177
|
+
{{#commit-list commits heading='### Changes to Test Assets' message='^[tT]est:|^[tT]est\(' exclude='[bB]reaking [cC]hange:|[bB]reaking:|\[skip-changelog\]'}}
|
|
178
178
|
- {{subject}} ({{author}}{{#if href}} - [{{shorthash}}]({{href}}){{/if}})
|
|
179
179
|
{{/commit-list}}
|
|
180
180
|
|
|
@@ -9,29 +9,29 @@ body:
|
|
|
9
9
|
- type: markdown
|
|
10
10
|
attributes:
|
|
11
11
|
value: "
|
|
12
|
-
Thanks for taking the time to fill out this bug report!
|
|
12
|
+
Thanks for taking the time to fill out this bug report!
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
Before submitting, make sure you search in the [issue list](https://github.com/BlueBrain/dir-content-diff/issues) that a similar issue was not already reported.
|
|
16
|
-
If it is not the case, please read the following guidelines.
|
|
15
|
+
Before submitting, make sure you search in the [issue list](https://github.com/BlueBrain/dir-content-diff/issues) that a similar issue was not already reported.
|
|
16
|
+
If it is not the case, please read the following guidelines.
|
|
17
17
|
|
|
18
|
-
### GUIDELINES FOR REPORTING BUGS
|
|
18
|
+
### GUIDELINES FOR REPORTING BUGS
|
|
19
19
|
|
|
20
|
-
Bug reports that are not properly formulated and formatted or without enough details can be very hard for us to understand and fix.
|
|
21
|
-
In order to ensure we can help you fixing your bug, please follow these guidelines.
|
|
20
|
+
Bug reports that are not properly formulated and formatted or without enough details can be very hard for us to understand and fix.
|
|
21
|
+
In order to ensure we can help you fixing your bug, please follow these guidelines.
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
Your reports must include the following features:
|
|
24
|
+
Your reports must include the following features:
|
|
25
25
|
|
|
26
|
-
1. **succinct description** of the problem - typically a line or two at most.
|
|
26
|
+
1. **succinct description** of the problem - typically a line or two at most.
|
|
27
27
|
|
|
28
|
-
2. **succinct, dependency-free code** which reproduces the problem, otherwise known as a [Minimal, Complete, and Verifiable](https://stackoverflow.com/help/mcve) example.
|
|
29
|
-
|
|
28
|
+
2. **succinct, dependency-free code** which reproduces the problem, otherwise known as a [Minimal, Complete, and Verifiable](https://stackoverflow.com/help/mcve) example.
|
|
29
|
+
IF YOU DO NOT HAVE A COMPLETE, RUNNABLE TEST CASE WRITTEN DIRECTLY IN THE TEXTAREA BELOW, YOUR ISSUE MAY BE CLOSED.
|
|
30
30
|
|
|
31
|
-
3. **complete stack traces for all errors** - please avoid screenshots, use formatted text inside issues.
|
|
31
|
+
3. **complete stack traces for all errors** - please avoid screenshots, use formatted text inside issues.
|
|
32
32
|
|
|
33
|
-
4. other relevant things as applicable: **dependencies**, **comparative performance timings** for performance issues, etc.
|
|
34
|
-
"
|
|
33
|
+
4. other relevant things as applicable: **dependencies**, **comparative performance timings** for performance issues, etc.
|
|
34
|
+
"
|
|
35
35
|
|
|
36
36
|
- type: textarea
|
|
37
37
|
attributes:
|
|
@@ -45,8 +45,8 @@ Your reports must include the following features:
|
|
|
45
45
|
attributes:
|
|
46
46
|
label: Optional link from https://dir-content-diff.readthedocs.io which documents the behavior that is expected
|
|
47
47
|
description: "
|
|
48
|
-
Please make sure the behavior you are seeing is definitely in contradiction to what's documented as the correct behavior.
|
|
49
|
-
"
|
|
48
|
+
Please make sure the behavior you are seeing is definitely in contradiction to what's documented as the correct behavior.
|
|
49
|
+
"
|
|
50
50
|
validations:
|
|
51
51
|
required: false
|
|
52
52
|
|
|
@@ -54,7 +54,8 @@ Please make sure the behavior you are seeing is definitely in contradiction to w
|
|
|
54
54
|
attributes:
|
|
55
55
|
label: To Reproduce
|
|
56
56
|
description: "
|
|
57
|
-
Provide your [Minimal, Complete, and Verifiable](https://stackoverflow.com/help/mcve) example here.
|
|
57
|
+
Provide your [Minimal, Complete, and Verifiable](https://stackoverflow.com/help/mcve) example here.
|
|
58
|
+
"
|
|
58
59
|
placeholder: "# Insert code here (text area already python formatted)"
|
|
59
60
|
render: Python
|
|
60
61
|
validations:
|
|
@@ -64,9 +65,9 @@ Provide your [Minimal, Complete, and Verifiable](https://stackoverflow.com/help/
|
|
|
64
65
|
attributes:
|
|
65
66
|
label: Error
|
|
66
67
|
description: "
|
|
67
|
-
Provide the complete text of any errors received **including the complete stack trace**.
|
|
68
|
-
If the message is a warning, run your program with the ``-Werror`` flag: ``python -Werror myprogram.py``
|
|
69
|
-
"
|
|
68
|
+
Provide the complete text of any errors received **including the complete stack trace**.
|
|
69
|
+
If the message is a warning, run your program with the ``-Werror`` flag: ``python -Werror myprogram.py``
|
|
70
|
+
"
|
|
70
71
|
placeholder: "# Copy the complete stack trace and error message here (text area already formatted for Python backtrace)"
|
|
71
72
|
render: Python traceback
|
|
72
73
|
validations:
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# docs https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
|
|
2
|
+
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
|
|
3
|
+
|
|
4
|
+
name: Request a new use case
|
|
5
|
+
description: Support for new features
|
|
6
|
+
labels: [enhancement]
|
|
7
|
+
title: "[Feature request] "
|
|
8
|
+
body:
|
|
9
|
+
- type: markdown
|
|
10
|
+
attributes:
|
|
11
|
+
value: "
|
|
12
|
+
Thanks for taking the time to fill out this feature request!
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
Before submitting, make sure the feature does not already exist in the [documentation](https://dir-content-diff.readthedocs.io) and that you searched in the [issue list](https://github.com/BlueBrain/dir-content-diff/issues) that a similar feature request has not already been reported.
|
|
16
|
+
If it is not the case, please read the following guidelines.
|
|
17
|
+
|
|
18
|
+
### GUIDELINES FOR REQUESTING HELP
|
|
19
|
+
|
|
20
|
+
Feature requests that are not properly formulated and formatted or without enough details can be very hard for us to understand.
|
|
21
|
+
In order to ensure we can help you, please follow these guidelines.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
Your requests must include the following features:
|
|
25
|
+
|
|
26
|
+
1. **succinct description** of the feature - typically a line or two at most to describe what the new feature would do.
|
|
27
|
+
|
|
28
|
+
2. **succinct, dependency-free code** which shows how you would like to use this feature, otherwise known as a [Minimal, Complete, and Verifiable](https://stackoverflow.com/help/mcve) example.
|
|
29
|
+
|
|
30
|
+
3. Why do you need this feature? What would be the use cases?
|
|
31
|
+
"
|
|
32
|
+
|
|
33
|
+
- type: textarea
|
|
34
|
+
attributes:
|
|
35
|
+
label: Describe the feature
|
|
36
|
+
description: A clear and concise description of what the feature would consist in.
|
|
37
|
+
validations:
|
|
38
|
+
required: true
|
|
39
|
+
|
|
40
|
+
- type: textarea
|
|
41
|
+
attributes:
|
|
42
|
+
label: Example Use
|
|
43
|
+
description: Provide a clear example of what the usage of this feature would look like.
|
|
44
|
+
validations:
|
|
45
|
+
required: true
|
|
46
|
+
|
|
47
|
+
- type: textarea
|
|
48
|
+
attributes:
|
|
49
|
+
label: Use cases
|
|
50
|
+
description: Add as much information as possible about the use cases here.
|
|
51
|
+
validations:
|
|
52
|
+
required: true
|
|
53
|
+
|
|
54
|
+
- type: markdown
|
|
55
|
+
attributes:
|
|
56
|
+
value: "### Thanks! Have a nice day!"
|
|
@@ -9,31 +9,31 @@ body:
|
|
|
9
9
|
- type: markdown
|
|
10
10
|
attributes:
|
|
11
11
|
value: "
|
|
12
|
-
Thanks for using this package and taking the time to fill out this help request!
|
|
12
|
+
Thanks for using this package and taking the time to fill out this help request!
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
Before submitting, make sure you read the [documentation](https://dir-content-diff.readthedocs.io) carefully.
|
|
16
|
-
If you still have a question, you should search in the [issue list](https://github.com/BlueBrain/dir-content-diff/issues) that a similar issue has not already been reported, you might find your answer there.
|
|
17
|
-
If it is not the case, please read the following guidelines.
|
|
15
|
+
Before submitting, make sure you read the [documentation](https://dir-content-diff.readthedocs.io) carefully.
|
|
16
|
+
If you still have a question, you should search in the [issue list](https://github.com/BlueBrain/dir-content-diff/issues) that a similar issue has not already been reported, you might find your answer there.
|
|
17
|
+
If it is not the case, please read the following guidelines.
|
|
18
18
|
|
|
19
|
-
### GUIDELINES FOR REQUESTING HELP
|
|
19
|
+
### GUIDELINES FOR REQUESTING HELP
|
|
20
20
|
|
|
21
|
-
Questions that are not properly formulated and formatted or without enough details can be very hard for us to understand.
|
|
22
|
-
In order to ensure we can help you, please follow these guidelines.
|
|
21
|
+
Questions that are not properly formulated and formatted or without enough details can be very hard for us to understand.
|
|
22
|
+
In order to ensure we can help you, please follow these guidelines.
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
Your requests must include the following features:
|
|
25
|
+
Your requests must include the following features:
|
|
26
26
|
|
|
27
|
-
1. **succinct description** of the problem - typically a line or two at most to describe what you want to achieve.
|
|
27
|
+
1. **succinct description** of the problem - typically a line or two at most to describe what you want to achieve.
|
|
28
28
|
|
|
29
|
-
2. **succinct, dependency-free code** which shows what you tried to do, otherwise known as a [Minimal, Complete, and Verifiable Example](https://stackoverflow.com/help/mcve).
|
|
29
|
+
2. **succinct, dependency-free code** which shows what you tried to do, otherwise known as a [Minimal, Complete, and Verifiable Example](https://stackoverflow.com/help/mcve).
|
|
30
30
|
|
|
31
|
-
3. **expected results**
|
|
31
|
+
3. **expected results**
|
|
32
32
|
|
|
33
|
-
4. **complete stack traces for all errors** if you have any - please avoid screenshots, use formatted text inside issues.
|
|
33
|
+
4. **complete stack traces for all errors** if you have any - please avoid screenshots, use formatted text inside issues.
|
|
34
34
|
|
|
35
|
-
5. other relevant things: **dependencies**, **operating system**, **comparative performance timings** for performance issues.
|
|
36
|
-
"
|
|
35
|
+
5. other relevant things: **dependencies**, **operating system**, **comparative performance timings** for performance issues.
|
|
36
|
+
"
|
|
37
37
|
|
|
38
38
|
- type: textarea
|
|
39
39
|
attributes:
|
|
@@ -46,7 +46,8 @@ Your requests must include the following features:
|
|
|
46
46
|
attributes:
|
|
47
47
|
label: Show what you tried to do.
|
|
48
48
|
description: "
|
|
49
|
-
Provide your [Minimal, Complete, and Verifiable Example](https://stackoverflow.com/help/mcve) here.
|
|
49
|
+
Provide your [Minimal, Complete, and Verifiable Example](https://stackoverflow.com/help/mcve) here.
|
|
50
|
+
"
|
|
50
51
|
placeholder: "# Insert code here (text area already python formatted)"
|
|
51
52
|
render: Python
|
|
52
53
|
validations:
|
|
@@ -63,9 +64,9 @@ Provide your [Minimal, Complete, and Verifiable Example](https://stackoverflow.c
|
|
|
63
64
|
attributes:
|
|
64
65
|
label: Error
|
|
65
66
|
description: "
|
|
66
|
-
If you are facing an arror, provide the complete text of any errors received **including the complete stack trace**.
|
|
67
|
-
If the message is a warning, run your program with the ``-Werror`` flag: ``python -Werror myprogram.py``
|
|
68
|
-
"
|
|
67
|
+
If you are facing an arror, provide the complete text of any errors received **including the complete stack trace**.
|
|
68
|
+
If the message is a warning, run your program with the ``-Werror`` flag: ``python -Werror myprogram.py``
|
|
69
|
+
"
|
|
69
70
|
placeholder: "# Copy the complete stack trace and error message here (text area already formatted for Python backtrace)"
|
|
70
71
|
render: Python traceback
|
|
71
72
|
validations:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!-- Provide a general summary of your proposed changes in the Title field above -->
|
|
2
|
-
<!-- The title should have the following form: 'Type: Subject' with 'type' in [Build,Chore,CI,
|
|
2
|
+
<!-- The title should have the following form: 'Type: Subject' with 'type' in [Build,Chore,CI,Deprecate,Docs,Feat,Fix,Perf,Refactor,Revert,Style,Test] -->
|
|
3
3
|
|
|
4
4
|
### Description
|
|
5
5
|
<!-- Describe your changes in detail and the reasons of these changes -->
|
|
@@ -11,11 +11,10 @@ jobs:
|
|
|
11
11
|
env:
|
|
12
12
|
PR_TITLE: ${{ github.event.pull_request.title }}
|
|
13
13
|
steps:
|
|
14
|
-
- uses: actions/checkout@
|
|
15
|
-
- uses: actions/setup-node@
|
|
14
|
+
- uses: actions/checkout@v7
|
|
15
|
+
- uses: actions/setup-node@v7
|
|
16
16
|
with:
|
|
17
17
|
node-version: '20'
|
|
18
18
|
- run: npm install -g --force commitlint @commitlint/cli commitlint-plugin-cleanfeet
|
|
19
|
-
- run: npm install conventional-changelog-conventionalcommits
|
|
20
19
|
- run: touch .git/COMMIT_EDITMSG
|
|
21
20
|
- run: echo "$PR_TITLE" | commitlint
|
|
@@ -9,10 +9,12 @@ jobs:
|
|
|
9
9
|
build-n-publish:
|
|
10
10
|
name: Build and publish on PyPI
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
id-token: write
|
|
12
14
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
15
|
+
- uses: actions/checkout@v7
|
|
14
16
|
- name: Set up Python 3.10
|
|
15
|
-
uses: actions/setup-python@
|
|
17
|
+
uses: actions/setup-python@v7
|
|
16
18
|
with:
|
|
17
19
|
python-version: "3.10"
|
|
18
20
|
- name: Build a wheel and a source tarball
|
|
@@ -21,5 +23,3 @@ jobs:
|
|
|
21
23
|
python -m build -o dist
|
|
22
24
|
- name: Publish distribution package to PyPI
|
|
23
25
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
24
|
-
with:
|
|
25
|
-
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -12,21 +12,21 @@ on:
|
|
|
12
12
|
jobs:
|
|
13
13
|
build:
|
|
14
14
|
|
|
15
|
-
runs-on: ubuntu-
|
|
15
|
+
runs-on: ubuntu-24.04
|
|
16
16
|
strategy:
|
|
17
17
|
matrix:
|
|
18
|
-
python-version: ["3.
|
|
18
|
+
python-version: ["3.10", "3.11", "3.12"]
|
|
19
19
|
min_versions: ["min_versions", "latest_versions"]
|
|
20
20
|
exclude:
|
|
21
21
|
- min_versions: "min_versions"
|
|
22
22
|
include:
|
|
23
|
-
- python-version: "3.
|
|
23
|
+
- python-version: "3.10"
|
|
24
24
|
min_versions: "min_versions"
|
|
25
25
|
|
|
26
26
|
steps:
|
|
27
|
-
- uses: actions/checkout@
|
|
27
|
+
- uses: actions/checkout@v7
|
|
28
28
|
- name: Set up Python ${{ matrix.python-version }}
|
|
29
|
-
uses: actions/setup-python@
|
|
29
|
+
uses: actions/setup-python@v7
|
|
30
30
|
with:
|
|
31
31
|
python-version: ${{ matrix.python-version }}
|
|
32
32
|
- name: Get current month
|
|
@@ -35,13 +35,13 @@ jobs:
|
|
|
35
35
|
- name: Install APT Packages
|
|
36
36
|
run: |
|
|
37
37
|
sudo apt-get install -y poppler-utils imagemagick
|
|
38
|
-
- name: Cache tox and
|
|
39
|
-
uses: actions/cache@
|
|
38
|
+
- name: Cache tox and prek environments
|
|
39
|
+
uses: actions/cache@v6
|
|
40
40
|
with:
|
|
41
41
|
path: |
|
|
42
42
|
.tox
|
|
43
|
-
~/.cache/
|
|
44
|
-
key: ${{ runner.os }}-${{ matrix.python-version }}-${{ steps.date.outputs.date }}-${{ hashFiles('setup.py'
|
|
43
|
+
~/.cache/prek
|
|
44
|
+
key: ${{ runner.os }}-${{ matrix.python-version }}-${{ steps.date.outputs.date }}-${{ hashFiles('setup.py', 'pyproject.toml', 'tox.ini', 'dir_content_diff/comparators/dependencies.json', '.pre-commit-config.yaml') }}
|
|
45
45
|
- name: Clear results in tox environments
|
|
46
46
|
run: |
|
|
47
47
|
rm -rf .tox/*/tmp
|
|
@@ -49,13 +49,13 @@ jobs:
|
|
|
49
49
|
if: ${{ matrix.min_versions == 'latest_versions' }}
|
|
50
50
|
run: |
|
|
51
51
|
python -m pip install --upgrade pip setuptools
|
|
52
|
-
pip install tox-gh-actions
|
|
52
|
+
pip install tox-uv tox-gh-actions
|
|
53
53
|
tox
|
|
54
54
|
- name: Run tox with min versions
|
|
55
55
|
if: ${{ matrix.min_versions == 'min_versions' }}
|
|
56
56
|
run: |
|
|
57
57
|
python -m pip install --upgrade pip setuptools
|
|
58
|
-
pip install tox
|
|
58
|
+
pip install tox-uv
|
|
59
59
|
tox run -e min_versions
|
|
60
60
|
- name: JUnit Report Action
|
|
61
61
|
uses: mikepenz/action-junit-report@v6
|
|
@@ -63,7 +63,7 @@ jobs:
|
|
|
63
63
|
with:
|
|
64
64
|
report_paths: 'reports/pytest-*.xml'
|
|
65
65
|
- name: Upload to codecov
|
|
66
|
-
uses: codecov/codecov-action@
|
|
66
|
+
uses: codecov/codecov-action@v7
|
|
67
67
|
with:
|
|
68
68
|
fail_ci_if_error: false
|
|
69
69
|
directory: ./reports
|
|
@@ -81,11 +81,12 @@ jobs:
|
|
|
81
81
|
env:
|
|
82
82
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
83
83
|
- name: Upload test artifacts
|
|
84
|
-
uses: actions/upload-artifact@
|
|
84
|
+
uses: actions/upload-artifact@v7
|
|
85
85
|
if: always()
|
|
86
86
|
with:
|
|
87
87
|
name: tests-${{ matrix.python-version }}-${{ matrix.min_versions }}
|
|
88
88
|
retention-days: 4
|
|
89
|
+
include-hidden-files: true
|
|
89
90
|
path: |
|
|
90
91
|
.tox/py*/tmp
|
|
91
92
|
docs/build
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
default_install_hook_types:
|
|
2
|
+
- pre-commit
|
|
3
|
+
- commit-msg
|
|
4
|
+
|
|
1
5
|
repos:
|
|
2
6
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
-
rev: v0.
|
|
7
|
+
rev: v0.15.19
|
|
4
8
|
hooks:
|
|
5
9
|
- id: ruff
|
|
6
10
|
args: ["--fix", "--exit-non-zero-on-fix"]
|
|
7
11
|
- id: ruff-format
|
|
8
12
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
9
|
-
rev:
|
|
13
|
+
rev: v6.0.0
|
|
10
14
|
hooks:
|
|
11
15
|
- id: check-added-large-files
|
|
12
16
|
- id: check-case-conflict
|
|
@@ -17,18 +21,17 @@ repos:
|
|
|
17
21
|
- id: end-of-file-fixer
|
|
18
22
|
- id: trailing-whitespace
|
|
19
23
|
- repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook
|
|
20
|
-
rev: v9.
|
|
24
|
+
rev: v9.26.0
|
|
21
25
|
hooks:
|
|
22
26
|
- id: commitlint
|
|
23
27
|
stages:
|
|
24
28
|
- commit-msg
|
|
25
|
-
additional_dependencies: ['conventional-changelog-conventionalcommits']
|
|
26
29
|
- repo: https://github.com/pycqa/isort
|
|
27
|
-
rev:
|
|
30
|
+
rev: 9.0.0a3
|
|
28
31
|
hooks:
|
|
29
32
|
- id: isort
|
|
30
33
|
- repo: https://github.com/codespell-project/codespell
|
|
31
|
-
rev: v2.
|
|
34
|
+
rev: v2.4.2
|
|
32
35
|
hooks:
|
|
33
36
|
- id: codespell
|
|
34
37
|
args: ["-x", ".codespellignorelines"]
|
|
@@ -38,12 +41,12 @@ repos:
|
|
|
38
41
|
- id: pydocstyle
|
|
39
42
|
additional_dependencies: ["tomli"]
|
|
40
43
|
- repo: https://github.com/PyCQA/flake8
|
|
41
|
-
rev: 7.
|
|
44
|
+
rev: 7.3.0
|
|
42
45
|
hooks:
|
|
43
46
|
- id: flake8
|
|
44
47
|
additional_dependencies: ['flake8-pyproject']
|
|
45
48
|
- repo: https://github.com/arkinmodi/add-license-header
|
|
46
|
-
rev: v2.
|
|
49
|
+
rev: v2.4.1
|
|
47
50
|
hooks:
|
|
48
51
|
- id: add-license-header
|
|
49
52
|
args:
|
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.15.1](https://github.com/BlueBrain/dir-content-diff/compare/1.15.0..0.15.1)
|
|
4
|
+
|
|
5
|
+
> 12 November 2026
|
|
6
|
+
|
|
7
|
+
### CI Improvements
|
|
8
|
+
|
|
9
|
+
- Fix publish job (Adrien Berchet - [#114](https://github.com/BlueBrain/dir-content-diff/pull/114))
|
|
10
|
+
|
|
11
|
+
## [1.15.0](https://github.com/BlueBrain/dir-content-diff/compare/1.14.1..1.15.0)
|
|
12
|
+
|
|
13
|
+
> 12 November 2026
|
|
14
|
+
|
|
15
|
+
### Build
|
|
16
|
+
|
|
17
|
+
- Update dependencies (Adrien Berchet - [#111](https://github.com/BlueBrain/dir-content-diff/pull/111))
|
|
18
|
+
- Deprecate Python < 3.10 (dependabot[bot] - [#105](https://github.com/BlueBrain/dir-content-diff/pull/105))
|
|
19
|
+
|
|
20
|
+
### New Features
|
|
21
|
+
|
|
22
|
+
- Exit with code 1 when differences are found (Adrien Berchet - [#112](https://github.com/BlueBrain/dir-content-diff/pull/112))
|
|
23
|
+
|
|
24
|
+
### Refactoring and Updates
|
|
25
|
+
|
|
26
|
+
- Use DeepDiff instead of DictDiffer (Adrien Berchet - [#106](https://github.com/BlueBrain/dir-content-diff/pull/106))
|
|
27
|
+
|
|
3
28
|
## [1.14.1](https://github.com/BlueBrain/dir-content-diff/compare/1.14.0..1.14.1)
|
|
4
29
|
|
|
5
30
|
> 15 January 2026
|
|
@@ -157,7 +182,7 @@
|
|
|
157
182
|
|
|
158
183
|
- Cast exception args to str before joining them (Adrien Berchet - [#35](https://github.com/BlueBrain/dir-content-diff/pull/35))
|
|
159
184
|
|
|
160
|
-
### Changes to Test
|
|
185
|
+
### Changes to Test Assets
|
|
161
186
|
|
|
162
187
|
- Fix for Pandas>=2 (Adrien Berchet - [#33](https://github.com/BlueBrain/dir-content-diff/pull/33))
|
|
163
188
|
|
|
@@ -59,7 +59,7 @@ When you wish to contribute to the code base, please consider the following guid
|
|
|
59
59
|
or
|
|
60
60
|
|
|
61
61
|
```shell
|
|
62
|
-
tox run -e
|
|
62
|
+
tox run -e py310,lint,docs,check-packaging
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
* Commit your changes using a descriptive commit message.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dir-content-diff
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.15.1
|
|
4
4
|
Summary: Simple tool to compare directory contents.
|
|
5
5
|
Author: Blue Brain Project, EPFL
|
|
6
6
|
License: Apache License 2.0
|
|
@@ -12,18 +12,17 @@ Classifier: Intended Audience :: Developers
|
|
|
12
12
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
13
|
Classifier: Programming Language :: Python
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
18
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
-
Requires-Python: >=3.
|
|
19
|
+
Requires-Python: >=3.10
|
|
21
20
|
Description-Content-Type: text/markdown
|
|
22
21
|
License-File: LICENSE.txt
|
|
23
22
|
License-File: AUTHORS.md
|
|
24
23
|
Requires-Dist: attrs>=21.3.0
|
|
25
24
|
Requires-Dist: click>=8
|
|
26
|
-
Requires-Dist:
|
|
25
|
+
Requires-Dist: deepdiff>=8.6
|
|
27
26
|
Requires-Dist: dicttoxml>=1.7.12
|
|
28
27
|
Requires-Dist: diff_pdf_visually>=1.7
|
|
29
28
|
Requires-Dist: jsonpath-ng>=1.5
|
|
@@ -36,14 +35,14 @@ Requires-Dist: tables>=3.7; extra == "all-comparators"
|
|
|
36
35
|
Requires-Dist: morphio>=3.3.6; extra == "all-comparators"
|
|
37
36
|
Requires-Dist: morph_tool>=2.9; extra == "all-comparators"
|
|
38
37
|
Requires-Dist: voxcell>=3.1.1; extra == "all-comparators"
|
|
39
|
-
Requires-Dist: pynrrd
|
|
38
|
+
Requires-Dist: pynrrd>=0.4; extra == "all-comparators"
|
|
40
39
|
Provides-Extra: docs
|
|
41
40
|
Requires-Dist: myst_parser; extra == "docs"
|
|
42
41
|
Requires-Dist: sphinx; extra == "docs"
|
|
43
42
|
Requires-Dist: furo; extra == "docs"
|
|
44
43
|
Provides-Extra: test
|
|
45
44
|
Requires-Dist: dicttoxml>=1.7.16; extra == "test"
|
|
46
|
-
Requires-Dist: matplotlib
|
|
45
|
+
Requires-Dist: matplotlib<3.11,>=3.4; extra == "test"
|
|
47
46
|
Requires-Dist: rst2pdf>=0.99; extra == "test"
|
|
48
47
|
Requires-Dist: pandas>=1.4; extra == "test"
|
|
49
48
|
Requires-Dist: pytest>=6.2; extra == "test"
|
|
@@ -60,7 +59,7 @@ Requires-Dist: morphio>=3.3.6; extra == "morphio"
|
|
|
60
59
|
Requires-Dist: morph_tool>=2.9; extra == "morphio"
|
|
61
60
|
Provides-Extra: voxcell
|
|
62
61
|
Requires-Dist: voxcell>=3.1.1; extra == "voxcell"
|
|
63
|
-
Requires-Dist: pynrrd
|
|
62
|
+
Requires-Dist: pynrrd>=0.4; extra == "voxcell"
|
|
64
63
|
Dynamic: license-file
|
|
65
64
|
Dynamic: provides-extra
|
|
66
65
|
|
|
@@ -180,9 +179,9 @@ The previous code will output the following dictionary:
|
|
|
180
179
|
{
|
|
181
180
|
'file_1.c': (
|
|
182
181
|
'The files \'reference_dir/file_1.c\' and \'compared_dir/file_1.c\' are different:\n'
|
|
183
|
-
'Added
|
|
184
|
-
'Changed
|
|
185
|
-
'Changed
|
|
182
|
+
'Added value at [\'b\'][2]: 0.\n'
|
|
183
|
+
'Changed value at [\'a\']: 1 -> 2.\n'
|
|
184
|
+
'Changed value at [\'b\'][0]: 1 -> 10.'
|
|
186
185
|
)
|
|
187
186
|
}
|
|
188
187
|
```
|
|
@@ -202,9 +201,9 @@ Which will output the following ``AssertionError``:
|
|
|
202
201
|
|
|
203
202
|
```bash
|
|
204
203
|
AssertionError: The files 'reference_dir/file_1.c' and 'compared_dir/file_1.c' are different:
|
|
205
|
-
Added
|
|
206
|
-
Changed
|
|
207
|
-
Changed
|
|
204
|
+
Added value at ['b'][2]: 0.
|
|
205
|
+
Changed value at ['a']: 1 -> 2.
|
|
206
|
+
Changed value at ['b'][0]: 1 -> 10.
|
|
208
207
|
```
|
|
209
208
|
|
|
210
209
|
#### Advanced Configuration Options
|
|
@@ -235,6 +234,21 @@ dir_content_diff.assert_equal_trees(
|
|
|
235
234
|
)
|
|
236
235
|
```
|
|
237
236
|
|
|
237
|
+
Dictionary-based comparators such as JSON, YAML, XML and INI use keyword arguments for
|
|
238
|
+
their comparison options. The project-specific `tolerance` and `absolute_tolerance`
|
|
239
|
+
arguments control numeric comparisons. Useful DeepDiff options can also be passed as
|
|
240
|
+
keywords, for example `exclude_paths`, `exclude_regex_paths`, `include_paths`,
|
|
241
|
+
`ignore_order`, `ignore_string_case` and `max_diffs`.
|
|
242
|
+
|
|
243
|
+
```python
|
|
244
|
+
specific_args = {
|
|
245
|
+
"sub_dir_1/sub_file_1.a": {
|
|
246
|
+
"exclude_paths": {"root['metadata']['timestamp']"},
|
|
247
|
+
"ignore_order": True,
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
238
252
|
Each comparator has different arguments that are detailed in the documentation.
|
|
239
253
|
|
|
240
254
|
##### File-specific Comparators
|
|
@@ -114,9 +114,9 @@ The previous code will output the following dictionary:
|
|
|
114
114
|
{
|
|
115
115
|
'file_1.c': (
|
|
116
116
|
'The files \'reference_dir/file_1.c\' and \'compared_dir/file_1.c\' are different:\n'
|
|
117
|
-
'Added
|
|
118
|
-
'Changed
|
|
119
|
-
'Changed
|
|
117
|
+
'Added value at [\'b\'][2]: 0.\n'
|
|
118
|
+
'Changed value at [\'a\']: 1 -> 2.\n'
|
|
119
|
+
'Changed value at [\'b\'][0]: 1 -> 10.'
|
|
120
120
|
)
|
|
121
121
|
}
|
|
122
122
|
```
|
|
@@ -136,9 +136,9 @@ Which will output the following ``AssertionError``:
|
|
|
136
136
|
|
|
137
137
|
```bash
|
|
138
138
|
AssertionError: The files 'reference_dir/file_1.c' and 'compared_dir/file_1.c' are different:
|
|
139
|
-
Added
|
|
140
|
-
Changed
|
|
141
|
-
Changed
|
|
139
|
+
Added value at ['b'][2]: 0.
|
|
140
|
+
Changed value at ['a']: 1 -> 2.
|
|
141
|
+
Changed value at ['b'][0]: 1 -> 10.
|
|
142
142
|
```
|
|
143
143
|
|
|
144
144
|
#### Advanced Configuration Options
|
|
@@ -169,6 +169,21 @@ dir_content_diff.assert_equal_trees(
|
|
|
169
169
|
)
|
|
170
170
|
```
|
|
171
171
|
|
|
172
|
+
Dictionary-based comparators such as JSON, YAML, XML and INI use keyword arguments for
|
|
173
|
+
their comparison options. The project-specific `tolerance` and `absolute_tolerance`
|
|
174
|
+
arguments control numeric comparisons. Useful DeepDiff options can also be passed as
|
|
175
|
+
keywords, for example `exclude_paths`, `exclude_regex_paths`, `include_paths`,
|
|
176
|
+
`ignore_order`, `ignore_string_case` and `max_diffs`.
|
|
177
|
+
|
|
178
|
+
```python
|
|
179
|
+
specific_args = {
|
|
180
|
+
"sub_dir_1/sub_file_1.a": {
|
|
181
|
+
"exclude_paths": {"root['metadata']['timestamp']"},
|
|
182
|
+
"ignore_order": True,
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
172
187
|
Each comparator has different arguments that are detailed in the documentation.
|
|
173
188
|
|
|
174
189
|
##### File-specific Comparators
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
parserPreset:
|
|
2
|
+
parserPreset: {
|
|
3
|
+
parserOpts: {
|
|
4
|
+
headerPattern: /^(\w*)(?:\((.*)\))?!?: (.*)$/,
|
|
5
|
+
breakingHeaderPattern: /^(\w*)(?:\((.*)\))?!: (.*)$/,
|
|
6
|
+
headerCorrespondence: ['type', 'scope', 'subject'],
|
|
7
|
+
noteKeywords: ['BREAKING CHANGE', 'BREAKING-CHANGE'],
|
|
8
|
+
revertPattern: /^(?:Revert|revert:)\s"?([\s\S]+?)"?\s*This reverts commit (\w*)\./i,
|
|
9
|
+
revertCorrespondence: ['header', 'hash'],
|
|
10
|
+
issuePrefixes: ['#'],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
3
13
|
rules: {
|
|
4
14
|
'body-leading-blank': [1, 'always'],
|
|
5
15
|
'body-max-line-length': [2, 'always', 100],
|