pycall 1.0.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +41 -0
  5. data/CHANGES.md +39 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +91 -0
  9. data/Rakefile +29 -0
  10. data/appveyor.yml +138 -0
  11. data/bin/console +10 -0
  12. data/bin/guard +17 -0
  13. data/bin/rspec +17 -0
  14. data/bin/runner +6 -0
  15. data/bin/setup +8 -0
  16. data/config/Guardfile +30 -0
  17. data/docker/Dockerfile +191 -0
  18. data/docker/Gemfile +12 -0
  19. data/docker/README.md +22 -0
  20. data/examples/classifier_comparison.rb +135 -0
  21. data/examples/datascience_rb_20170519.ipynb +4836 -0
  22. data/examples/hist.rb +32 -0
  23. data/examples/notebooks/classifier_comparison.ipynb +226 -0
  24. data/examples/notebooks/forest_importances.ipynb +238 -0
  25. data/examples/notebooks/iruby_integration.ipynb +183 -0
  26. data/examples/notebooks/lorenz_attractor.ipynb +214 -0
  27. data/examples/notebooks/polar_axes.ipynb +209 -0
  28. data/examples/notebooks/sum_benchmarking.ipynb +374 -0
  29. data/examples/notebooks/xkcd_style.ipynb +149 -0
  30. data/examples/plot_forest_importances_faces.rb +46 -0
  31. data/examples/sum_benchmarking.rb +49 -0
  32. data/ext/pycall/extconf.rb +3 -0
  33. data/ext/pycall/gc.c +74 -0
  34. data/ext/pycall/libpython.c +217 -0
  35. data/ext/pycall/pycall.c +2184 -0
  36. data/ext/pycall/pycall_internal.h +700 -0
  37. data/ext/pycall/range.c +69 -0
  38. data/ext/pycall/ruby_wrapper.c +432 -0
  39. data/lib/2.1/pycall.so +0 -0
  40. data/lib/2.2/pycall.so +0 -0
  41. data/lib/2.3/pycall.so +0 -0
  42. data/lib/2.4/pycall.so +0 -0
  43. data/lib/pycall/conversion.rb +173 -0
  44. data/lib/pycall/dict.rb +48 -0
  45. data/lib/pycall/error.rb +10 -0
  46. data/lib/pycall/gc_guard.rb +84 -0
  47. data/lib/pycall/import.rb +120 -0
  48. data/lib/pycall/init.rb +55 -0
  49. data/lib/pycall/iruby_helper.rb +40 -0
  50. data/lib/pycall/libpython/finder.rb +170 -0
  51. data/lib/pycall/libpython/pyobject_struct.rb +30 -0
  52. data/lib/pycall/libpython/pytypeobject_struct.rb +273 -0
  53. data/lib/pycall/libpython.rb +12 -0
  54. data/lib/pycall/list.rb +45 -0
  55. data/lib/pycall/pretty_print.rb +9 -0
  56. data/lib/pycall/pyerror.rb +30 -0
  57. data/lib/pycall/pyobject_wrapper.rb +212 -0
  58. data/lib/pycall/python/PyCall/__init__.py +1 -0
  59. data/lib/pycall/python/PyCall/six.py +23 -0
  60. data/lib/pycall/python/investigator.py +7 -0
  61. data/lib/pycall/pytypeobject_wrapper.rb +90 -0
  62. data/lib/pycall/set.rb +19 -0
  63. data/lib/pycall/slice.rb +8 -0
  64. data/lib/pycall/tuple.rb +46 -0
  65. data/lib/pycall/version.rb +3 -0
  66. data/lib/pycall/wrapper_object_cache.rb +61 -0
  67. data/lib/pycall.rb +91 -0
  68. data/pycall.gemspec +40 -0
  69. data/tasks/docker.rake +21 -0
  70. data/tasks/pycall.rake +7 -0
  71. metadata +228 -0
