Skip to content

Commit a45b371

Browse files
committed
[GR-60881] Update bundled sqlite3 and bundled PyPy files
PullRequest: graalpython/3636
2 parents 6c398ac + 9f36afb commit a45b371

File tree

6 files changed

+26184
-10305
lines changed

6 files changed

+26184
-10305
lines changed

graalpython/com.oracle.graal.python.cext/modules/_sqlite/sqlite/sqlite3.c

Lines changed: 25368 additions & 10134 deletions
Large diffs are not rendered by default.

graalpython/com.oracle.graal.python.cext/modules/_sqlite/sqlite/sqlite3.h

Lines changed: 773 additions & 163 deletions
Large diffs are not rendered by default.

graalpython/lib-python/3/_md5.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ class md5:
141141
digest_size = digestsize = 16
142142
block_size = 64
143143

144-
def __init__(self, arg=None, *, usedforsecurity=True):
144+
def __init__(self, arg=None, usedforsecurity=True):
145145
"Initialisation."
146146

147147
# Initial message length in bits(!).

graalpython/lib-python/3/_sha1.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,19 @@ def f60_79(B, C, D):
137137
0xCA62C1D6 # (60 <= t <= 79)
138138
]
139139

140-
class sha:
140+
141+
class Immutable(type):
142+
def __init__(cls, name, bases, dct):
143+
type.__setattr__(cls,"attr",set(dct.keys()))
144+
type.__init__(cls, name, bases, dct)
145+
146+
def __setattr__(cls, name, value):
147+
# Mock Py_TPFLAGS_IMMUTABLETYPE
148+
qualname = '.'.join([cls.__module__, cls.__name__])
149+
raise TypeError(f"cannot set '{name}' attribute of immutable type '{qualname}'")
150+
151+
152+
class sha(metaclass=Immutable):
141153
"An implementation of the SHA hash function in pure Python."
142154

143155
digest_size = digestsize = 20

graalpython/lib-python/3/_sha256.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,11 +242,23 @@ def sha_final(sha_info):
242242
dig.extend([ ((i>>24) & 0xff), ((i>>16) & 0xff), ((i>>8) & 0xff), (i & 0xff) ])
243243
return bytes(dig)
244244

245-
class sha256(object):
245+
246+
class Immutable(type):
247+
def __init__(cls, name, bases, dct):
248+
type.__setattr__(cls,"attr",set(dct.keys()))
249+
type.__init__(cls, name, bases, dct)
250+
251+
def __setattr__(cls, name, value):
252+
# Mock Py_TPFLAGS_IMMUTABLETYPE
253+
qualname = '.'.join([cls.__module__, cls.__name__])
254+
raise TypeError(f"cannot set '{name}' attribute of immutable type '{qualname}'")
255+
256+
257+
class sha256(object, metaclass=Immutable):
246258
digest_size = digestsize = SHA_DIGESTSIZE
247259
block_size = SHA_BLOCKSIZE
248260

249-
def __init__(self, s=None, *, usedforsecurity=True):
261+
def __init__(self, s=None, usedforsecurity=True):
250262
self.name = 'sha256'
251263
self._sha = sha_init()
252264
if s:
@@ -269,7 +281,7 @@ def copy(self):
269281
class sha224(sha256):
270282
digest_size = digestsize = 28
271283

272-
def __init__(self, s=None, *, usedforsecurity=True):
284+
def __init__(self, s=None, usedforsecurity=True):
273285
self.name = 'sha224'
274286
self._sha = sha224_init()
275287
if s:

graalpython/lib-python/3/_sha512.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -255,11 +255,22 @@ def sha_final(sha_info):
255255
dig.extend([ ((i>>56) & 0xff), ((i>>48) & 0xff), ((i>>40) & 0xff), ((i>>32) & 0xff), ((i>>24) & 0xff), ((i>>16) & 0xff), ((i>>8) & 0xff), (i & 0xff) ])
256256
return bytes(dig)
257257

258-
class sha512(object):
258+
class Immutable(type):
259+
def __init__(cls, name, bases, dct):
260+
type.__setattr__(cls,"attr",set(dct.keys()))
261+
type.__init__(cls, name, bases, dct)
262+
263+
def __setattr__(cls, name, value):
264+
# Mock Py_TPFLAGS_IMMUTABLETYPE
265+
qualname = '.'.join([cls.__module__, cls.__name__])
266+
raise TypeError(f"cannot set '{name}' attribute of immutable type '{qualname}'")
267+
268+
269+
class sha512(object, metaclass=Immutable):
259270
digest_size = digestsize = SHA_DIGESTSIZE
260271
block_size = SHA_BLOCKSIZE
261272

262-
def __init__(self, s=None, *, usedforsecurity=True):
273+
def __init__(self, s=None, usedforsecurity=True):
263274
self.name = 'sha512'
264275
self._sha = sha_init()
265276
if s:
@@ -282,7 +293,7 @@ def copy(self):
282293
class sha384(sha512):
283294
digest_size = digestsize = 48
284295

285-
def __init__(self, s=None, *, usedforsecurity=True):
296+
def __init__(self, s=None, usedforsecurity=True):
286297
self.name = 'sha384'
287298
self._sha = sha384_init()
288299
if s:

0 commit comments

Comments
 (0)