rara-tools 0.6.10__py3-none-any.whl → 0.6.12__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.

Potentially problematic release.


This version of rara-tools might be problematic. Click here for more details.

@@ -34,8 +34,10 @@ class Models:
34
34
  TIME_KEYWORDS_ET = "Ajamärksõnad (ET)"
35
35
  TIME_KEYWORDS_EN = "Ajamärksõnad (EN)"
36
36
 
37
- UDK = "UDK"
38
- UDC = "UDC"
37
+ UDK_ET = "UDK (ET)"
38
+ UDK_EN = "UDK (EN)"
39
+ UDC_ET = "UDC (ET)"
40
+ UDC_EN = "UDC (EN)"
39
41
 
40
42
  DOMAIN_KEYWORDS_ET = "Märksõnade valdkonnad (ET)"
41
43
  DOMAIN_KEYWORDS_EN = "Märksõnade valdkonnad (EN)"
@@ -1,13 +1,14 @@
1
1
  from typing import List, NoReturn, Tuple
2
2
  from abc import abstractmethod
3
3
  from pymarc.record import Record
4
+ from pymarc.marcjson import JSONHandler
4
5
  from rara_tools.constants.parsers import GeneralMarcIDs
5
6
 
6
7
 
7
8
  class BaseRecord:
8
9
  """ Implements general logic of parsing MARC files.
9
10
  """
10
- def __init__(self, record: Record, add_variations: bool = False) -> NoReturn:
11
+ def __init__(self, record: Record | dict, add_variations: bool = False) -> NoReturn:
11
12
  """ Initializes BaseRecord object.
12
13
 
13
14
  Parameters
@@ -21,8 +22,8 @@ class BaseRecord:
21
22
  via rara-norm-linker, it is necessary to enable this.
22
23
  """
23
24
  self.add_variations: bool = add_variations
24
- self.__record_mrc: Record = record
25
- self.__record_dict: dict = record.as_dict()["fields"]
25
+ self.__record_marc: Record = self._get_record_marc(record)
26
+ self.__record_dict: dict = self.marc_record.as_dict()["fields"]
26
27
 
27
28
  self.__id_field_id: List[str] = GeneralMarcIDs.ID
28
29
  self.__id_source_field_id: List[str] = GeneralMarcIDs.ID_SOURCE
@@ -30,6 +31,13 @@ class BaseRecord:
30
31
  self.__identifier: str = ""
31
32
  self.__identifier_source: str = ""
32
33
 
