pycall 1.5.1 → 1.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +10 -0
- data/.github/workflows/ci.yml +26 -27
- data/.github/workflows/release.yml +48 -0
- data/.github/workflows/windows.yml +18 -17
- data/CHANGES.md +22 -0
- data/README.md +20 -46
- data/Rakefile +11 -0
- data/docker/Dockerfile +1 -1
- data/ext/pycall/extconf.rb +2 -0
- data/ext/pycall/gc.c +6 -2
- data/ext/pycall/libpython.c +4 -0
- data/ext/pycall/pycall.c +134 -14
- data/ext/pycall/pycall_internal.h +11 -1
- data/ext/pycall/range.c +8 -2
- data/ext/pycall/ruby_wrapper.c +27 -80
- data/lib/pycall/libpython/pytypeobject_struct.rb +1 -1
- data/lib/pycall/pyobject_wrapper.rb +2 -3
- data/lib/pycall/version.rb +1 -1
- data/lib/pycall.rb +1 -1
- data/pycall.gemspec +7 -15
- metadata +16 -36
- data/bin/guard +0 -17
- data/ci/travis_before_script.sh +0 -21
- data/ci/travis_install.sh +0 -69
- data/ci/travis_retry.sh +0 -19
- data/config/Guardfile +0 -30
data/pycall.gemspec
CHANGED
|
@@ -1,29 +1,21 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
require 'pycall/version'
|
|
2
|
+
|
|
3
|
+
require_relative 'lib/pycall/version'
|
|
5
4
|
|
|
6
5
|
Gem::Specification.new do |spec|
|
|
7
6
|
spec.name = "pycall"
|
|
8
|
-
|
|
9
|
-
PyCall::Version::MAJOR.to_s,
|
|
10
|
-
PyCall::Version::MINOR.to_s,
|
|
11
|
-
PyCall::Version::MICRO.to_s,
|
|
12
|
-
PyCall::Version::TAG,
|
|
13
|
-
]
|
|
14
|
-
spec.version = version_components.compact.join(".")
|
|
7
|
+
spec.version = PyCall::VERSION
|
|
15
8
|
spec.authors = ["Kenta Murata"]
|
|
16
9
|
spec.email = ["mrkn@mrkn.jp"]
|
|
17
10
|
|
|
18
11
|
spec.summary = %q{pycall}
|
|
19
12
|
spec.description = %q{pycall}
|
|
20
|
-
spec.homepage = "https://github.com/
|
|
13
|
+
spec.homepage = "https://github.com/red-data-tools/pycall.rb"
|
|
21
14
|
spec.license = "MIT"
|
|
22
15
|
|
|
23
16
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
24
17
|
case f
|
|
25
|
-
when %r{^
|
|
26
|
-
%r{^ext/pycall/spec_helper/},
|
|
18
|
+
when %r{^ext/pycall/spec_helper/},
|
|
27
19
|
%r{^(test|spec|features)/}
|
|
28
20
|
true
|
|
29
21
|
else
|
|
@@ -36,13 +28,13 @@ Gem::Specification.new do |spec|
|
|
|
36
28
|
spec.require_paths = ["lib"]
|
|
37
29
|
spec.extensions = ["ext/pycall/extconf.rb"]
|
|
38
30
|
|
|
31
|
+
spec.add_dependency 'fiddle', '>= 1.0.0'
|
|
32
|
+
|
|
39
33
|
spec.add_development_dependency "bundler"
|
|
40
34
|
spec.add_development_dependency "rake"
|
|
41
35
|
spec.add_development_dependency "rake-compiler"
|
|
42
36
|
spec.add_development_dependency "rake-compiler-dock"
|
|
43
37
|
spec.add_development_dependency "rspec"
|
|
44
38
|
spec.add_development_dependency "launchy"
|
|
45
|
-
spec.add_development_dependency "pry"
|
|
46
|
-
spec.add_development_dependency "pry-byebug"
|
|
47
39
|
spec.add_development_dependency "test-unit"
|
|
48
40
|
end
|
metadata
CHANGED
|
@@ -1,45 +1,30 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pycall
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.5.
|
|
4
|
+
version: 1.5.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kenta Murata
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - ">="
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0'
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - ">="
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: rake
|
|
13
|
+
name: fiddle
|
|
29
14
|
requirement: !ruby/object:Gem::Requirement
|
|
30
15
|
requirements:
|
|
31
16
|
- - ">="
|
|
32
17
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
34
|
-
type: :
|
|
18
|
+
version: 1.0.0
|
|
19
|
+
type: :runtime
|
|
35
20
|
prerelease: false
|
|
36
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
22
|
requirements:
|
|
38
23
|
- - ">="
|
|
39
24
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
25
|
+
version: 1.0.0
|
|
41
26
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
27
|
+
name: bundler
|
|
43
28
|
requirement: !ruby/object:Gem::Requirement
|
|
44
29
|
requirements:
|
|
45
30
|
- - ">="
|
|
@@ -53,7 +38,7 @@ dependencies:
|
|
|
53
38
|
- !ruby/object:Gem::Version
|
|
54
39
|
version: '0'
|
|
55
40
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: rake
|
|
41
|
+
name: rake
|
|
57
42
|
requirement: !ruby/object:Gem::Requirement
|
|
58
43
|
requirements:
|
|
59
44
|
- - ">="
|
|
@@ -67,7 +52,7 @@ dependencies:
|
|
|
67
52
|
- !ruby/object:Gem::Version
|
|
68
53
|
version: '0'
|
|
69
54
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
55
|
+
name: rake-compiler
|
|
71
56
|
requirement: !ruby/object:Gem::Requirement
|
|
72
57
|
requirements:
|
|
73
58
|
- - ">="
|
|
@@ -81,7 +66,7 @@ dependencies:
|
|
|
81
66
|
- !ruby/object:Gem::Version
|
|
82
67
|
version: '0'
|
|
83
68
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
69
|
+
name: rake-compiler-dock
|
|
85
70
|
requirement: !ruby/object:Gem::Requirement
|
|
86
71
|
requirements:
|
|
87
72
|
- - ">="
|
|
@@ -95,7 +80,7 @@ dependencies:
|
|
|
95
80
|
- !ruby/object:Gem::Version
|
|
96
81
|
version: '0'
|
|
97
82
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
83
|
+
name: rspec
|
|
99
84
|
requirement: !ruby/object:Gem::Requirement
|
|
100
85
|
requirements:
|
|
101
86
|
- - ">="
|
|
@@ -109,7 +94,7 @@ dependencies:
|
|
|
109
94
|
- !ruby/object:Gem::Version
|
|
110
95
|
version: '0'
|
|
111
96
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name:
|
|
97
|
+
name: launchy
|
|
113
98
|
requirement: !ruby/object:Gem::Requirement
|
|
114
99
|
requirements:
|
|
115
100
|
- - ">="
|
|
@@ -144,7 +129,9 @@ extensions:
|
|
|
144
129
|
- ext/pycall/extconf.rb
|
|
145
130
|
extra_rdoc_files: []
|
|
146
131
|
files:
|
|
132
|
+
- ".github/dependabot.yml"
|
|
147
133
|
- ".github/workflows/ci.yml"
|
|
134
|
+
- ".github/workflows/release.yml"
|
|
148
135
|
- ".github/workflows/windows.yml"
|
|
149
136
|
- ".gitignore"
|
|
150
137
|
- ".rspec"
|
|
@@ -154,14 +141,9 @@ files:
|
|
|
154
141
|
- README.md
|
|
155
142
|
- Rakefile
|
|
156
143
|
- bin/console
|
|
157
|
-
- bin/guard
|
|
158
144
|
- bin/rspec
|
|
159
145
|
- bin/runner
|
|
160
146
|
- bin/setup
|
|
161
|
-
- ci/travis_before_script.sh
|
|
162
|
-
- ci/travis_install.sh
|
|
163
|
-
- ci/travis_retry.sh
|
|
164
|
-
- config/Guardfile
|
|
165
147
|
- docker/Dockerfile
|
|
166
148
|
- docker/Gemfile
|
|
167
149
|
- docker/README.md
|
|
@@ -217,11 +199,10 @@ files:
|
|
|
217
199
|
- pycall.gemspec
|
|
218
200
|
- tasks/docker.rake
|
|
219
201
|
- tasks/pycall.rake
|
|
220
|
-
homepage: https://github.com/
|
|
202
|
+
homepage: https://github.com/red-data-tools/pycall.rb
|
|
221
203
|
licenses:
|
|
222
204
|
- MIT
|
|
223
205
|
metadata: {}
|
|
224
|
-
post_install_message:
|
|
225
206
|
rdoc_options: []
|
|
226
207
|
require_paths:
|
|
227
208
|
- lib
|
|
@@ -236,8 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
236
217
|
- !ruby/object:Gem::Version
|
|
237
218
|
version: '0'
|
|
238
219
|
requirements: []
|
|
239
|
-
rubygems_version:
|
|
240
|
-
signing_key:
|
|
220
|
+
rubygems_version: 4.0.16
|
|
241
221
|
specification_version: 4
|
|
242
222
|
summary: pycall
|
|
243
223
|
test_files: []
|
data/bin/guard
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
#
|
|
4
|
-
# This file was generated by Bundler.
|
|
5
|
-
#
|
|
6
|
-
# The application 'guard' is installed as part of a gem, and
|
|
7
|
-
# this file is here to facilitate running it.
|
|
8
|
-
#
|
|
9
|
-
|
|
10
|
-
require "pathname"
|
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
|
12
|
-
Pathname.new(__FILE__).realpath)
|
|
13
|
-
|
|
14
|
-
require "rubygems"
|
|
15
|
-
require "bundler/setup"
|
|
16
|
-
|
|
17
|
-
load Gem.bin_path("guard", "guard")
|
data/ci/travis_before_script.sh
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
__DIR__=$(cd $(dirname $BASH_SOURCE); pwd)
|
|
2
|
-
. $__DIR__/travis_retry.sh
|
|
3
|
-
|
|
4
|
-
set -ex
|
|
5
|
-
|
|
6
|
-
if test -z "$PYENV_VERSION"; then
|
|
7
|
-
echo "ERROR: PYENV_VERSION is not provided" >2
|
|
8
|
-
exit 1
|
|
9
|
-
fi
|
|
10
|
-
|
|
11
|
-
if test -n "$LIBPYTHON"; then
|
|
12
|
-
export LIBPYTHON=$(pyenv root)/$LIBPYTHON
|
|
13
|
-
fi
|
|
14
|
-
|
|
15
|
-
case "$PYENV_VERSION" in
|
|
16
|
-
*conda*)
|
|
17
|
-
source $(pyenv prefix)/bin/activate test-environment
|
|
18
|
-
;;
|
|
19
|
-
esac
|
|
20
|
-
|
|
21
|
-
set +ex
|
data/ci/travis_install.sh
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
#! /bin/bash
|
|
2
|
-
|
|
3
|
-
__DIR__=$(cd $(dirname $BASH_SOURCE); pwd)
|
|
4
|
-
. $__DIR__/travis_retry.sh
|
|
5
|
-
|
|
6
|
-
set -ex
|
|
7
|
-
|
|
8
|
-
if test -z "$PYENV_VERSION"; then
|
|
9
|
-
echo "ERROR: PYENV_VERSION is not provided" >2
|
|
10
|
-
exit 1
|
|
11
|
-
fi
|
|
12
|
-
|
|
13
|
-
pyenv_root=$(pyenv root)
|
|
14
|
-
|
|
15
|
-
if test -n "$LIBPYTHON"; then
|
|
16
|
-
if test ! -f $LIBPYTHON; then
|
|
17
|
-
if test -f ${pyenv_root}/$LIBPYTHON; then
|
|
18
|
-
export LIBPYTHON=${pyenv_root}/$LIBPYTHON
|
|
19
|
-
else
|
|
20
|
-
echo "Invalid value in LIBPYTHON: ${LIBPYTHON}" >&2
|
|
21
|
-
exit 1
|
|
22
|
-
fi
|
|
23
|
-
fi
|
|
24
|
-
fi
|
|
25
|
-
|
|
26
|
-
(
|
|
27
|
-
cd $(pyenv root)
|
|
28
|
-
if [ -d .git ]; then
|
|
29
|
-
git fetch origin
|
|
30
|
-
git checkout master
|
|
31
|
-
git reset --hard origin/master
|
|
32
|
-
fi
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
case $PYENV_VERSION in
|
|
36
|
-
system)
|
|
37
|
-
;;
|
|
38
|
-
*)
|
|
39
|
-
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install -f $PYENV_VERSION
|
|
40
|
-
;;
|
|
41
|
-
esac
|
|
42
|
-
|
|
43
|
-
case "$PYENV_VERSION" in
|
|
44
|
-
*conda*)
|
|
45
|
-
case "$PYENV_VERSION" in
|
|
46
|
-
*conda2*)
|
|
47
|
-
python_version=2.7
|
|
48
|
-
;;
|
|
49
|
-
*)
|
|
50
|
-
python_version=3.6
|
|
51
|
-
;;
|
|
52
|
-
esac
|
|
53
|
-
conda config --set always_yes yes --set changeps1 no
|
|
54
|
-
travis_retry conda update -q conda
|
|
55
|
-
conda info -a
|
|
56
|
-
travis_retry conda create -q -n test-environment python=$python_version numpy
|
|
57
|
-
source $(pyenv prefix)/bin/activate test-environment
|
|
58
|
-
;;
|
|
59
|
-
system)
|
|
60
|
-
travis_retry pip install --user numpy
|
|
61
|
-
sudo sh -c "apt-get update && apt-get install --no-install-recommends -y python3-pip"
|
|
62
|
-
travis_retry python3.6 -m pip install --user numpy
|
|
63
|
-
;;
|
|
64
|
-
*)
|
|
65
|
-
travis_retry pip install --user numpy
|
|
66
|
-
;;
|
|
67
|
-
esac
|
|
68
|
-
|
|
69
|
-
bundle install
|
data/ci/travis_retry.sh
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
travis_retry ()
|
|
2
|
-
{
|
|
3
|
-
local result=0
|
|
4
|
-
local count=1
|
|
5
|
-
while [ $count -le 3 ]; do
|
|
6
|
-
[ $result -ne 0 ] && {
|
|
7
|
-
echo -e "\n${ANSI_RED}The command \"$@\" failed. Retrying, $count of 3.${ANSI_RESET}\n" 1>&2
|
|
8
|
-
}
|
|
9
|
-
"$@"
|
|
10
|
-
result=$?
|
|
11
|
-
[ $result -eq 0 ] && break
|
|
12
|
-
count=$(($count + 1))
|
|
13
|
-
sleep 1
|
|
14
|
-
done
|
|
15
|
-
[ $count -gt 3 ] && {
|
|
16
|
-
echo -e "\n${ANSI_RED}The command \"$@\" failed 3 times.${ANSI_RESET}\n" 1>&2
|
|
17
|
-
}
|
|
18
|
-
return $result
|
|
19
|
-
}
|
data/config/Guardfile
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# More info at https://github.com/guard/guard#readme
|
|
2
|
-
|
|
3
|
-
if RUBY_PLATFORM =~ /darwin/
|
|
4
|
-
notification :terminal_notifier, app_name: 'pycall.gem ::', activate: 'com.googlecode.iTerm2'
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
directories %w(config lib spec).select { |d|
|
|
8
|
-
Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
watch('config/Guardfile') do
|
|
12
|
-
UI.info "Exiting guard because config changed"
|
|
13
|
-
exit 0
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
guard :rspec, cmd: 'bin/rspec' do
|
|
17
|
-
require "guard/rspec/dsl"
|
|
18
|
-
dsl = Guard::RSpec::Dsl.new(self)
|
|
19
|
-
|
|
20
|
-
# RSpec files
|
|
21
|
-
rspec = dsl.rspec
|
|
22
|
-
watch(rspec.spec_helper) { rspec.spec_dir }
|
|
23
|
-
watch(rspec.spec_support) { rspec.spec_dir }
|
|
24
|
-
watch(rspec.spec_files)
|
|
25
|
-
|
|
26
|
-
# Ruby files
|
|
27
|
-
ruby = dsl.ruby
|
|
28
|
-
dsl.watch_spec_files_for(ruby.lib_files)
|
|
29
|
-
watch('lib/pycall/libpython.rb') { 'spec' }
|
|
30
|
-
end
|