Skip to content
This repository was archived by the owner on Jan 6, 2021. It is now read-only.

Commit 1fb60f2

Browse files
committed
Add finishing touches and documentation
1 parent b9724ce commit 1fb60f2

File tree

5 files changed

+1516
-1198
lines changed

5 files changed

+1516
-1198
lines changed

constants.py

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,24 @@
1-
# ## Imports
2-
import re # for regular expressions
3-
4-
# ## Constants
5-
6-
REGEX_ILLEGAL_CHARACTERS = re.compile(r"[<>:\"/\\|\?\*]")
7-
1+
"""General constants that are needed in most places"""
82

3+
# Hitsounds enum
94
HIT_SOUNDS = {
105
"Normal": 1,
116
"Whistle": 2,
127
"Finish": 4,
138
"Clap": 8
149
}
1510

16-
11+
# Samplesets list
1712
SAMPLESETS = [
1813
"Soft",
1914
"Normal",
2015
"Drum"
2116
]
2217

2318

24-
# For attributes that exist in both games but are named differently.
19+
# Dictionary for attributes that exist in both games, but are named differently
2520

26-
# Format: QuaverAttribute -> osuAttribute
21+
# quaverAttribute -> osuAttribute
2722

2823
RENAMES = {
2924

@@ -41,15 +36,15 @@
4136

4237
# For attributes that should be left the way they are.
4338

44-
# Format: QuaverAttribute -> osuAttribute
39+
# attribute -> default value
4540

4641
DEFAULT_VALUES = {
4742

4843
"general": {
4944
"AudioLeadIn": 0,
5045
"Countdown": 0,
5146
"StackLeniency": 0.7,
52-
"Mode": 3,
47+
"Mode": 3, # mania
5348
"LetterboxInBreaks": 0,
5449
"SpecialStyle": 0,
5550
"WidescreenStoryboard": 0
@@ -66,7 +61,7 @@
6661
},
6762

6863
"metadata": {
69-
"BeatmapID": 0,
64+
"BeatmapID": 0, # unsubmitted
7065
"BeatmapSetID": -1
7166
},
7267

@@ -78,43 +73,71 @@
7873

7974
}
8075

76+
# Attributes of the command line arguments
77+
78+
# No documentation is really needed because there's already a description
79+
# for every argument
8180

8281
COMMAND_LINE_ARGS = {
8382

8483
"input": {
84+
"shortFlag": "-i",
85+
"longFlag": "--input",
86+
"required": False,
87+
"description": "Path of the input folder, defaults to ./input",
8588
"default": "input",
86-
"format": [str]
89+
"type": str
8790
},
8891

8992
"output": {
93+
"shortFlag": "-o",
94+
"longFlag": "--output",
95+
"required": False,
96+
"description": "Path of the output folder, defaults to ./output",
9097
"default": "output",
91-
"format": str
98+
"type": str
9299
},
93100

94101
"overall_difficulty": {
102+
"shortFlag": "-od",
103+
"longFlag": "--overall-difficulty",
104+
"required": False,
105+
"description": "Overall difficulty as an integer between 0 and 10, defaults to 8",
95106
"default": 8,
96-
"format": float,
107+
"type": float,
97108
"min": 0,
98109
"max": 10
99110
},
100111

101112
"hp_drain": {
113+
"shortFlag": "-hp",
114+
"longFlag": "--hp-drain",
115+
"required": False,
116+
"description": "HP drain as an integer between 0 and 10, defaults to 8",
102117
"default": 8,
103-
"format": float,
118+
"type": float,
104119
"min": 0,
105120
"max": 10
106121
},
107122

108123
"hitsound_volume": {
124+
"shortFlag": "-hv",
125+
"longFlag": "--hitsound-volume",
126+
"required": False,
127+
"description": "Hitsound volume as an integer between 0 and 100, defaults to 20",
109128
"default": 20,
110-
"format": int,
129+
"type": int,
111130
"min": 0,
112131
"max": 100
113132
},
114133

115134
"sampleset": {
135+
"shortFlag": "-hs",
136+
"longFlag": "--sampleset",
137+
"required": False,
138+
"description": "Hitsound sample set as either 'Soft', 'Normal' or 'Drum', defaults to Soft",
116139
"default": "Soft",
117-
"format": str,
140+
"type": str,
118141
"list": SAMPLESETS
119142
}
120143

docs/constants.html

Lines changed: 255 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,255 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="content-type" content="text/html;charset=utf-8">
5+
<title>constants.py</title>
6+
<link rel="stylesheet" href="pycco.css">
7+
</head>
8+
<body>
9+
<div id='container'>
10+
<div id="background"></div>
11+
<div class='section'>
12+
<div class='docs'><h1>constants.py</h1></div>
13+
</div>
14+
<div class='clearall'>
15+
<div class='section' id='section-0'>
16+
<div class='docs'>
17+
<div class='octowrap'>
18+
<a class='octothorpe' href='#section-0'>#</a>
19+
</div>
20+
<p>General constants that are needed in most places</p>
21+
</div>
22+
<div class='code'>
23+
<div class="highlight"><pre><span></span></pre></div>
24+
</div>
25+
</div>
26+
<div class='clearall'></div>
27+
<div class='section' id='section-1'>
28+
<div class='docs'>
29+
<div class='octowrap'>
30+
<a class='octothorpe' href='#section-1'>#</a>
31+
</div>
32+
<p>Hitsounds enum</p>
33+
</div>
34+
<div class='code'>
35+
<div class="highlight"><pre><span class="n">HIT_SOUNDS</span> <span class="o">=</span> <span class="p">{</span>
36+
<span class="s2">&quot;Normal&quot;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
37+
<span class="s2">&quot;Whistle&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
38+
<span class="s2">&quot;Finish&quot;</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
39+
<span class="s2">&quot;Clap&quot;</span><span class="p">:</span> <span class="mi">8</span>
40+
<span class="p">}</span></pre></div>
41+
</div>
42+
</div>
43+
<div class='clearall'></div>
44+
<div class='section' id='section-2'>
45+
<div class='docs'>
46+
<div class='octowrap'>
47+
<a class='octothorpe' href='#section-2'>#</a>
48+
</div>
49+
<p>Samplesets list</p>
50+
</div>
51+
<div class='code'>
52+
<div class="highlight"><pre><span class="n">SAMPLESETS</span> <span class="o">=</span> <span class="p">[</span>
53+
<span class="s2">&quot;Soft&quot;</span><span class="p">,</span>
54+
<span class="s2">&quot;Normal&quot;</span><span class="p">,</span>
55+
<span class="s2">&quot;Drum&quot;</span>
56+
<span class="p">]</span></pre></div>
57+
</div>
58+
</div>
59+
<div class='clearall'></div>
60+
<div class='section' id='section-3'>
61+
<div class='docs'>
62+
<div class='octowrap'>
63+
<a class='octothorpe' href='#section-3'>#</a>
64+
</div>
65+
<p>Dictionary for attributes that exist in both games, but are named differently</p>
66+
</div>
67+
<div class='code'>
68+
<div class="highlight"><pre></pre></div>
69+
</div>
70+
</div>
71+
<div class='clearall'></div>
72+
<div class='section' id='section-4'>
73+
<div class='docs'>
74+
<div class='octowrap'>
75+
<a class='octothorpe' href='#section-4'>#</a>
76+
</div>
77+
<p>quaverAttribute -&gt; osuAttribute</p>
78+
</div>
79+
<div class='code'>
80+
<div class="highlight"><pre><span class="n">RENAMES</span> <span class="o">=</span> <span class="p">{</span>
81+
82+
<span class="s2">&quot;general&quot;</span><span class="p">:</span> <span class="p">{</span>
83+
<span class="s2">&quot;AudioFile&quot;</span><span class="p">:</span> <span class="s2">&quot;AudioFilename&quot;</span><span class="p">,</span>
84+
<span class="s2">&quot;SongPreviewTime&quot;</span><span class="p">:</span> <span class="s2">&quot;PreviewTime&quot;</span>
85+
<span class="p">},</span>
86+
87+
<span class="s2">&quot;metadata&quot;</span><span class="p">:</span> <span class="p">{</span>
88+
<span class="s2">&quot;DifficultyName&quot;</span><span class="p">:</span> <span class="s2">&quot;Version&quot;</span><span class="p">,</span>
89+
<span class="s2">&quot;SongPreviewTime&quot;</span><span class="p">:</span> <span class="s2">&quot;PreviewTime&quot;</span>
90+
<span class="p">},</span>
91+
92+
<span class="p">}</span></pre></div>
93+
</div>
94+
</div>
95+
<div class='clearall'></div>
96+
<div class='section' id='section-5'>
97+
<div class='docs'>
98+
<div class='octowrap'>
99+
<a class='octothorpe' href='#section-5'>#</a>
100+
</div>
101+
<p>For attributes that should be left the way they are.</p>
102+
</div>
103+
<div class='code'>
104+
<div class="highlight"><pre></pre></div>
105+
</div>
106+
</div>
107+
<div class='clearall'></div>
108+
<div class='section' id='section-6'>
109+
<div class='docs'>
110+
<div class='octowrap'>
111+
<a class='octothorpe' href='#section-6'>#</a>
112+
</div>
113+
<p>attribute -&gt; default value</p>
114+
</div>
115+
<div class='code'>
116+
<div class="highlight"><pre><span class="n">DEFAULT_VALUES</span> <span class="o">=</span> <span class="p">{</span>
117+
118+
<span class="s2">&quot;general&quot;</span><span class="p">:</span> <span class="p">{</span>
119+
<span class="s2">&quot;AudioLeadIn&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
120+
<span class="s2">&quot;Countdown&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
121+
<span class="s2">&quot;StackLeniency&quot;</span><span class="p">:</span> <span class="mf">0.7</span><span class="p">,</span>
122+
<span class="s2">&quot;Mode&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="c1"># mania</span>
123+
<span class="s2">&quot;LetterboxInBreaks&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
124+
<span class="s2">&quot;SpecialStyle&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
125+
<span class="s2">&quot;WidescreenStoryboard&quot;</span><span class="p">:</span> <span class="mi">0</span>
126+
<span class="p">},</span>
127+
128+
<span class="s2">&quot;editor&quot;</span><span class="p">:</span> <span class="p">{</span></pre></div>
129+
</div>
130+
</div>
131+
<div class='clearall'></div>
132+
<div class='section' id='section-7'>
133+
<div class='docs'>
134+
<div class='octowrap'>
135+
<a class='octothorpe' href='#section-7'>#</a>
136+
</div>
137+
<p>If bookmarks were to be set to None,
138+
it would print out &ldquo;None&rdquo; when casted to a string</p>
139+
</div>
140+
<div class='code'>
141+
<div class="highlight"><pre> <span class="s2">&quot;Bookmarks&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
142+
<span class="s2">&quot;DistanceSpacing&quot;</span><span class="p">:</span> <span class="mf">1.5</span><span class="p">,</span>
143+
<span class="s2">&quot;BeatDivisor&quot;</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
144+
<span class="s2">&quot;GridSize&quot;</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
145+
<span class="s2">&quot;TimelineZoom&quot;</span><span class="p">:</span> <span class="mf">2.5</span>
146+
<span class="p">},</span>
147+
148+
<span class="s2">&quot;metadata&quot;</span><span class="p">:</span> <span class="p">{</span>
149+
<span class="s2">&quot;BeatmapID&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># unsubmitted</span>
150+
<span class="s2">&quot;BeatmapSetID&quot;</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span>
151+
<span class="p">},</span>
152+
153+
<span class="s2">&quot;difficulty&quot;</span><span class="p">:</span> <span class="p">{</span>
154+
<span class="s2">&quot;ApproachRate&quot;</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span>
155+
<span class="s2">&quot;SliderMultiplier&quot;</span><span class="p">:</span> <span class="mf">1.4</span><span class="p">,</span>
156+
<span class="s2">&quot;SliderTickRate&quot;</span><span class="p">:</span> <span class="mi">1</span>
157+
<span class="p">},</span>
158+
159+
<span class="p">}</span></pre></div>
160+
</div>
161+
</div>
162+
<div class='clearall'></div>
163+
<div class='section' id='section-8'>
164+
<div class='docs'>
165+
<div class='octowrap'>
166+
<a class='octothorpe' href='#section-8'>#</a>
167+
</div>
168+
<p>Attributes of the command line arguments</p>
169+
</div>
170+
<div class='code'>
171+
<div class="highlight"><pre></pre></div>
172+
</div>
173+
</div>
174+
<div class='clearall'></div>
175+
<div class='section' id='section-9'>
176+
<div class='docs'>
177+
<div class='octowrap'>
178+
<a class='octothorpe' href='#section-9'>#</a>
179+
</div>
180+
<p>No documentation is really needed because there&rsquo;s already a description
181+
for every argument</p>
182+
</div>
183+
<div class='code'>
184+
<div class="highlight"><pre><span class="n">COMMAND_LINE_ARGS</span> <span class="o">=</span> <span class="p">{</span>
185+
186+
<span class="s2">&quot;input&quot;</span><span class="p">:</span> <span class="p">{</span>
187+
<span class="s2">&quot;shortFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;-i&quot;</span><span class="p">,</span>
188+
<span class="s2">&quot;longFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;--input&quot;</span><span class="p">,</span>
189+
<span class="s2">&quot;required&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
190+
<span class="s2">&quot;description&quot;</span><span class="p">:</span> <span class="s2">&quot;Path of the input folder, defaults to ./input&quot;</span><span class="p">,</span>
191+
<span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="s2">&quot;input&quot;</span><span class="p">,</span>
192+
<span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="nb">str</span>
193+
<span class="p">},</span>
194+
195+
<span class="s2">&quot;output&quot;</span><span class="p">:</span> <span class="p">{</span>
196+
<span class="s2">&quot;shortFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;-o&quot;</span><span class="p">,</span>
197+
<span class="s2">&quot;longFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;--output&quot;</span><span class="p">,</span>
198+
<span class="s2">&quot;required&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
199+
<span class="s2">&quot;description&quot;</span><span class="p">:</span> <span class="s2">&quot;Path of the output folder, defaults to ./output&quot;</span><span class="p">,</span>
200+
<span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="s2">&quot;output&quot;</span><span class="p">,</span>
201+
<span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="nb">str</span>
202+
<span class="p">},</span>
203+
204+
<span class="s2">&quot;overall_difficulty&quot;</span><span class="p">:</span> <span class="p">{</span>
205+
<span class="s2">&quot;shortFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;-od&quot;</span><span class="p">,</span>
206+
<span class="s2">&quot;longFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;--overall-difficulty&quot;</span><span class="p">,</span>
207+
<span class="s2">&quot;required&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
208+
<span class="s2">&quot;description&quot;</span><span class="p">:</span> <span class="s2">&quot;Overall difficulty as an integer between 0 and 10, defaults to 8&quot;</span><span class="p">,</span>
209+
<span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="mi">8</span><span class="p">,</span>
210+
<span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
211+
<span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
212+
<span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="mi">10</span>
213+
<span class="p">},</span>
214+
215+
<span class="s2">&quot;hp_drain&quot;</span><span class="p">:</span> <span class="p">{</span>
216+
<span class="s2">&quot;shortFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;-hp&quot;</span><span class="p">,</span>
217+
<span class="s2">&quot;longFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;--hp-drain&quot;</span><span class="p">,</span>
218+
<span class="s2">&quot;required&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
219+
<span class="s2">&quot;description&quot;</span><span class="p">:</span> <span class="s2">&quot;HP drain as an integer between 0 and 10, defaults to 8&quot;</span><span class="p">,</span>
220+
<span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="mi">8</span><span class="p">,</span>
221+
<span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
222+
<span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
223+
<span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="mi">10</span>
224+
<span class="p">},</span>
225+
226+
<span class="s2">&quot;hitsound_volume&quot;</span><span class="p">:</span> <span class="p">{</span>
227+
<span class="s2">&quot;shortFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;-hv&quot;</span><span class="p">,</span>
228+
<span class="s2">&quot;longFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;--hitsound-volume&quot;</span><span class="p">,</span>
229+
<span class="s2">&quot;required&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
230+
<span class="s2">&quot;description&quot;</span><span class="p">:</span> <span class="s2">&quot;Hitsound volume as an integer between 0 and 100, defaults to 20&quot;</span><span class="p">,</span>
231+
<span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="mi">20</span><span class="p">,</span>
232+
<span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
233+
<span class="s2">&quot;min&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
234+
<span class="s2">&quot;max&quot;</span><span class="p">:</span> <span class="mi">100</span>
235+
<span class="p">},</span>
236+
237+
<span class="s2">&quot;sampleset&quot;</span><span class="p">:</span> <span class="p">{</span>
238+
<span class="s2">&quot;shortFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;-hs&quot;</span><span class="p">,</span>
239+
<span class="s2">&quot;longFlag&quot;</span><span class="p">:</span> <span class="s2">&quot;--sampleset&quot;</span><span class="p">,</span>
240+
<span class="s2">&quot;required&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
241+
<span class="s2">&quot;description&quot;</span><span class="p">:</span> <span class="s2">&quot;Hitsound sample set as either &#39;Soft&#39;, &#39;Normal&#39; or &#39;Drum&#39;, defaults to Soft&quot;</span><span class="p">,</span>
242+
<span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="s2">&quot;Soft&quot;</span><span class="p">,</span>
243+
<span class="s2">&quot;type&quot;</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
244+
<span class="s2">&quot;list&quot;</span><span class="p">:</span> <span class="n">SAMPLESETS</span>
245+
<span class="p">}</span>
246+
247+
248+
<span class="p">}</span>
249+
250+
</pre></div>
251+
</div>
252+
</div>
253+
<div class='clearall'></div>
254+
</div>
255+
</body>

0 commit comments

Comments
 (0)