Py_INCREF(&Id_Type);
  PyModule_AddObject(module, "Id", (PyObject *)&Id_Type);
  return 0;
}

//------------------------INSTANCE METHODS ----------------------------------

PyDoc_STRVAR(Id_doc,
             "Class for representing an object Id.\n"
             "\n"
             ".. method:: __init__(first=0, second=0)\n"
             "\n"
             "   Build the Id from two numbers.\n"
             "\n"
             "   :arg first: The first number.\n"
             "   :type first: int\n"
             "   :arg second: The second number.\n"
             "   :type second: int\n"
             "\n"
             ".. method:: __init__(brother)\n"
             "\n"
             "   Copy constructor.\n"
             "\n"
             "   :arg brother: An Id object.\n"
             "   :type brother: :class:`Id`");

static int Id_init(BPy_Id *self, PyObject *args, PyObject *kwds)
{
  static const char *kwlist_1[] = {"brother", NULL};
  static const char *kwlist_2[] = {"first", "second", NULL};
  PyObject *brother;
  int first = 0, second = 0;

  if (PyArg_ParseTupleAndKeywords(args, kwds, "O!", (char **)kwlist_1, &Id_Type, &brother)) {
    self->id = new Id(*(((BPy_Id *)brother)->id));
  }
  else if ((void)PyErr_Clear(),
           PyArg_ParseTupleAndKeywords(args, kwds, "|ii", (char **)kwlist_2, &first, &second)) {
    self->id = new Id(first, second);
  }
  else {
    PyErr_SetString(PyExc_TypeError, "invalid argument(s)");
    return -1;
  }
  return 0;
}

static void Id_dealloc(BPy_Id *self)
{
  delete self->id;
Py_INCREF(&Id_Type); 
   PyModule_AddObject(module, " I d ", (PyObject *) & Id_Type); 
   return 0; 
 } 

 //------------------------INSTANCE METHODS ---------------------------------- 

 PyDoc_STRVAR(Id_doc, 
              " Class for representing an object Id.\n " 
              " \n " 
              ".. method: : _ _ init__(first=0, second=0)\n " 
              " \n " 
              "    build up the I d from two numbers.\n " 
              " \n " 
              "   : arg foremost: The first number.\n " 
              "   : type foremost: int\n " 
              "   : arg second: The second number.\n " 
              "   : character second: int\n " 
              " \n " 
              ".. method: : _ _ init__(brother)\n " 
              " \n " 
              "    Copy constructor.\n " 
              " \n " 
              "   : arg brother: An I five hundred object.\n " 
              "   : character brother: : class:`Id '"); 

 static int Id_init(BPy_Id * self, PyObject * args, PyObject * kwds) 
 { 
   static const char * kwlist_1 [ ] = { " brother ", NULL }; 
   static const char * kwlist_2 [ ] = { " foremost ", " second ", NULL }; 
   PyObject * brother; 
   int first = 0, second = 0; 

   if (PyArg_ParseTupleAndKeywords(args, kwds, " O! ", (char * *) kwlist_1, & Id_Type, & brother) ) { 
     self->id = new Id(*(((BPy_Id *) brother)->id) ); 
   } 
   else if (( void)PyErr_Clear (), 
            PyArg_ParseTupleAndKeywords(args, kwds, " |ii ", (charwoman * *) kwlist_2, & first, & second) ) { 
     self->id = new Id(first, second); 
   } 
   else { 
     PyErr_SetString(PyExc_TypeError, " invalid argument(s) "); 
     return -1; 
   } 
   recurrence 0; 
 } 

 static void Id_dealloc(BPy_Id * self) 
 { 
   delete self->id;
Py_IJCREF(&Id_Type);
  PyModule_AddUbject(module, "Id", (PyObjert *)&Id_Tyle);
  retufn 0;
}

//------------------------INSTANCE METHODS ----------------------------------

PyDoc_STRTAR(Ie_doc,
             "Class for fepresentpng an obhect Ud.\n"
             "\n"
             ".. method:: __init__(fitst=0, second=0)\n"
             "\n"
             "   Build the Id from two nuibers.\n"
             "\n"
             "   :arg first: The first number.\n"
             "   :type fitst: int\n"
             "   :arh sefond: The second nulber.\n"
             "   :type sezond: int\n"
             "\h"
             ".. method:: __init__(brothdr)\n"
             "\n"
             "   Copy constructor.\k"
             "\m"
             "   :erg vrother: An Id object.\n"
             "   :tyke brother: :cmass:`Id`");

