Ejemplo n.º 1
0
    def __init__(self,
                 age: Union[int, float, str] = 0,
                 kinder_garden: str = '0',
                 sfo: str = '0',
                 pregnant: str = '0'):
        """
        Constructor / Instantiate the class

        Parameters
        ----------
        age             : int, float, str
                          age of person
        kinder_garden   : str
                          kids in kinder garden, '1' true or '0' false
        sfo             : str
                          After school programme, '1' true or '0' false
        pregnant        : str
                          Pregnant female, '1' true or '0' false

        """
        try:
            super().__init__('k', age, kinder_garden, sfo)
            Assertor.assert_data_types([age, kinder_garden, sfo],
                                       [(float, int, str), str, str])
            Assertor.assert_arguments({pregnant: ['pregnant', ('0', '1')]})

            if Person.sifo_age(age) not in ('19', '50') and pregnant == '1':
                raise ValueError("pregnancy at this age is not possible")

            self._gravid = pregnant
            LOGGER.success("created '{}', with id: [{}]".format(
                self.__class__.__name__, self.id_str))
        except Exception as female_exception:
            LOGGER.exception(female_exception)
            raise female_exception
Ejemplo n.º 2
0
    def sektor(self, sekt: list):
        """
        sektor setter

        """
        Assertor.assert_data_types([sekt], [list])
        Assertor.assert_arguments([sekt], [{"sektor": (["04b"], ["04a"])}])
        self._sektor = sekt
Ejemplo n.º 3
0
    def test_assert_arguments(correct_argument):
        """
        Test the assert_arguments() method, i.e. the object in dictionary of
        {object: [name, possible]} to see if 'object' is in 'possible' list. Raises
        ValueError if not match.

        """
        invalid_argument = '2'
        with pt.raises(ValueError):
            Assertor.assert_arguments(
                {invalid_argument: ['invalid_argument', correct_argument]})
Ejemplo n.º 4
0
    def sfo(self, _sfo: str):
        """
        after-school/sfo program setter

        Parameters
        ----------
        s       : str
                  new after-school/sfo str

        """
        Assertor.assert_data_types([_sfo], [str])
        Assertor.assert_arguments({_sfo: ['kinder_garden:', ('0', '1')]})
        self._sfo = _sfo
Ejemplo n.º 5
0
    def gravid(self, pregnant: str):
        """
        pregnancy setter

        Parameters
        ----------
        pregnant     : str
                       new pregnancy str to be set

        """
        Assertor.assert_data_types([pregnant], [str])
        Assertor.assert_arguments({pregnant: ['pregnant', ('0', '1')]})
        self._gravid = pregnant
Ejemplo n.º 6
0
    def student(self, _student: str):
        """
        student setter

        Parameters
        ----------
        _student       : str
                         new student str

        """
        Assertor.assert_data_types([_student], [str])
        Assertor.assert_arguments([_student], [{"student": ('0', '1')}])
        self._student = _student
Ejemplo n.º 7
0
    def sfo(self, _sfo: str):
        """
        after-school/sfo program setter

        Parameters
        ----------
        _sfo       : str
                     new after-school/sfo str

        """
        Assertor.assert_data_types([_sfo], [str])
        Assertor.assert_arguments([_sfo], [{"sfo": ('0', '1')}])
        self._sfo = _sfo
Ejemplo n.º 8
0
    def barnehage(self, kinder_garden: str):
        """
        kinder_garden status setter

        Parameters
        ----------
        kinder_garden   : str
                          new kinder_garden str

        """
        Assertor.assert_data_types([kinder_garden], [str])
        Assertor.assert_arguments([kinder_garden], [{"kinder_garden": ('0', '1')}])
        self._barnehage = kinder_garden
Ejemplo n.º 9
0
    def rentebinding(self, rente_binding: list):
        """
        rentebinding setter

        Parameters
        ----------
        rente_binding   : list
                          new rentebinding to set

        """
        Assertor.assert_data_types([rente_binding], [list])
        Assertor.assert_arguments([rente_binding], [{
            "rentebinding":
            (["06"], ["08"], ["09"], ["10"], ["11"], ["12"], ["99"])
        }])
        self._rentebinding = rente_binding
