Coverage for src/paperap/models/document/metadata/model.py: 100%

22 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-20 13:17 -0400

1""" 

2---------------------------------------------------------------------------- 

3 

4METADATA: 

5 

6File: metadata.py 

7 Project: paperap 

8Created: 2025-03-18 

9 Version: 0.0.8 

10Author: Jess Mann 

11Email: jess@jmann.me 

12 Copyright (c) 2025 Jess Mann 

13 

14---------------------------------------------------------------------------- 

15 

16LAST MODIFIED: 

17 

182025-03-18 By Jess Mann 

19 

20""" 

21 

22from __future__ import annotations 

23 

24from paperap.models.abstract import StandardModel 

25 

26 

27class DocumentMetadataType(StandardModel): 

28 """ 

29 Represents metadata for a document in Paperless-NgX. 

30 

31 This is a key-value pair of metadata information. 

32 """ 

33 

34 key: str 

35 value: str 

36 

37 class Meta(StandardModel.Meta): 

38 read_only_fields = {"key", "value"} 

39 

40 

41class DocumentMetadata(StandardModel): 

42 """ 

43 Represents a Paperless-NgX document's metadata. 

44 

45 Attributes: 

46 original_checksum: The checksum of the original document. 

47 original_size: The size of the original document in bytes. 

48 original_mime_type: The MIME type of the original document. 

49 media_filename: The filename of the media file. 

50 has_archive_version: Whether the document has an archive version. 

51 original_metadata: Metadata of the original document. 

52 archive_checksum: The checksum of the archived document. 

53 archive_media_filename: The filename of the archived media file. 

54 original_filename: The original filename of the document. 

55 lang: The language of the document. 

56 archive_size: The size of the archived document in bytes. 

57 archive_metadata: Metadata of the archived document. 

58 

59 """ 

60 

61 original_checksum: str | None = None 

62 original_size: int | None = None 

63 original_mime_type: str | None = None 

64 media_filename: str | None = None 

65 has_archive_version: bool | None = None 

66 original_metadata: list[DocumentMetadataType] = [] 

67 archive_checksum: str | None = None 

68 archive_media_filename: str | None = None 

69 original_filename: str | None = None 

70 lang: str | None = None 

71 archive_size: int | None = None 

72 archive_metadata: list[DocumentMetadataType] = [] 

73 

74 class Meta(StandardModel.Meta): 

75 read_only_fields = { 

76 "original_checksum", 

77 "original_size", 

78 "original_mime_type", 

79 "media_filename", 

80 "has_archive_version", 

81 "original_metadata", 

82 "archive_checksum", 

83 "archive_media_filename", 

84 "original_filename", 

85 "lang", 

86 "archive_size", 

87 "archive_metadata", 

88 }