| #ifndef STATIC_DATA |
| #define STATIC_DATA |
| |
| #include "static_data.h" |
| |
| // Adopted from numpy 2.4.0: numpy/_core/src/multiarry/npy_static_data.c |
| |
| mypyc_interned_str_struct mypyc_interned_str; |
| |
| #define INTERN_STRING(struct_member, string) \ |
| assert(mypyc_interned_str.struct_member == NULL); \ |
| mypyc_interned_str.struct_member = PyUnicode_InternFromString(string); \ |
| if (mypyc_interned_str.struct_member == NULL) { \ |
| return -1; \ |
| } |
| |
| int |
| intern_strings(void) { |
| if (mypyc_interned_str.values != NULL) { |
| // Already interned. |
| return 0; |
| } |
| INTERN_STRING(__init_subclass__, "__init_subclass__"); |
| INTERN_STRING(__module__, "__module__"); |
| INTERN_STRING(__mro_entries__, "__mro_entries__"); |
| INTERN_STRING(__mypyc_attrs__, "__mypyc_attrs__"); |
| INTERN_STRING(__name__, "__name__"); |
| INTERN_STRING(__orig_bases__, "__orig_bases__"); |
| INTERN_STRING(__qualname__, "__qualname__"); |
| INTERN_STRING(__slots__, "__slots__"); |
| INTERN_STRING(__radd__, "__radd__"); |
| INTERN_STRING(__rsub__, "__rsub__"); |
| INTERN_STRING(__rmul__, "__rmul__"); |
| INTERN_STRING(__rtruediv__, "__rtruediv__"); |
| INTERN_STRING(__rmod__, "__rmod__"); |
| INTERN_STRING(__rdivmod__, "__rdivmod__"); |
| INTERN_STRING(__rfloordiv__, "__rfloordiv__"); |
| INTERN_STRING(__rpow__, "__rpow__"); |
| INTERN_STRING(__rmatmul__, "__rmatmul__"); |
| INTERN_STRING(__rand__, "__rand__"); |
| INTERN_STRING(__ror__, "__ror__"); |
| INTERN_STRING(__rxor__, "__rxor__"); |
| INTERN_STRING(__rlshift__, "__rlshift__"); |
| INTERN_STRING(__rrshift__, "__rrshift__"); |
| INTERN_STRING(__eq__, "__eq__"); |
| INTERN_STRING(__ne__, "__ne__"); |
| INTERN_STRING(__gt__, "__gt__"); |
| INTERN_STRING(__le__, "__le__"); |
| INTERN_STRING(__lt__, "__lt__"); |
| INTERN_STRING(__ge__, "__ge__"); |
| INTERN_STRING(clear, "clear"); |
| INTERN_STRING(close_, "close"); |
| INTERN_STRING(copy, "copy"); |
| INTERN_STRING(dispatch_cache, "dispatch_cache"); |
| INTERN_STRING(endswith, "endswith"); |
| INTERN_STRING(get_type_hints, "get_type_hints"); |
| INTERN_STRING(keys, "keys"); |
| INTERN_STRING(lower, "lower"); |
| INTERN_STRING(items, "items"); |
| INTERN_STRING(join, "join"); |
| INTERN_STRING(register_, "register"); |
| INTERN_STRING(registry, "registry"); |
| INTERN_STRING(send, "send"); |
| INTERN_STRING(setdefault, "setdefault"); |
| INTERN_STRING(startswith, "startswith"); |
| INTERN_STRING(super, "super"); |
| INTERN_STRING(throw_, "throw"); |
| INTERN_STRING(translate, "translate"); |
| INTERN_STRING(update, "update"); |
| INTERN_STRING(upper, "upper"); |
| INTERN_STRING(values, "values"); |
| return 0; |
| } |
| |
| #endif |