For the examples below I am going to be talking of 1-of-1 multisig only derived from a single private key.
For P2WPKH, the address is generated using using hash160 of the public key which acts as the witness program.
For P2WSH, is there any standard witness program? The demo in https://bc-2.jp/tools/bech32demo/index.html uses <pubkey> OP_CHECKSIG[0xac]
as the WitnessScript. While bitcoinaddress
pip package uses a different approach (see https://github.com/fortesp/bitcoinaddress/blob/master/bitcoinaddress/address.py#L130-L133 )
(Please excuse any wrong nomenclature I might have used in this question)