p-part of a class group
I am trying to compute the p-part of a class groups of some number fields. I was hoping to just call G.sylow_subgroup(p), but this function is not implemented for Abelian groups. In addition, invariants doesn't seem to work, for example, if G= C6, then G.invariants() returns , which doesn't seem correct.
I would appreciate any advice on how to do this. For example, can I coerce an Abelian Group to just be a finite group?
Note: I asked this on IRC without an answer. I hope it is not bad form to ask it here.
Partial Solution: Elementary divisors and some factorization code gives me what I want. However, it would be nice to be able to coerce an abelian group into a group.