diff options
Diffstat (limited to 'modules/language/python/module')
-rw-r--r-- | modules/language/python/module/_socket.scm | 10 | ||||
-rw-r--r-- | modules/language/python/module/binascii.scm | 20 | ||||
-rw-r--r-- | modules/language/python/module/python.scm | 4 | ||||
-rw-r--r-- | modules/language/python/module/random.py | 4 |
4 files changed, 25 insertions, 13 deletions
diff --git a/modules/language/python/module/_socket.scm b/modules/language/python/module/_socket.scm index 5d7730b..000428f 100644 --- a/modules/language/python/module/_socket.scm +++ b/modules/language/python/module/_socket.scm @@ -128,7 +128,9 @@ gethostbyname_ex gethostname getnameinfo getprotobyn getservbyname htonl htons if_indextoname if_nameindex if_nametoindex inet_aton inet_ntop ntohl setdefaulttimeout - getservbyport + getservbyport gethostbyaddr + + error timeout )) (define-syntax-rule (aif it p . l) (let ((it p)) (if it . l))) @@ -471,6 +473,9 @@ (define scm-socket (@ (guile) socket)) +(define-python-class error (Exception)) +(define-python-class timeout (Exception)) + (define-python-class socket () (define __init__ (lam (self (= family AF_INET) (= type SOCK_STREAM) (= proto 0) @@ -630,6 +635,9 @@ (define (gethostbyname host) ((@ (guile) gethostbyname) host)) +(define (gethostbyaddr addr) + ((@ (guile) gethostbyname) addr)) + (define (gethostbyname_ex host) (error "not implemented")) diff --git a/modules/language/python/module/binascii.scm b/modules/language/python/module/binascii.scm index bda660e..ab3dd69 100644 --- a/modules/language/python/module/binascii.scm +++ b/modules/language/python/module/binascii.scm @@ -138,16 +138,19 @@ (bytes (list)) (let lp ((i 0) (r '())) (cond + ((>= i n) + (bytes (reverse r))) + ((or (= (get1 n i) 10) (= (get1 n i) 13)) (lp (+ i 1) r)) - ((< i n) + (else (let ((b1 (get1 n i)) (b2 (get1 n (+ i 1))) - (b3 (get1 n (+ i 2))) - (b4 (get1 n (+ i 3)))) + (b3 (get1 n (+ i 2))) + (b4 (get1 n (+ i 3)))) (let ((b1 (get2 b1)) - (b2 (get2 b1))) + (b2 (get2 b2))) (if (= x=x b4) (if (= x=x b3) (let* ((x (logior b1 (ash b2 6))) @@ -164,9 +167,8 @@ (ch1 (logand x #xff)) (ch2 (ash (logand x #xff00) -8)) (ch3 (ash (logand x #xff0000) -16))) - (lp (+ i 4) (cons* ch3 ch2 ch1 r))))))) - (else - (bytes (reverse (cons 10 r))))))))) + (lp (+ i 4) (cons* ch3 ch2 ch1 r)))))))))))) + (def (b2a_base64 data (= newline #t)) (define x=x (char->integer #\=)) @@ -182,7 +184,7 @@ (define (get2 i) (bytevector-u8-ref to64 i)) (cond - ((= i (- n 1)) + ((= i (- n 2)) (let* ((b1 (get i)) (b2 (get (+ i 1))) (x (logior b1 (ash b2 8))) @@ -192,7 +194,7 @@ (a4 x=x)) (lp (+ i 3) (cons* a4 a3 a2 a1 r)))) - ((= i (- n 2)) + ((= i (- n 1)) (let* ((x (get i)) (a1 (get2 (logand #x3f x))) (a2 (get2 (ash (logand #xfc0 x) -6))) diff --git a/modules/language/python/module/python.scm b/modules/language/python/module/python.scm index f105f22..00472b3 100644 --- a/modules/language/python/module/python.scm +++ b/modules/language/python/module/python.scm @@ -2,7 +2,9 @@ #:use-module (language python module _python) #:use-module (language python compile ) #:use-module (language python module ) - #:use-module ((language python format2) #:select ())) + #:use-module (language python memoryview ) + #:use-module ((language python format2) #:select ()) + #:re-export (memoryview)) (define-syntax re-export-all (syntax-rules () diff --git a/modules/language/python/module/random.py b/modules/language/python/module/random.py index be8f9ef..c88d1cf 100644 --- a/modules/language/python/module/random.py +++ b/modules/language/python/module/random.py @@ -38,6 +38,7 @@ General notes on the underlying Mersenne Twister core generator: and is, therefore, threadsafe. """ + from warnings import warn as _warn from types import MethodType as _MethodType, BuiltinMethodType as _BuiltinMethodType from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil @@ -62,7 +63,6 @@ SG_MAGICCONST = 1.0 + _log(4.5) BPF = 53 # Number of bits in a float RECIP_BPF = 2**-BPF - # Translated by Guido van Rossum from C source provided by # Adrian Baddeley. Adapted by Raymond Hettinger for use with # the Mersenne Twister and os.urandom() core generators. @@ -93,7 +93,7 @@ class Random (_random.Random): self.seed(x) self.gauss_next = False - + def seed(self, a=None, version=2): """Initialize internal state from hashable object. |