Skip to content

Commit 2eef49f

Browse files
kleinschmidtpalday
andauthored
add autoformatting (#73)
* autoformatting * maybe if we push one change the action will fail?? * println debugging * Update .github/workflows/Format.yml Co-authored-by: Phillip Alday <[email protected]> * Update .github/workflows/Format.yml Co-authored-by: Phillip Alday <[email protected]> * Update .github/workflows/Format.yml Co-authored-by: Phillip Alday <[email protected]> * Update .github/workflows/Format.yml Co-authored-by: Phillip Alday <[email protected]> * fix * insert malformed change * Revert "insert malformed change" This reverts commit 4f397e5. * format everything --------- Co-authored-by: Phillip Alday <[email protected]>
1 parent 19e8549 commit 2eef49f

File tree

10 files changed

+335
-32
lines changed

10 files changed

+335
-32
lines changed

.github/workflows/Format.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Format Check
2+
on:
3+
# because we rely on ReviewDog to trigger failure, there's no reason to run on anything
4+
pull_request:
5+
paths:
6+
- "**/*.jl"
7+
- ".github/workflows/FormatCheck.yml"
8+
concurrency:
9+
# Skip intermediate builds: always.
10+
# Cancel intermediate builds: only if it is a pull request build.
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
13+
jobs:
14+
format-check:
15+
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.draft == false }}
16+
runs-on: ${{ matrix.os }}
17+
strategy:
18+
matrix:
19+
version:
20+
- "1.9"
21+
os:
22+
- ubuntu-latest
23+
arch:
24+
- x64
25+
steps:
26+
- uses: actions/checkout@v3
27+
- uses: julia-actions/setup-julia@v1
28+
with:
29+
version: ${{ matrix.version }}
30+
arch: ${{ matrix.arch }}
31+
- uses: julia-actions/cache@v1
32+
with:
33+
cache-name: "${{ github.workflow }}-${{ github.job }}-${{ matrix.pkg.name }}-${{ matrix.version }}-${{ matrix.os }}-${{ matrix.arch }}"
34+
cache-compiled: true
35+
- name: Instantiate `format` environment and format
36+
run: |
37+
julia --project=format -e 'using Pkg; Pkg.instantiate()'
38+
julia --project=format 'format/run.jl'
39+
- uses: reviewdog/action-suggester@v1
40+
with:
41+
tool_name: JuliaFormatter
42+
fail_on_error: true

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@
55
*.DS_Store
66
Manifest.toml
77
docs/build/
8+
!format/Manifest.toml

docs/make.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
using Documenter
22
using EDF
33