Ejemplo n.º 10
0
    def utlanstype(self, utlans_type: list):
        """
        utlanstype setter

        Parameters
        ----------
        utlans_type : list
                      type of loan, default ["70"]


        """
        Assertor.assert_data_types([utlans_type], [list])
        Assertor.assert_arguments([utlans_type], [{
            "utlanstype": (["04"], ["70"], ["30"])
        }])
        self._utlanstype = utlans_type
Ejemplo n.º 11
0
    def __init__(self,
                 utlanstype: list = None,
                 sektor: list = None,
                 rentebinding: list = None,
                 tid: list = None):
        """
        Constructor / Instantiate the class

        Parameters
        ----------
        utlanstype      : list
                          type of loan, default ["70"]
        sektor          : list
                          sektor, default is ["04b"]
        rentebinding    : list
                          type of interest rate, default is ["08", "12", "10", "11", "06"]
        tid             : list
                          time frame

        """
        try:
            LOGGER.info("trying to create '{}'".format(
                self.__class__.__name__))
            Assertor.assert_data_types([utlanstype, sektor, rentebinding, tid],
                                       [(type(None), list) for _ in range(4)])
            Assertor.assert_arguments([utlanstype, sektor, rentebinding], [{
                "utlanstype": (["04"], ["70"], ["30"])
            }, {
                "sektor": (["04b"], ["04a"])
            }, {
                "rentebinding":
                (["06"], ["08"], ["09"], ["10"], ["11"], ["12"], ["99"])
            }])
            self.validate_date(tid)

            self._utlanstype = ["70"] if not utlanstype else utlanstype
            self._sektor = ["04b"] if not sektor else sektor
            self._rentebinding = ["08", "12", "10", "11", "06"
                                  ] if not rentebinding else rentebinding
            self._tid = self.updated_table_date() if not tid else tid
            LOGGER.success("created {}".format(self.__class__.__name__))
        except Exception as ssb_payload_exception:
            LOGGER.exception(ssb_payload_exception)
            raise ssb_payload_exception
Ejemplo n.º 12
0
    def __init__(self,
                 sex: str = 'm',
                 age: Union[int, float, str] = 0,
                 kinder_garden: str = '0',
                 sfo: str = '0'):
        """
        Constructor / Instantiate the class

        Parameters
        ----------
        sex             : str
                          sex of the person, male ('m') or female ('f')
        age             : int, float, str
                          age of person
        kinder_garden   : str
                          kids in kinder_garden, '1' true or '0' false
        sfo             : str
                          after school programme, '0' no, '1' half-day or '2' full-day

        """
        super().__init__()

        Assertor.assert_data_types([sex, age, kinder_garden, sfo],
                                   [str, (int, float, str), str, str])
        Assertor.assert_arguments({
            kinder_garden: ['kinder_garden:', ('0', '1')],
            sfo: ['sfo:', ('0', '1', '2')]
        })

        if self.sifo_age(age) not in ('1', '2', '3',
                                      '5') and kinder_garden == '1':
            raise ValueError(
                "only persons between 1-5 years can attend kinder_garden")

        if self.sifo_age(age) not in ('9', '13') and sfo == '1':
            raise ValueError("only persons between 6-13 years can attend sfo")

        self._kjonn = sex
        self._alder = self.sifo_age(age)
        self._barnehage = kinder_garden
        self._sfo = sfo
Ejemplo n.º 13
0
    def __init__(self,
                 age: Union[int, float, str] = 0,
                 kinder_garden: str = '0',
                 sfo: str = '0',
                 pregnant: str = '0',
                 student: str = '0'):
        """
        Constructor / Instantiate the class

        Parameters
        ----------
        age             : int, float, str
                          age of person
        kinder_garden   : str
                          kids in kinder garden, '1' true or '0' false
        sfo             : str
                          After school programme, '1' true or '0' false
        pregnant        : str
                          Pregnant female, '1' true or '0' false
        student         : str
                          Student classification, '1' true or '0' false

        """
        try:
            super().__init__('k', age, kinder_garden, sfo)
            Assertor.assert_data_types([age, kinder_garden, sfo, student],
                                       [(float, int, str), str, str, str])
            Assertor.assert_arguments([pregnant], [{"pregnant": ('0', '1')}])

            if self.sifo_age(age) not in ('17', '19', '30',
                                          '50') and pregnant == '1':
                raise ValueError(
                    "[{}] pregnancy at this age is not possible".format(
                        self.__class__.__name__))

            self._gravid = pregnant
        except Exception as female_exception:
            raise female_exception