1
0
mirror of synced 2024-11-30 15:54:27 +01:00
Commit Graph

296 Commits

Author SHA1 Message Date
Viv
5229db4aab
Make project mypy-compliant (and add mypy check to test suite) (#58)
This PR adopts static type hints as per `mypy` recommendations. This
will hopefully clean up the code a little and squash a few type-related
bugs.

Additionally, this will hopefully open up the door to compiling the
project using `mypyc`, which may score us some performance gains without
needing to rewrite the project in an entirely new language.
2023-07-30 16:50:41 -04:00
Viv
d99c7f5984
Convert TJA/Fumen classes into dataclasses (#57)
This branch was originally used to test out Pydantic. However, after
some profiling, I came to the conclusion that runtime type checking is
overkill for a project like this. So, instead, I'm sticking with static
typing via dataclasses.

Fixes #56.
2023-07-30 12:56:06 -04:00
Viv
03c8892243 README.md: Fix table row for A, B notes 2023-07-27 18:56:16 -04:00
Viv
4a8c6d8fb4 types.py: Sped up LUT parsing with iteration 2023-07-27 18:53:58 -04:00
Viv
e126494496 README.md: Restructure 'notes' part of table 2023-07-27 15:16:09 -04:00
Viv
c0442f3721
Fix behavior for the #LEVELHOLD command (#54)
Previously, I had translated the existing levelhold behavior in
WHMHammer's tja parsing code, assuming that it would produce the correct
behavior for fumen charts. However, that is not the case -- the behavior
is completely wrong.

So, this PR takes out all the old `flag_levelhold` behavior and instead
properly sets the `branch_info` bytes whenever #LEVELHOLD is present on
a branch.

This PR also prepares `shoto9.tja` for further testing, but I'm leaving
that for later...

Fixes #52.
2023-07-27 15:02:19 -04:00
Viv
59046c22ec Add remaining docstrings/comments 2023-07-27 13:16:44 -04:00
Viv
740ccbcd31 Fix linting issues 2023-07-26 10:17:28 -04:00
Viv
7aead6f8ef parsers.py: Simplify convoluted P1 copying logic 2023-07-25 23:30:16 -04:00
Viv
6ea74ae58b parsers.py: Simplify BPM/OFFSET logic 2023-07-25 23:21:20 -04:00
Viv
3cb25c23c7 parsers.py: Rename current_course_cached to _basename 2023-07-25 23:09:49 -04:00
Viv
24b5828833 parsers.py: Simplify if/elses in split_tja_lines_into_course()
Some highlights:

- Strip comments ahead of time
- _Only_ parse #START in split_tja_lines_into_course()
- Leave all other parsing to parse_tja_course_data()

This makes the function behavior line up with what the docstring suggests, and removes some convoluted parsing in split_tja_lines_into_course().
2023-07-25 23:08:18 -04:00
Viv
fc1b0d1bbc Start adding docstrings and fixing comments 2023-07-25 21:50:12 -04:00
Viv
09a293e59f types.py: Simplify __repr__ using inheritance 2023-07-25 19:20:10 -04:00
Viv
ec72398abe Simplify #SECTION/#BRANCHSTART logic
Previous code was unnecessarily convoluted.
2023-07-25 19:11:28 -04:00
Viv
f088e95e02 converters.py: Move computation into MeasureFumen class 2023-07-25 18:53:02 -04:00
Viv
79cca3d75e README.md: Try adding a Features section 2023-07-24 22:58:22 -04:00
Viv
7baa5ea859 README.md: Improve table spacing for mobile 2023-07-24 22:47:46 -04:00
Viv
d33562fef7 README.md: Update tja2bin crash commands 2023-07-24 17:33:24 -04:00
Viv
86f394e8ca README.md: Update sim-specific wording 2023-07-24 17:28:04 -04:00
Viv
5ca4f080d3 README.md: Clarify #LEVELHOLD status 2023-07-24 17:22:14 -04:00
Viv
a09bfb87d4 Add test for 2P commands 2023-07-24 16:55:52 -04:00
Viv
6eb3676343 Add double Kusudama test 2023-07-24 16:46:21 -04:00
Viv
276bd0b70c Add semi-support for sim-specific notes 2023-07-24 16:28:49 -04:00
Viv
f1cd73ebb9 README.md: Add table for file formats 2023-07-24 16:07:38 -04:00
Viv
45535d6fb1 README.md: Reformat tables using PyCharm 2023-07-24 16:00:04 -04:00
Viv
a4c9fb2b18 Add support for A/B notes (hands) 2023-07-24 15:57:58 -04:00
Viv
4f269630a5 Fix note.type -> note.note_type 2023-07-24 15:50:42 -04:00
Viv
9f71a801ce
Update README.md 2023-07-24 09:21:23 -04:00
Viv
e848fc9499
README.md: Make emoji platform-agnostic 2023-07-24 01:02:53 +00:00
Viv
e799e35629
test_conversion.py: Fix Pylint warnings 2023-07-24 01:00:15 +00:00
Viv
e6cf84758c
.vscode: Add files generated by Codespaces 2023-07-24 00:43:05 +00:00
Viv
cee3819efa testing/: Add test case for missing balloons 2023-07-23 12:15:05 -04:00
Viv
a979b4104a testing/: Add test case for missing balloons 2023-07-23 11:24:18 -04:00
Viv
9501058b38 converters.py: Catch errors when missing balloons 2023-07-23 11:23:35 -04:00
Viv
ca9b0d0332 testing/: Move convert() into conftest.py 2023-07-23 10:20:28 -04:00
Viv
9a24b90618 Add new test for checking dummy TJA errors 2023-07-23 10:11:42 -04:00
Viv
907ea43f16
Update README.md 2023-07-23 09:16:11 -04:00
Viv
3ae4bcc310
README.md: Play with <br> 2023-07-23 09:15:41 -04:00
Viv
ee7a3ae3cf
README.md: Remove ? from legend 2023-07-23 09:14:37 -04:00
Viv
b965633a73
README.md: Split tables into two 2023-07-23 09:11:10 -04:00
Viv
54d0ce402b
README.md: Rearrange table and fix command typos 2023-07-23 08:42:55 -04:00
Viv
eaa824cacf
README.md: Fix issues 2023-07-23 08:31:09 -04:00
Viv
2ca5406cdc
README.md: Shorten tagline 2023-07-22 21:05:26 -04:00
Viv
f4d5a52e5c
README.md: Style Note: paragraph 2023-07-22 21:03:18 -04:00
Viv
e1d562f5ef
README.md: Restructure sections, add badges, add command support
Fixes #43.
2023-07-22 20:57:51 -04:00
Viv
5e313a3549
README.md: Fix logo colors 2023-07-22 18:23:57 -04:00
Viv
9c31f41066
README.md: Add newline 2023-07-22 10:44:26 -04:00
Viv
56df81b59b
README.md: Add logo, divider, smaller headers 2023-07-22 10:41:14 -04:00
Viv
60a9e249cd parsers.py: Rename read_fumen function 2023-07-21 23:18:09 -04:00