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