4-
makedocs(modules=[EDF],
4+
makedocs(; modules=[EDF],
55
sitename="EDF.jl",
66
authors="Beacon Biosignals, Inc.",
77
pages=["API" => "index.md"])
88

9-
deploydocs(repo="github.com/beacon-biosignals/EDF.jl.git")
9+
deploydocs(; repo="github.com/beacon-biosignals/EDF.jl.git")

format/Manifest.toml

Lines changed: 221 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,221 @@
1+
# This file is machine-generated - editing it directly is not advised
2+
3+
julia_version = "1.9.3"
4+
manifest_format = "2.0"
5+
project_hash = "30b405be1c677184b7703a9bfb3d2100029ccad0"
6+
7+
[[deps.ArgTools]]
8+
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
9+
version = "1.1.1"
10+
11+
[[deps.Artifacts]]
12+
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
13+
14+
[[deps.Base64]]
15+
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
16+
17+
[[deps.CSTParser]]
18+
deps = ["Tokenize"]
19+
git-tree-sha1 = "3ddd48d200eb8ddf9cb3e0189fc059fd49b97c1f"
20+
uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f"
21+
version = "3.3.6"
22+
23+
[[deps.CommonMark]]
24+
deps = ["Crayons", "JSON", "PrecompileTools", "URIs"]
25+
git-tree-sha1 = "532c4185d3c9037c0237546d817858b23cf9e071"
26+
uuid = "a80b9123-70ca-4bc0-993e-6e3bcb318db6"
27+
version = "0.8.12"
28+
29+
[[deps.Compat]]
30+
deps = ["UUIDs"]
31+
git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c"
32+
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
33+
version = "4.10.0"
34+
35+
[deps.Compat.extensions]
36+
CompatLinearAlgebraExt = "LinearAlgebra"
37+
38+
[deps.Compat.weakdeps]
39+
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
40+
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
41+
42+
[[deps.Crayons]]
43+
git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15"
44+
uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f"
45+
version = "4.1.1"
46+
47+
[[deps.DataStructures]]
48+
deps = ["Compat", "InteractiveUtils", "OrderedCollections"]
49+
git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d"
50+
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
51+
version = "0.18.15"
52+
53+
[[deps.Dates]]
54+
deps = ["Printf"]
55+
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
56+
57+
[[deps.Downloads]]
58+
deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"]
59+
uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
60+
version = "1.6.0"
61+
62+
[[deps.FileWatching]]
63+
uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
64+
65+
[[deps.Glob]]
66+
git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496"
67+
uuid = "c27321d9-0574-5035-807b-f59d2c89b15c"
68+
version = "1.3.1"
69+
70+
[[deps.InteractiveUtils]]
71+
deps = ["Markdown"]
72+
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
73+
74+
[[deps.JSON]]
75+
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
76+
git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a"
77+
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
78+
version = "0.21.4"
79+
80+
[[deps.JuliaFormatter]]
81+
deps = ["CSTParser", "CommonMark", "DataStructures", "Glob", "Pkg", "PrecompileTools", "Tokenize"]
82+
git-tree-sha1 = "80031f6e58b09b0de4553bf63d9a36ec5db57967"
83+
uuid = "98e50ef6-434e-11e9-1051-2b60c6c9e899"
84+
version = "1.0.39"
85+
86+
[[deps.LibCURL]]
87+
deps = ["LibCURL_jll", "MozillaCACerts_jll"]
88+
uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
89+
version = "0.6.3"
90+
91+
[[deps.LibCURL_jll]]
92+
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
93+
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
94+
version = "7.84.0+0"
95+
96+
[[deps.LibGit2]]
97+
deps = ["Base64", "NetworkOptions", "Printf", "SHA"]
98+
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
99+
100+
[[deps.LibSSH2_jll]]
101+
deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
102+
uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
103+
version = "1.10.2+0"
104+
105+
[[deps.Libdl]]
106+
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
107+
108+
[[deps.Logging]]
109+
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
110+
111+
[[deps.Markdown]]
112+
deps = ["Base64"]
113+
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
114+
115+
[[deps.MbedTLS_jll]]
116+
deps = ["Artifacts", "Libdl"]
117+
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
118+
version = "2.28.2+0"
119+
120+
[[deps.Mmap]]
121+
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
122+
123+
[[deps.MozillaCACerts_jll]]
124+
uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
125+
version = "2022.10.11"
126+
127+
[[deps.NetworkOptions]]
128+
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
129+
version = "1.2.0"
130+
131+
[[deps.OrderedCollections]]
132+
git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3"
133+
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
134+
version = "1.6.2"
135+
136+
[[deps.Parsers]]
137+
deps = ["Dates", "PrecompileTools", "UUIDs"]
138+
git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851"
139+
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
140+
version = "2.7.2"
141+
142+
[[deps.Pkg]]
143+
deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
144+
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
145+
version = "1.9.2"
146+
147+
[[deps.PrecompileTools]]
148+
deps = ["Preferences"]
149+
git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f"
150+
uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
151+
version = "1.2.0"
152+
153+
[[deps.Preferences]]
154+
deps = ["TOML"]
155+
git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e"
156+
uuid = "21216c6a-2e73-6563-6e65-726566657250"
157+
version = "1.4.1"
158+
159+
[[deps.Printf]]
160+
deps = ["Unicode"]
161+
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
162+
163+
[[deps.REPL]]
164+
deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
165+
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
166+
167+
[[deps.Random]]
168+
deps = ["SHA", "Serialization"]
169+
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
170+
171+
[[deps.SHA]]
172+
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
173+
version = "0.7.0"
174+
175+
[[deps.Serialization]]
176+
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
177+
178+
[[deps.Sockets]]
179+
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
180+
181+
[[deps.TOML]]
182+
deps = ["Dates"]
183+
uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
184+
version = "1.0.3"
185+
186+
[[deps.Tar]]
187+
deps = ["ArgTools", "SHA"]
188+
uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
189+
version = "1.10.0"
190+
191+
[[deps.Tokenize]]
192+
git-tree-sha1 = "90538bf898832b6ebd900fa40f223e695970e3a5"
193+
uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624"
194+
version = "0.5.25"
195+
196+
[[deps.URIs]]
197+
git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b"
198+
uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4"
199+
version = "1.5.1"
200+
201+
[[deps.UUIDs]]
202+
deps = ["Random", "SHA"]
203+
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
204+
205+
[[deps.Unicode]]
206+
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
207+
208+
[[deps.Zlib_jll]]
209+
deps = ["Libdl"]
210+
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
211+
version = "1.2.13+0"
212+
213+
[[deps.nghttp2_jll]]
214+
deps = ["Artifacts", "Libdl"]
215+
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
216+
version = "1.48.0+0"
217+
218+
[[deps.p7zip_jll]]
219+
deps = ["Artifacts", "Libdl"]
220+
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
221+
version = "17.4.0+0"

format/Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[deps]
2+
JuliaFormatter = "98e50ef6-434e-11e9-1051-2b60c6c9e899"

format/run.jl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using JuliaFormatter
2+
3+
function main()
4+
perfect = format("."; style=YASStyle(), verbose=true)
5+
if perfect
6+
@info "Linting complete - no files altered"
7+
else
8+
@info "Linting complete - files altered"
9+
run(`git status`)
10+
end
11+
return nothing
12+
end
13+
14+
main()

src/read.jl

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ function read_file_header(io::IO)
8181
patient_id = something(tryparse(PatientID, patient_id_raw), String(patient_id_raw))
8282

8383
recording_id_raw = strip(String(Base.read(io, 80)))
84-
recording_id = something(tryparse(RecordingID, recording_id_raw), String(recording_id_raw))
84+
recording_id = something(tryparse(RecordingID, recording_id_raw),
85+
String(recording_id_raw))
8586

8687
start_raw = Base.read(io, 8)
8788
push!(start_raw, UInt8(' '))
@@ -108,7 +109,8 @@ function read_file_header(io::IO)
108109
end
109110

110111
function read_signal_headers(io::IO, signal_count)
111-
fields = [String(Base.read(io, size)) for signal in 1:signal_count, (_, size) in SIGNAL_HEADER_FIELDS]
112+
fields = [String(Base.read(io, size))
113+
for signal in 1:signal_count, (_, size) in SIGNAL_HEADER_FIELDS]
112114
signal_headers = [SignalHeader(strip(fields[i, 1]), strip(fields[i, 2]),
113115
strip(fields[i, 3]), parse_float(fields[i, 4]),
114116
parse_float(fields[i, 5]), parse_float(fields[i, 6]),
@@ -139,7 +141,7 @@ function read_to!(io::IO, x::AbstractArray{T}) where {T}
139141
end
140142

141143
function read_signals!(file::File)
142-
for record_index in 1:file.header.record_count, signal in file.signals
144+
for record_index in 1:(file.header.record_count), signal in file.signals
143145
read_signal_record!(file, signal, record_index)
144146
end
145147
return nothing
@@ -157,7 +159,8 @@ end
157159

158160
function read_signal_record!(file::File, signal::AnnotationsSignal, record_index::Int)
159161
bytes_per_sample = sizeof(sample_type(file))
160-
io_for_record = IOBuffer(Base.read(file.io, bytes_per_sample * signal.samples_per_record))
162+
io_for_record = IOBuffer(Base.read(file.io,
163+
bytes_per_sample * signal.samples_per_record))
161164
tals_for_record = TimestampedAnnotationList[]
162165
while !eof(io_for_record) && Base.peek(io_for_record) != 0x00
163166
push!(tals_for_record, read_tal(io_for_record))
@@ -172,7 +175,8 @@ function read_tal(io::IO)
172175
timestamp = split(String(bytes), '\x15'; keepempty=false)
173176
onset_in_seconds = flipsign(parse(Float64, timestamp[1]), sign)
174177
duration_in_seconds = length(timestamp) == 2 ? parse(Float64, timestamp[2]) : nothing
175-
annotations = convert(Vector{String}, split(String(readuntil(io, 0x00)), '\x14'; keepempty=true))
178+
annotations = convert(Vector{String},
179+
split(String(readuntil(io, 0x00)), '\x14'; keepempty=true))
176180
isempty(last(annotations)) && pop!(annotations)
177181
return TimestampedAnnotationList(onset_in_seconds, duration_in_seconds, annotations)
178182
end
@@ -182,6 +186,7 @@ function read_tal_onset_sign(io::IO)
182186
sign === 0x2b && return 1
183187
sign === 0x2d && return -1
184188
error("starting byte of a TAL must be '+' or '-'; found $sign")
189+
return nothing
185190
end
186191

187192
#####

src/types.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,8 @@ function AnnotationsSignal(records::Vector{Vector{TimestampedAnnotationList}})
161161
# but cleanly refactoring the package to do this would be a more involved
162162
# change than is meritted at the moment (since normal signals are already
163163
# treated similarly, i.e. the `SignalHeader` is overly trusted).
164-
max_bytes_per_record = maximum(sum(write_tal(IOBuffer(), tal) for tal in record) for record in records)
164+
max_bytes_per_record = maximum(sum(write_tal(IOBuffer(), tal) for tal in record)
165+
for record in records)
165166
return AnnotationsSignal(Int16(cld(max_bytes_per_record, 2)), records)
166167
end
167168

@@ -267,7 +268,7 @@ struct File{T<:SUPPORTED_SAMPLE_TYPES,I<:IO}
267268
signals::Vector{Union{Signal{T},AnnotationsSignal}}
268269
end
269270

270-
function Base.show(io::IO, edf::File{T}) where T
271+
function Base.show(io::IO, edf::File{T}) where {T}
271272
print(io, "EDF.File with ", length(edf.signals), ' ', 8 * sizeof(T),
272273
"-bit-encoded signals")
273274
return nothing

0 commit comments

Comments
 (0)