pathapi 0.1.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.
Files changed (223) hide show
  1. pathapi-0.1.0/.gitignore +43 -0
  2. pathapi-0.1.0/CHANGELOG.md +3572 -0
  3. pathapi-0.1.0/LICENSE +21 -0
  4. pathapi-0.1.0/PKG-INFO +242 -0
  5. pathapi-0.1.0/README.md +205 -0
  6. pathapi-0.1.0/docs/api/archive.md +6 -0
  7. pathapi-0.1.0/docs/api/checksum.md +3 -0
  8. pathapi-0.1.0/docs/api/exceptions.md +3 -0
  9. pathapi-0.1.0/docs/api/ftp.md +6 -0
  10. pathapi-0.1.0/docs/api/glob.md +3 -0
  11. pathapi-0.1.0/docs/api/http.md +6 -0
  12. pathapi-0.1.0/docs/api/mempath.md +6 -0
  13. pathapi-0.1.0/docs/api/path.md +6 -0
  14. pathapi-0.1.0/docs/api/protocols.md +28 -0
  15. pathapi-0.1.0/docs/api/providers.md +6 -0
  16. pathapi-0.1.0/docs/api/sync.md +3 -0
  17. pathapi-0.1.0/docs/api/testing.md +10 -0
  18. pathapi-0.1.0/docs/benchmarks.md +129 -0
  19. pathapi-0.1.0/docs/changelog.md +3 -0
  20. pathapi-0.1.0/docs/divergences.md +208 -0
  21. pathapi-0.1.0/docs/guides/extending.md +251 -0
  22. pathapi-0.1.0/docs/index.md +95 -0
  23. pathapi-0.1.0/examples/archive_members.py +76 -0
  24. pathapi-0.1.0/examples/ftp_listing.py +49 -0
  25. pathapi-0.1.0/examples/http_request.py +44 -0
  26. pathapi-0.1.0/examples/local_and_mem.py +53 -0
  27. pathapi-0.1.0/mkdocs.yml +62 -0
  28. pathapi-0.1.0/pyproject.toml +95 -0
  29. pathapi-0.1.0/src/pathapi/AGENTS.md +2355 -0
  30. pathapi-0.1.0/src/pathapi/__init__.py +62 -0
  31. pathapi-0.1.0/src/pathapi/_commit.py +116 -0
  32. pathapi-0.1.0/src/pathapi/_discard.py +92 -0
  33. pathapi-0.1.0/src/pathapi/_errorpolicy.py +106 -0
  34. pathapi-0.1.0/src/pathapi/_filestat.py +194 -0
  35. pathapi-0.1.0/src/pathapi/_lru.py +138 -0
  36. pathapi-0.1.0/src/pathapi/_names.py +70 -0
  37. pathapi-0.1.0/src/pathapi/_permissions.py +102 -0
  38. pathapi-0.1.0/src/pathapi/_stubs.py +76 -0
  39. pathapi-0.1.0/src/pathapi/_tree.py +136 -0
  40. pathapi-0.1.0/src/pathapi/archive/__init__.py +44 -0
  41. pathapi-0.1.0/src/pathapi/archive/_backend.py +393 -0
  42. pathapi-0.1.0/src/pathapi/archive/_names.py +63 -0
  43. pathapi-0.1.0/src/pathapi/archive/_pack.py +394 -0
  44. pathapi-0.1.0/src/pathapi/archive/_path.py +352 -0
  45. pathapi-0.1.0/src/pathapi/archive/_snapshot.py +269 -0
  46. pathapi-0.1.0/src/pathapi/archive/_tar.py +126 -0
  47. pathapi-0.1.0/src/pathapi/archive/_write.py +359 -0
  48. pathapi-0.1.0/src/pathapi/archive/_zip.py +563 -0
  49. pathapi-0.1.0/src/pathapi/archive/_zipentries.py +272 -0
  50. pathapi-0.1.0/src/pathapi/checksum.py +61 -0
  51. pathapi-0.1.0/src/pathapi/exceptions.py +22 -0
  52. pathapi-0.1.0/src/pathapi/fspath.py +513 -0
  53. pathapi-0.1.0/src/pathapi/ftp/__init__.py +27 -0
  54. pathapi-0.1.0/src/pathapi/ftp/_backend.py +418 -0
  55. pathapi-0.1.0/src/pathapi/ftp/_facts.py +117 -0
  56. pathapi-0.1.0/src/pathapi/ftp/_path.py +582 -0
  57. pathapi-0.1.0/src/pathapi/glob/__init__.py +27 -0
  58. pathapi-0.1.0/src/pathapi/glob/_entries.py +103 -0
  59. pathapi-0.1.0/src/pathapi/glob/_patterns.py +164 -0
  60. pathapi-0.1.0/src/pathapi/glob/_recursion.py +180 -0
  61. pathapi-0.1.0/src/pathapi/glob/_selection.py +303 -0
  62. pathapi-0.1.0/src/pathapi/http/__init__.py +84 -0
  63. pathapi-0.1.0/src/pathapi/http/_body.py +156 -0
  64. pathapi-0.1.0/src/pathapi/http/_builtin.py +553 -0
  65. pathapi-0.1.0/src/pathapi/http/_client.py +211 -0
  66. pathapi-0.1.0/src/pathapi/http/_errors.py +79 -0
  67. pathapi-0.1.0/src/pathapi/http/_follow.py +230 -0
  68. pathapi-0.1.0/src/pathapi/http/_headers.py +233 -0
  69. pathapi-0.1.0/src/pathapi/http/_pool.py +169 -0
  70. pathapi-0.1.0/src/pathapi/http/_proxies.py +142 -0
  71. pathapi-0.1.0/src/pathapi/http/_response.py +255 -0
  72. pathapi-0.1.0/src/pathapi/http/_settings.py +12 -0
  73. pathapi-0.1.0/src/pathapi/http/_status.py +68 -0
  74. pathapi-0.1.0/src/pathapi/http/_transports.py +173 -0
  75. pathapi-0.1.0/src/pathapi/http/testing/__init__.py +80 -0
  76. pathapi-0.1.0/src/pathapi/http/testing/__main__.py +10 -0
  77. pathapi-0.1.0/src/pathapi/mempath.py +438 -0
  78. pathapi-0.1.0/src/pathapi/path/__init__.py +19 -0
  79. pathapi-0.1.0/src/pathapi/path/_info.py +10 -0
  80. pathapi-0.1.0/src/pathapi/path/_path.py +198 -0
  81. pathapi-0.1.0/src/pathapi/path/_pure.py +522 -0
  82. pathapi-0.1.0/src/pathapi/path/_relation.py +10 -0
  83. pathapi-0.1.0/src/pathapi/path/_transfer.py +10 -0
  84. pathapi-0.1.0/src/pathapi/protocols/__init__.py +35 -0
  85. pathapi-0.1.0/src/pathapi/protocols/_bundles.py +22 -0
  86. pathapi-0.1.0/src/pathapi/protocols/_errors.py +12 -0
  87. pathapi-0.1.0/src/pathapi/protocols/_info.py +65 -0
  88. pathapi-0.1.0/src/pathapi/protocols/_relation.py +191 -0
  89. pathapi-0.1.0/src/pathapi/protocols/_removal.py +69 -0
  90. pathapi-0.1.0/src/pathapi/protocols/_support.py +122 -0
  91. pathapi-0.1.0/src/pathapi/protocols/_transfer.py +100 -0
  92. pathapi-0.1.0/src/pathapi/protocols/checksum.py +80 -0
  93. pathapi-0.1.0/src/pathapi/protocols/fs.py +429 -0
  94. pathapi-0.1.0/src/pathapi/protocols/io.py +224 -0
  95. pathapi-0.1.0/src/pathapi/protocols/links.py +135 -0
  96. pathapi-0.1.0/src/pathapi/protocols/pure.py +31 -0
  97. pathapi-0.1.0/src/pathapi/protocols/resolve.py +97 -0
  98. pathapi-0.1.0/src/pathapi/protocols/transfer.py +656 -0
  99. pathapi-0.1.0/src/pathapi/protocols/tree.py +492 -0
  100. pathapi-0.1.0/src/pathapi/providers.py +48 -0
  101. pathapi-0.1.0/src/pathapi/py.typed +1 -0
  102. pathapi-0.1.0/src/pathapi/sync/__init__.py +8 -0
  103. pathapi-0.1.0/src/pathapi/sync/_compare.py +157 -0
  104. pathapi-0.1.0/src/pathapi/sync/_events.py +97 -0
  105. pathapi-0.1.0/src/pathapi/sync/_links.py +93 -0
  106. pathapi-0.1.0/src/pathapi/sync/_offer.py +33 -0
  107. pathapi-0.1.0/src/pathapi/sync/_paths.py +50 -0
  108. pathapi-0.1.0/src/pathapi/sync/_replace.py +98 -0
  109. pathapi-0.1.0/src/pathapi/sync/_syncer.py +989 -0
  110. pathapi-0.1.0/src/pathapi/testing/__init__.py +96 -0
  111. pathapi-0.1.0/src/pathapi/testing/_contract.py +522 -0
  112. pathapi-0.1.0/src/pathapi/testing/_fixtures.py +83 -0
  113. pathapi-0.1.0/src/pathapi/testing/_read.py +279 -0
  114. pathapi-0.1.0/tests/capabilities.py +70 -0
  115. pathapi-0.1.0/tests/census.py +122 -0
  116. pathapi-0.1.0/tests/conftest.py +330 -0
  117. pathapi-0.1.0/tests/ftp_loopback.py +286 -0
  118. pathapi-0.1.0/tests/hermetic.py +261 -0
  119. pathapi-0.1.0/tests/mutation/README.md +66 -0
  120. pathapi-0.1.0/tests/mutation/mutants.py +1149 -0
  121. pathapi-0.1.0/tests/mutation/mutation_check.py +16 -0
  122. pathapi-0.1.0/tests/mutation/run.py +224 -0
  123. pathapi-0.1.0/tests/probes/probe_environment_leak.py +12 -0
  124. pathapi-0.1.0/tests/probes/probe_leaks_a_socket.py +12 -0
  125. pathapi-0.1.0/tests/probes/probe_session_environment.py +42 -0
  126. pathapi-0.1.0/tests/test_archive_batch.py +861 -0
  127. pathapi-0.1.0/tests/test_archive_batch_cost.py +419 -0
  128. pathapi-0.1.0/tests/test_archive_damage.py +273 -0
  129. pathapi-0.1.0/tests/test_archive_helpers.py +407 -0
  130. pathapi-0.1.0/tests/test_archive_lazy.py +256 -0
  131. pathapi-0.1.0/tests/test_archive_link_listing.py +408 -0
  132. pathapi-0.1.0/tests/test_archive_links.py +571 -0
  133. pathapi-0.1.0/tests/test_archive_names.py +65 -0
  134. pathapi-0.1.0/tests/test_archive_parity.py +461 -0
  135. pathapi-0.1.0/tests/test_archive_path.py +507 -0
  136. pathapi-0.1.0/tests/test_archive_rewrite.py +353 -0
  137. pathapi-0.1.0/tests/test_archive_safety.py +998 -0
  138. pathapi-0.1.0/tests/test_archive_scale.py +201 -0
  139. pathapi-0.1.0/tests/test_archive_tree.py +397 -0
  140. pathapi-0.1.0/tests/test_census.py +129 -0
  141. pathapi-0.1.0/tests/test_checksum.py +527 -0
  142. pathapi-0.1.0/tests/test_commit_on_close.py +169 -0
  143. pathapi-0.1.0/tests/test_composed_protocols.py +178 -0
  144. pathapi-0.1.0/tests/test_consumer_needs.py +156 -0
  145. pathapi-0.1.0/tests/test_contract.py +34 -0
  146. pathapi-0.1.0/tests/test_contract_helpers.py +513 -0
  147. pathapi-0.1.0/tests/test_copy_move_fidelity.py +361 -0
  148. pathapi-0.1.0/tests/test_copy_round_trips.py +174 -0
  149. pathapi-0.1.0/tests/test_destructive_safety.py +949 -0
  150. pathapi-0.1.0/tests/test_documented_examples.py +111 -0
  151. pathapi-0.1.0/tests/test_error_predicate.py +357 -0
  152. pathapi-0.1.0/tests/test_examples_skip.py +62 -0
  153. pathapi-0.1.0/tests/test_exceptions.py +35 -0
  154. pathapi-0.1.0/tests/test_filestat.py +169 -0
  155. pathapi-0.1.0/tests/test_ftp.py +401 -0
  156. pathapi-0.1.0/tests/test_ftp_end_to_end.py +446 -0
  157. pathapi-0.1.0/tests/test_ftp_path.py +423 -0
  158. pathapi-0.1.0/tests/test_ftp_security.py +324 -0
  159. pathapi-0.1.0/tests/test_ftp_utime.py +173 -0
  160. pathapi-0.1.0/tests/test_ftp_wire.py +403 -0
  161. pathapi-0.1.0/tests/test_generic_pure_parity.py +288 -0
  162. pathapi-0.1.0/tests/test_glob.py +91 -0
  163. pathapi-0.1.0/tests/test_glob_edges.py +811 -0
  164. pathapi-0.1.0/tests/test_glob_parity.py +539 -0
  165. pathapi-0.1.0/tests/test_hermetic.py +339 -0
  166. pathapi-0.1.0/tests/test_http_testing.py +282 -0
  167. pathapi-0.1.0/tests/test_io_parity.py +260 -0
  168. pathapi-0.1.0/tests/test_listing_hints.py +153 -0
  169. pathapi-0.1.0/tests/test_listing_names.py +200 -0
  170. pathapi-0.1.0/tests/test_local.py +24 -0
  171. pathapi-0.1.0/tests/test_local_stat_errors.py +54 -0
  172. pathapi-0.1.0/tests/test_low_core.py +427 -0
  173. pathapi-0.1.0/tests/test_low_sync.py +469 -0
  174. pathapi-0.1.0/tests/test_mempath.py +550 -0
  175. pathapi-0.1.0/tests/test_move_stats.py +199 -0
  176. pathapi-0.1.0/tests/test_mro_precedence.py +451 -0
  177. pathapi-0.1.0/tests/test_packaging.py +69 -0
  178. pathapi-0.1.0/tests/test_parity_io.py +521 -0
  179. pathapi-0.1.0/tests/test_parity_pure.py +102 -0
  180. pathapi-0.1.0/tests/test_path_gaps.py +510 -0
  181. pathapi-0.1.0/tests/test_path_info.py +302 -0
  182. pathapi-0.1.0/tests/test_path_moving.py +260 -0
  183. pathapi-0.1.0/tests/test_pathname.py +408 -0
  184. pathapi-0.1.0/tests/test_properties.py +311 -0
  185. pathapi-0.1.0/tests/test_protocol_composition.py +153 -0
  186. pathapi-0.1.0/tests/test_protocol_support.py +283 -0
  187. pathapi-0.1.0/tests/test_provider_seam.py +66 -0
  188. pathapi-0.1.0/tests/test_providers.py +293 -0
  189. pathapi-0.1.0/tests/test_public_surface.py +472 -0
  190. pathapi-0.1.0/tests/test_pure_parity.py +766 -0
  191. pathapi-0.1.0/tests/test_resolve.py +216 -0
  192. pathapi-0.1.0/tests/test_same_filesystem.py +291 -0
  193. pathapi-0.1.0/tests/test_shipped_header.py +369 -0
  194. pathapi-0.1.0/tests/test_smoke.py +174 -0
  195. pathapi-0.1.0/tests/test_symlink_target.py +101 -0
  196. pathapi-0.1.0/tests/test_sync.py +446 -0
  197. pathapi-0.1.0/tests/test_sync_cost.py +312 -0
  198. pathapi-0.1.0/tests/test_sync_mtime.py +371 -0
  199. pathapi-0.1.0/tests/test_sync_safety.py +1872 -0
  200. pathapi-0.1.0/tests/test_walk.py +133 -0
  201. pathapi-0.1.0/tests/test_walk_junction.py +166 -0
  202. pathapi-0.1.0/tests/test_write_discard.py +623 -0
  203. pathapi-0.1.0/tests/transport/conftest.py +98 -0
  204. pathapi-0.1.0/tests/transport/test_client_default.py +285 -0
  205. pathapi-0.1.0/tests/transport/test_client_errors.py +181 -0
  206. pathapi-0.1.0/tests/transport/test_client_peer_text.py +86 -0
  207. pathapi-0.1.0/tests/transport/test_client_redirect_origin.py +134 -0
  208. pathapi-0.1.0/tests/transport/test_client_redirects.py +231 -0
  209. pathapi-0.1.0/tests/transport/test_client_reply_limits.py +201 -0
  210. pathapi-0.1.0/tests/transport/test_client_urls.py +68 -0
  211. pathapi-0.1.0/tests/transport/test_client_write_redirects.py +239 -0
  212. pathapi-0.1.0/tests/transport/test_transport_body.py +302 -0
  213. pathapi-0.1.0/tests/transport/test_transport_pool.py +433 -0
  214. pathapi-0.1.0/tests/transport/test_transport_prepare.py +208 -0
  215. pathapi-0.1.0/tests/transport/test_transport_proxy.py +430 -0
  216. pathapi-0.1.0/tests/transport/test_transport_registry.py +211 -0
  217. pathapi-0.1.0/tests/transport/test_transport_send.py +662 -0
  218. pathapi-0.1.0/tests/transport/test_transport_tls.py +151 -0
  219. pathapi-0.1.0/tests/transport/transport_distribution.py +55 -0
  220. pathapi-0.1.0/tests/transport/transport_fakes.py +133 -0
  221. pathapi-0.1.0/tests/transport/transport_guard.py +174 -0
  222. pathapi-0.1.0/tests/transport/transport_wire.py +511 -0
  223. pathapi-0.1.0/tests/waits.py +17 -0
