merger-cli 2.2.0__tar.gz → 2.3.0__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.
- {merger_cli-2.2.0 → merger_cli-2.3.0}/MANIFEST.in +1 -0
- {merger_cli-2.2.0/merger_cli.egg-info → merger_cli-2.3.0}/PKG-INFO +1 -1
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/cli.py +31 -1
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/exceptions/exceptions.py +3 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/exporters/strategy.py +2 -2
- merger_cli-2.3.0/merger/resources/ignore_files/__init__.py +0 -0
- merger_cli-2.3.0/merger/resources/ignore_files/default.ignore +80 -0
- merger_cli-2.3.0/merger/resources/ignore_files/java.ignore +49 -0
- merger_cli-2.3.0/merger/resources/ignore_files/node.ignore +54 -0
- merger_cli-2.3.0/merger/resources/ignore_files/python.ignore +53 -0
- merger_cli-2.3.0/merger/utils/__init__.py +0 -0
- merger_cli-2.3.0/merger/utils/default_ignore_files.py +31 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0/merger_cli.egg-info}/PKG-INFO +1 -1
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger_cli.egg-info/SOURCES.txt +7 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/pyproject.toml +4 -1
- {merger_cli-2.2.0 → merger_cli-2.3.0}/LICENSE +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/README.md +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/__init__.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/exceptions/__init__.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/__init__.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/entry.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/exporters/__init__.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/exporters/directory_tree_exporter.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/exporters/json_exporter.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/exporters/json_tree_exporter.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/exporters/plain_text_exporter.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/exporters/tree_exporter.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/exporters/tree_with_plain_text_exporter.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/tree.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/type.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/logging/__init__.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/logging/logger.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/parsing/__init__.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/parsing/default_parser.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/parsing/modules.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/parsing/parser.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/parsing/parsers.py +0 -0
- {merger_cli-2.2.0/merger/utils → merger_cli-2.3.0/merger/resources}/__init__.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/utils/config.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/utils/files.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/utils/hash.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/utils/json.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/utils/merger_dir.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/utils/patterns.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger/utils/version.py +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger_cli.egg-info/dependency_links.txt +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger_cli.egg-info/entry_points.txt +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger_cli.egg-info/requires.txt +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/merger_cli.egg-info/top_level.txt +0 -0
- {merger_cli-2.2.0 → merger_cli-2.3.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: merger-cli
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: Merger is a tool that scans a directory, filters files using customizable patterns, and merges readable content into a single output file.
|
|
5
5
|
Author-email: Diogo Toporcov <diogotoporcov@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -2,7 +2,9 @@ import argparse
|
|
|
2
2
|
import logging
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
|
|
5
|
-
from
|
|
5
|
+
from .exceptions.exceptions import UnknownIgnoreTemplate
|
|
6
|
+
from .file_tree.exporters.tree_with_plain_text_exporter import TreeWithPlainTextExporter
|
|
7
|
+
from .utils.default_ignore_files import read_ignore_template, list_ignore_templates
|
|
6
8
|
from .file_tree.exporters.strategy import get_exporter_strategy, get_exporter_strategy_names
|
|
7
9
|
from .file_tree.tree import FileTree
|
|
8
10
|
from .logging.logger import setup_logger, logger
|
|
@@ -99,9 +101,37 @@ def main():
|
|
|
99
101
|
help="File containing glob-style patterns to ignore (default: ./merger.ignore)",
|
|
100
102
|
)
|
|
101
103
|
|
|
104
|
+
parser.add_argument(
|
|
105
|
+
"-c",
|
|
106
|
+
"--create-ignore",
|
|
107
|
+
choices=list_ignore_templates(),
|
|
108
|
+
type=str,
|
|
109
|
+
help="Create a merger.ignore file using a built-in template "
|
|
110
|
+
"(e.g. default, python, node, java)",
|
|
111
|
+
)
|
|
112
|
+
|
|
102
113
|
args = parser.parse_args()
|
|
103
114
|
setup_logger(level=getattr(logging, args.log_level.upper()))
|
|
104
115
|
|
|
116
|
+
# Create default merger.ignore file
|
|
117
|
+
if args.create_ignore:
|
|
118
|
+
target = Path("merger.ignore")
|
|
119
|
+
|
|
120
|
+
if target.exists():
|
|
121
|
+
parser.error("'merger.ignore' already exists.")
|
|
122
|
+
|
|
123
|
+
try:
|
|
124
|
+
body = read_ignore_template(args.create_ignore)
|
|
125
|
+
|
|
126
|
+
except UnknownIgnoreTemplate as e:
|
|
127
|
+
parser.error(str(e))
|
|
128
|
+
|
|
129
|
+
target.write_text(body, encoding="utf-8")
|
|
130
|
+
logger.info(
|
|
131
|
+
f"Created 'merger.ignore' using '{args.create_ignore}' template."
|
|
132
|
+
)
|
|
133
|
+
return
|
|
134
|
+
|
|
105
135
|
# Install module
|
|
106
136
|
if args.install_module:
|
|
107
137
|
try:
|
|
@@ -9,10 +9,10 @@ from .tree_with_plain_text_exporter import TreeWithPlainTextExporter
|
|
|
9
9
|
|
|
10
10
|
_EXPORTERS: Dict[str, Type[TreeExporter]] = {
|
|
11
11
|
TreeWithPlainTextExporter.NAME.upper(): TreeWithPlainTextExporter,
|
|
12
|
+
DirectoryTreeExporter.NAME.upper(): DirectoryTreeExporter,
|
|
12
13
|
PlainTextExporter.NAME.upper(): PlainTextExporter,
|
|
14
|
+
JsonExporter.NAME.upper(): JsonExporter,
|
|
13
15
|
JsonTreeExporter.NAME.upper(): JsonTreeExporter,
|
|
14
|
-
DirectoryTreeExporter.NAME.upper(): DirectoryTreeExporter,
|
|
15
|
-
JsonExporter.NAME.upper(): JsonExporter
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
|
|
File without changes
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
node_modules/
|
|
2
|
+
bower_components/
|
|
3
|
+
vendor/
|
|
4
|
+
.venv/
|
|
5
|
+
venv/
|
|
6
|
+
env/
|
|
7
|
+
ENV/
|
|
8
|
+
|
|
9
|
+
dist/
|
|
10
|
+
build/
|
|
11
|
+
out/
|
|
12
|
+
target/
|
|
13
|
+
bin/
|
|
14
|
+
obj/
|
|
15
|
+
coverage/
|
|
16
|
+
.tmp/
|
|
17
|
+
.cache/
|
|
18
|
+
|
|
19
|
+
logs/
|
|
20
|
+
*.log
|
|
21
|
+
npm-debug.log*
|
|
22
|
+
yarn-debug.log*
|
|
23
|
+
yarn-error.log*
|
|
24
|
+
pnpm-debug.log*
|
|
25
|
+
*.pid
|
|
26
|
+
*.seed
|
|
27
|
+
|
|
28
|
+
.env
|
|
29
|
+
.env.*
|
|
30
|
+
*.key
|
|
31
|
+
*.pem
|
|
32
|
+
*.crt
|
|
33
|
+
|
|
34
|
+
.DS_Store
|
|
35
|
+
.AppleDouble
|
|
36
|
+
.LSOverride
|
|
37
|
+
Thumbs.db
|
|
38
|
+
ehthumbs.db
|
|
39
|
+
desktop.ini
|
|
40
|
+
|
|
41
|
+
.idea/
|
|
42
|
+
.vscode/
|
|
43
|
+
*.sublime-project
|
|
44
|
+
*.sublime-workspace
|
|
45
|
+
*.swp
|
|
46
|
+
*.swo
|
|
47
|
+
.project
|
|
48
|
+
.classpath
|
|
49
|
+
.settings/
|
|
50
|
+
|
|
51
|
+
__pycache__/
|
|
52
|
+
*.py[cod]
|
|
53
|
+
*.pyo
|
|
54
|
+
.pytest_cache/
|
|
55
|
+
.mypy_cache/
|
|
56
|
+
.tox/
|
|
57
|
+
|
|
58
|
+
.eslintcache
|
|
59
|
+
.stylelintcache
|
|
60
|
+
.parcel-cache/
|
|
61
|
+
.next/
|
|
62
|
+
.nuxt/
|
|
63
|
+
.svelte-kit/
|
|
64
|
+
|
|
65
|
+
.pnpm-store/
|
|
66
|
+
.yarn/cache/
|
|
67
|
+
.yarn/unplugged/
|
|
68
|
+
|
|
69
|
+
*.zip
|
|
70
|
+
*.tar
|
|
71
|
+
*.tar.gz
|
|
72
|
+
*.tgz
|
|
73
|
+
*.rar
|
|
74
|
+
*.7z
|
|
75
|
+
|
|
76
|
+
*.tmp
|
|
77
|
+
*.temp
|
|
78
|
+
*.bak
|
|
79
|
+
*.old
|
|
80
|
+
*.orig
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
target/
|
|
2
|
+
out/
|
|
3
|
+
build/
|
|
4
|
+
bin/
|
|
5
|
+
*.class
|
|
6
|
+
*.jar
|
|
7
|
+
*.war
|
|
8
|
+
*.ear
|
|
9
|
+
|
|
10
|
+
.gradle/
|
|
11
|
+
.gradle-cache/
|
|
12
|
+
.mvn/
|
|
13
|
+
.mvn/wrapper/
|
|
14
|
+
dependency-reduced-pom.xml
|
|
15
|
+
|
|
16
|
+
.idea/
|
|
17
|
+
*.iml
|
|
18
|
+
.project
|
|
19
|
+
.classpath
|
|
20
|
+
.settings/
|
|
21
|
+
|
|
22
|
+
logs/
|
|
23
|
+
*.log
|
|
24
|
+
|
|
25
|
+
.env
|
|
26
|
+
.env.*
|
|
27
|
+
*.key
|
|
28
|
+
*.pem
|
|
29
|
+
*.crt
|
|
30
|
+
|
|
31
|
+
.DS_Store
|
|
32
|
+
.AppleDouble
|
|
33
|
+
.LSOverride
|
|
34
|
+
Thumbs.db
|
|
35
|
+
ehthumbs.db
|
|
36
|
+
desktop.ini
|
|
37
|
+
|
|
38
|
+
*.zip
|
|
39
|
+
*.tar
|
|
40
|
+
*.tar.gz
|
|
41
|
+
*.tgz
|
|
42
|
+
*.rar
|
|
43
|
+
*.7z
|
|
44
|
+
|
|
45
|
+
*.tmp
|
|
46
|
+
*.temp
|
|
47
|
+
*.bak
|
|
48
|
+
*.old
|
|
49
|
+
*.orig
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
node_modules/
|
|
2
|
+
bower_components/
|
|
3
|
+
.pnpm-store/
|
|
4
|
+
.yarn/cache/
|
|
5
|
+
.yarn/unplugged/
|
|
6
|
+
.yarn/install-state.gz
|
|
7
|
+
|
|
8
|
+
dist/
|
|
9
|
+
build/
|
|
10
|
+
out/
|
|
11
|
+
.next/
|
|
12
|
+
.nuxt/
|
|
13
|
+
.svelte-kit/
|
|
14
|
+
.parcel-cache/
|
|
15
|
+
.eslintcache
|
|
16
|
+
.stylelintcache
|
|
17
|
+
|
|
18
|
+
logs/
|
|
19
|
+
*.log
|
|
20
|
+
npm-debug.log*
|
|
21
|
+
yarn-debug.log*
|
|
22
|
+
yarn-error.log*
|
|
23
|
+
pnpm-debug.log*
|
|
24
|
+
*.pid
|
|
25
|
+
*.seed
|
|
26
|
+
|
|
27
|
+
.env
|
|
28
|
+
.env.*
|
|
29
|
+
*.key
|
|
30
|
+
*.pem
|
|
31
|
+
*.crt
|
|
32
|
+
|
|
33
|
+
.idea/
|
|
34
|
+
.vscode/
|
|
35
|
+
|
|
36
|
+
.DS_Store
|
|
37
|
+
.AppleDouble
|
|
38
|
+
.LSOverride
|
|
39
|
+
Thumbs.db
|
|
40
|
+
ehthumbs.db
|
|
41
|
+
desktop.ini
|
|
42
|
+
|
|
43
|
+
*.zip
|
|
44
|
+
*.tar
|
|
45
|
+
*.tar.gz
|
|
46
|
+
*.tgz
|
|
47
|
+
*.rar
|
|
48
|
+
*.7z
|
|
49
|
+
|
|
50
|
+
*.tmp
|
|
51
|
+
*.temp
|
|
52
|
+
*.bak
|
|
53
|
+
*.old
|
|
54
|
+
*.orig
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.py[cod]
|
|
3
|
+
*.pyo
|
|
4
|
+
.pytest_cache/
|
|
5
|
+
.mypy_cache/
|
|
6
|
+
.tox/
|
|
7
|
+
.nox/
|
|
8
|
+
.coverage
|
|
9
|
+
coverage.xml
|
|
10
|
+
htmlcov/
|
|
11
|
+
|
|
12
|
+
.venv/
|
|
13
|
+
venv/
|
|
14
|
+
env/
|
|
15
|
+
ENV/
|
|
16
|
+
.virtualenv/
|
|
17
|
+
|
|
18
|
+
dist/
|
|
19
|
+
build/
|
|
20
|
+
*.egg-info/
|
|
21
|
+
.eggs/
|
|
22
|
+
pip-wheel-metadata/
|
|
23
|
+
|
|
24
|
+
.env
|
|
25
|
+
.env.*
|
|
26
|
+
*.key
|
|
27
|
+
*.pem
|
|
28
|
+
*.crt
|
|
29
|
+
|
|
30
|
+
.idea/
|
|
31
|
+
.vscode/
|
|
32
|
+
.pyright/
|
|
33
|
+
.ruff_cache/
|
|
34
|
+
|
|
35
|
+
.DS_Store
|
|
36
|
+
.AppleDouble
|
|
37
|
+
.LSOverride
|
|
38
|
+
Thumbs.db
|
|
39
|
+
ehthumbs.db
|
|
40
|
+
desktop.ini
|
|
41
|
+
|
|
42
|
+
*.zip
|
|
43
|
+
*.tar
|
|
44
|
+
*.tar.gz
|
|
45
|
+
*.tgz
|
|
46
|
+
*.rar
|
|
47
|
+
*.7z
|
|
48
|
+
|
|
49
|
+
*.tmp
|
|
50
|
+
*.temp
|
|
51
|
+
*.bak
|
|
52
|
+
*.old
|
|
53
|
+
*.orig
|
|
File without changes
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from importlib import resources
|
|
2
|
+
from typing import List
|
|
3
|
+
|
|
4
|
+
from ..exceptions.exceptions import UnknownIgnoreTemplate
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def list_ignore_templates() -> List[str]:
|
|
8
|
+
base = resources.files("merger.resources.ignore_files")
|
|
9
|
+
|
|
10
|
+
return sorted(
|
|
11
|
+
p.name.removesuffix(".ignore")
|
|
12
|
+
for p in base.iterdir()
|
|
13
|
+
if p.is_file() and p.name.endswith(".ignore")
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def read_ignore_template(template: str) -> str:
|
|
18
|
+
name = template.lower().strip()
|
|
19
|
+
filename = f"{name}.ignore"
|
|
20
|
+
|
|
21
|
+
base = resources.files("merger.resources.ignore_files")
|
|
22
|
+
path = base.joinpath(filename)
|
|
23
|
+
|
|
24
|
+
if not path.is_file():
|
|
25
|
+
available = list_ignore_templates()
|
|
26
|
+
raise UnknownIgnoreTemplate(
|
|
27
|
+
f"Unknown ignore template '{template}'. "
|
|
28
|
+
f"Available templates: {', '.join(available)}"
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
return path.read_text(encoding="utf-8")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: merger-cli
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: Merger is a tool that scans a directory, filters files using customizable patterns, and merges readable content into a single output file.
|
|
5
5
|
Author-email: Diogo Toporcov <diogotoporcov@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -26,8 +26,15 @@ merger/parsing/default_parser.py
|
|
|
26
26
|
merger/parsing/modules.py
|
|
27
27
|
merger/parsing/parser.py
|
|
28
28
|
merger/parsing/parsers.py
|
|
29
|
+
merger/resources/__init__.py
|
|
30
|
+
merger/resources/ignore_files/__init__.py
|
|
31
|
+
merger/resources/ignore_files/default.ignore
|
|
32
|
+
merger/resources/ignore_files/java.ignore
|
|
33
|
+
merger/resources/ignore_files/node.ignore
|
|
34
|
+
merger/resources/ignore_files/python.ignore
|
|
29
35
|
merger/utils/__init__.py
|
|
30
36
|
merger/utils/config.py
|
|
37
|
+
merger/utils/default_ignore_files.py
|
|
31
38
|
merger/utils/files.py
|
|
32
39
|
merger/utils/hash.py
|
|
33
40
|
merger/utils/json.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "merger-cli"
|
|
3
|
-
version = "2.
|
|
3
|
+
version = "2.3.0"
|
|
4
4
|
description = "Merger is a tool that scans a directory, filters files using customizable patterns, and merges readable content into a single output file."
|
|
5
5
|
keywords = ["merger", "file system", "concatenation", "automation", "development"]
|
|
6
6
|
authors = [
|
|
@@ -25,6 +25,9 @@ classifiers = [
|
|
|
25
25
|
Homepage = "https://github.com/diogotoporcov/merger-cli"
|
|
26
26
|
Documentation = "https://github.com/diogotoporcov/merger-cli"
|
|
27
27
|
|
|
28
|
+
[tool.setuptools.package-data]
|
|
29
|
+
merger = ["resources/ignore_files/*.ignore"]
|
|
30
|
+
|
|
28
31
|
[build-system]
|
|
29
32
|
requires = ["setuptools>=80.9.0", "wheel"]
|
|
30
33
|
build-backend = "setuptools.build_meta"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{merger_cli-2.2.0 → merger_cli-2.3.0}/merger/file_tree/exporters/tree_with_plain_text_exporter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|