8000 minized modification · linkliang/pythonnet@8f78699 · GitHub
[go: up one dir, main page]

Skip to content

Commit 8f78699

Browse files
author
linkliang
committed
minized modification
1 parent 817fe61 commit 8f78699

File tree

4 files changed

+165
-2
lines changed

4 files changed

+165
-2
lines changed

clr.cpython-36m-darwin.so

16.6 KB
Binary file not shown.

src/runtime/interop36m.cs

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
2+
// Auto-generated by geninterop.py.
3+
// DO NOT MODIFIY BY HAND.
4+
5+
6+
#if PYTHON36 && PYTHON_WITH_PYMALLOC
7+
using System;
8+
using System.Collections;
9+
using System.Collections.Specialized;
10+
using System.Runtime.InteropServices;
11+
using System.Reflection;
12+
using System.Text;
13+
14+
namespace Python.Runtime
15+
{
16+
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
17+
internal class TypeOffset
18+
{
19+
static TypeOffset()
20+
{
21+
Type type = typeof(TypeOffset);
22+
FieldInfo[] fi = type.GetFields();
23+
int size = IntPtr.Size;
24+
for (int i = 0; i < fi.Length; i++)
25+
{
26+
fi[i].SetValue(null, i * size);
27+
}
28+
}
29+
30+
public static int magic()
31+
{
32+
return ob_size;
33+
}
34+
35+
// Auto-generated from PyHeapTypeObject in Python.h
36+
public static int ob_refcnt = 0;
37+
public static int ob_type = 0;
38+
public static int ob_size = 0;
39+
public static int tp_name = 0;
40+
public static int tp_basicsize = 0;
41+
public static int tp_itemsize = 0;
42+
public static int tp_dealloc = 0;
43+
public static int tp_print = 0;
44+
public static int tp_getattr = 0;
45+
public static int tp_setattr = 0;
46+
public static int tp_as_async = 0;
47+
public static int tp_repr = 0;
48+
public static int tp_as_number = 0;
49+
public static int tp_as_sequence = 0;
50+
public static int tp_as_mapping = 0;
51+
public static int tp_hash = 0;
52+
public static int tp_call = 0;
53+
public static int tp_str = 0;
54+
public static int tp_getattro = 0;
55+
public static int tp_setattro = 0;
56+
public static int tp_as_buffer = 0;
57+
public static int tp_flags = 0;
58+
public static int tp_doc = 0;
59+
public static int tp_traverse = 0;
60+
public static int tp_clear = 0;
61+
public static int tp_richcompare = 0;
62+
public static int tp_weaklistoffset = 0;
63+
public static int tp_iter = 0;
64+
public static int tp_iternext = 0;
65+
public static int tp_methods = 0;
66+
public static int tp_members = 0;
67+
public static int tp_getset = 0;
68+
public static int tp_base = 0;
69+
public static int tp_dict = 0;
70+
public static int tp_descr_get = 0;
71+
public static int tp_descr_set = 0;
72+
public static int tp_dictoffset = 0;
73+
public static int tp_init = 0;
74+
public static int tp_alloc = 0;
75+
public static int tp_new = 0;
76+
public static int tp_free = 0;
77+
public static int tp_is_gc = 0;
78+
public static int tp_bases = 0;
79+
public static int tp_mro = 0;
80+
public static int tp_cache = 0;
81+
public static int tp_subclasses = 0;
82+
public static int tp_weaklist = 0;
83+
public static int tp_del = 0;
84+
public static int tp_version_tag = 0;
85+
public static int tp_finalize = 0;
86+
public static int am_await = 0;
87+
public static int am_aiter = 0;
88+
public static int am_anext = 0;
89+
public static int nb_add = 0;
90+
public static int nb_subtract = 0;
91+
public static int nb_multiply = 0;
92+
public static int nb_remainder = 0;
93+
public static int nb_divmod = 0;
94+
public static int nb_power = 0;
95+
public static int nb_negative = 0;
96+
public static int nb_positive = 0;
97+
public static int nb_absolute = 0;
98+
public static int nb_bool = 0;
99+
public static int nb_invert = 0;
100+
public static int nb_lshift = 0;
101+
public static int nb_rshift = 0;
102+
public static int nb_and = 0;
103+
public static int nb_xor = 0;
104+
public static int nb_or = 0;
105+
public static int nb_int = 0;
106+
public static int nb_reserved = 0;
107+
public static int nb_float = 0;
108+
public static int nb_inplace_add = 0;
109+
public static int nb_inplace_subtract = 0;
110+
public static int nb_inplace_multiply = 0;
111+
public static int nb_inplace_remainder = 0;
112+
public static int nb_inplace_power = 0;
113+
public static int nb_inplace_lshift = 0;
114+
public static int nb_inplace_rshift = 0;
115+
public static int nb_inplace_and = 0;
116+
public static int nb_inplace_xor = 0;
117+
public static int nb_inplace_or = 0;
118+
public static int nb_floor_divide = 0;
119+
public static int nb_true_divide = 0;
120+
public static int nb_inplace_floor_divide = 0;
121+
public static int nb_inplace_true_divide = 0;
122+
public static int nb_index = 0;
123+
public static int nb_matrix_multiply = 0;
124+
public static int nb_inplace_matrix_multiply = 0;
125+
public static int mp_length = 0;
126+
public static int mp_subscript = 0;
127+
public static int mp_ass_subscript = 0;
128+
public static int sq_length = 0;
129+
public static int sq_concat = 0;
130+
public static int sq_repeat = 0;
131+
public static int sq_item = 0;
132+
public static int was_sq_slice = 0;
133+
public static int sq_ass_item = 0;
134+
public static int was_sq_ass_slice = 0;
135+
public static int sq_contains = 0;
136+
public static int sq_inplace_concat = 0;
137+
public static int sq_inplace_repeat = 0;
138+
public static int bf_getbuffer = 0;
139+
public static int bf_releasebuffer = 0;
140+
public static int name = 0;
141+
public static int ht_slots = 0;
142+
public static int qualname = 0;
143+
public static int ht_cached_keys = 0;
144+
145+
/* here are optional user slots, followed by the members. */
146+
public static int members = 0;
147+
}
148+
}
149+
150+
#endif

