Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.python > #5905
| From | "Peter J. Holzer" <hjp-usenet3@hjp.at> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | Re: [Python-de] Re: Funktion ueberschreiben? |
| Date | 2022-12-04 14:46 +0100 |
| Organization | LUGA |
| Message-ID | <slrntop96d.15lbp.hjp-usenet3@trintignant.hjp.at> (permalink) |
| References | (4 earlier) <tmfv45$a1a$1@news2.informatik.uni-stuttgart.de> <slrntonpdo.13t6p.hjp-usenet3@trintignant.hjp.at> <tmhr2q$b5c$1@news2.informatik.uni-stuttgart.de> <slrntop5ri.15dl6.hjp-usenet3@trintignant.hjp.at> <tmi67a$bbs$1@news2.informatik.uni-stuttgart.de> |
On 2022-12-04 13:10, Ulli Horlacher <framstag@rus.uni-stuttgart.de> wrote:
> Peter J. Holzer <hjp-usenet3@hjp.at> wrote:
>
>>> Via environment Variable PERLLIB, analog zu LD_LIBRARY_PATH.
>>
>> Beides beeinflusst nur, wo Libraries gesucht werden.
>
> Genau das reicht doch: es soll meine modifizierte time Library gefunden
> und dann zur Laufzeit geladen werden.
Vielleicht, aber das war nicht Deine Frage.
>> Aber time zu ersetzen scheint mir sowieso keine zielführende Taktik zu
>> sein. Asctime ist ja nicht die einzige Funktion aus diesem Modul, die
>> verwendet wird. Wie ersetzt Du den Rest?
>
> Gar nicht. Die bleibt gleich.
> Ich wollte time.py kopieren und da drin nur time.asctime() modifizieren.
> Da es das aber gar nicht als eigenes library-file gibt, ist diese Idee nicht
> umsetzbar. Sackgasse.
>
>
>> Wenn Du ein Modul ersetzen willst, dann eher duplicity.dup_time.
>
> Da stecken halt noch viel mehr Funktionen drin.
12 Funktionen und eine Klasse. Das Modul »time« hat ungefähr das
Doppelte. Und ein guter Teil davon ist notwendigerweise in C
geschrieben. Das scheint mir jedenfalls deutlich komplexer zu sein, als
das ziemlich übersichtliche dup_time.
> Wenn es nun ein Ubuntu-Update davon gibt, kann es zu
> Inkompatibiltaeten kommen.
Für das hypothetische python.py gilt das genauso.
> In Perl kann man folgendes machen: Ein Modul laden und danach nur eine
> Funktion nachtraeglich ersetzen. Geht so was auch mit Python?
Ja, wurde ja schon erklärt. Aber die Stelle, wo das trivial möglich
wäre, willst Du ja nicht angreifen.
(Was für mich auch eher schleierhaft macht. wie du da ein Wrapper-Script
unterbringen willst: Würden nicht alle Argumente, die gegen eine
Modifikation des Originalscripts sprechen auch gegen ein Wrapper-Script
sprechen? Bzw. Wie stellst Du sicher, dass das Wrapper-Script aufgerufen
wird, wenn es woanders liegt?)
> Dann wuerde ich das original duplicity.dup_time laden und dann
> timetopretty() neu definieren. Kann ich dazu PYTHONPATH verwenden?
Nicht direkt. Wie in meinem vorigen Posting beschrieben, vielleicht
indirekt, aber das ist mindestens so fragil.
Wenn Du ein *anderes* Script aufrufen kannst, ist es wahrscheinlich am
einfachsten, das Originalscript mittels exec aufzurufen:
% cat foo
#!/usr/bin/python3
import time
timeinseconds = time.time()
print(time.asctime(time.localtime(timeinseconds)))
% ./foo
Sun Dec 4 14:39:06 2022
% cat foo_wrapper
#!/usr/bin/python3
import time
def my_asctime(tm):
return "Gotcha!"
time.asctime = my_asctime
with open("foo") as f:
code = f.read()
exec(code)
% ./foo_wrapper
Gotcha!
>> Wenn mich das Datumsformat ausreichend stören würde, würde ich das
>> Debian-Paket patchen (ich gehe mal davon aus, dass Du das auf mehr als
>> einem System haben willst). Das ist wahrscheinlich am einfachsten und
>> saubersten.
>
> Nicht machbar. Die Zielsysteme koennen auch Redhat sein und ich hab da
> auch keine root-Rechte.
Was mich wieder zu der Frage zurückführt, wie Du da ein Wrapper-Script
installieren willst.
hp
Back to de.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Funktion ueberschreiben? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2022-12-03 08:28 +0000
[Python-de] Re: Funktion ueberschreiben? Mike Müller <mmueller@python-academy.de> - 2022-12-03 10:00 +0100
[Python-de] Re: Funktion ueberschreiben? Mike Müller <mmueller@python-academy.de> - 2022-12-03 13:49 +0100
Re: [Python-de] Re: Funktion ueberschreiben? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2022-12-03 14:27 +0100
Re: [Python-de] Re: Funktion ueberschreiben? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2022-12-03 15:46 +0000
[Python-de] Re: Funktion ueberschreiben? Christopher Arndt <chris@chrisarndt.de> - 2022-12-03 16:57 +0100
Re: [Python-de] Re: Funktion ueberschreiben? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2022-12-03 16:56 +0000
Re: [Python-de] Re: Funktion ueberschreiben? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2022-12-04 01:11 +0100
Re: [Python-de] Re: Funktion ueberschreiben? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2022-12-04 09:59 +0000
Re: [Python-de] Re: Funktion ueberschreiben? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2022-12-04 13:49 +0100
Re: [Python-de] Re: Funktion ueberschreiben? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2022-12-04 14:06 +0100
Re: [Python-de] Re: Funktion ueberschreiben? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2022-12-04 13:10 +0000
Re: [Python-de] Re: Funktion ueberschreiben? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2022-12-04 14:46 +0100
Re: [Python-de] Re: Funktion ueberschreiben? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2022-12-04 14:41 +0000
Re: [Python-de] Re: Funktion ueberschreiben? "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2022-12-04 22:07 +0100
Re: [Python-de] Re: Funktion ueberschreiben? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2022-12-05 08:07 +0000
Re: [Python-de] Re: Funktion ueberschreiben? Ulli Horlacher <framstag@rus.uni-stuttgart.de> - 2022-12-05 08:24 +0000
Re: [Python-de] Re: Funktion ueberschreiben? "Peter Heitzer" <peter.heitzer@rz.uni-regensburg.de> - 2022-12-05 08:59 +0000
csiph-web