docs: def get_model(self):
          """
          Returns the fitted bayesian model
  
          Example
          ----------
          >>> from pgmpy.readwrite import BIFReader
          >>> reader = BIFReader("bif_test.bif")
          >>> reader.get_model()
          <pgmpy.models.BayesianModel.BayesianModel object at 0x7f20af154320>
          """
          try:
              model = BayesianModel()
              model.add_nodes_from(self.variable_names)
              model.add_edges_from(self.variable_edges)
              model.name = self.network_name
  
              tabular_cpds = []
              for var in sorted(self.variable_cpds.keys()):
                  values = self.variable_cpds[var]
                  cpd = TabularCPD(var, len(self.variable_states[var]), values,
                                   evidence=self.variable_parents[var],
                                   evidence_card=[len(self.variable_states[evidence_var])
                                                  for evidence_var in self.variable_parents[var]])
                  tabular_cpds.append(cpd)
  
              model.add_cpds(*tabular_cpds)
              for node, properties in self.variable_properties.items():
                  for prop in properties:
                      prop_name, prop_value = map(lambda t: t.strip(), prop.split('='))
                      model.node[node][prop_name] = prop_value
  
              return model
  
          except AttributeError:
              raise AttributeError('First get states of variables, edges, parents and network name')