Блог пользователя PavelKunyavskiy

Автор PavelKunyavskiy, история, 8 лет назад, перевод, По-русски

Всем доброго дня и здравия. Думаю, многие на этом сайте слышали про инструмент для подготовки задач, разработкой которого занимается MikeMirzayanov. Имя ему — polygon.

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

Утилита опубликована на github вместе с инструкциями по установке. Буду рад любым новым фичам и предложениям.

Известные проблемы:

  • Код протестирован не достаточно хорошо, могут быть баги.
  • Устанавливающий скрипт иногда ведет себя странно. Буду рад советам всех тех, кто лучше меня знает питон. Также вызывает интерес, какие бывают более удобные способы распространения.
  • Иногда потеря сессии не обнаруживается и скрипт падает со странными ошибками, relogin помогает излечить эту проблему.
  • Парсинг html страниц может быть недостаточно устойчив к изменениям в полигоне. С нетерпением ждем более хорошего api от MikeMirzayanov и команды Сodeforces.
  • Проголосовать: нравится
  • +192
  • Проголосовать: не нравится

»
8 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Thank you!

For me, it will be comfortable to put all the files in a single folder (without solutions/ and src/) + also process resources in the same way as files/solutions.

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    And update on init will be nice.

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    It seems running polygon-cli in solutions/ directory causes an error No session known. Use relogin or init first.

    Is any way to run something like polygon-cli status and polygon-cli diff [file]?

  • »
    »
    8 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +15 Проголосовать: не нравится

    Answering to all three at time.

    1. One directory. This is quite easy to change. Probably it's better to be configurable. (done: --flat option)
    2. update on init. Quite logical, easy to do.
    3. No session. There is no .polygon-cli folder in solutions. Looking in parent folder colud be good idea (done)
    4. poligon-cli list is something like status
    5. diff is not implemented, but why not. (done)
»
8 лет назад, # |
Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

About the installation: try adding your package to PyPI. That way the package may be installed (together with all dependencies) in a single command like pip install polygon-cli.

Btw, what kind of failures do you see with setup.py? If it's on Windows, it may be UAC which may require elevation in order to create scripts in Python34\Scripts

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

    I second this, that way requirements.txt will be created as well, which lists the packages your package depends on, so that you do not have to install them manually.

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Ошибка в переводе: слышали пр инструмент вместо слышали про инструмент

»
8 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Автокомментарий: текст был обновлен пользователем PavelKunyavskiy (предыдущая версия, новая версия, сравнить).

»
8 лет назад, # |
  Проголосовать: нравится -6 Проголосовать: не нравится

Код протестирован не достаточно хорошо, могут быть баги

Надо полагать, фичи

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

What's with the "Installation script working strange" ? I think I can help.

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    For me, it works fine. But i had tested on several friends, before publishing here. Some of them had requirements not installed automatically. Some had errors on imports of local files while running. Second issue was probably fixed by changing import xxx to from . import xxx, but i'm not sure it's good way.

    • »
      »
      »
      8 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится

      I have had that second issue before and I think that the only way to use custom libraries over a console script installation is using the '.' syntax. We can accept SystemError in case of absolute import failure to revert back to real import.

      try:
      	from . import xxx
      except SystemError:
      	import xxx
      

      I will install your script and see how it works on my system.

»
8 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

This tool is amazing. Thank you so much.

»
8 лет назад, # |
  Проголосовать: нравится +23 Проголосовать: не нравится

I'm trying to use this tool, since I'd prefer it over the polygon webinterface. But I noticed that the problem statement does not get downloaded, and it seems that this is because it is not exposed by the polygon API. Am I correct? It would be great if that were possible!

As a side note: since polygon internally seems to use a version control system, why can't that be exposed as well, next to the API? Either read-only, or even better: read/write with commit-hooks checking that updates adhere to the internal data format of polygon.

»
3 года назад, # |
  Проголосовать: нравится -9 Проголосовать: не нравится

При импорте из архива не добавляются баллы за тесты и зависимости групп (в xml они есть). Это не предусмотрено или я что-то делаю не так? Баллы есть при генерации тестов из скрипта, но его как раз нет, есть готовые тесты в архиве.