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.
Files changed (54) hide show
  1. {gedcom_x-0.5.7.dist-info → gedcom_x-0.5.8.dist-info}/METADATA +1 -1
  2. gedcom_x-0.5.8.dist-info/RECORD +56 -0
  3. gedcomx/Extensions/rs10/rsLink.py +3 -3
  4. gedcomx/TopLevelTypeCollection.py +1 -1
  5. gedcomx/__init__.py +43 -42
  6. gedcomx/{Address.py → address.py} +1 -1
  7. gedcomx/{Agent.py → agent.py} +32 -16
  8. gedcomx/{Attribution.py → attribution.py} +3 -3
  9. gedcomx/{Conclusion.py → conclusion.py} +26 -9
  10. gedcomx/{Converter.py → converter.py} +54 -39
  11. gedcomx/{Coverage.py → coverage.py} +23 -5
  12. gedcomx/{Date.py → date.py} +1 -1
  13. gedcomx/{Document.py → document.py} +26 -8
  14. gedcomx/{Event.py → event.py} +13 -13
  15. gedcomx/{EvidenceReference.py → evidence_reference.py} +2 -2
  16. gedcomx/{Fact.py → fact.py} +31 -23
  17. gedcomx/{Gedcom5x.py → gedcom5x.py} +1 -1
  18. gedcomx/gedcom7/Exceptions.py +9 -0
  19. gedcomx/gedcom7/Gedcom7.py +160 -0
  20. gedcomx/gedcom7/GedcomStructure.py +94 -0
  21. gedcomx/gedcom7/Specification.py +347 -0
  22. gedcomx/gedcom7/__init__.py +26 -0
  23. gedcomx/gedcom7/g7interop.py +205 -0
  24. gedcomx/gedcom7/logger.py +19 -0
  25. gedcomx/{GedcomX.py → gedcomx.py} +14 -13
  26. gedcomx/{Gender.py → gender.py} +25 -11
  27. gedcomx/group.py +63 -0
  28. gedcomx/{Identifier.py → identifier.py} +4 -4
  29. gedcomx/{Mutations.py → mutations.py} +49 -25
  30. gedcomx/{Name.py → name.py} +15 -15
  31. gedcomx/{Note.py → note.py} +2 -2
  32. gedcomx/{OnlineAccount.py → online_account.py} +1 -1
  33. gedcomx/{Person.py → person.py} +18 -16
  34. gedcomx/{PlaceDescription.py → place_description.py} +18 -16
  35. gedcomx/{PlaceReference.py → place_reference.py} +4 -4
  36. gedcomx/{Qualifier.py → qualifier.py} +1 -1
  37. gedcomx/{Relationship.py → relationship.py} +30 -12
  38. gedcomx/{Resource.py → resource.py} +2 -2
  39. gedcomx/{Serialization.py → serialization.py} +31 -32
  40. gedcomx/{SourceDescription.py → source_description.py} +16 -16
  41. gedcomx/{SourceReference.py → source_reference.py} +7 -7
  42. gedcomx/{Subject.py → subject.py} +26 -8
  43. gedcomx/{Translation.py → translation.py} +1 -1
  44. gedcomx/{URI.py → uri.py} +42 -26
  45. gedcom_x-0.5.7.dist-info/RECORD +0 -49
  46. gedcomx/Group.py +0 -37
  47. {gedcom_x-0.5.7.dist-info → gedcom_x-0.5.8.dist-info}/WHEEL +0 -0
  48. {gedcom_x-0.5.7.dist-info → gedcom_x-0.5.8.dist-info}/top_level.txt +0 -0
  49. /gedcomx/{Exceptions.py → exceptions.py} +0 -0
  50. /gedcomx/{ExtensibleEnum.py → extensible_enum.py} +0 -0
  51. /gedcomx/{Gedcom.py → gedcom.py} +0 -0
  52. /gedcomx/{LoggingHub.py → logging_hub.py} +0 -0
  53. /gedcomx/{SourceCitation.py → source_citation.py} +0 -0
  54. /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 .Address import Address
