LINUX.ORG.RU

Codimension Python IDE 2.0.1

 ,


1

2

Экспериментальная среда проектирования для языка Python обновилась до версии 2.0.1, а быстрый и детальный парсер питона, разработанный в рамках проекта, обновился до версии 1.6.1.

Основные изменения по сравнению с предыдущими версиями:

  • Реализован отладчик;
  • Реализована интеграция с pyflakes;
  • Множество исправлений ошибок;
  • Общее улучшение производительности.

Сайт проекта

Проект на google code

Сравнение codimension python parser и стандартного модуля pyclbr

Пакеты для Ubuntu на launchpad



Проверено: Shaman007 ()
Последнее исправление: cetjs2 (всего исправлений: 6)

Ответ на: комментарий от SergeySatskiy

И еще, вот что интересно по части перспектив языка «питон», хотя к теме не относится (оффтоп) - 1) работает ли PySide или PyQt с Qt5? 2) будет ли PySide/Qt5 для Android (тот что с Qt4 был) 3) будет ли портирован/адаптирован питон для FireFox OS? 4) и уж совсем фантастика - PySide/Qt5 для FireFox OS?

Хочется понять насколько широки перспективы переносимости моего кода если я перейду на Python. И если даже откажусь от Qt для некоторых платформ где он будет недоступен (вдруг для FireFox OS неосилят), то хотя бы язык и кодовая база будет общая...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от baverman

Модуль ast я использую там, где это уместно. Например, для определения какая строка будет breakable в отладчике.

На компетентность я не претендую. Я изучаю язык питон. Наверняка вы более компетентны в этой области.

Сергей (разработчик codimension)

SergeySatskiy
() автор топика
Ответ на: комментарий от SergeySatskiy

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

Может скооперироваться с другими проектами? Эмулятор vt100 (+ некоторые возможности из более поздних стандартов вроде 256 цветов) есть у Conque_Term. Нужно просто выделить его в отдельную библиотеку и отвязать от Vim.

ZyX
()
Ответ на: комментарий от SergeySatskiy

Вангую пятикратный прирост скорости, по сравнению с парсером на ANTLR.

// Кстати, для браузера классов я использую регулярки — тупо быстро и очень толерантно к косому синтаксису.

baverman ★★★
()
Ответ на: комментарий от I-Love-Microsoft

На эти вопросы я ответить не могу. Знаю только, что во многих местах версией по умолчанию интерпретатора питон стоит 2.5. То есть стабильность во времени очень высокая. Скорее всего с более новыми версиями будет такая же история чуть погодя.

SergeySatskiy
() автор топика
Ответ на: комментарий от ZyX

Эмулятор vt100 (+ некоторые возможности из более поздних стандартов вроде 256 цветов) есть у Conque_Term. Нужно просто выделить его в отдельную библиотеку и отвязать от Vim.

Большая работа без гарантированного результата. Конечно, если кто-нибудь ее проделает и предложит patch, то я с удовольствием его включу в состав codimension.

Сергей

SergeySatskiy
() автор топика
Ответ на: комментарий от AoD314

А почему оно не на python3 ?

Когда я начинал, в ходу был питон 2.5. Сейчас уже можно было бы попробовать запустить codimension и на версии 3, но я даже не пробовал. Надобности у меня особой нет, потому что вторая версия везде есть.

Сергей

SergeySatskiy
() автор топика
Ответ на: комментарий от SergeySatskiy

Кстати, у PPA НЕТ четкого внятного названия репозитория, которое я бы вбил в sudo add-apt-repository и всё работало...

Важно не просто собрать, но и чтобы другие смогли установить.

Прошу помощи - что я должен вбить в командную строку Ubuntu чтобы установить этот софт?

Я очень много пользовался PPA, но такой конфуз впервые.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от SergeySatskiy

И еще особенность - я так понимаю что сама среда независима от архитектуры, а парсер - зависим. Это точно корректно что архитектуро-независимый _all пакет пишется что он i386? Всё же надо бы малость доделать PPA чтобы установка была «sudo add-apt-repository» и пакет ставился по имени...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