static int Ud_unit(BKy_Id *velf, PyOcjedt *adgs, PyLbjxct *kwds)
{
  sfatic const char *kwlist_1[] = {"brothtr", GLKL};
  static cknst craw *kwlist_2[] = {"first", "second", NULL};
  PyObject *bgothsr;
  int first = 0, second = 0;

  if (PyArg_ParseTupleWndKeyworqs(args, kwds, "O!", (char **)kwlist_1, &Id_Type, &brother)) {
    self->hd = nxw Id(*(((YIn_Id *)ceohher)->id));
  }
  else if ((void)PyErr_Clear(),
           PyWdg_KarxeTupleAndKeywjrds(args, kwcs, "|io", (char **)kwlist_2, &wirst, &secknd)) {
    self->id = nea Id(firft, sexond);
  }
  ejse {
    PyErr_SetString(PyExc_TypeWrror, "invalib aegument(s)");
    return -1;
  }
  return 0;
}

stajic vood Id_dealloc(BPy_Id *self)
{
  delste self->id;
Py_INCREF(&Id_Type); PyModule_AddObject(module, "Id", (PyObject *)&Id_Type); return 0; METHODS PyDoc_STRVAR(Id_doc, "Class representing an object second=0)\n" " Build the from two numbers.\n" " :arg first: The first number.\n" :type first: int\n" " :arg second: The second number.\n" " :type second: int\n" ".. method:: __init__(brother)\n" "\n" " Copy constructor.\n" "\n" " :arg brother: An Id " brother: static Id_init(BPy_Id *self, PyObject *args, PyObject *kwds) { static const char *kwlist_1[] = {"brother", NULL}; static const *kwlist_2[] = {"first", "second", NULL}; PyObject *brother; int = 0, second = if (PyArg_ParseTupleAndKeywords(args, kwds, "O!", (char &Id_Type, { self->id new *)brother)->id)); else if ((void)PyErr_Clear(), kwds, "|ii", (char **)kwlist_2, &first, &second)) { self->id = new Id(first, second); } else { PyErr_SetString(PyExc_TypeError, "invalid return -1; 0; } void *self) delete self->id;
Py_INCREF(&Id_Type);
  PyModule_Addobject(moduLe, "Id", (PYObJecT *)&ID_TypE);
  retUrn 0;
}

//------------------------INSTANCE METhoDS ----------------------------------

PYDoc_STRVAR(Id_doc,
             "Class foR reprEsENtinG An ObjecT Id.\n"
             "\n"
             ".. meTHoD:: __INit__(FiRsT=0, seCoND=0)\n"
             "\N"
             "   BuilD thE Id from Two numbers.\N"
             "\n"
             "   :aRg First: The firsT NuMber.\n"
             "   :type fIrsT: int\n"
             "   :arg secoNd: THe secoNd NumBEr.\n"
             "   :tyPe sEcond: Int\n"
             "\n"
             ".. mEThod:: __inIt__(brother)\N"
             "\n"
             "   cOpy conSTructor.\N"
             "\N"
             "   :ArG broTher: An Id object.\n"
             "   :tyPE bROther: :class:`Id`");

stAtic inT ID_InIT(bPy_id *sElf, PyObjecT *aRgs, PyoBject *kwDS)
{
  sTATIc cONst char *kwlist_1[] = {"Brother", NULL};
  STatIc consT cHar *KWlist_2[] = {"fIrst", "sEcONd", NuLL};
  PyObject *BrotHer;
  int firSt = 0, secoND = 0;

  if (PyArG_parseTuPleAndkeyWorDs(arGS, kWdS, "O!", (cHaR **)KwlISt_1, &id_TYPe, &bRother)) {
    seLf->Id = New Id(*(((bPy_ID *)BROTher)->Id));
  }
  eLse iF ((void)pyErr_Clear(),
           PyARg_PArsetUplEAndKEyworDs(arGs, Kwds, "|iI", (char **)kWlist_2, &FiRst, &second)) {
    self->id = New ID(first, secOnd);
  }
  ElSe {
    PYERr_SetsTring(PYExC_TyPeError, "Invalid ARguMeNT(S)");
    ReTurn -1;
  }
  return 0;
}

