Python LMF library
 All Classes Namespaces Files Functions Variables
paradigm.py
Go to the documentation of this file.
1 #! /usr/bin/env python
2 
3 """! @package morphosyntax
4 """
5 
6 from utils.attr import check_attr_type, check_attr_range
7 from common.range import paradigmLabel_range
8 from config.mdf import pdl_paradigmLabel
9 
10 class Paradigm():
11  """! Paradigm is a class representing a morphological paradigm.
12  """
13  def __init__(self):
14  """! @brief Constructor.
15  Paradigm instances are owned by Sense.
16  @return A Paradigm instance.
17  """
18  self.paradigmLabel = None
19  self.paradigm = None
20  self.language = None
21  self.morphology = None
22  # LexicalEntry lexeme
23  self.targets = None
24  ## Pointer to an existing LexicalEntry
25  # There is zero or one LexicalEntry pointer per Paradigm instance
26  self.__lexical_entry = None
27 
28  def __del__(self):
29  """! @brief Destructor.
30  """
31  # Decrement the reference count on pointed objects
32  self.__lexical_entry = None
33 
34  def set_paradigmLabel(self, paradigm_label):
35  """! @brief Set paradigm label.
36  @param paradigm_label The paradigm label to set.
37  @return Paradigm instance.
38  """
39  error_msg = "Paradigm label value '%s' is not defined" % str(paradigm_label)
40  # Check paradigm label type
41  check_attr_type(paradigm_label, [str, unicode], error_msg)
42  # Check range of paradigm label value (also try with converted value from MDF to LMF)
43  value = check_attr_range(str(paradigm_label), paradigmLabel_range, error_msg, mapping=pdl_paradigmLabel)
44  # Do not restrict range of paradigm label value
45  if value is None:
46  value = paradigm_label
47  self.paradigmLabel = value
48  return self
49 
50  def get_paradigmLabel(self):
51  """! @brief Get paradigm label.
52  @return Paradigm attribute 'paradigmLabel'.
53  """
54  return self.paradigmLabel
55 
56  def set_paradigm(self, paradigm):
57  """! @brief Set paradigm.
58  @param paradigm The paradigm to set.
59  @return Paradigm instance.
60  """
61  self.paradigm = paradigm
62  return self
63 
64  def get_paradigm(self, language=None):
65  """! @brief Get paradigm.
66  @param language Language filter.
67  @return Paradigm attribute 'paradigm'.
68  """
69  if language is None:
70  return self.paradigm
71  if language == self.get_language():
72  return self.paradigm
73 
74  def set_language(self, language):
75  """! @brief Set language of the paradigm.
76  @param language The paradigm language to set.
77  @return Paradigm instance.
78  """
79  self.language = language
80  return self
81 
82  def get_language(self):
83  """! @brief Get paradigm language.
84  @return Paradigm attribute 'language'.
85  """
86  return self.language
87 
88  def set_morphology(self, morphology):
89  """! @brief Set morphology.
90  @param morphology The morphology to set.
91  @return Paradigm instance.
92  """
93  self.morphology = morphology
94  return self
95 
96  def get_morphology(self):
97  """! @brief Get morphology.
98  @return Paradigm attribute 'morphology'.
99  """
100  return self.morphology
101 
102  def get_lexical_entry(self):
103  """! @brief Get pointed lexical entry.
104  @return Paradigm private attribute '__lexical_entry'.
105  """
106  return self.__lexical_entry
def check_attr_type
Check that attribute value is of specified type.
Definition: attr.py:9
def check_attr_range
Check that attribute value is in specified range.
Definition: attr.py:23
__lexical_entry
Pointer to an existing LexicalEntry There is zero or one LexicalEntry pointer per Paradigm instance...
Definition: paradigm.py:26
def get_lexical_entry
Get pointed lexical entry.
Definition: paradigm.py:102
Paradigm is a class representing a morphological paradigm.
Definition: paradigm.py:10
def set_language
Set language of the paradigm.
Definition: paradigm.py:74
def get_language
Get paradigm language.
Definition: paradigm.py:82