src/runtime/pythonengine.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,20 @@ public static void Initialize()
140140
Initialize(setSysArgv: true);
141141
}
142142

143-
public static void Initialize(bool setSysArgv = true, bool initSigs = false)
143+
[DllImport("/usr/lib/libSystem.dylib", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
144+
public static extern IntPtr dlopen(String fileName, int flags);
145+
146+
[DllImport("/usr/lib/libSystem.dylib", CallingConvention = CallingConvention.Cdecl)]
147+
private static extern int dlclose(IntPtr handle);
148+
149+
public static void Initialize(string userPythonPath){
150+
IntPtr handle = dlopen(userPythonPath,0x8);
151+
Console.WriteLine("Library loaded: " + userPythonPath);
152+
Initialize();
153+
dlclose(handle);
154+
}
155+
156+
public static void Initialize(bool setSysArgv = true, bool initSigs = false, string userPythonPath = "")
144157
{
145158
Initialize(Enumerable.Empty<string>(), setSysArgv: setSysArgv, initSigs: initSigs);
146159
}
@@ -155,7 +168,7 @@ public static void Initialize(bool setSysArgv = true, bool initSigs = false)
155168
/// interpreter lock (GIL) to call this method.
156169
/// initSigs can be set to 1 to do default python signal configuration. This will override the way signals are handled by the application.
157170
/// </remarks>
158-
public static void Initialize(IEnumerable<string> args, bool setSysArgv = true, bool initSigs = false)
171+
public static void Initialize(IEnumerable<string> args, bool setSysArgv = true, bool initSigs = false, string userPythonPath = "")
159172
{
160173
if (!initialized)
161174
{

tools/nuget/nuget.exe

1.04 MB
Binary file not shown.

0 commit comments

Comments
 (0)
0