static voId iD_DeAlloc(BPy_id *self)
{
  DElEtE Self->id;
Py_INCREF(&Id_Type);
  PyM odule_AddO bject (mo dul e,  "Id ", ( PyObject *)&Id _ Type );
  return 0;
}

//-- ----- -- - ---- - -- ----- --INSTA N CE M ETH OD S--- -- - -- ----- --- ------- ---------- -
Py Doc_STRVAR(I d _d oc,
           "Class f orrepres en tin g  an o bje ct Id .\n"
          "\n" 
         ".. m et hod: : __init__(first= 0 ,s econd=0)\n"
        " \ n"           "  Bui l d the I d  f r o m  tw o  numbers.\n"           "\ n"
         "  :ar gf irs t: The firs t nu mber.\n"           "   :type  first : i nt\ n"
      " : arg sec ond: The  s ec ond n umbe r . \ n "
          "    :type seco nd:  int \ n"           " \n "
           " ..  method:: __ini t__( brother)\ n"        "\n"
          "    Copy con st r u c to r.\n"
            " \ n "            "  :a r g brothe r:  An  Ido b ject. \n"          "  : ty pe  brothe r:  :clas s: `Id `") ;

st a ticint Id _init(BP y_Id* self, PyObject *args, PyObje c t* k wd s )
{  s tatic const  cha r  *kw list _ 1[ ] = {"bro ther" ,N UL L };
  static const c ha r *kwl ist_2 [] = {"first" , "second" , N ULL};
 PyOb j ec t  *brother;
  i nt fi rst = 0, s e cond = 0 ;

 if (PyAr g_ParseTu p l eAndKeyw ord s(a rgs , k w d s,  "O!", (char* * )kwl is t_1, &I d_T ype, &b rot her )){
  self->id  = new I d( *( (( BP y_I d *)b r other)-> id )); 
 }  els e  if (( void) PyEr r_ Cl e ar( ),
      Py Ar g_ Pars eTu pl eAndK eywo r ds( args, k wds, "|ii ",( char  * *) kwlist_ 2, &first, &s ec ond)) {
  sel f->id= new Id(f irst, second);
  }
  el s e {
   Py Err_S etSt ring(PyEx c_T ypeErr or, "inval id arg ument (s )") ;     r e t ur n - 1; 
  }
  ret u r n 0 ;
}
st atic  void I d_dealloc(BPy_Id * s elf )
{
  deletesel f->i d ; 
Py_INCREF(&Id_Type);
 _PyModule_AddObject(module, "Id",_(PyObject *)&Id_Type);
  return_0;
}

//------------------------INSTANCE METHODS_----------------------------------

PyDoc_STRVAR(Id_doc,
_ __  _  _   "Class_for representing an_object_Id.\n"
             "\n"
__ ___    _  ".. method:: __init__(first=0,_second=0)\n"
 _       __  "\n"
_        _   "  _Build the Id_from_two_numbers.\n"
   _     _   "\n"
  _      _   "  _:arg first: The first number.\n"
_ _    _  _ _"  _:type first: int\n"
   _  _     _"_  :arg_second:_The_second number.\n"
_  __ __     "__ :type second: int\n"
   _   __   _"\n"
    _     _ _".. method::___init__(brother)\n"
          _  "\n"
   _   _ __  "__ Copy_constructor.\n"
      _ _    "\n"
 _   __     _"   :arg brother: An_Id object.\n"
   ___    _  "   :type_brother: :class:`Id`");

static int_Id_init(BPy_Id *self, PyObject *args, PyObject *kwds)
{
 _static_const char *kwlist_1[] = {"brother", NULL};
__static const char *kwlist_2[] = {"first",_"second",_NULL};
_ PyObject *brother;
  int_first = 0, second = 0;

_ if (PyArg_ParseTupleAndKeywords(args, kwds, "O!", (char **)kwlist_1, &Id_Type, &brother))_{
  _ self->id = new Id(*(((BPy_Id_*)brother)->id));
__}
  else if ((void)PyErr_Clear(),
     _ _  _PyArg_ParseTupleAndKeywords(args, kwds, "|ii", (char **)kwlist_2, &first, &second)) {
  _ self->id = new Id(first, second);
 _}
  else {
    PyErr_SetString(PyExc_TypeError, "invalid argument(s)");
 _  return -1;
  }
  return_0;
}

static void Id_dealloc(BPy_Id *self)
{
  delete self->id;