python-package-folder 3.0.2__py3-none-any.whl → 3.1.0__py3-none-any.whl
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.
- python_package_folder/subfolder_build.py +88 -0
- {python_package_folder-3.0.2.dist-info → python_package_folder-3.1.0.dist-info}/METADATA +1 -1
- {python_package_folder-3.0.2.dist-info → python_package_folder-3.1.0.dist-info}/RECORD +6 -6
- {python_package_folder-3.0.2.dist-info → python_package_folder-3.1.0.dist-info}/WHEEL +0 -0
- {python_package_folder-3.0.2.dist-info → python_package_folder-3.1.0.dist-info}/entry_points.txt +0 -0
- {python_package_folder-3.0.2.dist-info → python_package_folder-3.1.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -140,7 +140,9 @@ class SubfolderBuildConfig:
|
|
|
140
140
|
lines = content.split("\n")
|
|
141
141
|
result = []
|
|
142
142
|
in_hatch_build = False
|
|
143
|
+
in_hatch_build_section = False
|
|
143
144
|
packages_set = False
|
|
145
|
+
paths_exclude_set = False
|
|
144
146
|
|
|
145
147
|
for line in lines:
|
|
146
148
|
# Detect hatch build section
|
|
@@ -148,6 +150,10 @@ class SubfolderBuildConfig:
|
|
|
148
150
|
in_hatch_build = True
|
|
149
151
|
result.append(line)
|
|
150
152
|
continue
|
|
153
|
+
elif line.strip().startswith("[tool.hatch.build]"):
|
|
154
|
+
in_hatch_build_section = True
|
|
155
|
+
result.append(line)
|
|
156
|
+
continue
|
|
151
157
|
elif line.strip().startswith("[") and in_hatch_build:
|
|
152
158
|
# End of hatch build section, add packages if not set
|
|
153
159
|
if not packages_set and correct_packages_path:
|
|
@@ -155,6 +161,15 @@ class SubfolderBuildConfig:
|
|
|
155
161
|
result.append(f"packages = [{packages_str}]")
|
|
156
162
|
in_hatch_build = False
|
|
157
163
|
result.append(line)
|
|
164
|
+
elif line.strip().startswith("[") and in_hatch_build_section:
|
|
165
|
+
# End of hatch build section
|
|
166
|
+
in_hatch_build_section = False
|
|
167
|
+
result.append(line)
|
|
168
|
+
elif in_hatch_build_section:
|
|
169
|
+
# Track if paths-exclude already exists
|
|
170
|
+
if re.match(r"^\s*paths-exclude\s*=", line):
|
|
171
|
+
paths_exclude_set = True
|
|
172
|
+
result.append(line)
|
|
158
173
|
elif in_hatch_build:
|
|
159
174
|
# Modify packages path if found
|
|
160
175
|
if re.match(r"^\s*packages\s*=", line):
|
|
@@ -194,6 +209,43 @@ class SubfolderBuildConfig:
|
|
|
194
209
|
packages_str = f'"{correct_packages_path}"'
|
|
195
210
|
result.append(f"packages = [{packages_str}]")
|
|
196
211
|
|
|
212
|
+
# Add file exclusion patterns to prevent including non-package files
|
|
213
|
+
# Only add if paths-exclude wasn't already set (we merged it above)
|
|
214
|
+
if not paths_exclude_set:
|
|
215
|
+
result.append("")
|
|
216
|
+
result.append("[tool.hatch.build]")
|
|
217
|
+
result.append("paths-exclude = [")
|
|
218
|
+
result.append(' ".cursor/**",')
|
|
219
|
+
result.append(' ".github/**",')
|
|
220
|
+
result.append(' ".vscode/**",')
|
|
221
|
+
result.append(' ".idea/**",')
|
|
222
|
+
result.append(' "data/**",')
|
|
223
|
+
result.append(' "docs/**",')
|
|
224
|
+
result.append(' "references/**",')
|
|
225
|
+
result.append(' "reports/**",')
|
|
226
|
+
result.append(' "scripts/**",')
|
|
227
|
+
result.append(' "tests/**",')
|
|
228
|
+
result.append(' "test/**",')
|
|
229
|
+
result.append(' "dist/**",')
|
|
230
|
+
result.append(' "build/**",')
|
|
231
|
+
result.append(' "*.egg-info/**",')
|
|
232
|
+
result.append(' "__pycache__/**",')
|
|
233
|
+
result.append(' ".pytest_cache/**",')
|
|
234
|
+
result.append(' ".mypy_cache/**",')
|
|
235
|
+
result.append(' ".venv/**",')
|
|
236
|
+
result.append(' "venv/**",')
|
|
237
|
+
result.append(' ".git/**",')
|
|
238
|
+
result.append(' ".gitignore",')
|
|
239
|
+
result.append(' ".gitattributes",')
|
|
240
|
+
result.append(' "Dockerfile",')
|
|
241
|
+
result.append(' ".dockerignore",')
|
|
242
|
+
result.append(' ".pylintrc",')
|
|
243
|
+
result.append(' "pyrightconfig.json",')
|
|
244
|
+
result.append(' "git-filter-repo",')
|
|
245
|
+
result.append(' "pyproject.toml.original",')
|
|
246
|
+
result.append(' "README.md.backup",')
|
|
247
|
+
result.append("]")
|
|
248
|
+
|
|
197
249
|
return "\n".join(result)
|
|
198
250
|
|
|
199
251
|
def create_temp_pyproject(self) -> Path | None:
|
|
@@ -532,6 +584,42 @@ class SubfolderBuildConfig:
|
|
|
532
584
|
packages_str = ", ".join(f'"{p}"' for p in package_dirs)
|
|
533
585
|
result.append(f"packages = [{packages_str}]")
|
|
534
586
|
|
|
587
|
+
# Add file exclusion patterns to prevent including non-package files
|
|
588
|
+
# This ensures only the subfolder code is included, not project root files
|
|
589
|
+
result.append("")
|
|
590
|
+
result.append("[tool.hatch.build]")
|
|
591
|
+
result.append("paths-exclude = [")
|
|
592
|
+
result.append(' ".cursor/**",')
|
|
593
|
+
result.append(' ".github/**",')
|
|
594
|
+
result.append(' ".vscode/**",')
|
|
595
|
+
result.append(' ".idea/**",')
|
|
596
|
+
result.append(' "data/**",')
|
|
597
|
+
result.append(' "docs/**",')
|
|
598
|
+
result.append(' "references/**",')
|
|
599
|
+
result.append(' "reports/**",')
|
|
600
|
+
result.append(' "scripts/**",')
|
|
601
|
+
result.append(' "tests/**",')
|
|
602
|
+
result.append(' "test/**",')
|
|
603
|
+
result.append(' "dist/**",')
|
|
604
|
+
result.append(' "build/**",')
|
|
605
|
+
result.append(' "*.egg-info/**",')
|
|
606
|
+
result.append(' "__pycache__/**",')
|
|
607
|
+
result.append(' ".pytest_cache/**",')
|
|
608
|
+
result.append(' ".mypy_cache/**",')
|
|
609
|
+
result.append(' ".venv/**",')
|
|
610
|
+
result.append(' "venv/**",')
|
|
611
|
+
result.append(' ".git/**",')
|
|
612
|
+
result.append(' ".gitignore",')
|
|
613
|
+
result.append(' ".gitattributes",')
|
|
614
|
+
result.append(' "Dockerfile",')
|
|
615
|
+
result.append(' ".dockerignore",')
|
|
616
|
+
result.append(' ".pylintrc",')
|
|
617
|
+
result.append(' "pyrightconfig.json",')
|
|
618
|
+
result.append(' "git-filter-repo",')
|
|
619
|
+
result.append(' "pyproject.toml.original",')
|
|
620
|
+
result.append(' "README.md.backup",')
|
|
621
|
+
result.append("]")
|
|
622
|
+
|
|
535
623
|
# Add dependency group if specified
|
|
536
624
|
if dependency_group:
|
|
537
625
|
# Find where to insert dependency-groups section
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-package-folder
|
|
3
|
-
Version: 3.0
|
|
3
|
+
Version: 3.1.0
|
|
4
4
|
Summary: Python package to automatically package and build a folder, fetching all relevant dependencies.
|
|
5
5
|
Project-URL: Repository, https://github.com/alelom/python-package-folder
|
|
6
6
|
Author-email: Alessio Lombardi <work@alelom.com>
|
|
@@ -6,12 +6,12 @@ python_package_folder/manager.py,sha256=kyULmS948uW3yWUcabc2EVK_Nic3wrWMj8qCs18j
|
|
|
6
6
|
python_package_folder/publisher.py,sha256=TSjdOvxvnWLbJCnduTK_xZBRfvsrq9kpEH-sfebeWkU,13507
|
|
7
7
|
python_package_folder/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
8
|
python_package_folder/python_package_folder.py,sha256=RPsqRcIy_LjzzTHdp4qdtFJ4-4xhtR_0YLIC0RlUxFo,8841
|
|
9
|
-
python_package_folder/subfolder_build.py,sha256=
|
|
9
|
+
python_package_folder/subfolder_build.py,sha256=m9a7exvDEwtz_tuNlPF_bagXtcwNq9PHiJswVkbn2PM,39866
|
|
10
10
|
python_package_folder/types.py,sha256=3yeSRR5p_3PDKEAaehW_RJ7NwJHexOIeA08bGaT1iSY,2368
|
|
11
11
|
python_package_folder/utils.py,sha256=lIkWsFKeAYAJ9TDUM99T4pUBHJVbUvCdUgkWQN-LUho,3111
|
|
12
12
|
python_package_folder/version.py,sha256=kIDP6S9trEfs9gj7lBYGxrWm4RPssRla24UtlO9Jkh4,9111
|
|
13
|
-
python_package_folder-3.0.
|
|
14
|
-
python_package_folder-3.0.
|
|
15
|
-
python_package_folder-3.0.
|
|
16
|
-
python_package_folder-3.0.
|
|
17
|
-
python_package_folder-3.0.
|
|
13
|
+
python_package_folder-3.1.0.dist-info/METADATA,sha256=qNQ9k_yP2w7Tyxo6F8btfZRCckzheWU4HN78ETtGpaY,33282
|
|
14
|
+
python_package_folder-3.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
15
|
+
python_package_folder-3.1.0.dist-info/entry_points.txt,sha256=ttu4wAhoYSHGhWQNercLz9IVTTpXxhVlRA9vSTvaLe0,91
|
|
16
|
+
python_package_folder-3.1.0.dist-info/licenses/LICENSE,sha256=vNgRJh8YiecqZoZld7TtwPI5I72HIymKD9g32fiJjCE,1073
|
|
17
|
+
python_package_folder-3.1.0.dist-info/RECORD,,
|
|
File without changes
|
{python_package_folder-3.0.2.dist-info → python_package_folder-3.1.0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{python_package_folder-3.0.2.dist-info → python_package_folder-3.1.0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|