@@ -0,0 +1,149 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {},
7
+ "outputs": [
8
+ {
9
+ "data": {
10
+ "text/plain": [
11
+ "<module 'matplotlib.pyplot' from '/Users/mrkn/.pyenv/versions/3.6.1/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/pyplot.py'>"
12
+ ]
13
+ },
14
+ "execution_count": 1,
15
+ "metadata": {},
16
+ "output_type": "execute_result"
17
+ }
18
+ ],
19
+ "source": [
20
+ "require 'matplotlib/iruby'\n",
21
+ "Matplotlib::IRuby.activate\n",
22
+ "\n",
23
+ "require 'pycall/import'\n",
24
+ "include PyCall::Import\n",
25
+ "\n",
26
+ "pyimport 'numpy', as: 'np'\n",
27
+ "plt = Matplotlib::Pyplot"
28
+ ]
29
+ },
30
+ {
31
+ "cell_type": "markdown",
32
+ "metadata": {},
33
+ "source": [
34
+ "Original Python code is here:\n",
35
+ "- https://matplotlib.org/examples/showcase/xkcd.html"
36
+ ]
37
+ },
38
+ {
39
+ "cell_type": "code",
40
+ "execution_count": 2,
41
+ "metadata": {},
42
+ "outputs": [
43
+ {
44
+ "data": {
45
+ "image/png": "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",
46
+ "text/plain": [
47
+ "<matplotlib.figure.Figure object at 0x10a824630>"
48
+ ]
49
+ },
50
+ "execution_count": 2,
51
+ "metadata": {},
52
+ "output_type": "execute_result"
53
+ },
54
+ {
55
+ "data": {
56
+ "image/png": "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ALFgwYJ+y51KpcQtt9wy4A//hx9+WPI+icfjcoCS/kaNGiX22WcfscsuuwiLxZJz35NPPtlnG3a7XT4RvPDCC+Kzzz4T69atEy0tLWLFihXio48+ErNmzRInnXSSWLZsWUnlSyQS4oorrhBGo7Hg+zYajWL58uU5zxsyZIgAIF544YUBX+Ott96St+X3++Xbpfe+atUqIUTms33hhRfETjvtJJ88s38MbrrpJgFADB8+XHz00UciFArlfT9LliwRH3zwgXyimz9/vvz6v/nNb8Qhhxwihg8fnvMeTznlFJFIJPps74ADDpAf09TUJNra2gZ8v+edd5580i32ZPvYY4/JrzNz5sy8j0kkEuK8884T48aNk0/sxf45nU7R3d0tpkyZIgCIe+65Z8Ayffnll/Lzf/jhB/l2ad/97Gc/E8ccc4yYMmVKzvdt1KhRRQXV3rID5/z58/M+ZuPGjfJjSj3W83nppZcEADF16lQhROaHfd26deKGG24QLpdLPmbyCYVC4le/+lXOfh47dqzYd999xeTJk3M+I6PRKObNm5fz/HfffVe+/5133sn7GmvXrpW343A4RDQazfu4b7/9Vt7WP/7xD/m9SL8DF110kVi1alXe47Gjo0O88847YuPGjfJtUqjecccdxXHHHSd+9rOf5Zwfa2trC35G2V544QVRW1vb77F55513DrgdrdBdIPn73/+ecwJ9+eWXRSAQED/88IN8YNx4441CCCFmzpyZ82VUIplMip/97Gfya1ssloI1E5FIRPT09IhoNCpfoRgMBrFy5Urx9ttvi4cffljMnj1bfP31132em31FA0Dcd999fR7zzjvvDPiYbOeff7782EMPPVTMmTNHLFu2TKxcuVLMmzdPzJw5U1x77bUlX/ml02nx29/+Vt72+PHj+5x4gsGgmDdvnhgzZoz8w9H7ddxutwAgXn755ZJev5jyHXvssfL+//Wvfy1ee+018e2334rvvvtOvPLKK+LGG28Uf/7zn/t8ljabTQAQzz333ICvk/2ZZV9pS8Hyxx9/zHl8KBQSEydOFADEVVddJd9+//33CwBi2223Lel9Zv+wSifdVCol5s+fL6ZNmybfd9ZZZ/U5YR933HE5x9L06dMHDBnSjxwAsXbt2gHL991338mhE9hyhdufdDotwuGw6OjoEE8++aT83EgkIkKhkGhraxMrV64UixYtEu+9955Ys2aNEELIV8SFajCzZe+3lStXyrdPmjRJABB/+ctf5NvWrl0rrrjiCjlkjhw5UmzYsGHA15A8//zzOfu5UO1oc3Oz/JhCNUmlePHFFwUAsffee/e579NPP5WD+ldffZVzXzKZFEcddZRclilTpoiPP/445zE9PT3ixRdflANcU1NTTuiNx+PyOfnss8/OWz6pFkX6+/LLL/M+7s477xQAhN1uFz09PfLt22yzjQAgHnjggaL3iRBCnHDCCQKAOO200+Tb2tvbxaxZs0RVVZUAINxud94LQsnDDz+cs38ee+wxsXjxYrF69Woxf/58MXv2bHHJJZeIdevWlVS2wUxXgeTDDz+Ur1T2228/0d7ennP/Cy+8ICZNmiS++OILIcSWK8699tpL8WvfcccdfZLvkiVLBnzec889J18NF+Paa6/NeY18X+Qbb7wx5zGXXHJJwe29//778uMeeuihospQrMcffzynnP01Ha1atUo++T3//PM590nNGa+88oqq5XvhhRfk8pW6bel5xQSSN954o08gSaVS8m0tLS19nvPqq68KAGLixInybffee68AMs0PpVi/fr38Wr2r+dPptFwlDkDMmjUr534prGbX6j3xxBP9vt7SpUvlx/a+Ku4tlUqJffbZJ+d4LfX9ZdcADRSapZqtYgLJ4sWL8wYS6eo53/dq8eLFoqmpSQAQkyZNKqq5tL29XTQ0NOTsg1NOOSXvY9euXSs/5vvvvx9w2wN55plnBABx4IEH5r3/+OOPz3tc3HbbbXI5rrjiCpFMJgu+xhdffCE/tnfT75lnnikAiKFDh+Y0ZwqROTalQCH9vfTSS3lfQ2piOfroo3Nul8LQI488UrB8+cyYMUMAEIcddlif+5qbm8XOO+8sh6xNmzb1ecz69evlC6nzzjuvz3vTK90M++3u7sbpp58OIQR22GEHzJs3D/X19TmPOeGEE7B06VLstttuADId4QD023mxGOvWrcP1118PADjttNPg8XgAAF999dWAz+3q6gIAVFVVFfVaS5Ysyfn/L7/8ss9j3n777Zz/X7FiRcHt3XLLLQCA3XbbDeecc05RZSiG3++XO0Hut99+uP/++/vtyDVmzBjsu+++AIDnn38+5z6pM5ravf5nzpwJADjssMMwffr0op8nSuwnnkgk5H9LHQSj0ah8W74OjPk6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b79dfl6hY/yaa64peO7yeDzi/PPPlztb64UuZmp98MEHAQBHHXUUtt1226KfJ6XUrZ1I67777sPq1athsVhw//3349tvv8VXX30lVz0mEgksWbIEe+65Z8FtSE0FxVztSO3R22yzDcaMGYPddtsNH3/8MRYtWoSzzz4b0WgUb7zxBoBM22xtbS2GDRuGlpYWfPPNN5g8eXKfbdpsNrz66qtYtmwZ5s2bhx9++AHr1q3DmjVr0NzcjI0bN+Lmm2/G888/jwULFvR7xSD57LPP5KuHI488csDHS6SrnyFDhsi3ZU9oNH78eEybNg1Tp07F6NGjkUql0NnZic7OTtTV1cl9UIrl9Xrx3nvv4YsvvsCbb76J1atX48cff8Tq1avR0tKCNWvW4JprrsGcOXPw/vvv51xFOhwOxOPxomqQ1qxZA2BLExqw5Uqxq6sr7+RqZ555Jh544IGc2wrVAHk8HjQ1Ncl/w4cPxx//+Ef5/s2bNwPING1s2rQJyWQS7e3tWLZsGT755BM888wz8ndh9uzZObV1UlNbds3CoYceKl9hnnvuudh2221x0EEH5ZRJ2ka+6nwhhDwR4a677oozzzwTH3/8MZYsWSL3ESilhsRgMKCurg4tLS0DVo9LNR3FfG5r164FkJkkTHof0WhU/uwsFgs2btyIYDCIFStWYMmSJXj22WflZoVf/epXBSf86urqwk033QQA+P3vf48ddtgB7777Lr766iv5ijvfPpD6fABbf97KJr2X1157TW6ekXi9Xjz00EM46qij5NsWLFgAIQRMJhMOO+ywol9H+m7nmzhO2k4gEMC3336LiRMnyrUjBoMBxx9/vPzd6+zsxPr167HNNtsA2NK0uc8++2DSpEk52y30fTEajWhsbMz5zhx00EE5zfzSd8bhcKClpQXhcBirVq3C119/jTlz5uDzzz8HAEyYMKFg37tbb70VF1xwAV566SWsXLkSa9aswbp16/D9998jEAjggQcewHPPPYf33ntP7teoeZVORD+1eDwuJ/aBro56O/HEEwWQGe5YqlWrVskTWzmdzj4TW0l/d999d7/bueKKK4quIZFqY0499VQhhBCXXnppzpX3yy+/LF/VSMM7Dz74YAFAXHjhhSW/x6VLl+YM2z3jjDOKep40hNFsNhc9D0U6nZZ7xGdflcRiMfn1i5nMSg3pdFr85z//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EmlRPfYhISKqjCqHvmtIYkk22WiB4kBisWS+CAwkRESV4dV5IEmkWEOiBawhISIa5OxmfU+6nUpzYk4tUHwU22yZdRQYSIiIKsOu81E2DCTaoDiQeDweAIDf71dcGCIiKp1D51PHM49og+JAUltbCwDo7OxUXBgiIiqdzazvQELawEBCRDTI6X0tm/9OGE6DnOJAUl1dDYBNNkREleKy6buGxMREogmcqZWIaJDTe6dWo5GBRAsUBxKv1wsA6O7uVlwYIiIqncWk72G/zCPaoPgorq+vBwD4fD7FhSEiotJZdR5ILEZ9v3+tUPwpNjU1AQBaWloUF4aIiEpns+j7B9lsYhWJFig+iocNGwYA2LRpk+LCEBFR6fTeZGNiDYkmqDbs1+/3I53megJEROWm9xoCu85riLRCtU6tQgiOtCEiqgC99yHR+ygjrVB8FNvtdpjNmUl5OBcJEVH5mXQ+zETvTVZaofhTNBgMcrNNW1ub4gIREVFpjDqfGMyl87V8tEKVWDl06FAADCRERJWg8woSuHQ+db5WqBJIGhsbAQCbN29WY3NERFQCg85rSNx2BhItUCWQSHORtLe3q7E5IiKionntlkoXgVSgSiBxu90AgGAwqMbmiIioBEKIShehorysIdEEVQKJx+MBwFE2RESVkErrO5B4GEg0QZVAUlVVBYCBhIioEpI6DySch0QbVAkkLpcLADgxGhFRBaR13mRT47RWugikAlWbbAKBgBqbIyKiEui9yabOzUCiBQwkRESDXCyp73XEqhwcZaMFqgQSh8MBAIhEImpsjoiIShBNpCpdhIpyc2I0TWAfEiKiQS6u8xqSavYh0QRVAonT6QQAhMNhNTZHREQlCMf1XUNS42STjRZwYjQiokFOz002VpMRZq72qwkMJEREg1w0od8mG6eNc5BohSqBxGLJVJclEgk1NkdERCUIxZOVLkLFcA4S7VAlkFitmQMilUohndZvUiciqgR/RL8Xg14O+dUMVWtIANaSEBGVW4+OA4mbTTaaoUogMZm2HBCplH47VxERVYKeR9l4bKwh0QpVAonBYFBjM0REtBVCMf32IXFaWUOiFaoEEvYbISKqHH9Uv002NguH/GqF6oEku/mGiIh+esGYfptsbGb+5miFKoEkuyNrdgdXIiL66YV13GTjsXMdG61QJZDEYjEAgNlshtHI6jMi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",
57
+ "text/plain": [
58
+ "<matplotlib.figure.Figure object at 0x10aaae6a0>"
59
+ ]
60
+ },
61
+ "execution_count": 2,
62
+ "metadata": {},
63
+ "output_type": "execute_result"
64
+ }
65
+ ],
66
+ "source": [
67
+ "plt.xkcd do\n",
68
+ " # Based on \"Stove Ownership\" from XKCD by Randall Monroe\n",
69
+ " # http://xkcd.com/418/\n",
70
+ "\n",
71
+ " fig = plt.figure()\n",
72
+ " ax = fig.add_axes([0.1, 0.2, 0.8, 0.7])\n",
73
+ " ax.spines['right'].set_color('none')\n",
74
+ " ax.spines['top'].set_color('none')\n",
75
+ " plt.xticks([])\n",
76
+ " plt.yticks([])\n",
77
+ " ax.set_ylim([-30, 10])\n",
78
+ "\n",
79
+ " data = np.ones(100)\n",
80
+ " data[70..-1] -= np.arange(30)\n",
81
+ "\n",
82
+ " plt.annotate(\n",
83
+ " \"THE DAY I REALIZED\\nI COULD COOK BACON\\nWHENEVER I WANTED\",\n",
84
+ " xy: [70, 1],\n",
85
+ " arrowprops: { arrowstyle: '->' },\n",
86
+ " xytext: [15, -10]\n",
87
+ " )\n",
88
+ "\n",
89
+ " plt.plot(data)\n",
90
+ "\n",
91
+ " plt.xlabel('time')\n",
92
+ " plt.ylabel('my overall health')\n",
93
+ " fig.text(\n",
94
+ " 0.5, 0.05,\n",
95
+ " '\"Stove Ownership\" from xkcd by Randall Monroe',\n",
96
+ " ha: 'center'\n",
97
+ " )\n",
98
+ "\n",
99
+ " # Based on \"The Data So Far\" from XKCD by Randall Monroe\n",
100
+ " # http://xkcd.com/373/\n",
101
+ "\n",
102
+ " fig = plt.figure()\n",
103
+ " ax = fig.add_axes([0.1, 0.2, 0.8, 0.7])\n",
104
+ " ax.bar([0, 1], [0, 100], 0.25)\n",
105
+ " ax.spines['right'].set_color('none')\n",
106
+ " ax.spines['top'].set_color('none')\n",
107
+ " ax.xaxis.set_ticks_position('bottom')\n",
108
+ " ax.set_xticks([0, 1])\n",
109
+ " ax.set_xlim([-0.5, 1.5])\n",
110
+ " ax.set_ylim([0, 110])\n",
111
+ " ax.set_xticklabels([\"CONFIRMED BY\\nEXPERIMENT\", \"REFUTED BY\\nEXPERIMENT\"])\n",
112
+ " plt.yticks([])\n",
113
+ "\n",
114
+ " plt.title(\"CLAIMS OF SUPERNATURAL POWERS\")\n",
115
+ "\n",
116
+ " fig.text(\n",
117
+ " 0.5, 0.05,\n",
118
+ " '\"The Data So Far\" from xkcd by Randall Monroe',\n",
119
+ " ha: 'center'\n",
120
+ " )\n",
121
+ "end"
122
+ ]
123
+ },
124
+ {
125
+ "cell_type": "code",
126
+ "execution_count": null,
127
+ "metadata": {
128
+ "collapsed": true
129
+ },
130
+ "outputs": [],
131
+ "source": []
132
+ }
133
+ ],
134
+ "metadata": {
135
+ "kernelspec": {
136
+ "display_name": "Ruby 2.4.1",
137
+ "language": "ruby",
138
+ "name": "ruby"
139
+ },
140
+ "language_info": {
141
+ "file_extension": ".rb",
142
+ "mimetype": "application/x-ruby",
143
+ "name": "ruby",
144
+ "version": "2.4.1"
145
+ }
146
+ },
147
+ "nbformat": 4,
148
+ "nbformat_minor": 2
149
+ }
@@ -0,0 +1,46 @@
1
+ require 'pycall/import'
2
+
3
+ include PyCall::Import
4
+
5
+ pyimport 'numpy', as: 'np'
6
+
7
+ # FIXME: MacOSX backend is not usable through pycall. I want to fix this issue but the reason is unclear.
8
+ pyimport 'matplotlib', as: :mp
9
+ mp.rcParams[:backend] = 'TkAgg' if mp.rcParams[:backend] == 'MacOSX'
10
+
11
+ pyimport 'matplotlib.pyplot', as: 'plt'
12
+
13
+ pyfrom 'sklearn.datasets', import: 'fetch_olivetti_faces'
14
+ pyfrom 'sklearn.ensemble', import: 'ExtraTreesClassifier'
15
+
16
+ # Number of cores to use to perform parallel fitting of the forest model
17
+ n_jobs = 1
18
+
19
+ # Load the faces datasets
20
+ data = fetch_olivetti_faces()
21
+ x = data.images.reshape([PyCall.len(data.images), -1])
22
+ y = data.target
23
+
24
+ mask = y < 5 # Limit to 5 classes
25
+ x = x[mask]
26
+ y = y[mask]
27
+
28
+ # Build a forest and compute the pixel importances
29
+ puts "Fitting ExtraTreesClassifier on faces data with #{n_jobs} cores..."
30
+ t0 = Time.now
31
+ forest = ExtraTreesClassifier.new(
32
+ n_estimators: 1_000,
33
+ max_features: 128,
34
+ n_jobs: n_jobs,
35
+ random_state: 0
36
+ )
37
+
38
+ forest = forest.fit(x, y)
39
+ puts "done in %0.3fs" % (Time.now - t0)
40
+ importances = forest.feature_importances_
41
+ importances = importances.reshape(data.images[0].shape)
42
+
43
+ # Plot pixel importances
44
+ plt.matshow(importances, cmap: plt.cm.__dict__[:hot])
45
+ plt.title("Pixel importances with forests of trees")
46
+ plt.show()
@@ -0,0 +1,49 @@
1
+ require 'pycall/import'
2
+ include PyCall::Import
3
+
4
+ require 'benchmark'
5
+ pyimport :pandas, as: :pd
6
+
7
+ # FIXME: MacOSX backend is not usable through pycall. I want to fix this issue but the reason is unclear.
8
+ pyimport 'matplotlib', as: :mp
9
+ mp.rcParams[:backend] = 'TkAgg' if mp.rcParams[:backend] == 'MacOSX'
10
+
11
+ pyimport :seaborn, as: :sns
12
+ pyimport 'matplotlib.pyplot', as: :plt
13
+
14
+ array = Array.new(100_000) { rand }
15
+
16
+ trials = 100
17
+ results = { method: [], runtime: [] }
18
+
19
+ def while_sum(ary)
20
+ sum, i, n = 0, 0, ary.length
21
+ while i < n
22
+ sum += ary[i]
23
+ i += 1
24
+ end
25
+ sum
26
+ end
27
+
28
+ trials.times do
29
+ # Array#sum
30
+ results[:method] << 'sum'
31
+ results[:runtime] << Benchmark.realtime { array.sum }
32
+
33
+ # Array#inject(:+)
34
+ results[:method] << 'inject'
35
+ results[:runtime] << Benchmark.realtime { array.inject(:+) }
36
+
37
+ # while
38
+ results[:method] << 'while'
39
+ results[:runtime] << Benchmark.realtime { while_sum(array) }
40
+ end
41
+
42
+ # visualization
43
+
44
+ df = pd.DataFrame.new(data: results)
45
+ sns.barplot(x: 'method', y: 'runtime', data: df)
46
+ plt.title("Array summation benchmark (#{trials} trials)")
47
+ plt.xlabel('Summation method')
48
+ plt.ylabel('Average runtime [sec]')
49
+ plt.show()
@@ -0,0 +1,3 @@
1
+ require 'mkmf'
2
+
3
+ create_makefile('pycall')
data/ext/pycall/gc.c ADDED
@@ -0,0 +1,74 @@
1
+ #include "pycall_internal.h"
2
+
3
+ static ID id_gcguard_table;
4
+ static PyObject *weakref_callback_pyobj;
5
+ static PyObject *gcguard_weakref_destroyed(PyObject *self, PyObject *weakref);
6
+
7
+ PyMethodDef gcguard_weakref_callback_def = {
8
+ "_gcguard_weakref_destroyed", (PyCFunction) gcguard_weakref_destroyed, Py_METH_O
9
+ };
10
+
11
+ static PyObject *
12
+ gcguard_weakref_destroyed(PyObject *self, PyObject *weakref)
13
+ {
14
+ pycall_gcguard_delete(weakref);
15
+ Py_API(Py_DecRef)(weakref);
16
+
17
+ Py_API(Py_IncRef)(Py_API(_Py_NoneStruct));
18
+ return Py_API(_Py_NoneStruct);
19
+ }
20
+
21
+ void
22
+ pycall_gcguard_aset(PyObject *pyobj, VALUE rbobj)
23
+ {
24
+ VALUE table = rb_ivar_get(mPyCall, id_gcguard_table);
25
+ rb_hash_aset(table, PTR2NUM(pyobj), rbobj);
26
+ }
27
+
28
+ void
29
+ pycall_gcguard_delete(PyObject *pyobj)
30
+ {
31
+ VALUE table = rb_ivar_get(mPyCall, id_gcguard_table);
32
+ rb_hash_delete(table, PTR2NUM(pyobj));
33
+ }
34
+
35
+ void
36
+ pycall_gcguard_register_pyrubyobj(PyObject *pyobj)
37
+ {
38
+ VALUE rbobj;
39
+
40
+ if (!PyRuby_Check(pyobj)) {
41
+ rb_raise(rb_eTypeError, "wrong type of python object %s (expect PyCall.ruby_object)", Py_TYPE(pyobj)->tp_name);
42
+ }
43
+
44
+ rbobj = PyRuby_get_ruby_object(pyobj);
45
+ pycall_gcguard_aset(pyobj, rbobj);
46
+ }
47
+
48
+ void
49
+ pycall_gcguard_unregister_pyrubyobj(PyObject *pyobj)
50
+ {
51
+ if (!PyRuby_Check(pyobj)) {
52
+ rb_raise(rb_eTypeError, "wrong type of python object %s (expect PyCall.ruby_object)", Py_TYPE(pyobj)->tp_name);
53
+ }
54
+
55
+ pycall_gcguard_delete(pyobj);
56
+ }
57
+
58
+ void
59
+ pycall_gcguard_register(PyObject *pyobj, VALUE obj)
60
+ {
61
+ PyObject *wref;
62
+
63
+ wref = Py_API(PyWeakref_NewRef)(pyobj, weakref_callback_pyobj);
64
+ pycall_gcguard_aset(wref, obj);
65
+ }
66
+
67
+ void
68
+ pycall_init_gcguard(void)
69
+ {
70
+ id_gcguard_table = rb_intern("gcguard_table");
71
+ rb_ivar_set(mPyCall, id_gcguard_table, rb_hash_new());
72
+
73
+ weakref_callback_pyobj = Py_API(PyCFunction_NewEx)(&gcguard_weakref_callback_def, NULL, NULL);
74
+ }