Commit ba19711
authored
fix(articlemeta): corrige memory leak por lru_cache em instância e robustez dos formatters journal/issue (#1424)
* refactor(journal/articlemeta_format): elimina lru_cache, melhora robustez e legibilidade
- Substitui @lru_cache por cache manual em _titles_in_database_medline_secs
para evitar memory leak (lru_cache em método de instância retém self
indefinidamente no cache do decorador)
- Renomeia _medline_titles para _titles_in_database_medline_secs para
consistência com o nome da property
- Renomeia _former_dict_journal_history para _format_journal_history_entry
(corrige typo e segue convenção _format_* da classe)
- Renomeia variável key_to_issn para key_to_value (nem todos os valores
são ISSNs)
- Adiciona guard clause 'journal_acron.upper() if journal_acron else None'
em v930 para evitar AttributeError quando journal_acron é None
- Refatora _format_publisher_info: substitui loop com break por .first()
para obter apenas o primeiro owner, eliminando iteração desnecessária
- Refatora _format_contact_address_info: substitui try/except genérico
por checagem explícita 'if address', removendo tratamento silencioso
de exceções
- Refatora _format_journal_history: inverte condicional para early return,
unifica blocos ADMITTED/INTERRUPTED duplicados em um único 'if in',
e garante que subfield_b é determinado por evento (não acumulado)
- Refatora _format_indexing_info: substitui duas list comprehensions
separadas por um único loop para classificar medline vs secs,
evitando dupla iteração sobre titles_in_db
- Refatora _format_collection_info: remove checagem redundante
'if collection' (já coberta pelo 'if self.scielo_journal.collection')
- Remove guard desnecessário 'if self.official' em _format_issn_list
(método só é chamado dentro de bloco que já verifica self.official)
- Adiciona TODO/docstring em _format_issn_type sinalizando possível
inversão na lógica de negócio (issn_print == issn_scielo retorna
'ONLIN', o que parece invertido)
- Corrige docstring typo 'Title Journalal' -> 'Title Journal'
- Remove comentários óbvios/redundantes (e.g. 'tem que ser objeto
datetime', 'Deixa preparado para tornar obsoleto')
- Normaliza trailing whitespace e vírgulas finais em dicts/listas
* refactor(issue/articlemeta_format): elimina lru_cache, corrige queryset e robustez
- Substitui @lru_cache por cache manual em medline_titles para evitar
memory leak (mesmo padrão aplicado no journal formatter)
- Substitui atributo self.article (queryset avaliado no __init__) por
property lazy self.article_qs que só executa a query quando acessado,
evitando query desnecessária quando o dado não é utilizado
- Corrige _format_article_info: usa self.article_qs (filtrado por
issue + journal) em vez de self.obj.article_set (sem filtro por
journal), garantindo contagem consistente com o queryset da classe
- Adiciona guard clause em _format_field_use_system para checar
journal_acron antes de chamar .upper(), e usa 'or empty string'
para volume/number None, evitando concatenação com None
- Refatora _format_issn_info com early return (guard clause) para
reduzir nível de indentação; adiciona placeholder v435 no
add_multiple_to_result para documentar que será preenchido por
_format_issn_with_type
- Adiciona guard 'if issns' antes de atribuir v435 em
_format_issn_with_type para evitar lista vazia no resultado
- Melhora select_related em _format_code_sections: inclui
'journal_toc' além de 'journal_toc__language'; adiciona guard
'if not journal_toc: continue' para pular registros sem relação
- Remove comentários redundantes (e.g. 'Path to base issue',
'Ordem de publicação', 'Só adiciona v/n se houver')
- Remove import não utilizado 'from functools import lru_cache'
- Corrige missing newline at end of file1 parent de9e01d commit ba19711
File tree
2 files changed
+169
-125
lines changed- issue/formats
- journal/formats
2 files changed
+169
-125
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | 2 | | |
4 | 3 | | |
5 | 4 | | |
| |||
10 | 9 | | |
11 | 10 | | |
12 | 11 | | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
36 | 45 | | |
37 | 46 | | |
38 | 47 | | |
| |||
49 | 58 | | |
50 | 59 | | |
51 | 60 | | |
52 | | - | |
53 | 61 | | |
54 | | - | |
55 | | - | |
56 | | - | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
57 | 68 | | |
58 | | - | |
| 69 | + | |
59 | 70 | | |
60 | 71 | | |
61 | 72 | | |
| |||
85 | 96 | | |
86 | 97 | | |
87 | 98 | | |
88 | | - | |
89 | | - | |
90 | 99 | | |
91 | 100 | | |
92 | 101 | | |
| |||
100 | 109 | | |
101 | 110 | | |
102 | 111 | | |
103 | | - | |
104 | 112 | | |
105 | 113 | | |
106 | 114 | | |
| |||
214 | 222 | | |
215 | 223 | | |
216 | 224 | | |
217 | | - | |
218 | 225 | | |
219 | 226 | | |
220 | 227 | | |
| |||
252 | 259 | | |
253 | 260 | | |
254 | 261 | | |
255 | | - | |
256 | | - | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
257 | 268 | | |
258 | 269 | | |
259 | 270 | | |
| |||
278 | 289 | | |
279 | 290 | | |
280 | 291 | | |
281 | | - | |
282 | 292 | | |
283 | 293 | | |
284 | | - | |
285 | 294 | | |
286 | 295 | | |
287 | 296 | | |
| |||
308 | 317 | | |
309 | 318 | | |
310 | 319 | | |
311 | | - | |
312 | | - | |
313 | | - | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
314 | 323 | | |
315 | 324 | | |
316 | 325 | | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
325 | | - | |
326 | | - | |
327 | | - | |
328 | | - | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
329 | 347 | | |
330 | | - | |
331 | | - | |
332 | | - | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
333 | 351 | | |
334 | 352 | | |
335 | 353 | | |
| |||
346 | 364 | | |
347 | 365 | | |
348 | 366 | | |
349 | | - | |
| 367 | + | |
| 368 | + | |
350 | 369 | | |
351 | 370 | | |
352 | 371 | | |
| |||
355 | 374 | | |
356 | 375 | | |
357 | 376 | | |
358 | | - | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
359 | 380 | | |
| 381 | + | |
| 382 | + | |
360 | 383 | | |
361 | | - | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
362 | 389 | | |
363 | 390 | | |
364 | 391 | | |
| |||
379 | 406 | | |
380 | 407 | | |
381 | 408 | | |
382 | | - | |
| 409 | + | |
0 commit comments