(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:pkgname spids:[6])
          op: Equal
          rhs: {(py3-websockets)}
          spids: [6]
        )
      ]
      spids: [6]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:_pkgname spids:[9])
          op: Equal
          rhs: {(websockets)}
          spids: [9]
        )
      ]
      spids: [9]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:pkgver spids:[12])
          op: Equal
          rhs: {(3.2)}
          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 ('An implementation of the WebSocket Protocol (RFC 6455)'))}
          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://websockets.readthedocs.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 (noarch))}
          spids: [28]
        )
      ]
      spids: [28]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:license spids:[33])
          op: Equal
          rhs: {(DQ (BSD))}
          spids: [33]
        )
      ]
      spids: [33]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:makedepends spids:[38])
          op: Equal
          rhs: {(DQ (python3-dev))}
          spids: [38]
        )
      ]
      spids: [38]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:source spids:[43])
          op: Equal
          rhs: 
            {
              (DQ ('https://files.pythonhosted.org/packages/source/') 
                (word_part.BracedVarSub
                  token: <VSub_Name _pkgname>
                  suffix_op: 
                    (suffix_op.Slice
                      begin: (arith_expr.ArithWord w:{(Lit_Digits 0)})
                      length: (arith_expr.ArithWord w:{(Lit_Digits 1)})
                    )
                  spids: [46 52]
                ) (/) ($ VSub_DollarName '$_pkgname') (/) ($ VSub_DollarName '$_pkgname') (-) ($ VSub_DollarName '$pkgver') 
                (.tar.gz)
              )
            }
          spids: [43]
        )
      ]
      spids: [43]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:builddir spids:[62])
          op: Equal
          rhs: 
            {(DQ ($ VSub_DollarName '$srcdir')) (/) ($ VSub_DollarName '$_pkgname') (-) 
              ($ VSub_DollarName '$pkgver')
            }
          spids: [62]
        )
      ]
      spids: [62]
    )
    (command.FuncDef
      name: build
      body: 
        (command.BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_DollarName '$builddir'))})
            (command.AndOr
              ops: [Op_DPipe]
              children: [
                (C {(python3)} {(setup.py)} {(build)})
                (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
          ]
          spids: [76]
        )
      spids: [72 75]
    )
    (command.FuncDef
      name: package
      body: 
        (command.BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_DollarName '$builddir'))})
            (command.AndOr
              ops: [Op_DPipe]
              children: [
                (C {(python3)} {(setup.py)} {(install)} 
                  {(--root) (Lit_Other '=') (DQ ($ VSub_DollarName '$pkgdir'))} {(--optimize) (Lit_Other '=') (1)}
                )
                (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
          ]
          spids: [105]
        )
      spids: [101 104]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:md5sums spids:[140])
          op: Equal
          rhs: {(DQ ('c1842c03d14169082e065a109fe1cb2c  websockets-3.2.tar.gz'))}
          spids: [140]
        )
      ]
      spids: [140]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:sha256sums spids:[145])
          op: Equal
          rhs: 
            {
              (DQ 
                (
'b536827d433a79e85108becdac0b0909e7ce02c3613df53da6d96aee950b50b5  websockets-3.2.tar.gz'
                )
              )
            }
          spids: [145]
        )
      ]
      spids: [145]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:sha512sums spids:[150])
          op: Equal
          rhs: 
            {
              (DQ 
                (
'fc8e3318139174faf6f6fc3065ecec536d8ebc5d328081c82371bfaf7538a4e67c43d5460d06852191532b105c0494adf7b18fd36ec55772d552f83737e25c1c  websockets-3.2.tar.gz'
                )
              )
            }
          spids: [150]
        )
      ]
      spids: [150]
    )
  ]
)