red_amber 0.5.0 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8fc1df498792b2b30d63a47a783cda67ccb8cea09e933aa8cba5d317277f500
4
- data.tar.gz: 83e54f0fb6070a6b3c4301d0cd3e5356f1ca4e09bdae200f4fc7694a2e3e7daa
3
+ metadata.gz: 7adbafa00c63857e5010442d39564d631ff4d7cac88bcc5dfdb520213f9c1606
4
+ data.tar.gz: 1dad23038eb977b2db44b2a09f648863646cdcb34d21d53e5ac5b582f9a00648
5
5
  SHA512:
6
- metadata.gz: 440dd984e88afd4bee7860a0f5b03c54094b8536de6acf70b770d3f473c1ee93608a5565d62b5bd60d5e8e3ba8c09675e136373a15daef77bfc455c7c5a4a7cc
7
- data.tar.gz: '09f27ff2a0c3804b345c4b5c581013135544fed098265e9bca274e34de52791b9a36525df22b17fe80093f14249c195496366e16079c25e70cf660070dc66858'
6
+ metadata.gz: 59a7154c1c18f9020628524bd66fc4c82913fadea2b413d47231c39980a62f1883397215a494cfedbb8b2e258cea4a7310ffda72d8c2030859c0bc2e132d8d92
7
+ data.tar.gz: 41b4ac8629511e16269d7642d4d129a1260b2de22b00335bbe2c2867a3d65c3ce7d9d4940cb474efa33d1839436e7a941f4c0c5e429f8f74eb1a309c68533a91
@@ -0,0 +1,75 @@
1
+ # [Choice] debian-11, debian-10, ubuntu-22.04, ubuntu-20.04, ubuntu-18.04
2
+ ARG VARIANT=ubuntu-22.04
3
+
4
+ FROM mcr.microsoft.com/devcontainers/base:${VARIANT}
5
+
6
+ # Set env for tracking that we're running in a devcontainer
7
+ ENV DEVCONTAINER=true
8
+
9
+ RUN set -e; \
10
+ apt-get update; \
11
+ apt-get install -y \
12
+ # To build Ruby
13
+ autoconf \
14
+ bison \
15
+ rustc \
16
+ libssl-dev \
17
+ libyaml-dev \
18
+ libreadline6-dev \
19
+ zlib1g-dev \
20
+ libgmp-dev \
21
+ libncurses5-dev \
22
+ libffi-dev \
23
+ libgdbm6 \
24
+ libgdbm-dev \
25
+ libdb-dev \
26
+ uuid-dev \
27
+ # To install IRuby
28
+ libczmq-dev \
29
+ libzmq3-dev
30
+
31
+ # Install Apache Arrow
32
+ ARG APACHE_ARROW_VERSION=13.0.0-1
33
+ ARG arrow_deb_tmp=/tmp/apache-arrow-apt-source-latest.deb
34
+ ARG arrow_apt_source=https://apache.jfrog.io/artifactory/arrow/ubuntu/pool/jammy/main/a/apache-arrow-apt-source/apache-arrow-apt-source_${APACHE_ARROW_VERSION}_all.deb
35
+ RUN set -e; \
36
+ apt-get update; \
37
+ curl -sfSL -o ${arrow_deb_tmp} ${arrow_apt_source}; \
38
+ apt-get install -y --no-install-recommends ${arrow_deb_tmp}; \
39
+ rm -f ${arrow_deb_tmp}; \
40
+ apt-get update; \
41
+ apt-get install -y \
42
+ libarrow-dev \
43
+ libarrow-glib-dev \
44
+ libarrow-dataset-dev \
45
+ libarrow-flight-dev \
46
+ libparquet-dev \
47
+ libparquet-glib-dev \
48
+ libgandiva-dev \
49
+ libgandiva-glib-dev
50
+
51
+ # This Dockerfile adds a non-root user with sudo access. Use the "remoteUser"
52
+ ARG USERNAME=vscode
53
+ ARG USER_UID=1000
54
+ ARG USER_GID=$USER_UID
55
+
56
+ USER $USERNAME
57
+
58
+ # Install rbenv
59
+ ARG RBENV_RUBY=3.2.2
60
+ RUN set -e; \
61
+ git clone https://github.com/rbenv/rbenv.git $HOME/.rbenv; \
62
+ echo 'eval "$($HOME/.rbenv/bin/rbenv init -)"' >> $HOME/.profile; \
63
+ echo 'eval "$($HOME/.rbenv/bin/rbenv init -)"' >> $HOME/.bashrc; \
64
+ git clone https://github.com/rbenv/ruby-build.git $HOME/.rbenv/plugins/ruby-build
65
+
66
+ # Install Ruby
67
+ # Append `RUBY_CONFIGURE_OPTS=--disable-install-doc ` before rbenv to disable documents
68
+ RUN set -e; \
69
+ $HOME/.rbenv/bin/rbenv install --verbose $RBENV_RUBY; \
70
+ $HOME/.rbenv/bin/rbenv global $RBENV_RUBY
71
+
72
+ # Install IRuby
73
+ RUN set -e; \
74
+ $HOME/.rbenv/bin/rbenv exec gem install iruby; \
75
+ $HOME/.rbenv/bin/rbenv exec iruby register --force
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "RedAmber",
3
+ "build": {
4
+ "dockerfile": "Dockerfile",
5
+ "cacheFrom": "ghcr.io/red-data-tools/red-amber"
6
+ },
7
+ "features": {
8
+ "ghcr.io/devcontainers/features/python:1": {
9
+ "installTools": true,
10
+ "installJupyterlab": true,
11
+ "version": "3.11"
12
+ },
13
+ // We don't use Ruby feature here
14
+ // "ghcr.io/devcontainers/features/ruby:1": {},
15
+ "ghcr.io/rocker-org/devcontainer-features/quarto-cli:1": {
16
+ "installTinyTex": true,
17
+ "version": "latest"
18
+ },
19
+ "ghcr.io/devcontainers/features/github-cli:1": {}
20
+ },
21
+ // VS Code extentions for Ruby
22
+ "customizations": {
23
+ "vscode": {
24
+ "extensions": [
25
+ "rebornix.Ruby",
26
+ "shopify.ruby-lsp"
27
+ ]
28
+ }
29
+ },
30
+ // Use init process to deal with zombie process
31
+ "init": true,
32
+ // set TZ from local machine's environment defaulting to 'UTC' if not supplied.
33
+ "containerEnv": {
34
+ "RUBYLIB": "/workspaces/red_amber/lib",
35
+ "TZ": "${localEnv:TZ:UTC}"
36
+ },
37
+ "onCreateCommand": ".devcontainer/onCreateCommand.sh"
38
+ }
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+
4
+ # Explicitly set ownership of /workspaces to vscode:vscode
5
+ # Because recent runner has uid=1001(runner), gid=999(docker)
6
+ sudo chown -R $(id -un):$(id -un) /workspaces
7
+
8
+ # Install language and set timezone
9
+ # You should change here if you use another
10
+ sudo apt-get update
11
+ sudo apt-get install -y language-pack-ja
12
+
13
+ echo 'export LANG=ja_JP.UTF-8' >> $HOME/.bashrc
14
+ echo 'export LANG=ja_JP.UTF-8' >> $HOME/.profile
15
+ echo 'export TZ=Asia/Tokyo' >> $HOME/.bashrc
16
+ echo 'export TZ=Asia/Tokyo' >> $HOME/.profile
17
+
18
+ # Install HaranoAjiFonts
19
+ mkdir -p $HOME/.fonts
20
+ git clone https://github.com/trueroad/HaranoAjiFonts.git $HOME/.fonts/HaranoAjiFonts
21
+
22
+ # Install gems
23
+ bundle install
24
+
25
+ # Create Jupyter Notebooks
26
+ rake quarto:convert
data/.rubocop.yml CHANGED
@@ -52,7 +52,7 @@ Lint/BinaryOperatorWithIdenticalOperands:
52
52
 
