Распараллеливание с пафосом - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть такая функция:

def hay(i):
            product = test[i]
            if product not in ka:  # dont create shape if already existent
                #print("### Create shape",i, product.is_a(), product.Name, product.GlobalId)

                if product.Representation is not None:
                    try:
                        shape = ifcopenshell.geom.create_shape(sa, product).geometry  # shape is a shape tuple with access on data, geometry and styles
                    except:
                        #print(ifcopenshell.get_log)
                        shape = None

                    if shape is not None:
                        shapes_to_display1.append([i, shape])
                        print('shapes_to_display[%d]'%i)
                        print(shape)
            else:
                print("Product already has a shape")
            return shapes_to_display1

Когда я применяю функцию карты библиотеки пафоса, как показано ниже:

pool = ProcessPool(nodes=4)

        res= pool.map(hay, range(len(products)))

Я получаю переменную res который по какой-то причине является 3D-массивом. Тем не менее, когда я делаю печать в функции, я получаю

shapes_to_display[21]
class<'TopoDS_Shape'; Type:Compound; id:995442545>
shapes_to_display[0]
class<'TopoDS_Shape'; Type:Compound; id:995508017>
shapes_to_display[7]
class<'TopoDS_Shape'; Type:Compound; id:995915217>
shapes_to_display[14]
class<'TopoDS_Shape'; Type:Compound; id:995915041>

, что я и хочу. Я хочу, чтобы мой массив был 2D, как показано здесь.

Если я попытаюсь

for r in res:
            print(r[:][0])

, я получу:

[0, class<'TopoDS_Shape'; Type:Compound; id:1813291361>]
[0, class<'TopoDS_Shape'; Type:Compound; id:1813291361>]
[0, class<'TopoDS_Shape'; Type:Compound; id:1813291361>]
[0, class<'TopoDS_Shape'; Type:Compound; id:1813291361>]
[0, class<'TopoDS_Shape'; Type:Compound; id:1813291361>]
[0, class<'TopoDS_Shape'; Type:Compound; id:1813291361>]
[0, class<'TopoDS_Shape'; Type:Compound; id:1813291361>]
[7, class<'TopoDS_Shape'; Type:Compound; id:1812116593>]
[7, class<'TopoDS_Shape'; Type:Compound; id:1812116593>]
[7, class<'TopoDS_Shape'; Type:Compound; id:1812116593>]
[7, class<'TopoDS_Shape'; Type:Compound; id:1812116593>]
[7, class<'TopoDS_Shape'; Type:Compound; id:1812116593>]
[7, class<'TopoDS_Shape'; Type:Compound; id:1812116593>]
[7, class<'TopoDS_Shape'; Type:Compound; id:1812116593>]
[14, class<'TopoDS_Shape'; Type:Compound; id:1812470737>]
[14, class<'TopoDS_Shape'; Type:Compound; id:1812470737>]
[14, class<'TopoDS_Shape'; Type:Compound; id:1812470737>]
[14, class<'TopoDS_Shape'; Type:Compound; id:1812470737>]
[14, class<'TopoDS_Shape'; Type:Compound; id:1812470737>]
[14, class<'TopoDS_Shape'; Type:Compound; id:1812470737>]
[14, class<'TopoDS_Shape'; Type:Compound; id:1812470737>]

Любая помощь будет принята с благодарностью. Заранее спасибо

...