Skip to content

Commit 6e7c1cc

Browse files
committed
various improvements to the C implementation
1 parent 9b57744 commit 6e7c1cc

File tree

532 files changed

+108655
-994
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

532 files changed

+108655
-994
lines changed

frozendict/core.py

-3
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,7 @@ def __new__(cls, *args, **kwargs):
5353

5454
# empty singleton - start
5555

56-
print("IN NEW")
57-
5856
if self.__class__ == frozendict and not len(self):
59-
print("SINGLETON")
6057
try:
6158
self = cls.empty
6259
continue_creation = False

frozendict/src/3_10/Include/cpython/frozendictobject.h

-7
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,3 @@ typedef struct {
1313
Py_hash_t _hash;
1414
short _hash_calculated;
1515
} PyFrozenDictObject;
16-
17-
PyAPI_FUNC(void) _PyDict_UseEmptyFrozendict(int boolean);
18-
PyAPI_FUNC(int) _PyFrozendict_SetItem(PyObject *op,
19-
PyObject *key,
20-
PyObject *value,
21-
int empty);
22-
PyAPI_FUNC(void) _PyFrozendict_UpdateLookup(PyObject* op);

frozendict/src/3_10/Include/frozendictobject.h

+28-8
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,45 @@ extern "C" {
55
#endif
66

77
PyAPI_DATA(PyTypeObject) PyFrozenDict_Type;
8+
PyAPI_DATA(PyTypeObject) PyCoold_Type;
89
#define PyFrozenDict_Check(op) \
9-
Py_IS_TYPE(op, &PyFrozenDict_Type)
10+
( \
11+
Py_IS_TYPE(op, &PyFrozenDict_Type) \
12+
|| PyType_IsSubtype(Py_TYPE(ob), &PyFrozenDict_Type) \
13+
)
1014

1115
#define PyFrozenDict_CheckExact(op) Py_IS_TYPE(op, &PyFrozenDict_Type)
1216

17+
#define PyAnyFrozenDict_Check(op) \
18+
( \
19+
Py_IS_TYPE(op, &PyFrozenDict_Type) \
20+
|| Py_IS_TYPE(op, &PyCoold_Type) \
21+
|| PyType_IsSubtype(Py_TYPE(op), &PyFrozenDict_Type) \
22+
|| PyType_IsSubtype(Py_TYPE(op), &PyCoold_Type) \
23+
)
24+
25+
#define PyAnyFrozenDict_CheckExact(op) \
26+
( \
27+
Py_IS_TYPE(op, &PyFrozenDict_Type) \
28+
|| Py_IS_TYPE(op, &PyCoold_Type) \
29+
)
30+
1331
#define PyAnyDict_Check(ob) \
1432
( \
15-
Py_IS_TYPE(ob, &PyDict_Type) || Py_IS_TYPE(ob, &PyFrozenDict_Type) || \
16-
PyType_IsSubtype(Py_TYPE(ob), &PyDict_Type) || \
17-
PyType_IsSubtype(Py_TYPE(ob), &PyFrozenDict_Type) \
33+
Py_IS_TYPE(ob, &PyDict_Type) \
34+
|| Py_IS_TYPE(ob, &PyFrozenDict_Type) \
35+
|| Py_IS_TYPE(ob, &PyCoold_Type) \
36+
|| PyType_IsSubtype(Py_TYPE(ob), &PyDict_Type) \
37+
|| PyType_IsSubtype(Py_TYPE(ob), &PyFrozenDict_Type) \
38+
|| PyType_IsSubtype(Py_TYPE(ob), &PyCoold_Type) \
1839
)
1940

2041
#define PyAnyDict_CheckExact(op) ( \
21-
(Py_IS_TYPE(op, &PyDict_Type)) || \
22-
(Py_IS_TYPE(op, &PyFrozenDict_Type)) \
42+
(Py_IS_TYPE(op, &PyDict_Type)) \
43+
|| (Py_IS_TYPE(op, &PyFrozenDict_Type)) \
44+
|| (Py_IS_TYPE(op, &PyCoold_Type)) \
2345
)
2446

25-
PyAPI_FUNC(PyObject *) PyFrozenDict_New(PyObject* arg, PyObject* kwds);
26-
2747
PyAPI_DATA(PyTypeObject) PyFrozenDictItems_Type;
2848
PyAPI_DATA(PyTypeObject) PyFrozenDictIterKey_Type;
2949
PyAPI_DATA(PyTypeObject) PyFrozenDictIterItem_Type;

0 commit comments

Comments
 (0)