53
53
  Lint/Debugger:
54
54
  Exclude:
55
- - 'docker/example'
55
+ - 'bin/example'
56
56
 
57
57
  # Need for test with empty block
58
58
  # Offense count: 1
@@ -225,7 +225,7 @@ Naming/PredicateName:
225
225
  Rubycw/Rubycw:
226
226
  Exclude:
227
227
  - 'test/**/*'
228
- - 'docker/example'
228
+ - 'bin/example'
229
229
 
230
230
  # Offense count: 16
231
231
  # This cop supports safe autocorrection (--autocorrect).
@@ -242,7 +242,7 @@ Style/SlicingWithRange:
242
242
 
243
243
  Style/MixinUsage:
244
244
  Exclude:
245
- - 'docker/example'
245
+ - 'bin/example'
246
246
 
247
247
  # Necessary to Vector < 0 element-wise comparison
248
248
  # Offense count: 5
data/CHANGELOG.md CHANGED
@@ -1,4 +1,88 @@
1
- ## [0.5.0] - 2023/05-24
1
+ ## [0.5.2] - 2023-09-01
2
+
3
+ Support Apache Arrow 13.0.0 .
4
+ This version is compatible with Arrow 12.0.0 .
5
+
6
+ - Breaking change
7
+
8
+ - Bug fixes
9
+ - Fix bundle install issue by install libyaml-devel (#280)
10
+ - Fix ownership in devcontainer ci (#280)
11
+
12
+ - New features and improvements
13
+ - Support Arrow 13.0.0 (#280)
14
+
15
+ - Documentation and Example
16
+ - Add dataframe_comparison_ja (#281)
17
+
18
+ ## [0.5.1] - 2023-08-18
19
+
20
+ Docker environment is replaced by Dev Container,
21
+ and Jupyter Notebooks will be created from qmd files.
22
+
23
+ - Breaking change
24
+
25
+ - Bug fixes
26
+ - Fix timestamp test to set TZ locally (#249)
27
+ - Fix regexp for beginning of String (#251)
28
+ - Fix loading bin/Gemfile locally in bin/jupyter script (#261)
29
+
30
+ - New features and improvements
31
+ - Support sort and null_placement options in Vector#rank (#265)
32
+ - Add Vector#find_substring method (#270)
33
+ - Add Group#one method (#274)
34
+ - Add Group#all and #any method (#274)
35
+ - Add Group#median method (#274)
36
+ - Add Group#count_uniq method (#274)
37
+ - Introduce Dev Container environment
38
+ - Introduce Devcontainer environment (#253)
39
+ - Change lifecycle script from postCreate to onCreate (#253)
40
+ - Move example to bin (#253)
41
+ - Fix Python and Ruby versions in Dev Container (#254)
42
+ - Add locale and timezone settings (#256)
43
+ - Add quarto from devcontainer feature (#259)
44
+ - Install HaranoAjiFonts as default Tex font (#259)
45
+
46
+ - Refactoring
47
+ - Rename boolean methods in VectorStringFunction (#263)
48
+ - Refine Vector#inspect to show wheather chunked or not (#267)
49
+ - Add an alias Group#count_all for #group_count (#274)
50
+
51
+ - Improve in tests/CI
52
+ - Create rake commands for Notebook convert/test (#269)
53
+ - Fix rubocop warning of forwarding arguments in assign_update (#269)
54
+ - Use rake to start example script (#269)
55
+ - Add test in Vector#rank to cover illegal rank option error (#271)
56
+ - Add bundle install to Rakefile (#276)
57
+ - Use Dockerfile to create dev container (#276)
58
+ - Save image to ghcr in ci (#276)
59
+
60
+ - Documentation and Example
61
+ - YARD
62
+ - Update Docker Environment (#245)
63
+ - Refine jupyter notebook environment (#253)
64
+ - Refine yard in Group aggregations (#274)
65
+ - Fix yard of Vector#rank (#269)
66
+ - Fix yard of Group (#269)
67
+ - Notebook
68
+ - Start source management for jupyter notebook by qmd (#259)
69
+ - Don't create ipynb if it exists (#261)
70
+ - Add Group methods (125 in total) (#269)
71
+ - Add ArrowFunction (126 in total) (#269)
72
+ - Add DataFrame#auto_cast (127 in total) (#269)
73
+ - Update required version in examples notebook (#269)
74
+ - Update examples_of_red_amber (#269)
75
+ - Update red-amber.qmd (#269)
76
+
77
+ - GitHub site
78
+ - Fix broken link in README/README.ja by Viktorius Suwandi (#262)
79
+ - Change description in gemspec (#254)
80
+ - Add documents for Dev Container (#254)
81
+
82
+ - Thanks
83
+ - Viktorius Suwandi
84
+
85
+ ## [0.5.0] - 2023-05-24
2
86
 
3
87
  - Breaking change
4
88
  - Use non keyword argument in #sub_by_value (#219)
@@ -61,7 +145,7 @@
61
145
 
62
146
  - Bug fixes
63
147
  - Fix Vector#modulo, #fdiv, #remainder (#203)
64
-
148
+
65
149
  - New features and improvements
66
150
  - Update SubFrames#take to return SubFrames (#212)
67
151
 
@@ -106,7 +190,7 @@
106
190
  - Fix Vector#rank when data is ChunkedArray (#198)
107
191
  - Fix Vector element-wise functions with nil as scalar (#198)
108
192
  - Support :force_order for all methods of join family (#199)
109
- - Supports :force_order option to force sorting after join for all #join familiy.
193
+ - Supports :force_order option to force sorting after join for all #join familiy.
110
194
  - This will valuable in some cases such as large dataframes.
111
195
  - Ensure baseframe's schema for SubFrames (#200)
112
196
 
@@ -508,11 +592,11 @@
508
592
  - Move binder support to heronshoes/docker-stacks repository.
509
593
  - Update README notebook on binder.
510
594
  - Add examples_of_RedAmber notebook on binder.
511
-
595
+
512
596
  - Start to use discussions.
513
597
 
514
598
  - Thanks
515
-
599
+
516
600
  - Kenta Murata
517
601
 
518
602
  ## [0.2.1] - 2022-09-07
@@ -561,7 +645,7 @@
561
645
  - Update Jupyter Notebook `71 examples of RedAmber`
562
646
 
563
647
  - Thanks
564
-
648
+
565
649
  - Kenta Murata
566
650
 
567
651
  ## [0.2.0] - 2022-08-15
@@ -576,7 +660,7 @@
576
660
  - Remove optional `require` for rover (#55)
577
661
  Fix DataFrame.new for argument with Rover::DataFrame.
578
662
  - Fix occasional failure in CI (#59)
579
- Sometimes the CI test fails. I added -dev dependency
663
+ Sometimes the CI test fails. I added -dev dependency
580
664
  in Arrow install by apt, not doing in bundler.
581
665
 
582
666
  - Fix calling :take in V#[] (#56)
@@ -594,7 +678,7 @@
594
678
  - Upgrade to Arrow 9.0.0 (#59)
595
679
  - Add Vector#quantile method (#59)
596
680
  Arrow::QuantileOptions has supported in Arrow GLib 9.0.0 (ARROW-16623, Thanks!)
597
-
681
+
598
682
  - Add Vector#quantiles (#62)
599
683
 
600
684
  - Add DataFrame#each_row (#56)
@@ -605,7 +689,7 @@
605
689
  - Refine DataFrame.new to use pattern match
606
690
  - Use pattern match in DataFrame#assign
607
691
  - Use pattern match in DataFrame#rename
608
-
692
+
609
693
  - Accept Array for renamer/assigner in #rename/#assign (#61)
610
694
  - Accept assigner by Arrays in DataFrame#assign
611
695
  - Accept renamer pairs by Arrays in DataFrame#rename
@@ -620,15 +704,15 @@
620
704
  - Intorduce DataFrame#to_wide method
621
705
 
622
706
  - Others
623
-
707
+
624
708
  - Add alias sort_index for array_sort_indices (#59)
625
709
  - Enable :width option in DataFrame#to_s (#62)
626
710
  - Add options to DataFrame#format_table (#62)
627
711
 
628
712
  - Update Documents
629
-
713
+
630
714
  - Add Yard doc for some methods
631
-
715
+
632
716
  - Update Jupyter notebook '61 Examples of Red Amber' (#65)
633
717
 
634
718
  ## [0.1.8] - 2022-08-04 (experimental)
@@ -691,7 +775,7 @@
691
775
  - Show nils.
692
776
  - Show data types.
693
777
  - Refine documents to use new formatter output
694
-
778
+
695
779
  - Simplify options of Vector functions (#46)
696
780
  Vector functions with options use optional argument opt in previous code.
697
781
 
@@ -703,7 +787,7 @@
703
787
  - Add methods to Group
704
788
 
705
789
  - Move parquet and rover to development dependency (#49)
706
-
790
+
707
791
  - Refine text in `DataFrame#to_iruby` (#40)
708
792
 
709
793
  - Add badges in Github site
@@ -800,7 +884,7 @@
800
884
  - Add gem and status badges in README. (#42) [Patch by kojix2]
801
885
 
802
886
  - Thanks
803
-
887
+
804
888
  - kojix2
805
889
 
806
890
  ## [0.1.5] - 2022-06-12 (experimental)
@@ -841,7 +925,7 @@
841
925
  - Change to use DataFrame#map_indices in #[]
842
926
 
843
927
  - Add rounding functions with opts (#21)
844
- - With options :mode and :n_digits
928
+ - With options :mode and :n_digits
845
929
  - :n_digits also can be specified with :multiple option in `Vector#round_to_multiple`
846
930
  - `Vector#round`
847
931
  - `Vector#ceil`
@@ -909,7 +993,7 @@
909
993
  - Add example about TDR (#4)
910
994
  - Separate README to create DataFrame and Vector documents (#12)
911
995
  - Add DataFrame model concept image to README (#12)
912
-
996
+
913
997
  - GitHub site
914
998
  - Switched to use merge on GitHub (not to push merged master) (#1)
915
999
  - Create lifetime issue #3 to show the goal of this project (#3)
@@ -934,7 +1018,7 @@
934
1018
 
935
1019
  - `Vector`
936
1020
  - Add categorization functions
937
-
1021
+
938
1022
  This is an important step to support `slice` method and NA treatment features.
939
1023
  - `is_finite`
940
1024
  - `is_inf`
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ gemspec
7
7
  group :test do
8
8
  gem 'rake'
9
9
 
10
- gem 'red-parquet', '~> 12.0.0'
10
+ gem 'red-parquet', '>= 12.0.0'
11
11
  gem 'rover-df', '~> 0.3.0'
12
12
 
13
13
  gem 'rubocop'
data/README.ja.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![CI](https://github.com/heronshoes/red_amber/actions/workflows/ci.yml/badge.svg)](https://github.com/red-data-tools/red_amber/actions/workflows/ci.yml)
5
5
  [![Maintainability](https://api.codeclimate.com/v1/badges/b8a745047045d2f49daa/maintainability)](https://codeclimate.com/github/heronshoes/red_amber/maintainability)
6
6
  [![Test coverage](https://api.codeclimate.com/v1/badges/b8a745047045d2f49daa/test_coverage)](https://codeclimate.com/github/heronshoes/red_amber/test_coverage)
7
- [![Doc](https://img.shields.io/badge/docs-latest-blue)](https://heronshoes.github.io/red_amber/)
7
+ [![Doc](https://img.shields.io/badge/docs-latest-blue)](https://red-data-tools.github.io/red_amber/)
8
8
  [![Discussions](https://img.shields.io/github/discussions/heronshoes/red_amber)](https://github.com/red-data-tools/red_amber/discussions)
9
9
 
10
10
  Rubyistのためのデータフレームライブラリ.
@@ -17,29 +17,37 @@ Rubyistのためのデータフレームライブラリ.
17
17
 
18
18
  ![screenshot from jupyterlab](https://raw.githubusercontent.com/red-data-tools/red_amber/main/doc/image/screenshot.png)
19
19
 
20
+ ## 概要
21
+ * RedAmberはRubyで書かれたデータフレームライブラリです。[Apache Arrow](https://arrow.apache.org/)の列指向データフォーマットを扱うことができます。
22
+ * Rubyらしいブロックやコレクションを使って、Rubyらしい書き方でデータフレームの操作ができることを目指しています。
23
+ * このリポジトリは[開発コンテナ(Dev Container)](https://containers.dev/)をサポートしているので、RedAmberの操作が容易に[試せます](doc/Dev_Containers.ja.md)。
24
+ * [使用例が豊富なドキュメント](https://red-data-tools.github.io/red_amber/)と、127項目の主な操作例を記載したJupyter Notebookドキュメントがあります。
25
+
20
26
  ## 必要な環境
21
27
  ### Ruby
22
28
  - Ruby 3.0 以上.
23
29
 
24
30
  ### ライブラリ
25
31
  ```ruby
26
- gem 'red-arrow', '~> 12.0.0' # お使いの環境に合わせた Apache Arrow が必要です(下記のインストールを参照してください)
27
- gem 'red-parquet', '~> 12.0.0' # 必要に応じて。Parquetの入出力が必要な場合。
28
- gem 'red-datasets-arrow' # 必要に応じて。Red Datasets またはランダムサンプリングが必要な場合。
32
+ gem 'red-arrow', '>= 12.0.0' # お使いの環境に合わせた Apache Arrow が必要です
33
+ # 下記のインストールを参照してください
34
+ gem 'red-arrow-numo-narray' # 必要に応じて。Numo::NArray との連携またはランダムサンプリングが必要な場合。
35
+ gem 'red-parquet', '>= 12.0.0' # 必要に応じて。Parquet の入出力が必要な場合。
36
+ gem 'red-datasets-arrow' # 必要に応じて。Red Datasets を利用する場合。
29
37
  gem 'red-arrow-activerecord' # 必要に応じて。Active Record とのデータ交換が必要な場合。
30
- gem 'rover-df', '~> 0.3.0' # 必要に応じて。Rover::DataFrameに対する入出力が必要な場合。
38
+ gem 'rover-df', # 必要に応じて。Rover::DataFrame に対する入出力が必要な場合。
31
39
  ```
32
40
 
33
41
  ## インストール
34
42
 
35
43
  RedAmberをインストールする前に、下記のライブラリのインストールが必要です。
36
44
 
37
- - Apache Arrow (~> 12.0.0)
38
- - Apache Arrow GLib (~> 12.0.0)
39
- - Apache Parquet GLib (~> 12.0.0) # Parquetの入出力が必要な場合。
45
+ - Apache Arrow (>= 12.0.0)
46
+ - Apache Arrow GLib (>= 12.0.0)
47
+ - Apache Parquet GLib (>= 12.0.0) # Parquetの入出力が必要な場合。
40
48
 
41
49
  環境ごとの詳しいインストール方法は、 [Apache Arrow install document](https://arrow.apache.org/install/) を参照してください。
42
-
50
+
43
51
  - Ubuntuの場合の最低限必要なインストール例:
44
52
 
45
53
  ```
@@ -48,53 +56,61 @@ RedAmberをインストールする前に、下記のライブラリのインス
48
56
  wget https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
49
57
  sudo apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
50
58
  sudo apt update
51
- sudo apt install -y -V libarrow-dev
52
- sudo apt install -y -V libarrow-glib-dev
59
+ sudo apt install -y -V libarrow-dev libarrow-glib-dev
53
60
  ```
54
61
 
55
62
  - Fedora 39 (Rawhide)の場合:
56
63
 
57
64
  ```
58
65
  sudo dnf update
59
- sudo dnf -y install gcc-c++ libarrow-devel libarrow-glib-devel ruby-devel
66
+ sudo dnf -y install gcc-c++ libarrow-devel libarrow-glib-devel ruby-devel libyaml-devel
60
67
  ```
61
68
 
62
69
  - macOS の場合は、Homebrewを使用する:
63
70
 
64
71
  ```
65
- brew install apache-arrow
66
- brew install apache-arrow-glib
72
+ brew install apache-arrow apache-arrow-glib
67
73
  ```
68
74
 
69
75
  Apache Arrowがインストールできたら、下記の行をGemfileに追加してください:
70
76
 
71
77
  ```ruby
72
- gem 'red-arrow', '~> 12.0.0' # お使いの環境に合わせた Apache Arrow が必要です(下記のインストールを参照してください)
78
+ gem 'red-arrow', '>= 12.0.0'
73
79
  gem 'red_amber'
74
- gem 'red-parquet', '~> 12.0.0' # 必要に応じて。Parquetの入出力が必要な場合。
75
- gem 'red-datasets-arrow' # 必要に応じて。Red Datasets またはランダムサンプリングが必要な場合。
76
- gem 'red-arrow-numo-narray' # 必要に応じて。Numo::NArrayとの連携が必要な場合
80
+ gem 'red-arrow-numo-narray' # 必要に応じて。Numo::NArray との連携またはランダムサンプリングが必要な場合。
81
+ gem 'red-parquet', '>= 12.0.0' # 必要に応じて。Parquetの入出力が必要な場合。
82
+ gem 'red-datasets-arrow' # 必要に応じて。Red Datasets を利用する場合。
77
83
  gem 'red-arrow-activerecord' # 必要に応じて。Active Record とのデータ交換が必要な場合。
78
- gem 'rover-df', '~> 0.3.0' # 必要に応じて。Rover::DataFrameに対する入出力が必要な場合。
84
+ gem 'rover-df', # 必要に応じて。Rover::DataFrameに対する入出力が必要な場合。
79
85
  ```
80
86
 
81
87
  `bundle install`とするか、または `gem install red_amber`としてインストールしてください。
82
88
 
89
+ ## Development Containersによる開発環境
90
+
91
+ このリポジトリは [開発コンテナ(Dev Container)](https://containers.dev/)をサポートしています。
92
+ これを使うと、ローカルの環境を変更することなく、RedAmberに必要なツール一式を含んだ環境を準備することができます。この環境には、Ruby、Apache Arrow、RedAmberのソースツリー、GitHub CI、サンプルデータセット、IRubyカーネルを含んだJupyter Labなどが含まれています。
93
+
94
+ RedAmber用のDev Containerは、`.devcontainer` ディレクトリに必要な設定が書かれています。
95
+ 使用例は、[開発コンテナ(Development Containers)の利用](doc/Dev_Containers.ja.md)をご参照ください。
96
+
83
97
  ## Docker イメージと Jupyter Notebook
84
98
 
99
+ (注:将来削除される可能性があります。上記のDev Containerをご活用ください。)
100
+
85
101
  このリポジトリの`docker` フォルダーから Docker コンテナ環境を生成できます。リポジトリをクローンしてから、dockerフォルダーにある [readme](docker/readme.md) を参照してください。その環境では `docker/notebook` フォルダーにある Jupyter Notebookイメージを試用できます。
86
102
 
87
- このREADMEの内容をネットワーク上のJupyter Notebookでインタラクティブに試用することも出来ます。 [Binder](https://mybinder.org/v2/gh/heronshoes/docker-stacks/RedAmber-binder?filepath=red-amber.ipynb).
103
+ このREADMEの内容をネットワーク上のJupyter Notebookでインタラクティブに試用することも出来ます。 [Binder](https://mybinder.org/v2/gh/heronshoes/docker-stacks/RedAmber-binder?filepath=red-amber.ipynb).
88
104
  [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/heronshoes/docker-stacks/RedAmber-binder?filepath=red-amber.ipynb)
89
105
 
90
106
  Jupyter Notebookの環境を含めた他の多くのデータ処理用のライブラリーとともにRedAmberもパッケージングされたDocker Imageとして、[RubyData Docker Stacks](https://github.com/RubyData/docker-stacks) が利用できます(Thanks to Kenta Murata).
91
107
 
92
108
  ## 他のデータフレームライブラリとの比較表
93
109
 
94
- RedAmberの基本的な機能をPython
110
+ RedAmberの基本的な機能をPython
95
111
  [pandas](https://pandas.pydata.org/) や
96
112
  R [Tidyverse](https://www.tidyverse.org/) や
97
- Julia [Dataframes](https://dataframes.juliadata.org/stable/) と比較した表は [DataFrame_Comparison.md](doc/DataFrame_Comparison.md) にあります(Thanks to Benson Muite).
113
+ Julia [DataFrames](https://dataframes.juliadata.org/stable/) と比較した表は [DataFrame_Comparison_ja.md](doc/DataFrame_Comparison_ja.md) にあります(Thanks to Benson Muite).
98
114
 
99
115
  ## `RedAmber`のデータフレーム
100
116
 
@@ -211,21 +227,23 @@ starwars
211
227
  より詳しいデータフレームの使用例については、[DataFrame.md](doc/DataFrame.md) をご参照ください。
212
228
 
213
229
 
214
- ### 1次元のデータを保持する `Vector`
230
+ ### 1次元のデータを保持する `Vector`
215
231
 
216
232
  クラス`RedAmber::Vector` はデータフレームの中の列方向に格納された1次元のデータ列を保持します.
217
233
 
218
234
  より詳しい使用例については [Vector.md](doc/Vector.md) をご参照ください。
219
235
 
220
- ## Jupyter notebook
221
236
 
222
- Jupyter Notebook形式の使用例として、[Examples of Red Amber](https://github.com/heronshoes/docker-stacks/blob/RedAmber-binder/binder/examples_of_red_amber.ipynb)
223
- ([raw file](https://raw.githubusercontent.com/heronshoes/docker-stacks/RedAmber-binder/binder/examples_of_red_amber.ipynb)) があります。データのロードから各種のデータ処理まで100以上の使用例を集めています。[Binder](https://mybinder.org/v2/gh/heronshoes/docker-stacks/RedAmber-binder?filepath=examples_of_red_amber.ipynb).
224
- [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/heronshoes/docker-stacks/RedAmber-binder?filepath=examples_of_red_amber.ipynb)で試すこともできます。
237
+ ## Jupyter Notebook
225
238
 
239
+ このリポジトリでは [Quarto](https://quarto.org/) を使って、操作例を載せたJupyter Notebookのソースはqmd形式で保存し、gitの管理下に置いています。Notebookの生成は開発コンテナを使うと便利です。詳しくは[開発コンテナ(Development Containers)の利用](doc/Dev_Containers.ja.md)を利用して下さい。
226
240
 
227
241
  ## 開発
228
242
 
243
+ Dev Containersを利用してコンテナ上に開発環境を作成する方法がお勧めです。[開発コンテナ(Development Containers)の利用例](doc/Dev_Containers.ja.md)を参考にしてください。
244
+
245
+ または、ローカル環境に必要なライブラリをインストールした上で、下記を実行するとテストが走ります。
246
+
229
247
  ```shell
230
248
  git clone https://github.com/red-data-tools/red_amber.git
231
249
  cd red_amber
@@ -233,19 +251,20 @@ bundle install
233
251
  bundle exec rake test
234
252
  ```
235
253
 
236
- rake testは必須ですが、rake rubocopをパスすることはコントリビュートの際に必須ではありません。このプロジェクトではコードの書き方の好みを尊重します。ただしマージの際に書き方を統一することがあります。
254
+ RedAmberの開発では、`rake test` は必須ですが、`rake rubocop` をパスすることはコントリビュートの際に必須ではありません。このプロジェクトではコードの書き方の好みを尊重します。ただしマージの際に書き方を統一させていただくことがあります。
237
255
 
238
256
  ## コミュニティ
239
257
 
240
258
  このプロジェクトを支援して頂けると嬉しいです。支援の方法はいくつかあります。
241
259
 
242
- - [discussions](https://github.com/heronshoes/red_amber/discussions)で話をする [![Discussions](https://img.shields.io/github/discussions/heronshoes/red_amber)](https://github.com/red-data-tools/red_amber/discussions)
243
- - Q and Aや使用方法、豆知識などを見る。
244
- - 疑問に思っていることを質問する。
260
+ - [discussions](https://github.com/heronshoes/red_amber/discussions)でお話ししましょう! [![Discussions](https://img.shields.io/github/discussions/heronshoes/red_amber)](https://github.com/red-data-tools/red_amber/discussions)
261
+ - Q and Aや使用方法、豆知識などを見流ことができます。
262
+ - 疑問に思っていることを質問できます。
245
263
  - 新しいアイデアを共有する。アイデアはdiscussionからissueに昇格させて育てていくこともあります。漠然としたアイデアでもdiscussionから始めて大きくしていきましょう。
246
264
  - [バグ報告や新しい機能の提案](https://github.com/red-data-tools/red_amber/issues)
247
265
  - バグの修正や[プルリクエスト](https://github.com/red-data-tools/red_amber/pulls)
248
- - ドキュメントを修正したり、不明確なところを直したり、新しく追加する
266
+ - ドキュメントを修正したり、不明確なところを直したり、新しく追加しましょう。
267
+ 皆さんのご参加をお待ちしています。
249
268
 
250
269
  ## License
251
270