Ono to nefunguje! (volání příkazů) (příkazy bez returnů jsou broken) #29

Closed
opened 1 year ago by jirikalvoda · 5 comments
Owner
jiri@arzen:[~/mff/bakararka/zapoctak-past].(master)$ cat index.md
---
title: "PaSt: Zápočtová úloha"
language: "cs"
lang: "cs"
---

# Problém

Ve svojí balakářce se zabývám úlohou binary paint shop problem.
Jedná se o úlohu, kterou neumíme exetkivně řešit a ani aproximovat,
takže mimo jiné probíhá aktivní výzkum snažící se najít algoritmus,
který je dobrý v průměrném případě (pro náhodný vstup).

V této zápočtové práci bych se rád podíval na některé z těchto algoritmů
a pomocí statistických metod pro zvolenou velikost vstupu určil, který z nich
je lepší.

# Zadání

Nejprve si pojďme představit zadání binary paint shop problému:
V řadě je $2n$ aut $n$ různých typů -- od každého typu 2.
Chtěli bychom od každého typu nabarvit jedno auto červeně a druhé modře.
Auto však na barvící linky vjíždí v pořadí, v jakém jsou v řadě.
Barvíci linka je optimalizovaná na barvení velkého počtu aut jednou barvou.
Tedy měnit barvu, kterou se barví, je složitá a drahá záležitost.

```python {define=commandname}
print("foo")
```

[!commandname]{}

