On 05. 04. 22 18:37, Vladimír Macek wrote:
Zdravím, mám neobvyklou otázku.

Zvažujeme do jednoho projektu s embedovaným Pythonem vývoj skriptů tak, že se jeden py modul bude vyvíjet po segmentech. Budou nazvané třeba 010.py, 020.py, 030.py, ...

Pro puristy, budou to malé segmenty specifické domény, nikoli standardní projekt. :-)

Pro provedení se všechny segmenty modulu spojí do jednoho mod.py. Avšak když v něm nastane chyba, bude v tracebacku mod.py a číslo řádku z něj.

Vývojář ale bude potřebovat problém najít ve zdrojových segmentech 010.py, 020.py, ...

Samozřejmě si můžu segmenty zaindexovat, analyzovat text tracebacku a obohatit ho o přepočítané pozice.

Chci se jen zeptat, jestli někdo z vás neví třeba o způsobu, jak ovlivnit interní počítadlo tak, že by se při spojování do mod.py dal na začátek každého segmentu nějaký override názvu souboru a počítadla řádků.

Pokud někoho z vás napadnou alternativy, aby se segmenty provedly ve stejném namespace a bez spojování nebo jiné řešení, uvítám tip.


Idealne chces `from segment000 import *` ze vsech segmentu, ale jestli je *fakt* potreba stejny namespace pro vic souboru, da se to udelat nejak takhle:


-----------8<-----------

exec(compile("""
def main():
    other()
""", '000.fakepy', 'exec'))

exec(compile("""
def other():
    '''docstring on line 3'''
    raise Exception()
""", '001.fakepy', 'exec'))

main()

-----------8<-----------

Traceback (most recent call last):
  File "/tmp/mod.py", line 13, in <module>
    main()
  File "000.fakepy", line 3, in main
  File "001.fakepy", line 4, in other
Exception

-----------8<-----------

(s open+read misto literal retezcu, jestli nechces spojovat)
_______________________________________________
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Odpovedet emailem