Pull to refresh

Comments 10

Искал, нашёл, открыл.

Пожалуйста, дайте рекомендации по использованию Python из Elixir и посоветуйте хорошее подробное руководство по этому вопросу. То, что есть в Интернете, выглядит самопиаром:-)

Зависит от того, что вы понимаете под «использованием». Во многих случаях — лучший вариант Port. Есть Pyrlang, и :erlport, но я никогда их не щупал вживую.

При прочих равных, я бы сказал, что мне в целом неясно, зачем вызывать питон из эликсира в современных реалиях.

На счет :elport. Все серьезные ссылки указывают на Erlang. В Elixir все тонкости настройки зашиты в mix. А мне хочется понимать механизм, а то с ошибками не разберешься.

Ясность у меня будет после последующей статьи. Тогда и покритикуете:-)

Эрланг и эликсир полностью интероперабельны. Прямо в mix пишете:

def deps do
  [
    {:erlport, "~> 0.7"}
  ]
end

и вызываете потом

{:ok, p} = :python.start()
:python.call(p, :sys, "version.__str__", [])

Но я сейчас поподробнее глянул, там последний протестированный OTP релиз чуть ли не десятилетней давности, так что, наверное, не нужно его брать.

Пока решил, буду изучать Port.

Если бы мне потребовался импорт из .dot файлов в libgraph, я бы лично пошел следующим путём:

  • написал бы парсер грамматики на nimble_parsec (возможно, даже научил бы nimble_parsec генерировать парсер по BNF-описанию и оформил бы его mix-таской

  • распарсил бы грамматику dot-файлов в некое промежуточное представление

  • создал бы behaviour Graph.Deserializer по аналогии с https://hexdocs.pm/libgraph/Graph.Serializer.html#content

  • отправил бы Полу PR с десериалайзером ⇑

Изучу!
Один вопрос. В чем принципиальная выгода nimble_parsec?

На счёт поведения полностью согласен.
Намекните чем-нибудь о Полу PR.

Быстрее и не нужны сторонние утилиты, в чем-то чуждые экосистеме.

Sign up to leave a comment.

Articles