(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(py-dulwich)} spids:[6])]
      spids: [6]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:_pkgname) op:Equal rhs:{(dulwich)} spids:[9])]
      spids: [9]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(0.15.0)} spids:[12])]
      spids: [12]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(1)} spids:[15])]
      spids: [15]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:pkgdesc)
          op: Equal
          rhs: {(DQ ('A python implementation of the Git file formats and protocols'))}
          spids: [18]
        )
      ]
      spids: [18]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:url)
          op: Equal
          rhs: {(DQ ('https://www.dulwich.io'))}
          spids: [23]
        )
      ]
      spids: [23]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[28])]
      spids: [28]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:license)
          op: Equal
          rhs: {(DQ ('GPL2+ or ASL 2.0'))}
          spids: [33]
        )
      ]
      spids: [33]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:makedepends)
          op: Equal
          rhs: {(DQ ('python2-dev python3-dev py-setuptools'))}
          spids: [38]
        )
      ]
      spids: [38]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:subpackages)
          op: Equal
          rhs: 
            {
              (DQ (py2-) 
                (BracedVarSub
                  token: <VSub_Name pkgname>
                  suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(py-)})
                  spids: [46 50]
                ) (':_py2 py3-') 
                (BracedVarSub
                  token: <VSub_Name pkgname>
                  suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(py-)})
                  spids: [52 56]
                ) (':_py3')
              )
            }
          spids: [43]
        )
      ]
      spids: [43]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:source)
          op: Equal
          rhs: 
            {
              (DQ ('https://www.dulwich.io/releases/') ($ VSub_Name '$_pkgname') (-) 
                ($ VSub_Name '$pkgver') (.tar.gz)
              )
            }
          spids: [60]
        )
      ]
      spids: [60]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:builddir)
          op: Equal
          rhs: 
            {(DQ ($ VSub_Name '$srcdir')) (/) ($ VSub_Name '$_pkgname') (-) ($ VSub_Name '$pkgver')}
          spids: [69]
        )
      ]
      spids: [69]
    )
    (FuncDef
      name: build
      body: 
        (BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_Name '$builddir'))})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(python2)} {(setup.py)} {(build)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(python3)} {(setup.py)} {(build)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
          ]
          spids: [83]
        )
      spids: [79 82]
    )
    (FuncDef
      name: package
      body: (BraceGroup children:[(C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$pkgdir'))})] spids:[125])
      spids: [121 124]
    )
    (FuncDef
      name: _py2
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:replaces)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgname'))}
                  spids: [146]
                )
              ]
              spids: [146]
            )
            (C {(_py)} {(python2)})
          ]
          spids: [143]
        )
      spids: [139 142]
    )
    (FuncDef
      name: _py3
      body: (BraceGroup children:[(C {(_py)} {(python3)})] spids:[163])
      spids: [159 162]
    )
    (FuncDef
      name: _py
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:python)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [182]
                )
              ]
              spids: [180]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdesc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$pkgdesc') (' (for ') ($ VSub_Name '$python') (')'))}
                  spids: [186]
                )
              ]
              spids: [186]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:install_if)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$pkgname') ('=') ($ VSub_Name '$pkgver') (-r) 
                        ($ VSub_Name '$pkgrel') (' ') ($ VSub_Name '$python')
                      )
                    }
                  spids: [195]
                )
              ]
              spids: [195]
            )
            (C {(cd)} {(DQ ($ VSub_Name '$builddir'))})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {($ VSub_Name '$python')} {(setup.py)} {(install)} {(--prefix) (Lit_Other '=') (/usr)} 
                  {(--root) (Lit_Other '=') (DQ ($ VSub_Name '$subpkgdir'))}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
          ]
          spids: [177]
        )
      spids: [173 176]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:md5sums)
          op: Equal
          rhs: {(DQ ('398734f570f140806fdd7958575d5db0  dulwich-0.15.0.tar.gz'))}
          spids: [240]
        )
      ]
      spids: [240]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha256sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
'6f0a09d93f01caf1ba054b3f751d5cc1f0e6afc5c97fd23d67d7acf92f0d0b16  dulwich-0.15.0.tar.gz'
                )
              )
            }
          spids: [245]
        )
      ]
      spids: [245]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:sha512sums)
          op: Equal
          rhs: 
            {
              (DQ 
                (
'a0d6b56281513d16e830f234a9baa285b63098256ced7884b084fcd14210b60f2cd5e80bc18b74a7adcab509d5a9ebbb399746fd074083174b5922315af55cc4  dulwich-0.15.0.tar.gz'
                )
              )
            }
          spids: [250]
        )
      ]
      spids: [250]
    )
  ]
)