32
- from .Agent import Agent
33
- from .Attribution import Attribution
34
- from .Conclusion import ConfidenceLevel
35
- from .Date import Date
36
- from .Document import Document, DocumentType, TextType
37
- from .EvidenceReference import EvidenceReference
38
- from .Event import Event, EventType, EventRole, EventRoleType
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 .Fact import Fact, FactType, FactQualifier
41
- from .Gender import Gender, GenderType
42
- from .Identifier import IdentifierList, Identifier
43
- from .LoggingHub import hub, ChannelConfig
44
- from .Name import Name, NameType, NameForm, NamePart, NamePartType, NamePartQualifier
45
- from .Note import Note
46
- from .OnlineAccount import OnlineAccount
47
- from .Person import Person
48
- from .PlaceDescription import PlaceDescription
49
- from .PlaceReference import PlaceReference
50
- from .Qualifier import Qualifier
51
- from .Relationship import Relationship, RelationshipType
52
- from .Resource import Resource
53
- from .SourceDescription import SourceDescription, ResourceType, SourceCitation, Coverage
54
- from .SourceReference import SourceReference
55
- from .TextValue import TextValue
56
- from .URI import URI
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.Resource import Resource
485
- from gedcomx.URI import URI
486
- from gedcomx.Identifier import IdentifierList
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, Dict, Any
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 .Document import Document
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 .Agent import Agent
31
- from .Attribution import Attribution
32
- from .Coverage import Coverage
33
- from .Date import Date
34
- from .Identifier import Identifier, IdentifierList, make_uid
35
- from .Note import Note
36
- from .Resource import Resource
37
- from .SourceCitation import SourceCitation
38
- from .SourceReference import SourceReference
39
- from .TextValue import TextValue
40
- from .URI import URI
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 .Serialization import Serialization
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 .SourceDescription import SourceDescription
5
+ from .source_description import SourceDescription
6
6
 
7
- from .Attribution import Attribution
8
- from .Qualifier import Qualifier
7
+ from .attribution import Attribution
8
+ from .qualifier import Qualifier
9
9
 
10
- from .Resource import Resource
10
+ from .resource import Resource
11
11
 
12
- from .URI import URI
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 .Serialization import Serialization
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 .Serialization import Serialization
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
- from .Attribution import Attribution
5
- from .Conclusion import Conclusion, ConfidenceLevel
6
- from .EvidenceReference import EvidenceReference
7
- from .Identifier import Identifier, IdentifierList
8
- from .Note import Note
10
+ Created: 2025-08-25
11
+ Updated:
12
+ - 2025-08-31:
13
+
14
+ ======================================================================
15
+ """
9
16
 
10
- from .SourceReference import SourceReference
11
- from .Resource import Resource
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 .Serialization import Serialization
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
@@ -1,5 +1,5 @@
1
1
  from . import *
2
- from .Mutations import GedcomXEventOrFact
2
+ from .mutations import GedcomXEventOrFact
3
3
  import re
4
4
  '''
5
5
  {'type': 'Object | Objects | Propertyof',
@@ -1,11 +1,25 @@
1
1
  from __future__ import annotations
2
2
  from dataclasses import dataclass, field
3
- from typing import Mapping, Optional, Union, Iterable, Tuple
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
- @dataclass(frozen=False, slots=True)
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) -> "URI":
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) -> "URI":
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: Optional[str] = None,
45
+ scheme: str | None = None,
32
46
  authority: str = "",
33
47
  path: str = "",
34
- query: Union[str, Mapping[str, str], Iterable[Tuple[str, str]]] = "",
35
- fragment: str = ""
36
- ) -> "URI":
37
- q = query if isinstance(query, str) else urlencode(query, doseq=True)
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, mirroring your original
80
+ # Accepts {'resource': '...'} or a plain string
65
81
  @classmethod
66
- def from_jsonish(cls, data: Union[str, Mapping[str, str]]) -> "URI":
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) -> "URI": return self.replace(scheme=scheme)
77
- def with_authority(self, authority: str) -> "URI": return self.replace(authority=authority)
78
- def with_path(self, path: str, *, join: bool = False) -> "URI":
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) -> "URI":
97
+ def with_fragment(self, fragment: str | None) -> URI:
82
98
  return self.replace(fragment=(fragment or ""))
83
- def without_fragment(self) -> "URI": return self.replace(fragment="")
84
- def with_query(self, query: Union[str, Mapping[str, str], Iterable[Tuple[str, str]]]) -> "URI":
85
- q = query if isinstance(query, str) else urlencode(query, doseq=True)
86
- return self.replace(query=q)
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) -> "URI":
99
- return URI(
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),
@@ -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
File without changes
File without changes