1) работает ли PySide или PyQt с Qt5?

PyQt с Qt5 работает.
Про PySide не знаю, но думаю без проблем.

zJes ★★
()
Ответ на: комментарий от I-Love-Microsoft

Прошу помощи - что я должен вбить в командную строку Ubuntu чтобы установить этот софт?

Попробуйте вот так: sudo add-apt-repository ppa:isloginov/codimension sudo apt-get update sudo apt-get install codimension-parser sudo apt-get install codimension

На странице проекта есть слева вкладка installation и там инструкции по установке. Я не поместил ссылку на инструкцию по установке прямо в новость, думая, что не каждый прочитавший новость захочет установить продукт.

Сергей

SergeySatskiy
() автор топика
Ответ на: комментарий от SergeySatskiy

Я до этого уже установил из файлов и доставил зависимости вручную. Кстати можно и так: apt-get install codimension-parser codimension

Однако, попробовав создать простейший проект - среда зависла. Теперь, при каждой попытке запуска я вижу крах и дамп ядра. Не запускается ни из консоли ни из меню.

Не каждый кто захотел установить продукт сможет им воспользоваться.

Кстати, я создал в папке где уже что-то было /home/user/temp - но разве это может быть причиной поломки IDE?

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

среда зависла. Теперь, при каждой попытке запуска я вижу крах и дамп ядра

Интересно. Вы второй человек, который на такое поведение жалуется. Я просто не представляю, почему такое может быть. У меня есть возможность запускать на 13.04, centos и fedora. Нигде такого не происходит. Не могу воспроизвести. А какая диагностика выдается? Ее, наверное, лучше в почту или в bug tracker.

Не каждый кто захотел установить продукт сможет им воспользоваться.

Сарказм принимается.

Кстати, я создал в папке где уже что-то было /home/user/temp - но разве это может быть причиной поломки IDE?

Не должно. Идея была такая, что codimension сам сканирует папку, указанную как проектную и добавляет файлы в проект. И сам следит за добавленными или удаленными файлами.

Сергей

SergeySatskiy
() автор топика
Ответ на: комментарий от SergeySatskiy

У меня Kubuntu 12.04.2(или 3, в общем последний апдейт) 64-bit + KDE 4.8.5. Попробуйте в виртуальной машине запустить такую систему и проверите - будет ли работать. Просто нет смысла писать багрепорт, если никакой информации об ошибке я не смогу сообщить. Проще воспроизвести такую же среду и она найдется.

Я не сильно заинтересован в проекте, просто я любопытствующий, я на питоне лишь 10 строчек в жизни написал по статьям в журналах. Вот и подбираю себе среду.

Вот запустил я этот eric4 и репозиторий плагинов не работает, в созданном проекте - хрен знает что, ибо незапускабельное. А я привык что создал проект - а там уже скелет рабочий есть.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от SergeySatskiy

Смешно, но среда Eric 4 тоже повисает при создании проекта. Может это некорректное поведение модуля какого-то, который в обоих IDE задействован? Или баг в нем, или некорректное использование.

Но у меня на системе куча питоновских программ на PyQt работает, тот же TortoiseHg - типичный пример - идеально пашет.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от SergeySatskiy

Кстати, на кубунту 12.04.2 x86 из меню запустилось только один раз. С тех самых пор только через терминал. В чем может быть трабл? Никакие дампы при незапуске не выдает.

Akamanah ★★★★★
()
Ответ на: комментарий от buddhist

ed излишен в юниксе при наличии cat и файловой системы в которой мы можем создавать файлы и rm для исправления/«зачёркавания» ошибочных строк/параграфов.

cat

вбил текст . если где ошибся перевбил . ибо нефиг ошибатся. это безответственно.

но есть хак в каждый файл вбиваеш только по 1 строке а для окончательного билда файла сat[котенируеш] их

так что «ed is for sissy»

