Re: [python] Ovlivnění názvu souboru a čísla řádku ve výjimkách

2022-04-05 Tema obsahu Josef Skladanka
Hele, nevim jestli to neni uplne debilini a nefunkcni napad (tedka to na
telefonu nevyzkousim) ale co ten kod v "dilcich" modulech (010.py, ...)
obalit do nejakyho "chytam vyjimky a re-raisuju je se spravnyma
parametrama" dekoratoru? Netusim jak to budete "spojovat", cekam ze
automaticky nejakym "generatorem kodu", tak by to mohlo byt i vcelku
primocare udelatelny na te "spojovaci" vrstve.

Ale... To je tak jako z hospody od piva, cekam ze je na to lepsi reseni.

On Tue, Apr 5, 2022 at 6:38 PM 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.
>
> Děkuju!
>
> Vladimír Macek | +420 608 978 164
>
> ___
> Python mailing list
> python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>


-- 
"The best is the enemy of the good."
   --Voltaire
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz


Re: [python] Ovlivnění názvu souboru a čísla řádku ve výjimkách

2022-04-05 Tema obsahu Petr Viktorin

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 
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