Path: csiph.com!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!feeder1.feed.usenet.farm!feed.usenet.farm!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!fx13.ams4.POSTED!not-for-mail Received-SPF: none (Address does not pass the Sender Policy Framework) SPF=HELO; sender=mail-ej1-f49.google.com; remoteip=::ffff:209.85.218.49; remotehost=; helo=mail-ej1-f49.google.com; receiver=hugo.zagamma.cz; Received-SPF: pass (Address passes the Sender Policy Framework) SPF=MAILFROM; sender=encukou@gmail.com; remoteip=::ffff:209.85.218.49; remotehost=; helo=mail-ej1-f49.google.com; receiver=hugo.zagamma.cz; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :references:from:in-reply-to:content-transfer-encoding; bh=9s6W0sY25IN4rr4uPgK/eFdEZQzbuQtYRXofVk2Ka40=; b=crpoi+iI9a9YQZkD+31oFolnfeiCZvHzi0ouu40ov21HqR6g69LrClQ1dxAgjiXmtV VK1cfakdq+X6o9/drgaWO+jp80xDygPriEfLknPvaW7mXEn810u8isENnsQZv97UFJxJ 0cIX88m6KcIjefBfBKwVrlRF+DoIMRkhG4a6VoG/zvEF7O2sg8/1r2mT6zIUOzLmQd7L UodsbQ6TtdxJ9hC98RD3286Ouci8kY8SeyGhXOWKBFdfuc/shQ1pmkLuG9bR1ssmPDE3 Au8SHSBJvXdsVeVftDOhftNSGCawpS39hXGW0e6FoNhMcrndesR38HpQoJvB0JyiI71G dsEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:in-reply-to :content-transfer-encoding; bh=9s6W0sY25IN4rr4uPgK/eFdEZQzbuQtYRXofVk2Ka40=; b=Dhpo35+SoMQ45H4xLn1QEwYrf3kNQMzm5NBwzyqueCvi0rTg3gr82RRxXbzbayA8/q yATUlyzLBAV2rTcvLdu28n9iO1UEd8//pWrINxkH3eOUJkrqAaFIfxJNQ+WhUpg/40zX ZyqON/RkeafC5/Ar26qZN9A1G7R+Rri1HVpLxJw4Zq+htjBKw6vEt/RYbn+uuZT5qbCf 9NpxO+iW2+1B6nkkPTOfv6b3lagJifxXrSFzWeVyFa6if4wxN3w//ePdOCr6ahJG0kQ5 WWllwHKDXY8rnjJZQtA8TZTBOk5SC5gKxyGos43HBALtzAX1q87f9J5tPB8nat2FlUl8 Td8g== X-Gm-Message-State: AOAM5302+jxuGwYthVuqZ3rTl0+W2aHhh9L3JfVNSkIaw5IpFoKzIyRB b2FqLObBFMBigasEVIhe02SFy06Oul0= X-Google-Smtp-Source: ABdhPJzbffZQHJydUCGlkk7gMSxmpPnq98hP5BOGOrH/Ud9HF24M5pDT7jdlrIpoH1929HQe6DtAfg== X-Received: by 2002:a17:907:2706:b0:6e8:44f:a76c with SMTP id w6-20020a170907270600b006e8044fa76cmr4955194ejk.0.1649183398696; Tue, 05 Apr 2022 11:29:58 -0700 (PDT) Old-Return-Path: MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Content-Language: en-US From: Petr Viktorin In-Reply-To: <18546cfe-ca81-7f24-be3f-f01f12fe8c6f@sandbox.cz> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [python] =?utf-8?b?T3ZsaXZuxJtuw60gbsOhenZ1IHNvdWJvcnUgYSDEjcOt?= =?utf-8?b?c2xhIMWZw6Fka3UgdmUgdsO9amlta8OhY2g=?= X-BeenThere: python@py.cz X-Mailman-Version: 2.1.34 Precedence: list List-Id: Konference PyCZ List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: cz.comp.lang.python Message-ID: X-Mailman-Original-Message-ID: <14d7e451-c717-16e3-87f0-27eb2baab75f@gmail.com> X-Mailman-Original-References: <18546cfe-ca81-7f24-be3f-f01f12fe8c6f@sandbox.cz> References: <18546cfe-ca81-7f24-be3f-f01f12fe8c6f@sandbox.cz> <14d7e451-c717-16e3-87f0-27eb2baab75f@gmail.com> Lines: 59 X-Complaints-To: abuse@usenet-news.net NNTP-Posting-Date: Tue, 05 Apr 2022 18:30:07 UTC Organization: usenet-news.net Date: Tue, 5 Apr 2022 20:29:56 +0200 X-Received-Bytes: 5640 Xref: csiph.com cz.comp.lang.python:3441 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)