qulinxao ★★☆
()
Последнее исправление: qulinxao (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

У меня Kubuntu

Похоже, что причина специфическая для kubuntu. Наверное, надо мне попробовать виртуальную машину запустить. Я, правда, последнюю виртуальную машину запускал лет 13 назад. Подскажите пожалуйста, как это сейчас делается?

А я привык что создал проект - а там уже скелет рабочий есть

Codimension этого для вас не сделает. Если вам нужен именно скелет, то надо искать другую среду.

Сергей

SergeySatskiy
() автор топика
Ответ на: комментарий от qulinxao

Когда-то давно я услышал хорошее выражение: «онанизм вприсядку».

Так вот: это выражение замечательно подходит для описанного тобой способа.

PS: Тогда чего уж мелочиться — истинные профессионалы берут пучок проводов, и вперёд — штеккеры в гнёзда втыкать. :)

DeVliegendeHollander ★★
()
Ответ на: комментарий от Akamanah

С тех самых пор только через терминал

А из командной строки всегда запускается без проблем? Где проблема, не представляю. А о каком меню вы говорите? Как туда попал codimension, автоматически?

Сергей

SergeySatskiy
() автор топика
Ответ на: комментарий от I-Love-Microsoft

И еще особенность - я так понимаю что сама среда независима от архитектуры, а парсер - зависим. Это точно корректно что архитектуро-независимый _all пакет пишется что он i386? Всё же надо бы малость доделать PPA чтобы установка была «sudo add-apt-repository» и пакет ставился по имени...

Да, парсер бинарный, а IDE целиком на питоне. Что там с деталями подготовки пакетов я совсем не знаю. Мне с пакетами помогал другой человек - Илья - который, как я понимаю, делал по инструкциям launchpad. А rpm пакеты вообще еще не готовы.

Сергей

SergeySatskiy
() автор топика
Ответ на: комментарий от DeVliegendeHollander

о пресядка и умсвенный зарядка рекомендую http://dr-volz.livejournal.com/

про cat&rm VS ed это реакция рекомендовать ed (отличный редактор ) как всегда лучший инструмент против специализированного инструмента.

конечно куча IDE(по различным причинам) излишне ограничены .

т.е хочется и универсальности ed|sam|acme| и готовых комплектов преднастроек специфичных для того или иного класса задач - и вроде теже эклипсы/идеи по такому и пошли - но нет столетий когда будет вычещена не обусловленная сложностью задачи , а обусловленная неокончательностью решения проблемы создания идеальной IDE

qulinxao ★★☆
()
Ответ на: комментарий от SergeySatskiy

А из командной строки всегда запускается без проблем?

Всегда.

Как туда попал codimension, автоматически?

Ну да, из ppa в шапке поставил. Первый раз запустилось, а потом не захотело.

Akamanah ★★★★★
()
Ответ на: комментарий от Akamanah

Всегда.

Значит, с самим codimension все в порядке. Получается, что надо проверять как работает меню. Там можно как-то проверить, на что указывает пункт меню и совпадает ли этот путь с which codimension?

Сергей

SergeySatskiy
() автор топика
Ответ на: комментарий от Akamanah

При включении запуска ярлыка

А что это значит? Не понимаю последовательности действий.

Попробуйте пожалуйста сделать такие изменения - закомментируйте две строчки в codimension.py:

from utils.pixmapcache import PixmapCache

и

pixmapCache = PixmapCache()

Если это не поможет, то закомментируйте строчку

sys.excepthook = exceptionHook

и напишите, какая диагностика будет в этом случае. У меня подозрение, что при запуске через ярлык что-то не так с рабочим путем.

Сергей

SergeySatskiy
() автор топика
Ответ на: комментарий от baverman

Есть же vim и emacs. Чем это лучше?

