glyphive 0.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.
Files changed (56) hide show
  1. glyphive/__init__.py +23 -0
  2. glyphive/__main__.py +6 -0
  3. glyphive/archive.py +670 -0
  4. glyphive/assets/__init__.py +1 -0
  5. glyphive/assets/fonts/__init__.py +1 -0
  6. glyphive/assets/fonts/dejavu_sans_mono/DejaVuSansMono.ttf +0 -0
  7. glyphive/assets/fonts/dejavu_sans_mono/LICENSE +187 -0
  8. glyphive/assets/fonts/dejavu_sans_mono/__init__.py +1 -0
  9. glyphive/assets/fonts/ocr_b/LICENSE.md +94 -0
  10. glyphive/assets/fonts/ocr_b/OCR-B.ttf +0 -0
  11. glyphive/assets/fonts/ocr_b/__init__.py +1 -0
  12. glyphive/cli/__init__.py +68 -0
  13. glyphive/cli/_common.py +411 -0
  14. glyphive/cli/create.py +462 -0
  15. glyphive/cli/extract.py +148 -0
  16. glyphive/cli/inspect.py +161 -0
  17. glyphive/cli/list.py +124 -0
  18. glyphive/codec/__init__.py +37 -0
  19. glyphive/codec/_base.py +101 -0
  20. glyphive/codec/base16c.py +1335 -0
  21. glyphive/codec/pagers.py +121 -0
  22. glyphive/codec/radix.py +96 -0
  23. glyphive/compression/__init__.py +40 -0
  24. glyphive/compression/_base.py +141 -0
  25. glyphive/compression/gzip.py +39 -0
  26. glyphive/compression/none.py +24 -0
  27. glyphive/compression/zstd.py +69 -0
  28. glyphive/layout.py +1219 -0
  29. glyphive/plugins.py +142 -0
  30. glyphive/py.typed +1 -0
  31. glyphive/render/__init__.py +91 -0
  32. glyphive/render/_base.py +133 -0
  33. glyphive/render/formats/__init__.py +15 -0
  34. glyphive/render/formats/docx.py +99 -0
  35. glyphive/render/formats/pdf.py +405 -0
  36. glyphive/render/formats/qr.py +172 -0
  37. glyphive/render/formats/text.py +39 -0
  38. glyphive/restore/__init__.py +19 -0
  39. glyphive/restore/decode.py +258 -0
  40. glyphive/restore/document_images.py +154 -0
  41. glyphive/restore/ocr/__init__.py +122 -0
  42. glyphive/restore/ocr/_base.py +82 -0
  43. glyphive/restore/ocr/providers/__init__.py +12 -0
  44. glyphive/restore/ocr/providers/_image.py +19 -0
  45. glyphive/restore/ocr/providers/easyocr.py +32 -0
  46. glyphive/restore/ocr/providers/paddle.py +40 -0
  47. glyphive/restore/ocr/providers/tesseract.py +58 -0
  48. glyphive/restore/qr.py +223 -0
  49. glyphive/restore/unarchive.py +452 -0
  50. glyphive-0.1.0.dist-info/METADATA +304 -0
  51. glyphive-0.1.0.dist-info/RECORD +56 -0
  52. glyphive-0.1.0.dist-info/WHEEL +4 -0
  53. glyphive-0.1.0.dist-info/entry_points.txt +2 -0
  54. glyphive-0.1.0.dist-info/licenses/LICENSE +21 -0
  55. glyphive-0.1.0.dist-info/licenses/src/glyphive/assets/fonts/dejavu_sans_mono/LICENSE +187 -0
  56. glyphive-0.1.0.dist-info/licenses/src/glyphive/assets/fonts/ocr_b/LICENSE.md +94 -0
glyphive/__init__.py ADDED
@@ -0,0 +1,23 @@
1
+ """glyphive — archive file trees to compact, OCR-friendly printable pages.
2
+
3
+ Take a directory tree (or arbitrary bytes), serialize it, compress it, and encode
4
+ it into an OCR-safe, human-re-typeable printable format laid out on pages (plain
5
+ text, PDF, or Word), then restore the tree from a scan or a re-typed transcript.
6
+
7
+ The default codec (``base16c-crc16-rs``) uses the measured-safe 16-character alphabet
8
+ ``ABCDHKLMPRTVXY34``, a per-line CRC-16, and document-wide interleaved
9
+ Reed-Solomon parity so scattered OCR errors self-heal instead of silently
10
+ corrupting everything downstream.
11
+ """
12
+
13
+ __all__ = ["__version__"]
14
+
15
+ try: # pragma: no cover - trivial metadata plumbing
16
+ from importlib.metadata import PackageNotFoundError, version
17
+
18
+ try:
19
+ __version__ = version("glyphive")
20
+ except PackageNotFoundError:
21
+ __version__ = "0.0.0+unknown"
22
+ except Exception: # pragma: no cover
23
+ __version__ = "0.0.0+unknown"
glyphive/__main__.py ADDED
@@ -0,0 +1,6 @@
1
+ """``python -m glyphive`` entry point."""
2
+
3
+ from .cli import run
4
+
5
+ if __name__ == "__main__":
6
+ raise SystemExit(run())