(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
              children: [
                (C {(python2)} {(setup.py)} {(build)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (C {(python3)} {(setup.py)} {(build)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
              op_id: Op_DPipe
            )
          ]
          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
              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)})
              ]
              op_id: Op_DPipe
            )
          ]
          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]
    )
  ]
)