Mam org-mode
plik zawierający tabelę danych i dwa bloki kodu Pythona, aby wyodrębnić z niej różne podsumowania.
Chciałbym udostępnić niektóre wspólne stałe i funkcje między tymi dwoma blokami kodu. Idealnie zrobiłbym to, dzieląc wspólny kod na osobny blok kodu, który byłby automatycznie uwzględniany i oceniany za każdym razem, gdy oceniany jest jeden z pozostałych dwóch bloków. W gotowej składni wyglądałoby to mniej więcej tak:
#+NAME: init_block
#+BEGIN_SRC python
... common constants and functions here ...
#+END_SRC
#+NAME: summary_1
#+BEGIN_SRC python :prepend init_block
... data-processing code depending on init code goes here ...
#+END_SRC
#+NAME: summary_2
#+BEGIN_SRC python :prepend init_block
... more processing which also depends on init code ...
#+END_SRC
Chyba mógłbym skorzystać z tej :session
opcji, ale wolałbym tego nie robić z dwóch powodów. Po pierwsze, tworzy stanowy system, a nie taki, który działa od zera za każdym razem, gdy używam C-c C-c
bloku kodu. Po drugie, i w związku z tym muszę teraz pamiętać o ręcznej ocenie wspólnego kodu inicjalizacji za każdym razem, gdy otwieram plik: nie mogę po prostu zaktualizować tabeli danych, przejść do jednego z bloków podsumowań i nacisnąć, C-c C-c
aby go zaktualizować.
Czy jest na to dobry sposób?