(
self,
p: Path,
perm: Perm = "r",
label: Optional[str] = None,
ttl_seconds: Optional[int] = None,
)
| 184 | return secrets.token_urlsafe(8) |
| 185 | |
| 186 | def publish_path( |
| 187 | self, |
| 188 | p: Path, |
| 189 | perm: Perm = "r", |
| 190 | label: Optional[str] = None, |
| 191 | ttl_seconds: Optional[int] = None, |
| 192 | ) -> str: |
| 193 | p = p.resolve() |
| 194 | if not str(p).startswith(str(self.root)): |
| 195 | raise ValueError("path outside session root") |
| 196 | hid = self._new_id() |
| 197 | rec = HandleRec( |
| 198 | real_path=p, |
| 199 | perm=perm, |
| 200 | is_dir=p.is_dir(), |
| 201 | expires_at=(time.time() + ttl_seconds) if ttl_seconds else None, |
| 202 | label=(label or (p.name if p.name else "resource")), |
| 203 | ) |
| 204 | self.handles[hid] = rec |
| 205 | return f"sandbox:/{hid}/{rec.label}" |
| 206 | |
| 207 | def revoke(self, handle_uri: str) -> None: |
| 208 | hid = self._handle_id(handle_uri) |
no test coverage detected