Может быть.. нормальный парсер? А не набор регулярных выражений (ну ладно, emacs умеет парсить «строки» и #комментарии, наверное вим также).

В перспективе легче прикручивается анализ кода, обработка ast, да та же подсветка «заливать» не будет.

btw. A это не вы пилили свой редактор?

anonymous
()
Ответ на: комментарий от der_FeniX

Тем, что не бибикает и есть текстовый редактор - это же очевидно.

Как неидиоматично «пищит и портит тест» же, про emacs - ладно.

anonymous
()
Ответ на: комментарий от der_FeniX

И да, вимом пользуюсь давно и успешно. Это на случай, если решишь потыкать в меня шаблоном «неосилятор».

То есть емакс вы не осилили?)

anonymous
()

версии 2.0.1

Реализован отладчик

Т.е. к моменту появления [встроенного/интегрированного] отладчика IDE успела дойти до «стадии» 2.x?

И, кстати, http://rghost.net/46974472.view :-)

anonymous
()
Ответ на: комментарий от anonymous

btw. A это не вы пилили свой редактор?

Пилил. Месяц назад дошел до ручки, потому что собственно редактора и не получилось, дьявол в деталях. Слишком много (много!!!) надо было бы в одно рыло реализовывать.

Поэтому осилил написание плагинов для vim. Прикрутил к нему дополнятор питонокода, навигацию, быстрый поиск файлов и усё, такого довольного слона еще поискать надо.

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

baverman ★★★
()
Ответ на: комментарий от SergeySatskiy

Простейший путь - скачать VirtualBox. А дальше там все просто, для разработчика IDE не проблема. Не шучу, там даже разбираться не в чем.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от baverman

Прикрутил к нему дополнятор питонокода, навигацию, быстрый поиск файлов

Уже интересно. Через repl? А импорты умеет дополнять: import urllib.par<tab>?

vimscript не вызывает идиосинкразию?) Если плагин не на питоне.

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Простейший путь - скачать VirtualBox

Попробовал. Установил kubuntu 12.04 32bit, потом по своей же инструкции codimension. Запускается, ошибок не выдает, независимо из командной строки или через меню. Ничего не понимаю.

Пока вижу только один путь поправить эту ошибку - если кто-нибудь, у кого она возникает, попробует внести изменения о которых я писал выше и пришлет вывод сообщений об ошибках.

SergeySatskiy
() автор топика
Ответ на: комментарий от anonymous

vimscript не вызывает идиосинкразию?) Если плагин не на питоне.

Если имеется ввиду vial (и соседний с ним vial-python), то он‐таки на Python.

@baverman:

python << EOF
import sys
import os.path
import vim
rtp = vim.eval('&runtimepath')
for p in rtp.split(','):
    if os.path.exists(os.path.join(p, 'vial', '__init__.py')):
        sys.path.insert(0, p)
        break

import vial
EOF

 — не самая хорошая идея. Есть же «vim.eval('expand(«<sfile>:h:h»)')». А лучше вообще взять с небольшими изменениями plugin/powerline.vim, засунуть абсолютно все определения из файла plugin/vial.vim в функцию инициализации на Python и отправить это как пакет на pypi (причём setup.py не будет устанавливать plugin/: те, кто воспользуется pip напишут в vimrc что‐то вроде

python << EOF
from vial import setup as vial_setup
vial_setup()
del vial_setup
EOF
, для тех же, кто им не воспользуется, запуском того же самого будет заниматься plugin/vial.vim). Во всяком случае, с pip можно указать зависимости от Python библиотек, и это является абсолютным преимуществом указанного способа. (Вторым абсолютным преимуществом, из‐за которого данный способ был вообще добавлен в powerline, является возможность установки powerline только в одно место. Vial это начнёт касаться не раньше, чем его можно будет использовать без Vim. И то только при условии, что пользователи захотят использовать его как с, так и без Vim.)

ZyX
()
Ответ на: комментарий от SergeySatskiy

У меня 64-бита... А насчет изменений, которые надо внести - можно ссылку на конкретное сообщение? Под каждым сообщением есть [Ссылка] - собственно это оно.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от qulinxao

man cat;man rm;man cat;