@@ -0,0 +1,43 @@
1
+ # Category rule: nothing dot-prefixed at the repo root gets tracked except the
2
+ # files re-included below (a category beats a list). Root-anchored on purpose;
3
+ # nested dotfiles are governed by the specific rules further down.
4
+ /.*
5
+ !/.gitignore
6
+ !/.gitattributes
7
+ !/.github/
8
+ # Shared editor settings (black on save, pytest discovery, build task) are
9
+ # tracked deliberately.
10
+ !/.vscode/
11
+
12
+ # Private agent config. No trailing slash on `.agents` on purpose: it may be a
13
+ # symlink, which git treats as a file, so a directory-only `.agents/` would not
14
+ # match it. These stay even though /.* covers the root: they also catch nested
15
+ # copies. *.local.* is an unshared, machine- or user-specific override and is
16
+ # never committed (it is also excluded from the build in pyproject.toml).
17
+ .agents
18
+ *.local.*
19
+ CLAUDE*
20
+ .claude
21
+
22
+ # Build/dist output and generated docs site
23
+ build/
24
+ dist/
25
+ site/
26
+
27
+ # Python
28
+ __pycache__/
29
+ *.py[cod]
30
+ .pytest_cache/
31
+ .hypothesis/
32
+ .mypy_cache/
33
+ .ruff_cache/
34
+ .coverage*
35
+ htmlcov/
36
+ *.egg-info/
37
+ .venv/
38
+ .pyvenv/
39
+
40
+ # OS/editor
41
+ .DS_Store
42
+ Thumbs.db
43
+ .idea/