Conditions | 11 |
Total Lines | 125 |
Code Lines | 65 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
Complex classes like pandoc_latex_absolute_image._main.latex_code() often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
1 | #!/usr/bin/env python |
||
124 | def latex_code(definition: dict[str, Any], keys: dict[str, str]) -> str: |
||
125 | """ |
||
126 | Get the latex code. |
||
127 | |||
128 | Parameters |
||
129 | ---------- |
||
130 | definition |
||
131 | The defition |
||
132 | keys |
||
133 | Key mapping |
||
134 | |||
135 | Returns |
||
136 | ------- |
||
137 | str |
||
138 | The latex code. |
||
139 | """ |
||
140 | path = definition.get(keys["image"]) |
||
141 | path_odd = definition.get(keys["image-odd"], path) |
||
142 | path_even = definition.get(keys["image-even"], path) |
||
143 | |||
144 | reset = definition.get(keys["reset"]) |
||
145 | reset_odd = definition.get(keys["reset-odd"], reset) |
||
146 | reset_even = definition.get(keys["reset-even"], reset) |
||
147 | |||
148 | width = get_latex_size(definition.get(keys["width"])) |
||
149 | width_odd = get_latex_size(definition.get(keys["width-odd"]), width) |
||
150 | width_even = get_latex_size(definition.get(keys["width-even"]), width) |
||
151 | |||
152 | height = get_latex_size(definition.get(keys["height"])) |
||
153 | height_odd = get_latex_size(definition.get(keys["height-odd"]), height) |
||
154 | height_even = get_latex_size(definition.get(keys["height-even"]), height) |
||
155 | |||
156 | anchor = get_anchor(definition.get(keys["anchor"])) |
||
157 | anchor_odd = get_anchor(definition.get(keys["anchor-odd"]), anchor) |
||
158 | anchor_even = get_anchor(definition.get(keys["anchor-even"]), anchor) |
||
159 | |||
160 | opacity = get_opacity(definition.get(keys["opacity"])) |
||
161 | opacity_odd = get_opacity(definition.get(keys["opacity-odd"]), opacity) |
||
162 | opacity_even = get_opacity(definition.get(keys["opacity-even"]), opacity) |
||
163 | |||
164 | x_coord = get_latex_size( |
||
165 | definition.get(keys["x-coord"], "0cm"), |
||
166 | "0cm", |
||
167 | ) |
||
168 | x_coord_odd = get_latex_size( |
||
169 | definition.get(keys["x-coord-odd"], x_coord), |
||
170 | x_coord, |
||
171 | ) |
||
172 | x_coord_even = get_latex_size( |
||
173 | definition.get(keys["x-coord-even"], x_coord), x_coord |
||
174 | ) |
||
175 | |||
176 | y_coord = get_latex_size( |
||
177 | definition.get(keys["y-coord"], "0cm"), |
||
178 | "0cm", |
||
179 | ) |
||
180 | y_coord_odd = get_latex_size(definition.get(keys["y-coord-odd"], y_coord), y_coord) |
||
181 | y_coord_even = get_latex_size( |
||
182 | definition.get(keys["y-coord-even"], y_coord), |
||
183 | y_coord, |
||
184 | ) |
||
185 | |||
186 | if reset_odd: |
||
187 | picture_odd = """ |
||
188 | """ |
||
189 | else: |
||
190 | options = [] |
||
191 | if width_odd: |
||
192 | options.append(f"width={width_odd}") |
||
193 | if height_odd: |
||
194 | options.append(f"height={height_odd}") |
||
195 | options = ",".join(options) |
||
196 | |||
197 | node_options = [] |
||
198 | if anchor_odd: |
||
199 | node_options.append(f"anchor={anchor_odd}") |
||
200 | if opacity_odd: |
||
201 | node_options.append(f"opacity={opacity_odd}") |
||
202 | node_options = ",".join(node_options) |
||
203 | |||
204 | picture_odd = f""" |
||
205 | \\begin{{tikzpicture}}[ |
||
206 | overlay, % Do our drawing on an overlay instead of inline |
||
207 | remember picture, % Allow us to share coordinates with other drawings |
||
208 | shift=(current page.north west), % Set the top (north) left (west) as the origin |
||
209 | yscale=-1, % Switch the y-axis to increase down the page |
||
210 | inner sep=0, % Remove inner separator |
||
211 | ] |
||
212 | \\node[{node_options}] at ({x_coord_odd}, {y_coord_odd}) |
||
213 | {{\\includegraphics[{options}]{{{path_odd}}}}}; |
||
214 | \\end{{tikzpicture}} |
||
215 | """ |
||
216 | |||
217 | if reset_even: |
||
218 | picture_even = """ |
||
219 | """ |
||
220 | else: |
||
221 | options = [] |
||
222 | if width_even: |
||
223 | options.append(f"width={width_even}") |
||
224 | if height_odd: |
||
225 | options.append(f"height={height_even}") |
||
226 | options = ",".join(options) |
||
227 | |||
228 | node_options = [] |
||
229 | if anchor_even: |
||
230 | node_options.append(f"anchor={anchor_even}") |
||
231 | if opacity_even: |
||
232 | node_options.append(f"opacity={opacity_even}") |
||
233 | node_options = ",".join(node_options) |
||
234 | |||
235 | picture_even = f""" |
||
236 | \\begin{{tikzpicture}}[ |
||
237 | overlay, % Do our drawing on an overlay instead of inline |
||
238 | remember picture, % Allow us to share coordinates with other drawings |
||
239 | shift=(current page.north west), % Set the top (north) left (west) as the origin |
||
240 | yscale=-1, % Switch the y-axis to increase down the page |
||
241 | inner sep=0, % Remove inner separator |
||
242 | ] |
||
243 | \\node[{node_options}] at ({x_coord_even}, {y_coord_even}) |
||
244 | {{\\includegraphics[{options}]{{{path_even}}}}}; |
||
245 | \\end{{tikzpicture}} |
||
246 | """ |
||
247 | |||
248 | return f""" |
||
249 | \\renewcommand\\PandocLaTeXAbsoluteImage{{% |
||
473 |