putfs 0.3.2__tar.gz → 0.3.4__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: putfs
3
- Version: 0.3.2
3
+ Version: 0.3.4
4
4
  Summary: Efficient HTTP blob storage over local filesystem
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -19,7 +19,7 @@ Requires-Dist: anyio (>=4.14.2,<5.0.0)
19
19
  Requires-Dist: anystore[http] (>=1.2.5,<2.0.0) ; extra == "client"
20
20
  Requires-Dist: granian (>=2.7.8,<3.0.0)
21
21
  Requires-Dist: starlette (>=1.3.1,<2.0.0)
22
- Requires-Dist: tqdm (>=4.69.0,<5.0.0) ; extra == "client"
22
+ Requires-Dist: tqdm (>=4.70.0,<5.0.0) ; extra == "client"
23
23
  Requires-Dist: uvloop (>=0.22.1,<0.23.0)
24
24
  Project-URL: Homepage, https://putf.sh
25
25
  Project-URL: Issues, https://github.com/dataresearchcenter/putfs/issues
@@ -0,0 +1 @@
1
+ __version__ = "0.3.4"
@@ -37,12 +37,12 @@ class Settings:
37
37
  re.compile(p) for p in raw.split(",") if p
38
38
  ]
39
39
 
40
- # Content-addressed validation is only safe paired with WORM: without it,
41
- # a bad re-upload to an existing key truncates the good file (O_TRUNC)
42
- # before the checksum is checked, then unlinks it -- silent data loss.
43
- # Every checksum'd key must therefore be write-once, so fold the checksum
44
- # patterns into the WORM set: a content-addressed path is WORM by
45
- # construction, with no separate config knob to forget.
40
+ # A content-addressed path names its bytes (same key => same content),
41
+ # so overwrites are meaningless and write-once is the correct contract.
42
+ # Fold the checksum patterns into the WORM set: every checksum'd key is
43
+ # WORM by construction, with no separate config knob to forget, and a
44
+ # re-PUT answers on the WORM fast-path (409/204 before the body is
45
+ # read) instead of hashing a full body to republish identical bytes.
46
46
  self.worm_paths += self.checksum_patterns
47
47
 
48
48
  # Resource caps (DoS mitigation)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "putfs"
3
- version = "0.3.2"
3
+ version = "0.3.4"
4
4
  description = "Efficient HTTP blob storage over local filesystem"
5
5
  authors = [
6
6
  { name = "Simon Wörpel", email = "simon.woerpel@pm.me" },
@@ -26,7 +26,7 @@ dependencies = [
26
26
  ]
27
27
 
28
28
  [project.optional-dependencies]
29
- client = ["anystore[http] (>=1.2.5,<2.0.0)", "tqdm (>=4.69.0,<5.0.0)"]
29
+ client = ["anystore[http] (>=1.2.5,<2.0.0)", "tqdm (>=4.70.0,<5.0.0)"]
30
30
 
31
31
  [project.scripts]
32
32
  putfs = "putfs.cli:cli"
@@ -39,17 +39,17 @@ Issues = "https://github.com/dataresearchcenter/putfs/issues"
39
39
  [tool.poetry.group.dev.dependencies]
40
40
  pytest = "^9.1.0"
41
41
  pytest-cov = ">=4.1,<8.0"
42
- pytest-env = "^1.6.0"
42
+ pytest-env = "^1.7.0"
43
43
  black = ">=26.5.1,<27.0"
44
44
  isort = "^8.0.1"
45
45
  mypy = "^2.3.0"
46
- pre-commit = "^4.0.1"
46
+ pre-commit = "^4.6.1"
47
47
  flake8 = ">=6.1,<8.0"
48
48
  ipdb = "^0.13.13"
49
49
  bump2version = "^1.0.1"
50
50
  pytest-asyncio = ">=1.4.0,<1.5.0"
51
51
  httpx = "^0.28.1"
52
- uvicorn = "^0.51.0"
52
+ uvicorn = "^0.52.0"
53
53
  zensical = "^0.0.51"
54
54
 
55
55
  [build-system]
@@ -1 +0,0 @@
1
- __version__ = "0.3.2"
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