jiri@arzen:[~/mff/bakararka/zapoctak-past].(master)$ formatitko index.md
foo
Traceback (most recent call last):
  File "/home/jiri/mff/bakararka/zapoctak-past/venv/bin/formatitko", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/jiri/mff/bakararka/zapoctak-past/formatitko/src/formatitko/formatitko.py", line 48, in main
    doc1 = doc1.walk(transform, context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/base.py", line 264, in walk
    child = child.walk(action, doc, stop_if)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 86, in walk
    ans = list(chain.from_iterable(ans))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 84, in <genexpr>
    ans = ((item,) if type(item) is not list else item for item in ans)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 82, in <genexpr>
    ans = (item.walk(action, doc, stop_if) for item in self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/base.py", line 264, in walk
    child = child.walk(action, doc, stop_if)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 86, in walk
    ans = list(chain.from_iterable(ans))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 84, in <genexpr>
    ans = ((item,) if type(item) is not list else item for item in ans)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 82, in <genexpr>
    ans = (item.walk(action, doc, stop_if) for item in self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/base.py", line 272, in walk
    altered = action(self, doc)
              ^^^^^^^^^^^^^^^^^
  File "/home/jiri/mff/bakararka/zapoctak-past/formatitko/src/formatitko/transform.py", line 168, in transform
    e = e.replaceSelf(*command_output)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: formatitko.command.InlineCommand.replaceSelf() argument after * must be an iterable, not NoneType
`````` jiri@arzen:[~/mff/bakararka/zapoctak-past].(master)$ cat index.md --- title: "PaSt: Zápočtová úloha" language: "cs" lang: "cs" --- # Problém Ve svojí balakářce se zabývám úlohou binary paint shop problem. Jedná se o úlohu, kterou neumíme exetkivně řešit a ani aproximovat, takže mimo jiné probíhá aktivní výzkum snažící se najít algoritmus, který je dobrý v průměrném případě (pro náhodný vstup). V této zápočtové práci bych se rád podíval na některé z těchto algoritmů a pomocí statistických metod pro zvolenou velikost vstupu určil, který z nich je lepší. # Zadání Nejprve si pojďme představit zadání binary paint shop problému: V řadě je $2n$ aut $n$ různých typů -- od každého typu 2. Chtěli bychom od každého typu nabarvit jedno auto červeně a druhé modře. Auto však na barvící linky vjíždí v pořadí, v jakém jsou v řadě. Barvíci linka je optimalizovaná na barvení velkého počtu aut jednou barvou. Tedy měnit barvu, kterou se barví, je složitá a drahá záležitost. ```python {define=commandname} print("foo") ``` [!commandname]{} jiri@arzen:[~/mff/bakararka/zapoctak-past].(master)$ formatitko index.md foo Traceback (most recent call last): File "/home/jiri/mff/bakararka/zapoctak-past/venv/bin/formatitko", line 8, in <module> sys.exit(main()) ^^^^^^ File "/home/jiri/mff/bakararka/zapoctak-past/formatitko/src/formatitko/formatitko.py", line 48, in main doc1 = doc1.walk(transform, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/base.py", line 264, in walk child = child.walk(action, doc, stop_if) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 86, in walk ans = list(chain.from_iterable(ans)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 84, in <genexpr> ans = ((item,) if type(item) is not list else item for item in ans) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 82, in <genexpr> ans = (item.walk(action, doc, stop_if) for item in self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/base.py", line 264, in walk child = child.walk(action, doc, stop_if) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 86, in walk ans = list(chain.from_iterable(ans)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 84, in <genexpr> ans = ((item,) if type(item) is not list else item for item in ans) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/containers.py", line 82, in <genexpr> ans = (item.walk(action, doc, stop_if) for item in self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jiri/mff/bakararka/zapoctak-past/venv/lib/python3.11/site-packages/panflute/base.py", line 272, in walk altered = action(self, doc) ^^^^^^^^^^^^^^^^^ File "/home/jiri/mff/bakararka/zapoctak-past/formatitko/src/formatitko/transform.py", line 168, in transform e = e.replaceSelf(*command_output) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: formatitko.command.InlineCommand.replaceSelf() argument after * must be an iterable, not NoneType ``````
jan changed title from Ono to nefunguje! (volání příkazů) to Ono to nefunguje! (volání příkazů) (příkazy bez returnů jsou broken) 1 year ago
Poster
Owner

Vypadá to, že probléĺ je v tom, že příkazy a python run bloky nyní chtějí vracet věci returnem. To mi obecně dává smysl, jen by bylo fajn, kdyby to bylo i v dokumentaci. :D

Vypadá to, že probléĺ je v tom, že příkazy a python run bloky nyní chtějí vracet věci returnem. To mi obecně dává smysl, jen by bylo fajn, kdyby to bylo i v dokumentaci. :D
Poster
Owner

command_util.py:

	code = "def command(element: Command, context: Context) -> list[Element]:\n"+"\n".join(indented_code_lines)

README:

You can access the current context using the `ctx` variable. The context
provides read/write access to the FrontMatter metadata. The context has the
following methods:

Tohle prosím sjednoť.

`command_util.py:` ``` code = "def command(element: Command, context: Context) -> list[Element]:\n"+"\n".join(indented_code_lines) ``` `README`: ``` You can access the current context using the `ctx` variable. The context provides read/write access to the FrontMatter metadata. The context has the following methods: ``` Tohle prosím sjednoť.
jan commented 1 year ago

Dokumentace je aktuální pro verzi formátítka odevzdanou k zápočťáku a spousta věcí se od té doby změnila, ale ještě je nepovažuji za upevněné a dokumentaci chci opět přepsat, až bude většina plánovaných změn hotová.

Dokumentace je aktuální pro verzi formátítka odevzdanou k zápočťáku a spousta věcí se od té doby změnila, ale ještě je nepovažuji za upevněné a dokumentaci chci opět přepsat, až bude většina plánovaných změn hotová.
Poster
Owner

OK, tam já se pokusím míň číst dokumentaci a víč koukat do kódu. :D

Pardon, asi to máš se mnou trošku těžké, protože jsem se nějak rozhodl, že formátíkto je fajn a že ho chci používat. No a jak známo uživatelé vyrábí nejvíce problémů.

OK, tam já se pokusím míň číst dokumentaci a víč koukat do kódu. :D Pardon, asi to máš se mnou trošku těžké, protože jsem se nějak rozhodl, že formátíkto je fajn a že ho chci používat. No a jak známo uživatelé vyrábí nejvíce problémů.
jan commented 1 year ago

Taky se můžeš zkusit koukat do zavřených issues, kde občas popíšu, jak jsem něco udělal. Nebo commit messages, které jsem se obvykle snažil k jednotlivým issues linkovat.

Taky se můžeš zkusit koukat do zavřených issues, kde občas popíšu, jak jsem něco udělal. Nebo commit messages, které jsem se obvykle snažil k jednotlivým issues linkovat.
jan referenced this issue from a commit 1 year ago
jan closed this issue 1 year ago
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.