Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > de.comp.lang.python > #5908

Re: [Python-de] Re: Funktion ueberschreiben?

From Ulli Horlacher <framstag@rus.uni-stuttgart.de>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] Re: Funktion ueberschreiben?
Date 2022-12-05 08:07 +0000
Organization University of Stuttgart, FRG
Message-ID <tmk8rp$cjb$1@news2.informatik.uni-stuttgart.de> (permalink)
References (7 earlier) <slrntop5ri.15dl6.hjp-usenet3@trintignant.hjp.at> <tmi67a$bbs$1@news2.informatik.uni-stuttgart.de> <slrntop96d.15lbp.hjp-usenet3@trintignant.hjp.at> <tmibi1$be9$1@news2.informatik.uni-stuttgart.de> <slrntoq30h.t9b.hjp-usenet3@trintignant.hjp.at>

Show all headers | View raw


Peter J. Holzer <hjp-usenet3@hjp.at> wrote:

>>> % 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!
>>
>> "foo" waere dann "/usr/bin/duplicity" ?
> 
> Ja.
> 
>> Aber da steht doch drin:
>> import time
>> was mir meine grad modifizierte time.asctime() Funktion wieder ueberschreibt?
> 
> Nein. "import" funktioniert ähnlich wie "use" in Perl. Wenn ein Modul
> schon importiert wurde, wird es kein zweites Mal importiert.

Ahh... sehr gut. Wieder was gelernt :-)

Prinzipiell gefaellt mir dieser Ansatz, aber ich hab wohl noch was falsch
gemacht (duply ruft duplicity auf):

root@obertux:/opt/s3tik/bin# type -a duplicity
duplicity is /opt/s3tik/bin/duplicity
duplicity is /usr/bin/duplicity

root@obertux:/opt/s3tik/bin# duply root list
Start duply v2.2, time is 2022-12-05 08:57:09.
Using profile '/root/.duply/root'.
Using installed duplicity version 0.8.12, python 3.8.10 (/usr/bin/python3), gpg 2.2.19 (Home: /root/.gnupg), awk 'mawk 1.3.4 20200120', grep 'grep (GNU grep) 3.4', bash '5.0.17(1)-release (x86_64-pc-linux-gnu)'.
Checking TEMP_DIR '/tmp' is a folder and writable (OK)
Test - En/Decryption skipped. (GPG disabled)

--- Start running command LIST at 08:57:10.534 ---
Traceback (innermost last):
  File "<string>", line 106, in <module>
  File "<string>", line 92, in with_tempdir
  File "/usr/lib/python3/dist-packages/duplicity/dup_main.py", line 1538, in main
    do_backup(action)
  File "/usr/lib/python3/dist-packages/duplicity/dup_main.py", line 1558, in do_backup
    col_stats = dup_collections.CollectionsStatus(globals.backend,
  File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 744, in set_values
    self.get_backup_chains(partials + backend_filename_list)
  File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 896, in get_backup_chains
    add_to_chains(s)
  File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 884, in add_to_chains
    log.Debug(_(u"Found backup chain %s") % (new_chain.short_desc()))
  File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 408, in short_desc
    return u"[%s]-[%s]" % (dup_time.timetopretty(self.start_time),
  File "/usr/lib/python3/dist-packages/duplicity/dup_time.py", line 169, in timetopretty
    return time.asctime(time.localtime(timeinseconds))
  File "/opt/s3tik/bin/duplicity", line 6, in isodate
    return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timeinseconds))
 TypeError: an integer is required (got type time.struct_time)

08:57:10.886 Task 'LIST' failed with exit code '30'.
--- Finished state FAILED 'code 30' at 08:57:10.886 - Runtime 00:00:00.351 ---

root@obertux:/opt/s3tik/bin# cat duplicity
#!/usr/bin/python3

import time

def isodate(timeinseconds):
  return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timeinseconds))

time.asctime = isodate;

with open("/usr/bin/duplicity") as duplicity:
    code = duplicity.read()
    exec(code)


root@obertux:/opt/s3tik/bin# fpg -p asctime /usr/lib/python3/dist-packages/duplicity/dup_time.py
def timetopretty(timeinseconds):
    u"""Return pretty version of time"""
    return time.asctime(time.localtime(timeinseconds))
#   return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timeinseconds))
    

Mit der letzten auskommentierten Zeile hatte es zuvor funktioniert. 
Ich verstehe nicht, warum es nun zu obiger Fehlermeldung kommt (line 169
ist die drueber).
Was hab ich uebersehen?


>>> Was mich wieder zu der Frage zurückführt, wie Du da ein Wrapper-Script
>>> installieren willst.
>>
>> $HOME/bin, /var/tmp/bin, etc
> 
> D.h. du willst das nur für dich, nicht für die anderen User des Systems?
> (Dass Du oben /opt erwähnst, widerspricht dem etwas)

Ich teste es erst mal lokal auf meinem eigenem System, da kann ich /opt
beschreiben.


-- 
Ullrich Horlacher              Server und Virtualisierung
Rechenzentrum TIK         
Universitaet Stuttgart         E-Mail: horlacher@tik.uni-stuttgart.de
Allmandring 30a                Tel:    ++49-711-68565868
70569 Stuttgart (Germany)      WWW:    http://www.tik.uni-stuttgart.de/

Back to de.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


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