Please solve the programming task below using a self-contained code snippet in a markdown code block.

A swap is defined as taking two distinct positions in an array and swapping the values in them.
A circular array is defined as an array where we consider the first element and the last element to be adjacent.
Given a binary circular array nums, return the minimum number of swaps required to group all 1's present in the array together at any location.
 
Please complete the following python code precisely:
```python
class Solution:
    def minSwaps(self, nums: List[int]) -> int:
```