34
+ def _get_record_marc(self, record: Record | dict) -> Record:
35
+ """ Converts dict-type records into pymarc.Record objects.
36
+ """
37
+ if isinstance(record, dict):
38
+ record = JSONHandler().elements([record])[0]
39
+ return record
40
+
33
41
  def get_values(self,
34
42
  marc_ids: List[str],
35
43
  subfield_id: str | List[str] = "",
@@ -101,7 +109,7 @@ class BaseRecord:
101
109
 
102
110
  @property
103
111
  def marc_record(self) -> Record:
104
- return self.__record_mrc
112
+ return self.__record_marc
105
113
 
106
114
  @property
107
115
  def marc_json_record(self) -> dict:
@@ -1,13 +1,18 @@
1
1
  from typing import List, NoReturn
2
2
  from pymarc.record import Record
3
3
  from rara_tools.parsers.marc_records.base_record import BaseRecord
4
- from rara_tools.constants.parsers import OrganizationMarcIDs
4
+ from rara_tools.constants.parsers import OrganizationMarcIDs, LOGGER
5
5
  import regex as re
6
6
  import json
7
7
 
8
8
  # TODO: indikaatorid ind1 väljadel 100 ja 400?
9
+ """
10
+ |c asutuse konverentsi toimumise koht (MK)
9
11
 
12
+ |d asutuse konverentsi toimumise aeg (K)
10
13
 
14
+ |n asutuse konverentsi järjenumber (K)
15
+ """
11
16
  class OrganizationRecord(BaseRecord):
12
17
  """ Generates a simplified organization JSON record
13
18
  from a pymarc MARC record.
@@ -38,9 +43,8 @@ class OrganizationRecord(BaseRecord):
38
43
  self.__name: str = ""
39
44
  self.__original_name: dict = {}
40
45
  self.__name_specification: str = ""
41
- self.__life_years: str = ""
42
- self.__birth_year: int = -1
43
- self.__death_year: int = -1
46
+ self.__dates: str = ""
47
+ self.__location: str = ""
44
48
  self.__name_variations: List[str] = []
45
49
  self.__source: str = ""
46
50
  self.__description: str = ""
@@ -82,7 +86,10 @@ class OrganizationRecord(BaseRecord):
82
86
  "b": self._clean_value(values[0].get("b", ""))
83
87
  }
84
88
  else:
85
- print(self.marc_record)
89
+ LOGGER.info(
90
+ f"Could not parse subfields 'a' and/or 'b' from " \
91
+ f"field {self.__name_field_id}. Record:\n{self.marc_record}"
92
+ )
86
93
  return self.__original_name
87
94
 
88
95
  @property
@@ -91,6 +98,28 @@ class OrganizationRecord(BaseRecord):
91
98
  self.__name = self._merge_and_clean(self.original_name, ["a", "b"])
92
99
  return self.__name
93
100
 
101
+ @property
102
+ def dates(self) -> str:
103
+ if not self.__dates:
104
+ values = self.get_values(
105
+ marc_ids=self.__name_field_id,
106
+ subfield_id=["d"]
107
+ )
108
+ if values:
109
+ self.__dates = self.__clean_value(values[0])
110
+ return self.__dates
111
+
112
+ @property
113
+ def location(self) -> str:
114
+ if not self.__location:
115
+ values = self.get_values(
116
+ marc_ids=self.__name_field_id,
117
+ subfield_id=["c"]
118
+ )
119
+ if values:
120
+ self.__location = self.__clean_value(values[0])
121
+ return self.__location
122
+
94
123
  @property
95
124
  def acronyms(self) -> List[str]:
96
125
  if not self.__acronyms:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rara-tools
3
- Version: 0.6.10
3
+ Version: 0.6.12
4
4
  Summary: Tools to support Kata's work.
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -8,7 +8,7 @@ rara_tools/task_reporter.py,sha256=WCcZts9dAUokPc4vbrG3-lNAFLnWaMgE3b3iaUB7mr8,3
8
8
  rara_tools/utils.py,sha256=9vSbmuWYU5ydr4lXBKlUKa0xzDccFsaJv4T-XwgUfuY,2578
9
9
  rara_tools/constants/__init__.py,sha256=r78laM9vyRDAvzDhPvzDlhaX6qPwUUBBtwf1WosrW3o,27
10
10
  rara_tools/constants/digitizer.py,sha256=A7FfqqEB4hGJ9t3z8gTFK7hkzCxz44rCOSWx6Pzvwjs,548
11
- rara_tools/constants/general.py,sha256=IWAO85_m5ilHxgkf4NB8vYIKRqmT7THNeF5hh38eTeo,997
11
+ rara_tools/constants/general.py,sha256=jE1aIir_eKbka_q1iCJWRtmyz_xpnTPntbshiWo9eTA,1061
12
12
  rara_tools/constants/language_evaluator.py,sha256=3sCSaoS-zXQRY0vJ7UUMuZqbtYQD_quVVbdpgvJjE7I,124
13
13
  rara_tools/constants/linker.py,sha256=TQaigi7AUNOqmQPPz3hM8_xXgofrhoQ1taln79LhXQg,550
14
14
  rara_tools/constants/meta_extractor.py,sha256=adYH8cQqH0ZWYO7clGMiObclXRTGsxWgk3pC1oiHxHE,242
@@ -26,16 +26,16 @@ rara_tools/parsers/marc_parsers/location_parser.py,sha256=dSU9dQoGV5z0ajhLI1bn3A
26
26
  rara_tools/parsers/marc_parsers/organization_parser.py,sha256=faqQEYsut_ZF3kX1QycTnbRIqC7W8sULxmG75ICfya8,1629
27
27
  rara_tools/parsers/marc_parsers/person_parser.py,sha256=iMycHSlgfvgB0axE_rneB5sImVlc920FcBnTsUsmVW4,1582
28
28
  rara_tools/parsers/marc_parsers/title_parser.py,sha256=uZiYb_aZWzv_xLEBSZmFt2vN6UIauNSFRCkNG_ZKL10,1570
29
- rara_tools/parsers/marc_records/base_record.py,sha256=05XW1oQ5fCJWxBpmBFwGVGLChGE0P605HNUdvXGiif8,4330
29
+ rara_tools/parsers/marc_records/base_record.py,sha256=yllX2ArjBm9PfUnH6dk3__Rb2LQuEGCYqZGVKBzqSl0,4673
30
30
  rara_tools/parsers/marc_records/ems_record.py,sha256=B2YZLEeDd-GmmYqxhczbMsSEB7-x6ZLjB8OeDnzOxww,9376
31
- rara_tools/parsers/marc_records/organization_record.py,sha256=HmDqAqAL_Tw7ppEsS5HfogrfNuQMNChCkrdPu6K-SUE,9141
31
+ rara_tools/parsers/marc_records/organization_record.py,sha256=i1bYVxHkC7Gc7tG7on4LJ83skI0gLiKsU1QD9gSi8Mo,10044
32
32
  rara_tools/parsers/marc_records/person_record.py,sha256=AtGESwFmN5YvrBES0BsfTgOZbroB4l0SuFRznumfmJA,7867
33
33
  rara_tools/parsers/marc_records/title_record.py,sha256=XrtJ4gj7wzSaGxNaPtPuawmqqkXsVX5HAAKfXTSo4mA,6855
34
34
  rara_tools/parsers/tools/entity_normalizers.py,sha256=VyCy_NowCLpOsL0luQ55IW-Qi-J5oBH0Ofzr7HRFBhM,8949
35
35
  rara_tools/parsers/tools/marc_converter.py,sha256=LgSHe-7n7aiDrw2bnsB53r3fXTRFjZXTwBYfTpL0pfs,415
36
36
  rara_tools/parsers/tools/russian_transliterator.py,sha256=5ZU66iTqAhr7pmfVqXPAI_cidF43VqqmuN4d7H4_JuA,9770
37
- rara_tools-0.6.10.dist-info/licenses/LICENSE.md,sha256=hkZVnIZll7e_KNEQzeY94Y9tlzVL8iVZBTMBvDykksU,35142
38
- rara_tools-0.6.10.dist-info/METADATA,sha256=QL2aFQK7LcVwrZp-EDLqNFIVlmLJQqPdPYKyv2gqHSc,4080
39
- rara_tools-0.6.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
40
- rara_tools-0.6.10.dist-info/top_level.txt,sha256=JwfB5b8BAtW5OFKRln2AQ_WElTRyIBM4nO0FKN1cupY,11
41
- rara_tools-0.6.10.dist-info/RECORD,,
37
+ rara_tools-0.6.12.dist-info/licenses/LICENSE.md,sha256=hkZVnIZll7e_KNEQzeY94Y9tlzVL8iVZBTMBvDykksU,35142
38
+ rara_tools-0.6.12.dist-info/METADATA,sha256=N-5ZB05VDM0rjb6pxV88lD7jIdwYl1FxRf84E05-Wr0,4080
39
+ rara_tools-0.6.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
40
+ rara_tools-0.6.12.dist-info/top_level.txt,sha256=JwfB5b8BAtW5OFKRln2AQ_WElTRyIBM4nO0FKN1cupY,11
41
+ rara_tools-0.6.12.dist-info/RECORD,,