gedcom-x 0.5.7__py3-none-any.whl → 0.5.8__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.
- {gedcom_x-0.5.7.dist-info → gedcom_x-0.5.8.dist-info}/METADATA +1 -1
- gedcom_x-0.5.8.dist-info/RECORD +56 -0
- gedcomx/Extensions/rs10/rsLink.py +3 -3
- gedcomx/TopLevelTypeCollection.py +1 -1
- gedcomx/__init__.py +43 -42
- gedcomx/{Address.py → address.py} +1 -1
- gedcomx/{Agent.py → agent.py} +32 -16
- gedcomx/{Attribution.py → attribution.py} +3 -3
- gedcomx/{Conclusion.py → conclusion.py} +26 -9
- gedcomx/{Converter.py → converter.py} +54 -39
- gedcomx/{Coverage.py → coverage.py} +23 -5
- gedcomx/{Date.py → date.py} +1 -1
- gedcomx/{Document.py → document.py} +26 -8
- gedcomx/{Event.py → event.py} +13 -13
- gedcomx/{EvidenceReference.py → evidence_reference.py} +2 -2
- gedcomx/{Fact.py → fact.py} +31 -23
- gedcomx/{Gedcom5x.py → gedcom5x.py} +1 -1
- gedcomx/gedcom7/Exceptions.py +9 -0
- gedcomx/gedcom7/Gedcom7.py +160 -0
- gedcomx/gedcom7/GedcomStructure.py +94 -0
- gedcomx/gedcom7/Specification.py +347 -0
- gedcomx/gedcom7/__init__.py +26 -0
- gedcomx/gedcom7/g7interop.py +205 -0
- gedcomx/gedcom7/logger.py +19 -0
- gedcomx/{GedcomX.py → gedcomx.py} +14 -13
- gedcomx/{Gender.py → gender.py} +25 -11
- gedcomx/group.py +63 -0
- gedcomx/{Identifier.py → identifier.py} +4 -4
- gedcomx/{Mutations.py → mutations.py} +49 -25
- gedcomx/{Name.py → name.py} +15 -15
- gedcomx/{Note.py → note.py} +2 -2
- gedcomx/{OnlineAccount.py → online_account.py} +1 -1
- gedcomx/{Person.py → person.py} +18 -16
- gedcomx/{PlaceDescription.py → place_description.py} +18 -16
- gedcomx/{PlaceReference.py → place_reference.py} +4 -4
- gedcomx/{Qualifier.py → qualifier.py} +1 -1
- gedcomx/{Relationship.py → relationship.py} +30 -12
- gedcomx/{Resource.py → resource.py} +2 -2
- gedcomx/{Serialization.py → serialization.py} +31 -32
- gedcomx/{SourceDescription.py → source_description.py} +16 -16
- gedcomx/{SourceReference.py → source_reference.py} +7 -7
- gedcomx/{Subject.py → subject.py} +26 -8
- gedcomx/{Translation.py → translation.py} +1 -1
- gedcomx/{URI.py → uri.py} +42 -26
- gedcom_x-0.5.7.dist-info/RECORD +0 -49
- gedcomx/Group.py +0 -37
- {gedcom_x-0.5.7.dist-info → gedcom_x-0.5.8.dist-info}/WHEEL +0 -0
- {gedcom_x-0.5.7.dist-info → gedcom_x-0.5.8.dist-info}/top_level.txt +0 -0
- /gedcomx/{Exceptions.py → exceptions.py} +0 -0
- /gedcomx/{ExtensibleEnum.py → extensible_enum.py} +0 -0
- /gedcomx/{Gedcom.py → gedcom.py} +0 -0
- /gedcomx/{LoggingHub.py → logging_hub.py} +0 -0
- /gedcomx/{SourceCitation.py → source_citation.py} +0 -0
- /gedcomx/{TextValue.py → textvalue.py} +0 -0
@@ -1,13 +1,11 @@
|
|
1
1
|
from __future__ import annotations
|
2
|
+
from collections.abc import Sized
|
2
3
|
from functools import lru_cache
|
4
|
+
from typing import Any, Callable, Dict, ForwardRef, List, Set, Tuple, Union, get_args, get_origin
|
3
5
|
|
4
6
|
import enum
|
5
7
|
import logging
|
6
8
|
import types
|
7
|
-
from collections.abc import Sized
|
8
|
-
from typing import Any, Dict, List, Set, Tuple, Union, Annotated, ForwardRef, get_args, get_origin
|
9
|
-
from typing import Any, Callable, Mapping, List, Dict, Tuple, Set
|
10
|
-
from typing import List, Optional
|
11
9
|
|
12
10
|
"""
|
13
11
|
======================================================================
|
@@ -19,6 +17,7 @@ from typing import List, Optional
|
|
19
17
|
Created: 2025-08-25
|
20
18
|
Updated:
|
21
19
|
- 2025-08-31: cleaned up imports and documentation
|
20
|
+
- 2025-09-01: filename PEP8 standard, imports changed accordingly
|
22
21
|
|
23
22
|
======================================================================
|
24
23
|
"""
|
@@ -28,32 +27,32 @@ from typing import List, Optional
|
|
28
27
|
GEDCOM Module Types
|
29
28
|
======================================================================
|
30
29
|
"""
|
31
|
-
from .
|
32
|
-
from .
|
33
|
-
from .
|
34
|
-
from .
|
35
|
-
from .
|
36
|
-
from .
|
37
|
-
from .
|
38
|
-
from .
|
30
|
+
from .address import Address
|
31
|
+
from .agent import Agent
|
32
|
+
from .attribution import Attribution
|
33
|
+
from .conclusion import ConfidenceLevel
|
34
|
+
from .date import Date
|
35
|
+
from .document import Document, DocumentType, TextType
|
36
|
+
from .evidence_reference import EvidenceReference
|
37
|
+
from .event import Event, EventType, EventRole, EventRoleType
|
39
38
|
from .Extensions.rs10.rsLink import _rsLinkList
|
40
|
-
from .
|
41
|
-
from .
|
42
|
-
from .
|
43
|
-
from .
|
44
|
-
from .
|
45
|
-
from .
|
46
|
-
from .
|
47
|
-
from .
|
48
|
-
from .
|
49
|
-
from .
|
50
|
-
from .
|
51
|
-
from .
|
52
|
-
from .
|
53
|
-
from .
|
54
|
-
from .
|
55
|
-
from .
|
56
|
-
from .
|
39
|
+
from .fact import Fact, FactType, FactQualifier
|
40
|
+
from .gender import Gender, GenderType
|
41
|
+
from .identifier import IdentifierList, Identifier
|
42
|
+
from .logging_hub import hub, ChannelConfig
|
43
|
+
from .name import Name, NameType, NameForm, NamePart, NamePartType, NamePartQualifier
|
44
|
+
from .note import Note
|
45
|
+
from .online_account import OnlineAccount
|
46
|
+
from .person import Person
|
47
|
+
from .place_description import PlaceDescription
|
48
|
+
from .place_reference import PlaceReference
|
49
|
+
from .qualifier import Qualifier
|
50
|
+
from .relationship import Relationship, RelationshipType
|
51
|
+
from .resource import Resource
|
52
|
+
from .source_description import SourceDescription, ResourceType, SourceCitation, Coverage
|
53
|
+
from .source_reference import SourceReference
|
54
|
+
from .textvalue import TextValue
|
55
|
+
from .uri import URI
|
57
56
|
#======================================================================
|
58
57
|
|
59
58
|
log = logging.getLogger("gedcomx")
|
@@ -481,9 +480,9 @@ class Serialization:
|
|
481
480
|
# Late imports to reduce circulars (and to allow logging if they aren't available)
|
482
481
|
'''
|
483
482
|
try:
|
484
|
-
from gedcomx.
|
485
|
-
from gedcomx.
|
486
|
-
from gedcomx.
|
483
|
+
from gedcomx.resource import Resource
|
484
|
+
from gedcomx.uri import URI
|
485
|
+
from gedcomx.identifier import IdentifierList
|
487
486
|
_gx_import_ok = True
|
488
487
|
except Exception as _imp_err:
|
489
488
|
_gx_import_ok = False
|
@@ -1,11 +1,9 @@
|
|
1
1
|
import warnings
|
2
2
|
|
3
3
|
from enum import Enum
|
4
|
-
from typing import List, Optional,
|
5
|
-
|
6
|
-
from typing import Optional, TYPE_CHECKING
|
4
|
+
from typing import Any, Dict, List, Optional, TYPE_CHECKING
|
7
5
|
if TYPE_CHECKING:
|
8
|
-
from .
|
6
|
+
from .document import Document
|
9
7
|
|
10
8
|
"""
|
11
9
|
======================================================================
|
@@ -17,6 +15,7 @@ if TYPE_CHECKING:
|
|
17
15
|
Created: 2025-07-25
|
18
16
|
Updated:
|
19
17
|
- 2025-08-31: _as_dict_ refactored to ignore empty fields, changed id creation to make_uid()
|
18
|
+
- 2025-09-01: filename PEP8 standard, imports changed accordingly
|
20
19
|
|
21
20
|
|
22
21
|
======================================================================
|
@@ -27,19 +26,20 @@ if TYPE_CHECKING:
|
|
27
26
|
GEDCOM Module Types
|
28
27
|
======================================================================
|
29
28
|
"""
|
30
|
-
from .
|
31
|
-
from .
|
32
|
-
from .
|
33
|
-
from .
|
34
|
-
from .
|
35
|
-
from .
|
36
|
-
from .
|
37
|
-
from .
|
38
|
-
from .
|
39
|
-
from .
|
40
|
-
from .
|
29
|
+
from .agent import Agent
|
30
|
+
from .attribution import Attribution
|
31
|
+
from .coverage import Coverage
|
32
|
+
from .date import Date
|
33
|
+
from .identifier import Identifier, IdentifierList, make_uid
|
34
|
+
from .note import Note
|
35
|
+
from .resource import Resource
|
36
|
+
from .source_citation import SourceCitation
|
37
|
+
from .source_reference import SourceReference
|
38
|
+
from .textvalue import TextValue
|
39
|
+
from .uri import URI
|
41
40
|
#=====================================================================
|
42
41
|
|
42
|
+
|
43
43
|
class ResourceType(Enum):
|
44
44
|
Collection = "http://gedcomx.org/Collection"
|
45
45
|
PhysicalArtifact = "http://gedcomx.org/PhysicalArtifact"
|
@@ -214,7 +214,7 @@ class SourceDescription:
|
|
214
214
|
|
215
215
|
@property
|
216
216
|
def _as_dict_(self) -> Dict[str, Any]:
|
217
|
-
from .
|
217
|
+
from .serialization import Serialization
|
218
218
|
type_as_dict = {}
|
219
219
|
|
220
220
|
if self.id:
|
@@ -2,14 +2,14 @@ from __future__ import annotations
|
|
2
2
|
from typing import List, Optional, TYPE_CHECKING
|
3
3
|
|
4
4
|
if TYPE_CHECKING:
|
5
|
-
from .
|
5
|
+
from .source_description import SourceDescription
|
6
6
|
|
7
|
-
from .
|
8
|
-
from .
|
7
|
+
from .attribution import Attribution
|
8
|
+
from .qualifier import Qualifier
|
9
9
|
|
10
|
-
from .
|
10
|
+
from .resource import Resource
|
11
11
|
|
12
|
-
from .
|
12
|
+
from .uri import URI
|
13
13
|
|
14
14
|
from collections.abc import Sized
|
15
15
|
|
@@ -85,7 +85,7 @@ class SourceReference:
|
|
85
85
|
|
86
86
|
@property
|
87
87
|
def _as_dict_(self):
|
88
|
-
from .
|
88
|
+
from .serialization import Serialization
|
89
89
|
type_as_dict = {
|
90
90
|
'description':self.description._as_dict_ if self.description else None,
|
91
91
|
'descriptionId': self.descriptionId.replace("\n"," ").replace("\r"," ") if self.descriptionId else None,
|
@@ -100,7 +100,7 @@ class SourceReference:
|
|
100
100
|
Rehydrate a SourceReference from the dict passed down from JSON deserialization.
|
101
101
|
NOTE: This does not resolve references to SourceDescription objects.
|
102
102
|
"""
|
103
|
-
from .
|
103
|
+
from .serialization import Serialization
|
104
104
|
return Serialization.deserialize(data, SourceReference)
|
105
105
|
|
106
106
|
|
@@ -1,15 +1,33 @@
|
|
1
1
|
import warnings
|
2
2
|
from typing import List, Optional
|
3
|
+
"""
|
4
|
+
======================================================================
|
5
|
+
Project: Gedcom-X
|
6
|
+
File: subject.py
|
7
|
+
Author: David J. Cartwright
|
8
|
+
Purpose:
|
3
9
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
10
|
+
Created: 2025-08-25
|
11
|
+
Updated:
|
12
|
+
- 2025-08-31:
|
13
|
+
|
14
|
+
======================================================================
|
15
|
+
"""
|
9
16
|
|
10
|
-
|
11
|
-
|
17
|
+
"""
|
18
|
+
======================================================================
|
19
|
+
GEDCOM Module Types
|
20
|
+
======================================================================
|
21
|
+
"""
|
22
|
+
from .attribution import Attribution
|
23
|
+
from .conclusion import ConfidenceLevel, Conclusion
|
24
|
+
from .evidence_reference import EvidenceReference
|
12
25
|
from .Extensions.rs10.rsLink import _rsLinkList
|
26
|
+
from .identifier import Identifier, IdentifierList
|
27
|
+
from .note import Note
|
28
|
+
from .resource import Resource
|
29
|
+
from .source_reference import SourceReference
|
30
|
+
|
13
31
|
|
14
32
|
class Subject(Conclusion):
|
15
33
|
identifier = 'http://gedcomx.org/v1/Subject'
|
@@ -45,7 +63,7 @@ class Subject(Conclusion):
|
|
45
63
|
|
46
64
|
@property
|
47
65
|
def _as_dict_(self):
|
48
|
-
from .
|
66
|
+
from .serialization import Serialization
|
49
67
|
|
50
68
|
type_as_dict = super()._as_dict_ # Start with base class fields
|
51
69
|
# Only add Relationship-specific fields
|
gedcomx/{URI.py → uri.py}
RENAMED
@@ -1,11 +1,25 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
from dataclasses import dataclass, field
|
3
|
-
from typing import Mapping,
|
3
|
+
from typing import Mapping, Sequence, Tuple, Union, Iterable
|
4
4
|
from urllib.parse import urlsplit, urlunsplit, urlencode, parse_qsl, SplitResult
|
5
5
|
|
6
6
|
_DEFAULT_SCHEME = "gedcomx"
|
7
7
|
|
8
|
-
|
8
|
+
# ---------- typing helpers for urlencode (Option A) ----------
|
9
|
+
QuerySeq = Sequence[Tuple[str, str]]
|
10
|
+
QueryMap = Mapping[str, str]
|
11
|
+
QueryLike = Union[str, QueryMap, QuerySeq]
|
12
|
+
|
13
|
+
def _encode_query(q: QueryLike) -> str:
|
14
|
+
"""Return a properly encoded query string."""
|
15
|
+
if isinstance(q, str):
|
16
|
+
return q
|
17
|
+
if isinstance(q, Mapping):
|
18
|
+
return urlencode(q, doseq=True) # mapping is fine
|
19
|
+
return urlencode(list(q), doseq=True) # coerce iterable to a sequence
|
20
|
+
|
21
|
+
|
22
|
+
@dataclass(slots=True)
|
9
23
|
class URI:
|
10
24
|
scheme: str = field(default=_DEFAULT_SCHEME)
|
11
25
|
authority: str = field(default="")
|
@@ -15,29 +29,33 @@ class URI:
|
|
15
29
|
|
16
30
|
# ---------- constructors ----------
|
17
31
|
@classmethod
|
18
|
-
def from_url(cls, url: str, *, default_scheme: str = _DEFAULT_SCHEME) ->
|
32
|
+
def from_url(cls, url: str, *, default_scheme: str = _DEFAULT_SCHEME) -> URI:
|
19
33
|
s = urlsplit(url)
|
20
34
|
scheme = s.scheme or default_scheme
|
21
35
|
return cls(scheme=scheme, authority=s.netloc, path=s.path, query=s.query, fragment=s.fragment)
|
22
36
|
|
23
37
|
@classmethod
|
24
|
-
def parse(cls, value: str) ->
|
38
|
+
def parse(cls, value: str) -> URI:
|
25
39
|
return cls.from_url(value)
|
26
40
|
|
27
41
|
@classmethod
|
28
42
|
def from_parts(
|
29
43
|
cls,
|
30
44
|
*,
|
31
|
-
scheme:
|
45
|
+
scheme: str | None = None,
|
32
46
|
authority: str = "",
|
33
47
|
path: str = "",
|
34
|
-
query:
|
35
|
-
fragment: str = ""
|
36
|
-
) ->
|
37
|
-
q =
|
48
|
+
query: QueryLike = "",
|
49
|
+
fragment: str = "",
|
50
|
+
) -> URI:
|
51
|
+
q = _encode_query(query)
|
38
52
|
return cls(scheme=scheme or _DEFAULT_SCHEME, authority=authority, path=path, query=q, fragment=fragment)
|
39
53
|
|
40
54
|
# ---------- views ----------
|
55
|
+
@property
|
56
|
+
def uri(self) -> str:
|
57
|
+
return str(self)
|
58
|
+
|
41
59
|
@property
|
42
60
|
def value(self) -> str:
|
43
61
|
return str(self)
|
@@ -49,9 +67,7 @@ class URI:
|
|
49
67
|
return urlunsplit(self.split())
|
50
68
|
|
51
69
|
@property
|
52
|
-
def _as_dict_(self) -> str:
|
53
|
-
# Keeps a simple, explicit structure
|
54
|
-
return urlunsplit(self.split())
|
70
|
+
def _as_dict_(self) -> dict[str, object]:
|
55
71
|
return {
|
56
72
|
"scheme": self.scheme,
|
57
73
|
"authority": self.authority,
|
@@ -61,30 +77,29 @@ class URI:
|
|
61
77
|
"value": str(self),
|
62
78
|
}
|
63
79
|
|
64
|
-
# Accepts {'resource': '...'} or a plain string
|
80
|
+
# Accepts {'resource': '...'} or a plain string
|
65
81
|
@classmethod
|
66
|
-
def from_jsonish(cls, data:
|
82
|
+
def from_jsonish(cls, data: str | Mapping[str, object]) -> URI:
|
67
83
|
if isinstance(data, str):
|
68
84
|
return cls.from_url(data)
|
69
85
|
if isinstance(data, Mapping):
|
70
86
|
raw = data.get("resource") or data.get("value") or ""
|
71
|
-
if raw:
|
87
|
+
if isinstance(raw, str) and raw:
|
72
88
|
return cls.from_url(raw)
|
73
89
|
raise ValueError(f"Cannot build URI from: {data!r}")
|
74
90
|
|
75
91
|
# ---------- functional updaters ----------
|
76
|
-
def with_scheme(self, scheme: str) ->
|
77
|
-
def with_authority(self, authority: str) ->
|
78
|
-
def with_path(self, path: str, *, join: bool = False) ->
|
92
|
+
def with_scheme(self, scheme: str) -> URI: return self.replace(scheme=scheme)
|
93
|
+
def with_authority(self, authority: str) -> URI: return self.replace(authority=authority)
|
94
|
+
def with_path(self, path: str, *, join: bool = False) -> URI:
|
79
95
|
new_path = (self.path.rstrip("/") + "/" + path.lstrip("/")) if join else path
|
80
96
|
return self.replace(path=new_path)
|
81
|
-
def with_fragment(self, fragment: str | None) ->
|
97
|
+
def with_fragment(self, fragment: str | None) -> URI:
|
82
98
|
return self.replace(fragment=(fragment or ""))
|
83
|
-
def without_fragment(self) ->
|
84
|
-
def with_query(self, query:
|
85
|
-
|
86
|
-
|
87
|
-
def add_query_params(self, params: Mapping[str, Union[str, Iterable[str]]]) -> "URI":
|
99
|
+
def without_fragment(self) -> URI: return self.replace(fragment="")
|
100
|
+
def with_query(self, query: QueryLike) -> URI:
|
101
|
+
return self.replace(query=_encode_query(query))
|
102
|
+
def add_query_params(self, params: Mapping[str, Union[str, Iterable[str]]]) -> URI:
|
88
103
|
existing = parse_qsl(self.query, keep_blank_values=True)
|
89
104
|
for k, v in params.items():
|
90
105
|
if isinstance(v, str):
|
@@ -95,8 +110,9 @@ class URI:
|
|
95
110
|
return self.replace(query=urlencode(existing, doseq=True))
|
96
111
|
|
97
112
|
# ---------- helpers ----------
|
98
|
-
def replace(self, **kwargs) ->
|
99
|
-
|
113
|
+
def replace(self, **kwargs) -> URI:
|
114
|
+
cls = type(self)
|
115
|
+
return cls(
|
100
116
|
scheme=kwargs.get("scheme", self.scheme or _DEFAULT_SCHEME),
|
101
117
|
authority=kwargs.get("authority", self.authority),
|
102
118
|
path=kwargs.get("path", self.path),
|
gedcom_x-0.5.7.dist-info/RECORD
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
gedcomx/Address.py,sha256=HPh-YZEkcxhzGGUxDWrrmAvKsyL__RthMJl6vXcMA80,4865
|
2
|
-
gedcomx/Agent.py,sha256=u7zIr6SNYREDhceOkj09uS6zjl3RXbix5QlQB7mxjz4,8844
|
3
|
-
gedcomx/Attribution.py,sha256=JESWw3U_momYDkQ6vknvaAW9DdIWwRRdQJwdD0UPAEI,3381
|
4
|
-
gedcomx/Conclusion.py,sha256=9VWEu6lphB0Y8L3YH3t2QcXt5xW5NdnSKXpa9eujU30,8781
|
5
|
-
gedcomx/Converter.py,sha256=aM8i8qIhzc9pJ3k75hFQSBkeRax2brucTefPYxENQHI,50968
|
6
|
-
gedcomx/Coverage.py,sha256=VR_lQDUgJ9rI-hHzOA8GxS_I1C_Du_3SvG57dzulXNI,1361
|
7
|
-
gedcomx/Date.py,sha256=I11mm2YEqUenxt-skphCHO-GWKPQrpMomOL_Utapzy0,2344
|
8
|
-
gedcomx/Document.py,sha256=DjL3HwpyCF9cOCdvpvrLu4Mxp7ZIYT1AkQEJGB3TSjY,2967
|
9
|
-
gedcomx/Event.py,sha256=j34nM5pZcmfSthdI87be6cGKGemHJky5xVaajmeSVK4,13321
|
10
|
-
gedcomx/EvidenceReference.py,sha256=WXZpmcKzwb3lYQmGVf-TY2IsbNG3fIInPY1khRjtOSg,348
|
11
|
-
gedcomx/Exceptions.py,sha256=0OdPM3euhBMgX8o61ZwPuKeN8zPuSuuDcSBFflVGFqk,587
|
12
|
-
gedcomx/ExtensibleEnum.py,sha256=DftCZLMBNul3C9hwh-rf0GE3SVdvylvyd5mt7bX_l6o,6535
|
13
|
-
gedcomx/Fact.py,sha256=r1Ct96moCIXCAd24Ho2aLCI12PGH2AoKIyjACtJT7go,24458
|
14
|
-
gedcomx/Gedcom.py,sha256=l_BuLBynQacDtpLjhs2Afrabfiqt2Opoo_5_7myI7Z4,1709
|
15
|
-
gedcomx/Gedcom5x.py,sha256=lbIEvK3h2b-IJoO9Fgmq_qc3nItzB_qTonqLafxYfXk,23137
|
16
|
-
gedcomx/GedcomX.py,sha256=p0PeJqS4bKXGsXY487JOdGNK4vIwARX7YeTDIqPeNNw,19000
|
17
|
-
gedcomx/Gender.py,sha256=vBkYJqhf1mN58Wrw9MvhbVJDNw1pM4-ktFW6mYja_Rw,2285
|
18
|
-
gedcomx/Group.py,sha256=VNI_cI_-YnJ9cHzwMmHD8qwDNMe89kEocPuQ67rwStA,1606
|
19
|
-
gedcomx/Identifier.py,sha256=1uhNO4Ll-_xLyVM-IYdywz7wTEwHEH44xx4JQId9F9c,8491
|
20
|
-
gedcomx/Logging.py,sha256=vBDOjawVXc4tCge1laYjy6_2Ves-fnGzG0m6NnLZejE,624
|
21
|
-
gedcomx/LoggingHub.py,sha256=f4z1r6WL3TdL1kg1eaCfCk7XEn9epCH5zUCXd1OT4mc,7793
|
22
|
-
gedcomx/Mutations.py,sha256=wtmoaiVS9Vw7Dzpfq34VQETBAVFvQnIlD5rbtSTopfs,6314
|
23
|
-
gedcomx/Name.py,sha256=esVS1nqvo5F5ggKQhnW4DYvww_hjXQF91oayLGG4LuU,18661
|
24
|
-
gedcomx/Note.py,sha256=hCwLDJYEQ-kR1-3rknHTx_nLq6ytBzi23sQukD8HHlg,2547
|
25
|
-
gedcomx/OnlineAccount.py,sha256=P24o98IXo_8XQoICYZPgALjdzS0q8t2l4DU3Od9KxyI,291
|
26
|
-
gedcomx/Person.py,sha256=tygyfHWqhbrH3z7TKPAyjJK14M7qu04mCGgXMgi7J_g,8057
|
27
|
-
gedcomx/PlaceDescription.py,sha256=oUih1T8jsUVcxdevPGuFpQOc34t4HoYc9ldr87ZH0IA,5591
|
28
|
-
gedcomx/PlaceReference.py,sha256=20HmaQUAlPrTjsra38j22NBsNqDBnvHZ5NuP6YzlizA,2111
|
29
|
-
gedcomx/Qualifier.py,sha256=iivgraoayJTYZUlkbSAKPzQ7msPYpBvTlmsEsXxz3zw,1778
|
30
|
-
gedcomx/Relationship.py,sha256=Et_72kRohBmWpWra2fS_-ha0YvEDZTZqkoD8HrerQW0,3693
|
31
|
-
gedcomx/Resource.py,sha256=HIOoKlVZtEp13j7sn4xkqRwRrYadqpiXswKpdJRe2Ns,2674
|
32
|
-
gedcomx/Serialization.py,sha256=ZIECHrG-PRZuS2SHGtfv1eg_2Rt-PHPbz4ivF7eH4p8,34041
|
33
|
-
gedcomx/SourceCitation.py,sha256=aW-lEb7bT9QU49GiBjJppFMBvtisR6fhVVuXjr5y4vQ,742
|
34
|
-
gedcomx/SourceDescription.py,sha256=yUBJXsn64OL0MAWSc3QPWrLt8RKYa1omGGp0FOLo-n8,14929
|
35
|
-
gedcomx/SourceReference.py,sha256=d5kNxqalCFlbRWD2kSJAMCexOrH_s1oXu9y_RUmCGa0,5189
|
36
|
-
gedcomx/Subject.py,sha256=2xPZiNjZDYSwLkloUPKDRa7F8_ql5zYMFJLS_9ayUtk,2609
|
37
|
-
gedcomx/TextValue.py,sha256=6B0wMxL0nigFNzhXZDhbTONvFGbnM2t2NcDZiZuu4Zw,1112
|
38
|
-
gedcomx/TopLevelTypeCollection.py,sha256=nvTO6GwFwEZk9jX4fVqhy75ygsshomNb20tnlExKqyY,1495
|
39
|
-
gedcomx/Translation.py,sha256=TZZTfuzjsx2glnUJwPrs0TrrShvLjygYUQ6cxhZXnMc,61398
|
40
|
-
gedcomx/URI.py,sha256=AuIECTwHUkp-2z0Q9iuA3Me1PiawFKZKCR4sAA64FE8,4270
|
41
|
-
gedcomx/Zip.py,sha256=lBxcv-Vip45884EHj56wZJJ5I36Q38UuHUidDxQBoS8,14
|
42
|
-
gedcomx/__init__.py,sha256=DfKVj46fhYtpM45NZnK333iDpt2WQ1XJXWsLcVCARNo,1704
|
43
|
-
gedcomx/Extensions/__init__.py,sha256=MQzi_whzlxiLiknUNh10hG8OVrNqJE38l6n-AwCssx8,24
|
44
|
-
gedcomx/Extensions/rs10/__init__.py,sha256=nSHoZiD8hsCAyE-KyRTuWSLqSJSFh12kSz7hqilAMps,26
|
45
|
-
gedcomx/Extensions/rs10/rsLink.py,sha256=uVmdTJl_atheO-pRpP3a5uUrazudf4R_tZvWSZIQdNk,4353
|
46
|
-
gedcom_x-0.5.7.dist-info/METADATA,sha256=bLAwaXozcWmQ0blAY2igIeEa3Lh-gQjX7NiPHuGESNs,4332
|
47
|
-
gedcom_x-0.5.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
48
|
-
gedcom_x-0.5.7.dist-info/top_level.txt,sha256=smVBF4nxSU-mzCd6idtRYTbYjPICMMi8pTqewEmqF8Y,8
|
49
|
-
gedcom_x-0.5.7.dist-info/RECORD,,
|
gedcomx/Group.py
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
from enum import Enum
|
2
|
-
from typing import List, Optional
|
3
|
-
|
4
|
-
from .Attribution import Attribution
|
5
|
-
from .Conclusion import ConfidenceLevel
|
6
|
-
from .Date import Date
|
7
|
-
from .EvidenceReference import EvidenceReference
|
8
|
-
from .Identifier import Identifier
|
9
|
-
from .Note import Note
|
10
|
-
from .PlaceReference import PlaceReference
|
11
|
-
from .SourceReference import SourceReference
|
12
|
-
from .Resource import Resource
|
13
|
-
|
14
|
-
from .TextValue import TextValue
|
15
|
-
from .Subject import Subject
|
16
|
-
|
17
|
-
class GroupRoleType(Enum):
|
18
|
-
def __init__(self) -> None:
|
19
|
-
super().__init__()
|
20
|
-
|
21
|
-
class GroupRole:
|
22
|
-
identifier = 'http://gedcomx.org/v1/GroupRole'
|
23
|
-
version = 'http://gedcomx.org/conceptual-model/v1'
|
24
|
-
|
25
|
-
def __init__(self, person: Resource,type: Optional[Enum], date: Optional[Date],details: Optional[str]) -> None:
|
26
|
-
pass
|
27
|
-
|
28
|
-
class Group(Subject):
|
29
|
-
identifier = 'http://gedcomx.org/v1/Group'
|
30
|
-
version = 'http://gedcomx.org/conceptual-model/v1'
|
31
|
-
|
32
|
-
def __init__(self, id: str | None, lang: str | None, sources: SourceReference | None, analysis: Resource | None, notes: Note | None, confidence: ConfidenceLevel | None, attribution: Attribution | None, extracted: bool | None, evidence: List[EvidenceReference] | None, media: List[SourceReference] | None, identifiers: List[Identifier] | None,
|
33
|
-
names: TextValue,
|
34
|
-
date: Optional[Date],
|
35
|
-
place: Optional[PlaceReference],
|
36
|
-
roles: Optional[List[GroupRole]]) -> None:
|
37
|
-
super().__init__(id, lang, sources, analysis, notes, confidence, attribution, extracted, evidence, media, identifiers)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
/gedcomx/{Gedcom.py → gedcom.py}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|