bigfiles 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.markdownlint_style.rb +3 -0
- data/.mdlrc +1 -0
- data/CONTRIBUTING.rst +75 -0
- data/DEVELOPMENT.md +1 -0
- data/Gemfile.lock +53 -30
- data/LICENSE +1 -1
- data/Makefile +2 -0
- data/README.md +40 -0
- data/bigfiles.gemspec +1 -0
- data/fix.sh +4 -9
- data/lib/bigfiles/config_file_parser.rb +48 -0
- data/lib/bigfiles/option_parser.rb +1 -2
- data/lib/bigfiles/version.rb +1 -1
- data/lib/bigfiles.rb +8 -1
- metadata +20 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c625f268823284a5c9058cd51515ef8127f8ef58c61ad1e4c6c01f79bc89d9a9
|
4
|
+
data.tar.gz: 4938c301bb8d5c9064e797b4a92495a422a90a5c58c32bc2fc03103703e3a694
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '08cc96dc7153ffbc18623d2deea513d39ff0df1c67d16fddaa62c81406bafd68c9e05bf9f416a54c87580d865fa3f3214088afb83106edf92e410b7a27ba525d'
|
7
|
+
data.tar.gz: b9415c5f66f9e8120425aea6a730c8e89b529e9bd3eebbc7e6a77ebfaff06f003e867ad9866c4fff5d700595c6dcde51abf2bee63230e977f81baa35e2308bb0
|
data/.mdlrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
style ".markdownlint_style.rb"
|
data/CONTRIBUTING.rst
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
============
|
2
|
+
Contributing
|
3
|
+
============
|
4
|
+
|
5
|
+
Contributions are welcome, and they are greatly appreciated! Every little bit
|
6
|
+
helps, and credit will always be given.
|
7
|
+
|
8
|
+
You can contribute in many ways:
|
9
|
+
|
10
|
+
Types of Contributions
|
11
|
+
----------------------
|
12
|
+
|
13
|
+
Report Bugs
|
14
|
+
~~~~~~~~~~~
|
15
|
+
|
16
|
+
Report bugs at https://github.com/apiology/bigfiles/issues
|
17
|
+
|
18
|
+
If you are reporting a bug, please include:
|
19
|
+
|
20
|
+
* Your operating system name and version.
|
21
|
+
* Any details about your local setup that might be helpful in troubleshooting.
|
22
|
+
* Detailed steps to reproduce the bug.
|
23
|
+
|
24
|
+
Fix Bugs
|
25
|
+
~~~~~~~~
|
26
|
+
|
27
|
+
Look through the GitHub issues for bugs. Anything tagged with "bug"
|
28
|
+
and "help wanted" is open to whoever wants to implement a fix for it.
|
29
|
+
|
30
|
+
Implement Features
|
31
|
+
~~~~~~~~~~~~~~~~~~
|
32
|
+
|
33
|
+
Look through the GitHub issues for features. Anything tagged with "enhancement"
|
34
|
+
and "help wanted" is open to whoever wants to implement it.
|
35
|
+
|
36
|
+
If you have a new feature in mind, please start it by filing an issue
|
37
|
+
so we can discuss the need and approach before you invest time into
|
38
|
+
coding it.
|
39
|
+
|
40
|
+
Write Documentation
|
41
|
+
~~~~~~~~~~~~~~~~~~~
|
42
|
+
|
43
|
+
BigFiles could always use more documentation, whether as part of
|
44
|
+
the official BigFiles docs, in docstrings, or even on the web in blog posts, articles,
|
45
|
+
and such.
|
46
|
+
|
47
|
+
Submit Feedback
|
48
|
+
~~~~~~~~~~~~~~~
|
49
|
+
|
50
|
+
The best way to send feedback is to file an issue at
|
51
|
+
https://github.com/apiology/bigfiles/issues.
|
52
|
+
|
53
|
+
If you are proposing a new feature:
|
54
|
+
|
55
|
+
* Explain in detail how it would work.
|
56
|
+
* Keep the scope as narrow as possible, to make it easier to implement.
|
57
|
+
* Remember that this is a volunteer-driven project, and that contributions
|
58
|
+
are welcome :)
|
59
|
+
|
60
|
+
Get Started!
|
61
|
+
------------
|
62
|
+
|
63
|
+
Ready to contribute? See DEVELOPMENT.md in this directory for details
|
64
|
+
on how to set yourself up for local development.
|
65
|
+
|
66
|
+
Pull Request Guidelines
|
67
|
+
-----------------------
|
68
|
+
|
69
|
+
Before you submit a pull request, check that it meets these guidelines:
|
70
|
+
|
71
|
+
1. The pull request should include tests.
|
72
|
+
|
73
|
+
2. If the pull request adds functionality, the docs should be updated. Put your
|
74
|
+
new functionality into a function with a docstring, and add the feature to
|
75
|
+
the list in README.md.
|
data/DEVELOPMENT.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
bigfiles (0.
|
4
|
+
bigfiles (0.3.0)
|
5
5
|
high_water_mark
|
6
6
|
source_finder (>= 2)
|
7
7
|
|
@@ -10,22 +10,42 @@ GEM
|
|
10
10
|
specs:
|
11
11
|
ast (2.4.2)
|
12
12
|
bump (0.10.0)
|
13
|
+
chef-utils (17.10.0)
|
14
|
+
concurrent-ruby
|
13
15
|
childprocess (4.1.0)
|
14
16
|
coderay (1.1.3)
|
15
|
-
|
17
|
+
concurrent-ruby (1.1.10)
|
18
|
+
diff-lcs (1.5.0)
|
16
19
|
docile (1.4.0)
|
17
20
|
ffi (1.15.4-java)
|
18
21
|
high_water_mark (0.1.0)
|
19
22
|
imagen (0.1.8)
|
20
23
|
parser (>= 2.5, != 2.5.1.1)
|
21
24
|
iniparse (1.5.0)
|
25
|
+
json (2.6.2)
|
26
|
+
json (2.6.2-java)
|
27
|
+
kramdown (2.4.0)
|
28
|
+
rexml
|
29
|
+
kramdown-parser-gfm (1.1.0)
|
30
|
+
kramdown (~> 2.0)
|
31
|
+
mdl (0.11.0)
|
32
|
+
kramdown (~> 2.3)
|
33
|
+
kramdown-parser-gfm (~> 1.1)
|
34
|
+
mixlib-cli (~> 2.1, >= 2.1.1)
|
35
|
+
mixlib-config (>= 2.2.1, < 4)
|
36
|
+
mixlib-shellout
|
22
37
|
method_source (1.0.0)
|
23
|
-
|
38
|
+
mixlib-cli (2.1.8)
|
39
|
+
mixlib-config (3.0.27)
|
40
|
+
tomlrb
|
41
|
+
mixlib-shellout (3.2.7)
|
42
|
+
chef-utils
|
43
|
+
overcommit (0.59.1)
|
24
44
|
childprocess (>= 0.6.3, < 5)
|
25
45
|
iniparse (~> 1.4)
|
26
46
|
rexml (~> 3.2)
|
27
|
-
parallel (1.
|
28
|
-
parser (3.
|
47
|
+
parallel (1.22.1)
|
48
|
+
parser (3.1.2.0)
|
29
49
|
ast (~> 2.4.1)
|
30
50
|
pry (0.14.1)
|
31
51
|
coderay (~> 1.1)
|
@@ -34,40 +54,41 @@ GEM
|
|
34
54
|
coderay (~> 1.1)
|
35
55
|
method_source (~> 1.0)
|
36
56
|
spoon (~> 0.0)
|
37
|
-
rainbow (3.
|
57
|
+
rainbow (3.1.1)
|
38
58
|
rake (13.0.6)
|
39
|
-
regexp_parser (2.
|
59
|
+
regexp_parser (2.5.0)
|
40
60
|
rexml (3.2.5)
|
41
|
-
rspec (3.
|
42
|
-
rspec-core (~> 3.
|
43
|
-
rspec-expectations (~> 3.
|
44
|
-
rspec-mocks (~> 3.
|
45
|
-
rspec-core (3.
|
46
|
-
rspec-support (~> 3.
|
47
|
-
rspec-expectations (3.
|
61
|
+
rspec (3.11.0)
|
62
|
+
rspec-core (~> 3.11.0)
|
63
|
+
rspec-expectations (~> 3.11.0)
|
64
|
+
rspec-mocks (~> 3.11.0)
|
65
|
+
rspec-core (3.11.0)
|
66
|
+
rspec-support (~> 3.11.0)
|
67
|
+
rspec-expectations (3.11.0)
|
48
68
|
diff-lcs (>= 1.2.0, < 2.0)
|
49
|
-
rspec-support (~> 3.
|
50
|
-
rspec-mocks (3.
|
69
|
+
rspec-support (~> 3.11.0)
|
70
|
+
rspec-mocks (3.11.1)
|
51
71
|
diff-lcs (>= 1.2.0, < 2.0)
|
52
|
-
rspec-support (~> 3.
|
53
|
-
rspec-support (3.
|
54
|
-
rubocop (1.
|
72
|
+
rspec-support (~> 3.11.0)
|
73
|
+
rspec-support (3.11.0)
|
74
|
+
rubocop (1.31.2)
|
75
|
+
json (~> 2.3)
|
55
76
|
parallel (~> 1.10)
|
56
|
-
parser (>= 3.
|
77
|
+
parser (>= 3.1.0.0)
|
57
78
|
rainbow (>= 2.2.2, < 4.0)
|
58
79
|
regexp_parser (>= 1.8, < 3.0)
|
59
|
-
rexml
|
60
|
-
rubocop-ast (>= 1.
|
80
|
+
rexml (>= 3.2.5, < 4.0)
|
81
|
+
rubocop-ast (>= 1.18.0, < 2.0)
|
61
82
|
ruby-progressbar (~> 1.7)
|
62
83
|
unicode-display_width (>= 1.4.0, < 3.0)
|
63
|
-
rubocop-ast (1.
|
64
|
-
parser (>= 3.
|
84
|
+
rubocop-ast (1.18.0)
|
85
|
+
parser (>= 3.1.1.0)
|
65
86
|
rubocop-rake (0.6.0)
|
66
87
|
rubocop (~> 1.0)
|
67
|
-
rubocop-rspec (2.
|
68
|
-
rubocop (~> 1.
|
88
|
+
rubocop-rspec (2.12.1)
|
89
|
+
rubocop (~> 1.31)
|
69
90
|
ruby-progressbar (1.11.0)
|
70
|
-
rugged (1.
|
91
|
+
rugged (1.2.0)
|
71
92
|
simplecov (0.21.2)
|
72
93
|
docile (~> 1.1)
|
73
94
|
simplecov-html (~> 0.11)
|
@@ -78,11 +99,12 @@ GEM
|
|
78
99
|
source_finder (3.2.1)
|
79
100
|
spoon (0.0.6)
|
80
101
|
ffi
|
81
|
-
|
102
|
+
tomlrb (2.0.3)
|
103
|
+
undercover (0.4.4)
|
82
104
|
imagen (>= 0.1.8)
|
83
105
|
rainbow (>= 2.1, < 4.0)
|
84
|
-
rugged (>= 0.27, < 1.
|
85
|
-
unicode-display_width (2.
|
106
|
+
rugged (>= 0.27, < 1.3)
|
107
|
+
unicode-display_width (2.2.0)
|
86
108
|
|
87
109
|
PLATFORMS
|
88
110
|
java
|
@@ -95,6 +117,7 @@ DEPENDENCIES
|
|
95
117
|
bigfiles!
|
96
118
|
bump
|
97
119
|
bundler
|
120
|
+
mdl
|
98
121
|
overcommit (>= 0.58.0)
|
99
122
|
pry
|
100
123
|
rake (~> 13.0)
|
data/LICENSE
CHANGED
data/Makefile
CHANGED
data/README.md
CHANGED
@@ -40,6 +40,34 @@ $ bigfiles
|
|
40
40
|
$
|
41
41
|
```
|
42
42
|
|
43
|
+
## Options
|
44
|
+
|
45
|
+
You can control what files are included and excluded, and how many files are reported:
|
46
|
+
|
47
|
+
```sh
|
48
|
+
$ bigfiles --help
|
49
|
+
Usage: bigfiles [options]
|
50
|
+
-g, --glob glob here Which files to parse - default is {Dockerfile,Rakefile,{*,.*}.{c,clj,cljs,cpp,gemspec,groovy,html,java,js,json,py,rake,rb,scala,sh,swift,yml},{app,config,db,feature,lib,spec,src,test,tests,vars,www}/**/{*,.*}.{c,clj,cljs,cpp,gemspec,groovy,html,java,js,json,py,rake,rb,scala,sh,swift,yml}}
|
51
|
+
-e, --exclude-glob glob here Files to exclude - default is none
|
52
|
+
-h, --help This message
|
53
|
+
-n, --num-files number-here Top number of files to show--default 3
|
54
|
+
$
|
55
|
+
```
|
56
|
+
|
57
|
+
## Configuration
|
58
|
+
|
59
|
+
You can set different defaults for the above in a `.bigfiles.yml` in the current directory:
|
60
|
+
|
61
|
+
```yaml
|
62
|
+
---
|
63
|
+
bigfiles:
|
64
|
+
num_files: 8
|
65
|
+
include:
|
66
|
+
glob: '**/*.my-favorite-extension'
|
67
|
+
exclude:
|
68
|
+
glob: fix.sh
|
69
|
+
```
|
70
|
+
|
43
71
|
## Contributing
|
44
72
|
|
45
73
|
Bug reports and pull requests are welcome on
|
@@ -58,3 +86,15 @@ The gem is available as open source under the terms of the
|
|
58
86
|
Everyone interacting in the Pronto::Punchlist project’s codebases,
|
59
87
|
issue trackers, chat rooms and mailing lists is expected to follow the
|
60
88
|
[code of conduct](https://github.com/apiology/bigfiles/blob/main/CODE_OF_CONDUCT.md).
|
89
|
+
|
90
|
+
## Contributions
|
91
|
+
|
92
|
+
This project, as with all others, rests on the shoulders of a broad
|
93
|
+
ecosystem supported by many volunteers doing thankless work, along
|
94
|
+
with specific contributors.
|
95
|
+
|
96
|
+
In particular I'd like to call out:
|
97
|
+
|
98
|
+
* [Audrey Roy Greenfeld](https://github.com/audreyfeldroy) for the
|
99
|
+
cookiecutter tool and associated examples, which keep my many
|
100
|
+
projects building with shared boilerplate with a minimum of fuss.
|
data/bigfiles.gemspec
CHANGED
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
|
30
30
|
spec.add_development_dependency 'bump'
|
31
31
|
spec.add_development_dependency 'bundler'
|
32
|
+
spec.add_development_dependency 'mdl'
|
32
33
|
# 0.58.0 and 0.57.0 don't seem super compatible with signatures, and
|
33
34
|
# magit doesn't seem to want to use the bundled version at the moment,
|
34
35
|
# so let's favor the more recent version...
|
data/fix.sh
CHANGED
@@ -284,12 +284,7 @@ ensure_python_versions() {
|
|
284
284
|
}
|
285
285
|
|
286
286
|
major_minor="$(cut -d. -f1-2 <<<"${ver}")"
|
287
|
-
|
288
|
-
then
|
289
|
-
pyenv_install --patch "${ver}" < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index=1)
|
290
|
-
else
|
291
|
-
pyenv_install "${ver}"
|
292
|
-
fi
|
287
|
+
pyenv_install "${ver}"
|
293
288
|
else
|
294
289
|
pyenv install -s "${ver}"
|
295
290
|
fi
|
@@ -307,12 +302,12 @@ ensure_pyenv_virtualenvs() {
|
|
307
302
|
}
|
308
303
|
|
309
304
|
ensure_pip_and_wheel() {
|
310
|
-
#
|
311
|
-
#
|
305
|
+
# pip 22 seems to be better at finding pandas pre-compiled wheels
|
306
|
+
# for macOS, so let's make sure we're using at least that version
|
312
307
|
major_pip_version=$(pip --version | cut -d' ' -f2 | cut -d '.' -f 1)
|
313
308
|
if [[ major_pip_version -lt 21 ]]
|
314
309
|
then
|
315
|
-
pip install 'pip>=
|
310
|
+
pip install 'pip>=22'
|
316
311
|
fi
|
317
312
|
# wheel is helpful for being able to cache long package builds
|
318
313
|
pip show wheel >/dev/null 2>&1 || pip install wheel
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
module BigFiles
|
6
|
+
# Load configuration from files
|
7
|
+
class ConfigFileParser
|
8
|
+
attr_reader :project_config_filename
|
9
|
+
|
10
|
+
def initialize(project_config_filename = '.bigfiles.yml',
|
11
|
+
yaml_class: YAML,
|
12
|
+
file_class: File)
|
13
|
+
@project_config_filename = project_config_filename
|
14
|
+
@yaml_class = yaml_class
|
15
|
+
@file_class = file_class
|
16
|
+
end
|
17
|
+
|
18
|
+
def parse_config_files
|
19
|
+
config = {}
|
20
|
+
project_config = parse_project_config
|
21
|
+
config.merge(project_config)
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def item(raw_project_config, section, key)
|
27
|
+
raw_project_config.fetch('bigfiles', {}).fetch(section, {}).fetch(key, nil)
|
28
|
+
end
|
29
|
+
|
30
|
+
def top_item(raw_project_config, key)
|
31
|
+
raw_project_config.fetch('bigfiles', {}).fetch(key, nil)
|
32
|
+
end
|
33
|
+
|
34
|
+
def parse_project_config
|
35
|
+
return {} unless @file_class.file? project_config_filename
|
36
|
+
|
37
|
+
project_config = {}
|
38
|
+
raw_project_config = @yaml_class.load_file(project_config_filename)
|
39
|
+
exclude = item(raw_project_config, 'exclude', 'glob')
|
40
|
+
project_config[:exclude] = exclude unless exclude.nil?
|
41
|
+
glob = item(raw_project_config, 'include', 'glob')
|
42
|
+
project_config[:glob] = glob unless glob.nil?
|
43
|
+
num_files = top_item(raw_project_config, 'num_files')
|
44
|
+
project_config[:num_files] = num_files unless num_files.nil?
|
45
|
+
project_config
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/lib/bigfiles/version.rb
CHANGED
data/lib/bigfiles.rb
CHANGED
@@ -3,7 +3,9 @@
|
|
3
3
|
require 'optparse'
|
4
4
|
|
5
5
|
require 'bigfiles/file_with_lines'
|
6
|
+
require 'bigfiles/config_file_parser'
|
6
7
|
require 'bigfiles/option_parser'
|
8
|
+
require 'bigfiles/config'
|
7
9
|
require 'bigfiles/inspector'
|
8
10
|
require 'bigfiles/version'
|
9
11
|
require 'source_finder/source_file_globber'
|
@@ -21,6 +23,7 @@ module BigFiles
|
|
21
23
|
inspector_class: Inspector,
|
22
24
|
option_parser_class: ::OptionParser,
|
23
25
|
source_finder_option_parser: SourceFinder::OptionParser.new,
|
26
|
+
yaml_class: YAML,
|
24
27
|
bigfiles_option_parser:
|
25
28
|
::BigFiles::OptionParser
|
26
29
|
.new(option_parser_class: option_parser_class,
|
@@ -28,7 +31,11 @@ module BigFiles
|
|
28
31
|
exiter: exiter,
|
29
32
|
source_finder_option_parser:
|
30
33
|
source_finder_option_parser),
|
31
|
-
|
34
|
+
config_file_parser: ::BigFiles::ConfigFileParser.new(yaml_class: yaml_class),
|
35
|
+
raw_config: config_file_parser.parse_config_files
|
36
|
+
.merge(bigfiles_option_parser.parse_options(args)),
|
37
|
+
config: Config.new(**raw_config))
|
38
|
+
|
32
39
|
@bigfiles_option_parser = bigfiles_option_parser
|
33
40
|
@config = config
|
34
41
|
@inspector = inspector_class.new(source_file_globber: source_file_globber,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bigfiles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vince Broz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: high_water_mark
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: mdl
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: overcommit
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -219,11 +233,14 @@ files:
|
|
219
233
|
- ".git-hooks/pre_commit/circle_ci.rb"
|
220
234
|
- ".gitattributes"
|
221
235
|
- ".gitignore"
|
236
|
+
- ".markdownlint_style.rb"
|
237
|
+
- ".mdlrc"
|
222
238
|
- ".overcommit.yml"
|
223
239
|
- ".rubocop.yml"
|
224
240
|
- ".rubocop_todo.yml"
|
225
241
|
- ".yamllint.yml"
|
226
242
|
- CODE_OF_CONDUCT.md
|
243
|
+
- CONTRIBUTING.rst
|
227
244
|
- DEVELOPMENT.md
|
228
245
|
- Gemfile
|
229
246
|
- Gemfile.lock
|
@@ -269,6 +286,7 @@ files:
|
|
269
286
|
- fix.sh
|
270
287
|
- lib/bigfiles.rb
|
271
288
|
- lib/bigfiles/config.rb
|
289
|
+
- lib/bigfiles/config_file_parser.rb
|
272
290
|
- lib/bigfiles/file_with_lines.rb
|
273
291
|
- lib/bigfiles/inspector.rb
|
274
292
|
- lib/bigfiles/option_parser.rb
|