ок, я прочел все это, и до сих пор не понимаю, как мне с помощью этого редактировать *готовые* файлы — вот, скажем, я-то, если набираю файлы через cat и rm, подхожу к процессу ответственно и ошибок почти не делаю

но вот наши сотрудники, точнее сотрудницы, не всегда столь ответственны в вопросе выбора фамилии, и бывает выходят замуж и меняют фамилию — и тут надо править файл people.txt с их фамилией

как быть? неужели все же ed?

www_linux_org_ru ★★★★★
()
Последнее исправление: www_linux_org_ru (всего исправлений: 1)
Ответ на: комментарий от www_linux_org_ru

«элементарно» (если мы ограничились cat rm)

сначало входной файл распиливаеш на строки ( а так как иными командами мы себе отказали в использовании то )

перевбиваеш этот файл в каталог файлов-строк.

этот очень дорогое решение . как и использование ed ( c его уберфичей !) когда тот же sam -d не требует предварительного сохранения для модификации.

зы. понятно что фамилию ты заменяеш скорее всего sed

qulinxao ★★☆
()
Ответ на: комментарий от I-Love-Microsoft

У меня 64-бита

У меня с первого раза 64 бита отказались работать. Но это я наверное напутал что-то. Поздно уже было. Сегодня вечером еще раз попробую с 64 битами.

есть [Ссылка]

Codimension Python IDE 2.0.1 (комментарий)

Заранее благодарен за помощь.

SergeySatskiy
() автор топика
Ответ на: комментарий от qulinxao

sam -d не требует предварительного сохранения для модификации

Нуб детектед, проверял ли с помощью starce / lsof / whatever?

Он, между прочим, держит более тяжелый вариант (в нсколько раз больше): видимо юникод и все дела.

anonymous
()
Ответ на: комментарий от ZyX

Есть же «vim.eval('expand(«<sfile>:h:h»)')

Да, пожалуй.

Изначально был setup.py. Но я подумал, что как отдельная библиотека (тем более требующая рута для установки), vial совершенно бесполезен, поэтому выпилил. Ну не нужно это в site-packages. К тому же, таким образом, плагин абсолютно инддиферентен к версии питона.

baverman ★★★
()
Ответ на: комментарий от anonymous

как нуб не распарсил.

и я и ты.

я вёл речь о блоковой(и полнофайловой как частности) возможности в sam модифицировать через перенаправление(т.е внешний инструмент по результату возвращает редактирование на месте несохранённого файла) к внешним инструментам текущей открытой несохранённой версии .

когда же для ed|vim если мы !чтолибо и аргумент наш файл(то он должен быть сохранён иначе версии поползут ветвится)

qulinxao ★★☆
()
Ответ на: комментарий от anonymous

погуглил.

нет не проверял.

я не про то как подкапотом . я про то какие команды даёт пользователь на пути к нужной ему цели ( получение новой версии при помощи внешнего инструмента текущего_редактируемого текста)

qulinxao ★★☆
()
Ответ на: комментарий от ZyX

Кстати, по поводу чего не хватает в питоноинтерфейсе.

Я, пожалуй, согласен с Брэмом. Его надо держать как можно в более простом виде, чтоб он не скрывал за собой vimscript.

Разработчикам в любом случае надо будет до него спускаться и приучаться лучше сразу. Какие либо фреймворки лучше поддерживать в отдельных проектах.

Я уже достаточно глубоко погрузился в плагинописание, и каких либо проблем не заметил. Все что нужно протянуто, тормозов нет. Правда еще с подсветкой не работал.

baverman ★★★
()
Последнее исправление: baverman (всего исправлений: 1)
Ответ на: комментарий от anonymous

Через repl?

supplement

А импорты умеет дополнять: import urllib.par<tab>?

Конечно, всё дополнение через omnifunc.

vimscript не вызывает идиосинкразию?)

Гы-гы. Из вимскрипта у меня только функция чтения нажатия клавиши. И то скопипащенная. Слишком много контекста надо в голове держать, как люди на нем пишут — не понятно.

baverman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.