pub-analyzer 0.3.0__py3-none-any.whl → 0.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pub-analyzer might be problematic. Click here for more details.
- pub_analyzer/css/main.tcss +19 -13
- pub_analyzer/internal/templates/author/author_summary.typ +89 -74
- pub_analyzer/internal/templates/author/report.typ +12 -0
- pub_analyzer/internal/templates/author/sources.typ +1 -1
- pub_analyzer/internal/templates/author/works.typ +116 -29
- pub_analyzer/internal/templates/author/works_extended.typ +1 -2
- pub_analyzer/main.py +5 -1
- {pub_analyzer-0.3.0.dist-info → pub_analyzer-0.4.0.dist-info}/METADATA +5 -5
- {pub_analyzer-0.3.0.dist-info → pub_analyzer-0.4.0.dist-info}/RECORD +12 -12
- {pub_analyzer-0.3.0.dist-info → pub_analyzer-0.4.0.dist-info}/LICENSE +0 -0
- {pub_analyzer-0.3.0.dist-info → pub_analyzer-0.4.0.dist-info}/WHEEL +0 -0
- {pub_analyzer-0.3.0.dist-info → pub_analyzer-0.4.0.dist-info}/entry_points.txt +0 -0
pub_analyzer/css/main.tcss
CHANGED
|
@@ -19,20 +19,26 @@ Body {
|
|
|
19
19
|
Footer {
|
|
20
20
|
dock: bottom;
|
|
21
21
|
background: $primary-color;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
Footer > .footer--highlight {
|
|
25
|
-
background: $primary-color-accent;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
Footer > .footer--highlight-key {
|
|
29
|
-
background: $primary-color-highlight;
|
|
30
|
-
text-style: bold;
|
|
31
|
-
}
|
|
32
22
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
23
|
+
FooterKey {
|
|
24
|
+
background: $primary-color;
|
|
25
|
+
color: white;
|
|
26
|
+
|
|
27
|
+
.footer-key--key {
|
|
28
|
+
text-style: bold;
|
|
29
|
+
color: white;
|
|
30
|
+
background: $primary-color-accent;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&:hover {
|
|
34
|
+
background: $primary-color-highlight;
|
|
35
|
+
color: white;
|
|
36
|
+
text-style: bold;
|
|
37
|
+
.footer-key--key {
|
|
38
|
+
background: $primary-color-accent;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
36
42
|
}
|
|
37
43
|
|
|
38
44
|
LoadingIndicator {
|
|
@@ -1,97 +1,112 @@
|
|
|
1
1
|
// Author Summary
|
|
2
2
|
= Author.
|
|
3
3
|
|
|
4
|
+
#let summary-card(title: "Title", body) = {
|
|
5
|
+
return block(
|
|
6
|
+
width: 100%,
|
|
7
|
+
height: 150pt,
|
|
8
|
+
fill: rgb("e5e7eb"),
|
|
9
|
+
stroke: 1pt,
|
|
10
|
+
radius: 2pt,
|
|
11
|
+
)[
|
|
12
|
+
#v(20pt)
|
|
13
|
+
#align(center)[#text(size: 12pt)[#title]]
|
|
14
|
+
#v(5pt)
|
|
15
|
+
#block(width: 100%, inset: (x: 20pt))[#body]
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
|
|
4
19
|
// Cards
|
|
5
20
|
#grid(
|
|
6
21
|
columns: (1fr, 1fr, 1fr),
|
|
7
22
|
column-gutter: 15pt,
|
|
8
23
|
[
|
|
9
|
-
//
|
|
10
|
-
#
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
radius: 2pt,
|
|
16
|
-
[#linebreak()
|
|
17
|
-
#grid(
|
|
18
|
-
columns: 1fr,
|
|
19
|
-
row-gutter: (15pt, 12pt),
|
|
20
|
-
|
|
21
|
-
// Card Title
|
|
22
|
-
[#align(center)[#text(size: 12pt)[Last institution:]]],
|
|
24
|
+
// Last institution.
|
|
25
|
+
#summary-card(title:"Last institution:")[
|
|
26
|
+
{% if report.author.last_known_institutions%}
|
|
27
|
+
{% set last_known_institution = report.author.last_known_institutions[0] %}
|
|
28
|
+
#grid(
|
|
29
|
+
rows: auto, row-gutter: 10pt,
|
|
23
30
|
|
|
24
|
-
|
|
25
|
-
{
|
|
26
|
-
{
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
{% endif %}
|
|
31
|
-
)]
|
|
32
|
-
)
|
|
31
|
+
[*Name:* {{ last_known_institution.display_name }}],
|
|
32
|
+
[*Country:* {{ last_known_institution.country_code }}],
|
|
33
|
+
[*Type:* {{ last_known_institution.type.value|capitalize }}],
|
|
34
|
+
)
|
|
35
|
+
{% endif %}
|
|
36
|
+
]
|
|
33
37
|
],
|
|
34
38
|
[
|
|
35
|
-
//
|
|
36
|
-
#
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
fill: rgb("e5e7eb"),
|
|
40
|
-
stroke: 1pt,
|
|
41
|
-
radius: 2pt,
|
|
42
|
-
[#linebreak()
|
|
43
|
-
#grid(
|
|
44
|
-
columns: 1fr,
|
|
45
|
-
row-gutter: (15pt, 12pt),
|
|
46
|
-
|
|
47
|
-
// Card Title
|
|
48
|
-
[#align(center)[#text(size: 12pt)[Identifiers:]]],
|
|
49
|
-
|
|
50
|
-
// Card content
|
|
39
|
+
// Author identifiers.
|
|
40
|
+
#summary-card(title:"Identifiers:")[
|
|
41
|
+
#grid(
|
|
42
|
+
rows: auto, row-gutter: 10pt,
|
|
51
43
|
{% for key, value in report.author.ids.model_dump().items() %}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
44
|
+
{% if value %}
|
|
45
|
+
[- #underline( [#link("{{ value }}")[{{ key }}]] )],
|
|
46
|
+
{% endif %}
|
|
55
47
|
{% endfor %}
|
|
56
|
-
)
|
|
57
|
-
|
|
48
|
+
)
|
|
49
|
+
]
|
|
58
50
|
],
|
|
59
51
|
[
|
|
60
|
-
//
|
|
61
|
-
#
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
fill: rgb("e5e7eb"),
|
|
65
|
-
stroke: 1pt,
|
|
66
|
-
radius: 2pt,
|
|
67
|
-
[#linebreak()
|
|
68
|
-
#grid(
|
|
69
|
-
columns: 1fr,
|
|
70
|
-
row-gutter: (15pt, 12pt),
|
|
71
|
-
|
|
72
|
-
// Card Title
|
|
73
|
-
[#align(center)[#text(size: 12pt)[Citation metrics:]]],
|
|
52
|
+
// Citation metrics.
|
|
53
|
+
#summary-card(title: "Citation metrics:")[
|
|
54
|
+
#grid(
|
|
55
|
+
rows: auto, row-gutter: 10pt,
|
|
74
56
|
|
|
75
|
-
|
|
76
|
-
[
|
|
77
|
-
[
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
)
|
|
57
|
+
[*2-year mean:* {{ report.author.summary_stats.two_yr_mean_citedness|round(5) }}],
|
|
58
|
+
[*h-index:* {{ report.author.summary_stats.h_index }}],
|
|
59
|
+
[*i10 index:* {{ report.author.summary_stats.i10_index }}]
|
|
60
|
+
)
|
|
61
|
+
]
|
|
81
62
|
],
|
|
82
63
|
)
|
|
83
64
|
|
|
65
|
+
#v(10pt)
|
|
84
66
|
#align(center, text(11pt)[_Counts by year_])
|
|
85
|
-
#
|
|
86
|
-
columns: (1fr,
|
|
87
|
-
|
|
88
|
-
align: horizon,
|
|
89
|
-
// Headers
|
|
90
|
-
[*Year*], [*Works count*], [*Cited by count*],
|
|
67
|
+
#grid(
|
|
68
|
+
columns: (1fr, 1fr),
|
|
69
|
+
column-gutter: 15pt,
|
|
70
|
+
align: (auto, horizon),
|
|
91
71
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
72
|
+
[
|
|
73
|
+
#table(
|
|
74
|
+
columns: (1fr, 2fr, 2fr),
|
|
75
|
+
inset: 8pt,
|
|
76
|
+
align: horizon,
|
|
77
|
+
// Headers
|
|
78
|
+
[*Year*], [*Works count*], [*Cited by count*],
|
|
79
|
+
|
|
80
|
+
// Content
|
|
81
|
+
{% set max_year_count = 0 %}
|
|
82
|
+
{% for year_count in report.author.counts_by_year[:8] %}
|
|
83
|
+
[{{ year_count.year }}], [{{ year_count.works_count }}], [{{ year_count.cited_by_count }}],
|
|
84
|
+
{% set max_year_count = year_count %}
|
|
85
|
+
{% endfor %}
|
|
86
|
+
)
|
|
87
|
+
],
|
|
88
|
+
grid.cell(
|
|
89
|
+
inset: (x: 10pt, bottom: 10pt, top: 2.5pt),
|
|
90
|
+
stroke: 1pt
|
|
91
|
+
)[
|
|
92
|
+
#align(center, text(10pt)[Cites by year])
|
|
93
|
+
#v(5pt)
|
|
94
|
+
#canvas(length: 100%, {
|
|
95
|
+
plot.plot(
|
|
96
|
+
size: (0.90, 0.48),
|
|
97
|
+
axis-style: "scientific-auto",
|
|
98
|
+
plot-style: (stroke: (1pt + BLUE),),
|
|
99
|
+
x-min: auto, x-max: auto,
|
|
100
|
+
x-tick-step: 1, y-tick-step: auto,
|
|
101
|
+
x-label: none, y-label: none,
|
|
102
|
+
{
|
|
103
|
+
plot.add((
|
|
104
|
+
{% for year_count in report.author.counts_by_year[:8] %}
|
|
105
|
+
({{ year_count.year }}, {{ year_count.cited_by_count }}),
|
|
106
|
+
{% endfor %}
|
|
107
|
+
))
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
]
|
|
96
111
|
)
|
|
97
112
|
#pagebreak()
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
// This document was generated using Pub Analyzer.
|
|
2
2
|
// https://pub-analyzer.com
|
|
3
3
|
|
|
4
|
+
// Packages
|
|
5
|
+
#import "@preview/cetz:0.2.2": canvas, plot, chart, palette
|
|
6
|
+
|
|
7
|
+
// Colors
|
|
8
|
+
#let BLUE = rgb("#42a2f8")
|
|
9
|
+
#let GREEN = rgb("#82d452")
|
|
10
|
+
#let GRAY = rgb("#929292")
|
|
11
|
+
#let YELLOW = rgb("#f0bb40")
|
|
12
|
+
#let RED = rgb("#eb4025")
|
|
13
|
+
#let PURPLE = rgb("#c33375")
|
|
14
|
+
|
|
15
|
+
#let colors = (BLUE, GREEN, GRAY, YELLOW, RED, PURPLE)
|
|
4
16
|
|
|
5
17
|
// Page Layoput
|
|
6
18
|
#set page("us-letter")
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
// Content
|
|
12
12
|
{% for source in report.sources_summary.sources %}
|
|
13
|
-
[
|
|
13
|
+
[3.{{ loop.index }}. #label("source_{{ source.id.path.rpartition("/")[2] }}")],
|
|
14
14
|
[#underline([#link("{{ source.homepage_url }}")[#"{{ source.display_name }}"]])],
|
|
15
15
|
[{{ source.host_organization_name or "-" }}],
|
|
16
16
|
[{{source.type }}],
|
|
@@ -1,46 +1,133 @@
|
|
|
1
1
|
// Works
|
|
2
2
|
= Works.
|
|
3
3
|
|
|
4
|
-
#
|
|
4
|
+
#let works_metrics_card(title: "Title", graph, body) = {
|
|
5
|
+
grid(
|
|
6
|
+
rows: (18pt, 175pt, 60pt),
|
|
7
|
+
columns: 100%,
|
|
8
|
+
|
|
9
|
+
[
|
|
10
|
+
#block(width: 100%, height: 100%)[
|
|
11
|
+
#align(center + horizon)[#text(style: "italic")[#title]]
|
|
12
|
+
]
|
|
13
|
+
],
|
|
14
|
+
[
|
|
15
|
+
#block(width: 100%, height: 100%)[
|
|
16
|
+
#align(center + horizon)[#graph]
|
|
17
|
+
]
|
|
18
|
+
],
|
|
19
|
+
[
|
|
20
|
+
#block(width: 100%, height: 100%, inset: (x: 5pt, y: 10pt))[#body]
|
|
21
|
+
],
|
|
22
|
+
)
|
|
23
|
+
}
|
|
5
24
|
|
|
6
25
|
#grid(
|
|
7
26
|
columns: (1fr, 1fr, 1fr),
|
|
8
|
-
column-gutter:
|
|
27
|
+
column-gutter: 15pt,
|
|
9
28
|
[
|
|
10
|
-
#
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
29
|
+
#let graph = {
|
|
30
|
+
canvas(length: 35%, {
|
|
31
|
+
chart.piechart(
|
|
32
|
+
(
|
|
33
|
+
{{ report.citation_summary.type_a_count }}, // Type A
|
|
34
|
+
{{ report.citation_summary.type_b_count }} // Type B
|
|
35
|
+
),
|
|
36
|
+
radius: 1,
|
|
37
|
+
slice-style: (BLUE, GREEN),
|
|
38
|
+
outer-label: (content: "%", radius: 115%),
|
|
39
|
+
)
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
#works_metrics_card(title: "Citation metrics", graph)[
|
|
44
|
+
#grid(
|
|
45
|
+
rows: auto, row-gutter: 10pt,
|
|
46
|
+
columns: (1fr, 1fr),
|
|
47
|
+
|
|
48
|
+
grid.cell(colspan: 2)[
|
|
49
|
+
*Count:* {{ report.citation_summary.type_a_count + report.citation_summary.type_b_count }}
|
|
50
|
+
],
|
|
51
|
+
[#box(height: 7pt, width: 7pt, fill: BLUE) *Type A:* {{ report.citation_summary.type_a_count }}],
|
|
52
|
+
[#box(height: 7pt, width: 7pt, fill: GREEN) *Type B:* {{ report.citation_summary.type_b_count }}],
|
|
53
|
+
)
|
|
54
|
+
]
|
|
15
55
|
],
|
|
16
56
|
[
|
|
17
|
-
#
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
57
|
+
#let graph = {
|
|
58
|
+
canvas(length: 35%, {
|
|
59
|
+
chart.columnchart(
|
|
60
|
+
size: (2.45, 2.0),
|
|
61
|
+
y-grid: false,
|
|
62
|
+
bar-style: palette.new(
|
|
63
|
+
base: (stroke: none, fill: none),
|
|
64
|
+
colors: colors
|
|
65
|
+
),
|
|
66
|
+
(
|
|
67
|
+
{% for work_type in report.works_type_summary[:4] %}
|
|
68
|
+
("{{ work_type.type_name[:2]|capitalize }}", {{ work_type.count }}),
|
|
69
|
+
{% endfor %}
|
|
70
|
+
)
|
|
71
|
+
)
|
|
72
|
+
})
|
|
73
|
+
}
|
|
74
|
+
#works_metrics_card(title: "Work Type", graph)[
|
|
75
|
+
#grid(
|
|
76
|
+
rows: auto, row-gutter: 10pt,
|
|
77
|
+
columns: (1fr, 1fr),
|
|
78
|
+
column-gutter: 5pt,
|
|
79
|
+
|
|
80
|
+
grid.cell(colspan: 2)[
|
|
81
|
+
*Count:* {{ report.open_access_summary.model_dump().items()|sum(attribute="1") }}
|
|
82
|
+
],
|
|
83
|
+
|
|
84
|
+
{% for work_type in report.works_type_summary[:4] %}
|
|
85
|
+
[
|
|
86
|
+
#box(height: 7pt, width: 7pt, fill: colors.at({{ loop.index0 }})) *{{ work_type.type_name|capitalize }}:* {{ work_type.count }}
|
|
87
|
+
],
|
|
88
|
+
{% endfor %}
|
|
89
|
+
)
|
|
90
|
+
]
|
|
22
91
|
],
|
|
23
92
|
[
|
|
24
|
-
#
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
93
|
+
#let graph = {
|
|
94
|
+
canvas(length: 35%, {
|
|
95
|
+
chart.piechart(
|
|
96
|
+
(
|
|
97
|
+
{{report.open_access_summary.gold}}, // Gold
|
|
98
|
+
{{report.open_access_summary.green}}, // Green
|
|
99
|
+
{{report.open_access_summary.hybrid}}, // Hybrid
|
|
100
|
+
{{report.open_access_summary.bronze}}, // Bronze
|
|
101
|
+
{{report.open_access_summary.closed}}, // Closed
|
|
102
|
+
),
|
|
103
|
+
radius: 1,
|
|
104
|
+
inner-radius: .4,
|
|
105
|
+
slice-style: (YELLOW, GREEN, RED, BLUE, GRAY),
|
|
106
|
+
outer-label: (content: "%", radius: 115%),
|
|
107
|
+
)
|
|
108
|
+
})
|
|
109
|
+
}
|
|
110
|
+
#works_metrics_card(title: "Open Access", graph)[
|
|
111
|
+
#grid(
|
|
112
|
+
rows: auto, row-gutter: 10pt,
|
|
113
|
+
columns: (1fr, 1fr, 1fr),
|
|
114
|
+
column-gutter: 5pt,
|
|
115
|
+
|
|
116
|
+
grid.cell(colspan: 3)[
|
|
117
|
+
*Count:* {{ report.open_access_summary.model_dump().items()|sum(attribute="1") }}
|
|
118
|
+
],
|
|
119
|
+
|
|
120
|
+
[#box(height: 7pt, width: 7pt, fill: YELLOW) *Gold:* {{report.open_access_summary.gold}}],
|
|
121
|
+
[#box(height: 7pt, width: 7pt, fill: GREEN) *Green:* {{report.open_access_summary.green}}],
|
|
122
|
+
[#box(height: 7pt, width: 7pt, fill: BLUE) *Bronze:* {{report.open_access_summary.bronze}}],
|
|
123
|
+
|
|
124
|
+
[#box(height: 7pt, width: 7pt, fill: GRAY) *Closed:* {{report.open_access_summary.closed}}],
|
|
125
|
+
[#box(height: 7pt, width: 7pt, fill: RED) *Hybrid:* {{report.open_access_summary.hybrid}}],
|
|
126
|
+
)
|
|
127
|
+
]
|
|
39
128
|
],
|
|
40
129
|
)
|
|
41
130
|
|
|
42
|
-
#linebreak()
|
|
43
|
-
|
|
44
131
|
#align(center, text(11pt)[Works from {{ report.works[0].work.publication_year }} to {{ report.works[-1].work.publication_year }}])
|
|
45
132
|
#table(
|
|
46
133
|
columns: (auto, 3fr, auto, auto, auto, auto, auto, auto, auto),
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
== Extended info.
|
|
2
1
|
{% for work in report.works %}
|
|
3
2
|
|
|
4
3
|
{% if not loop.first %}
|
|
5
4
|
#pagebreak()
|
|
6
5
|
{% endif %}
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
== #text()[#"{{ work.work.title.replace('"', '\\"') }}"] <work_{{ loop.index }}>
|
|
9
8
|
|
|
10
9
|
#linebreak()
|
|
11
10
|
|
pub_analyzer/main.py
CHANGED
|
@@ -43,8 +43,12 @@ class PubAnalyzerApp(App[DOMNode]):
|
|
|
43
43
|
|
|
44
44
|
def compose(self) -> ComposeResult:
|
|
45
45
|
"""Create child widgets for the app."""
|
|
46
|
+
footer = Footer()
|
|
47
|
+
footer.upper_case_keys = True
|
|
48
|
+
footer.ctrl_to_caret = False
|
|
49
|
+
|
|
46
50
|
yield Body()
|
|
47
|
-
yield
|
|
51
|
+
yield footer
|
|
48
52
|
|
|
49
53
|
def action_toggle_dark(self) -> None:
|
|
50
54
|
"""Toggle dark mode."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pub-analyzer
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: A text user interface, written in python, which automates the generation of scientific production reports using OpenAlex
|
|
5
5
|
Home-page: https://github.com/alejandrgaspar/pub-analyzer
|
|
6
6
|
License: MIT
|
|
@@ -23,10 +23,10 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.12
|
|
24
24
|
Classifier: Typing :: Typed
|
|
25
25
|
Requires-Dist: httpx (==0.27.0)
|
|
26
|
-
Requires-Dist: jinja2 (==3.1.
|
|
27
|
-
Requires-Dist: pydantic (==2.7.
|
|
28
|
-
Requires-Dist: textual (==0.
|
|
29
|
-
Requires-Dist: typst (==0.11.
|
|
26
|
+
Requires-Dist: jinja2 (==3.1.4)
|
|
27
|
+
Requires-Dist: pydantic (==2.7.4)
|
|
28
|
+
Requires-Dist: textual (==0.70.0)
|
|
29
|
+
Requires-Dist: typst (==0.11.1)
|
|
30
30
|
Project-URL: Documentation, https://pub-analyzer.com/
|
|
31
31
|
Project-URL: Repository, https://github.com/alejandrgaspar/pub-analyzer
|
|
32
32
|
Description-Content-Type: text/markdown
|
|
@@ -4,7 +4,7 @@ pub_analyzer/css/buttons.tcss,sha256=FruJ39dXmKnZm3_y0CxAJByKHrbmt6RQky0T0uM906g
|
|
|
4
4
|
pub_analyzer/css/checkbox.tcss,sha256=FblyIHns-r1K0ikOnSJtoTMz57C6iDEcscdFAsJ7s48,506
|
|
5
5
|
pub_analyzer/css/collapsible.tcss,sha256=Rh-L5PcIMhnZ7RhY1udd_BcYC1mfCMew2m6o6ty3juE,605
|
|
6
6
|
pub_analyzer/css/datatable.tcss,sha256=JgdMUPc4fYmZlXi_FxbuD88pegK6Pi4FgDHIfA_TKxo,994
|
|
7
|
-
pub_analyzer/css/main.tcss,sha256=
|
|
7
|
+
pub_analyzer/css/main.tcss,sha256=rtHLKCVZaBuJ83dAg840cetzVtEy8Rjbw1UKxgafeE8,1027
|
|
8
8
|
pub_analyzer/css/report.tcss,sha256=5v-h4Y5gUdonLQTVkVm-HYrYT1xDS-4NYHVZDYghVEs,2066
|
|
9
9
|
pub_analyzer/css/search.tcss,sha256=rovbWjp4pYfCF_OyAC_QrV_0WdMUlsYoQ3vbs9pGw7g,1326
|
|
10
10
|
pub_analyzer/css/summary.tcss,sha256=i4ixICwoQFj2BToW9NVmJGUIYk5upbukbTCnDgT40ds,1350
|
|
@@ -14,12 +14,12 @@ pub_analyzer/internal/__init__.py,sha256=9aqrBJDedUiBO5kEO81kSAuPbOSFoaDZZK8w5Ny
|
|
|
14
14
|
pub_analyzer/internal/identifier.py,sha256=LDYew25TLuwqJHmLg9iRNTURWynN27ZbTxTVGbuOUD0,2939
|
|
15
15
|
pub_analyzer/internal/render.py,sha256=gq5dScWs507tne3glJbTQ-PekmALvtcZPB1p_mVAkE0,2144
|
|
16
16
|
pub_analyzer/internal/report.py,sha256=zeDn4mR8G7-NA0SxelIhanZ2e4mLecbiuVqlv2_hMb8,16320
|
|
17
|
-
pub_analyzer/internal/templates/author/author_summary.typ,sha256=
|
|
18
|
-
pub_analyzer/internal/templates/author/report.typ,sha256=
|
|
19
|
-
pub_analyzer/internal/templates/author/sources.typ,sha256=
|
|
20
|
-
pub_analyzer/internal/templates/author/works.typ,sha256=
|
|
21
|
-
pub_analyzer/internal/templates/author/works_extended.typ,sha256=
|
|
22
|
-
pub_analyzer/main.py,sha256
|
|
17
|
+
pub_analyzer/internal/templates/author/author_summary.typ,sha256=HtKVteroNhDIDu83vH3ZESm7VMmU8eMx7Wd-gqBXbHg,2827
|
|
18
|
+
pub_analyzer/internal/templates/author/report.typ,sha256=Pq7AxT425Buz4a2NFSIoNwp4FozwuHWALzNxe0fsTwA,1749
|
|
19
|
+
pub_analyzer/internal/templates/author/sources.typ,sha256=vY9qUEl_HbxgYl4NWR8yH0oQ5TzaYIxk3p9IsSprFBM,802
|
|
20
|
+
pub_analyzer/internal/templates/author/works.typ,sha256=zPIzuUDJ3tL7Nf6Mt2t8W-RRQYSgWKVh4cx47APGSGs,4803
|
|
21
|
+
pub_analyzer/internal/templates/author/works_extended.typ,sha256=kzk8gpGEqj1J-U1OrmGBGZ63N17wBwFjR1XDW6dFyWo,3508
|
|
22
|
+
pub_analyzer/main.py,sha256=0vCh_eaPc4uaGI2WsyTp7JYc9CL5gANCaa4PZhB8Dvc,2301
|
|
23
23
|
pub_analyzer/models/__init__.py,sha256=hvR6m379slQw7gSwnl_OFY21Ytv90mmmOe7bp8vZYkk,59
|
|
24
24
|
pub_analyzer/models/author.py,sha256=9DzBQY4JoDv5ilBNOLyquOqnlwbXCTpmZq25cQLCgYU,1900
|
|
25
25
|
pub_analyzer/models/concept.py,sha256=yNvajKWTn6uBalNoJmlobitvbFBOjF80jlZnjKjwDRw,677
|
|
@@ -62,8 +62,8 @@ pub_analyzer/widgets/search/__init__.py,sha256=8C3IQtFkiIL8hlQbhJ_fAHM59-TAoe29w
|
|
|
62
62
|
pub_analyzer/widgets/search/core.py,sha256=4NvowtBcrH1fmob9kuF7v9Tq3Nd99jzB2S7xaD8OYeI,3861
|
|
63
63
|
pub_analyzer/widgets/search/results.py,sha256=6Sl-shkGCf-jcMmalXpk1n8oBHk1aZNzFPJfHSRP1gA,3702
|
|
64
64
|
pub_analyzer/widgets/sidebar.py,sha256=XlIshlCVW5Bb3MXFPnU9is0qQrUrGdT6xlkKiYNEcAM,2704
|
|
65
|
-
pub_analyzer-0.
|
|
66
|
-
pub_analyzer-0.
|
|
67
|
-
pub_analyzer-0.
|
|
68
|
-
pub_analyzer-0.
|
|
69
|
-
pub_analyzer-0.
|
|
65
|
+
pub_analyzer-0.4.0.dist-info/LICENSE,sha256=OPopoEowTMKqIea8Kbxk3TKdCQ97YkLvIknjTHE5oCI,1080
|
|
66
|
+
pub_analyzer-0.4.0.dist-info/METADATA,sha256=J0vtkBiJ_KBkDg5r525pSArh9XflnHHo8FzU5gPMoyw,4508
|
|
67
|
+
pub_analyzer-0.4.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
68
|
+
pub_analyzer-0.4.0.dist-info/entry_points.txt,sha256=mVb_gUNX_-aVWHlNKLjcMAS8YLgNnSq9JLRXVJGIF2c,54
|
|
69
|
+
pub_analyzer-0.4.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|