amarao (amarao_san) wrote,
amarao
amarao_san

Category:

выдыхаем, выдыхаем

Уф, я перевёл getPath на контекстный менеджер. Стало меньше строк, уже, хотя я ничего, кроме контекстного менеджера и его функций не добавлял. Ощущение, как будто бежал по болоту по кочкам и, кажется, почти ничего не замочил.

Теперь можно начинать разбираться с этим ужасом в районе "if (int(occversion[0]) >= 7) and (int(occversion[1]) >= 1):"

Ужас не в этой проверке, а вот тут:
                            snip = Drawing.projectToSVG(e,drawing_plane_normal)
                            if snip:
                                try:
                                    a = "A " + snip.split("path d=\"")[1].split("\"")[0].split("A")[1]
                                except:
                                    pass
                                else:
                                    edata += a
                                    done = True


Во-первых у меня оно сейчас прикрыто raise NotImplemented, и оно не рейзится, значит, я этот кусок кода не трогаю в тестах. Это означает, что мне сейчас придётся делать соседний бранч и в нём пытаться выковырять с помощью print'ов что там приходит-уходит, чтобы таки этот тест написать.

Во-вторых, это просто какой-то ужас. Я могу сохранить его, и всего лишь передать эту "a" в path.elliptical_arc. Дополнительный фан состоит в том, что Drawing - это нифига не питон, это добрый-добрый C++, который реализует интерфейс для питона. В нём на 100+ строк написано главное:

ProjectionAlgos Alg(pShape->getTopoShapePtr()->getShape(),Vector);

И я это даже понять не могу. Либо это макрос, либо это какая-то фича С++, которой я не знаю (синтаксически).

Другими словами, "нам с этим жить". А жить будет БОЛЬНО (особенно в тестах), потому что у меня:

>>> Part.OCC_VERSION
'6.9.1.oce-0.18'
А ещё я не знаю, что такое 'occ' (oce). Примерно происходит от "OpenCASCADE Community Edition"... Ой, моки меня зовут, ой зовут...
Tags: freecad, рефакторинг
Subscribe

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments