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.
@@ -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.2
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=VDWgrXgUa7qTXl2Sjbn7vEqbo8vP_aHtHPiUIGfqvug,35862
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.2.dist-info/METADATA,sha256=7CXLs4r7Afx_sGkO_aOjxyv9UsUOKphWEnvElRdsvag,33282
14
- python_package_folder-3.0.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
15
- python_package_folder-3.0.2.dist-info/entry_points.txt,sha256=ttu4wAhoYSHGhWQNercLz9IVTTpXxhVlRA9vSTvaLe0,91
16
- python_package_folder-3.0.2.dist-info/licenses/LICENSE,sha256=vNgRJh8YiecqZoZld7TtwPI5I72HIymKD9g32fiJjCE,1073
17
- python_package_folder-3.0.2.dist-info/RECORD,,
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,,