Question: I have the following code which works on one pc with windows 10 but not on another.
I have installed pyunpack, patool and winrar and rar is in the path

```
import os
from pyunpack import Archive

basis_folder =  r'H:\temp'

def unrar_all(basis_folder):
    ext = (".rar")
    for path, dirs, files in os.walk(basis_folder):
        for filename in files:
            if filename.lower().endswith(ext):
                print(filename)
                try:
                    arch = Archive(os.path.join(path,filename))
                    arch.extractall(directory=path)
                except Exception as e:
                    print("ERROR: BAD ARCHIVE "+os.path.join(path,filename))
                    print(e)

if __name__ == "__main__":
    unrar_all(basis_folder)

```

the error I get

```
python unrar2.py
test.rar
ERROR: BAD ARCHIVE H:\temp\test.rar
patool not found! Please install patool!

pip install patool 
Requirement already satisfied: patool in c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\site-packages (1.12)

```

Answer: 
Just call it

```
for (GeometricObject  shp : shapes) {
    System.out.println (shp.getInfo());
}

```
First you have to add the fields that you need to your shapes. For example in the triangle you need p1, p2, p3. They must be part of the class if you want to get the right values printed.

E.g:

```java
public class Circle implements GeometricObject {

   private double center;
   private double radius;

   @Override
   public String getInfo() {
      return "Circle[ " + this.center + ", " + this.radius + " ]";
   }
   // Getters and setters
}

```

You do the same for all the shapes.

You can fill a list with objects like this:

```java
java.util.List<GeometricObject> shapes = new ArrayList<>();

Circle circle = new Circle(); // Initialize it

circle.setCenter(2); // Set the values
circle.setRadius(2);

shapes.add(circle); // Add it to the list

// Add some more objects into the list...

// Print them:

for (GeometricObject  shape : shapes) {
    System.out.println(shape.getInfo());
}

```