earningscall 0.0.19__tar.gz → 0.0.21__tar.gz

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.
Files changed (62) hide show
  1. {earningscall-0.0.19 → earningscall-0.0.21}/CHANGELOG.md +8 -0
  2. {earningscall-0.0.19 → earningscall-0.0.21}/PKG-INFO +93 -1
  3. {earningscall-0.0.19 → earningscall-0.0.21}/README.md +92 -0
  4. {earningscall-0.0.19 → earningscall-0.0.21}/earningscall/api.py +3 -3
  5. {earningscall-0.0.19 → earningscall-0.0.21}/pyproject.toml +1 -1
  6. {earningscall-0.0.19 → earningscall-0.0.21}/.github/workflows/release.yml +0 -0
  7. {earningscall-0.0.19 → earningscall-0.0.21}/.github/workflows/test.yml +0 -0
  8. {earningscall-0.0.19 → earningscall-0.0.21}/.gitignore +0 -0
  9. {earningscall-0.0.19 → earningscall-0.0.21}/.python-version +0 -0
  10. {earningscall-0.0.19 → earningscall-0.0.21}/DEVELOPMENT.md +0 -0
  11. {earningscall-0.0.19 → earningscall-0.0.21}/LICENSE +0 -0
  12. {earningscall-0.0.19 → earningscall-0.0.21}/TODO.md +0 -0
  13. {earningscall-0.0.19 → earningscall-0.0.21}/earningscall/__init__.py +0 -0
  14. {earningscall-0.0.19 → earningscall-0.0.21}/earningscall/company.py +0 -0
  15. {earningscall-0.0.19 → earningscall-0.0.21}/earningscall/errors.py +0 -0
  16. {earningscall-0.0.19 → earningscall-0.0.21}/earningscall/event.py +0 -0
  17. {earningscall-0.0.19 → earningscall-0.0.21}/earningscall/exports.py +0 -0
  18. {earningscall-0.0.19 → earningscall-0.0.21}/earningscall/sectors.py +0 -0
  19. {earningscall-0.0.19 → earningscall-0.0.21}/earningscall/symbols.py +0 -0
  20. {earningscall-0.0.19 → earningscall-0.0.21}/earningscall/transcript.py +0 -0
  21. {earningscall-0.0.19 → earningscall-0.0.21}/earningscall/utils.py +0 -0
  22. {earningscall-0.0.19 → earningscall-0.0.21}/hatch.toml +0 -0
  23. {earningscall-0.0.19 → earningscall-0.0.21}/scripts/download_audio_files.py +0 -0
  24. {earningscall-0.0.19 → earningscall-0.0.21}/scripts/download_single_audio_file.py +0 -0
  25. {earningscall-0.0.19 → earningscall-0.0.21}/scripts/download_sp500_audio_files.py +0 -0
  26. {earningscall-0.0.19 → earningscall-0.0.21}/scripts/get_all_company_transcripts.py +0 -0
  27. {earningscall-0.0.19 → earningscall-0.0.21}/scripts/get_single_transcript.py +0 -0
  28. {earningscall-0.0.19 → earningscall-0.0.21}/scripts/list_companies.py +0 -0
  29. {earningscall-0.0.19 → earningscall-0.0.21}/setup.cfg +0 -0
  30. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/aapl-q1-2022-advanced-data-level-2.yaml +0 -0
  31. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/aapl-q1-2022-advanced-data-level-3.yaml +0 -0
  32. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/aapl-q1-2022-advanced-data-level-4.yaml +0 -0
  33. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/aapl-q1-2030-not-authorized-l2.yaml +0 -0
  34. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/aapl-q1-2030-not-authorized.yaml +0 -0
  35. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/aapl-q1-2030-not-found.yaml +0 -0
  36. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/aapl-q1-2030-server-error.yaml +0 -0
  37. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/demo-symbols-v2-alpha.yaml +0 -0
  38. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/demo-symbols-v2.yaml +0 -0
  39. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/meta-q3-2024-not-authorized.yaml +0 -0
  40. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/meta-q3-2024-not-found.yaml +0 -0
  41. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/meta-q3-2024-other-error.yaml +0 -0
  42. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/msft-company-events.yaml +0 -0
  43. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/msft-q1-2022-audio-file-short-clip.yaml +0 -0
  44. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/msft-transcript-response.yaml +0 -0
  45. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/sp500-company-list-failed.yaml +0 -0
  46. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/sp500-company-list.yaml +0 -0
  47. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/symbols-v2-missing-edge-cases.yaml +0 -0
  48. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/symbols-v2.yaml +0 -0
  49. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/symbols.txt +0 -0
  50. {earningscall-0.0.19 → earningscall-0.0.21}/tests/data/symbols.yaml +0 -0
  51. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_company.py +0 -0
  52. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_download_audio_files.py +0 -0
  53. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_earnings_event.py +0 -0
  54. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_exports.py +0 -0
  55. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_get_company_events.py +0 -0
  56. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_get_sp500_companies_api.py +0 -0
  57. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_get_transcript.py +0 -0
  58. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_helper.py +0 -0
  59. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_responses_mocking.py +0 -0
  60. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_sectors.py +0 -0
  61. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_symbols.py +0 -0
  62. {earningscall-0.0.19 → earningscall-0.0.21}/tests/test_utils.py +0 -0
@@ -1,3 +1,11 @@
1
+ ## Release `0.0.21` - 2024-10-07
2
+
3
+ * Bump version for PyPI release: updated README docs.
4
+
5
+ ## Release `0.0.20` - 2024-10-07
6
+
7
+ * Bugfix: Fix importlib error.
8
+
1
9
  ## Release `0.0.19` - 2024-10-07
2
10
 
3
11
  * Add Advanced Transcript Data structures (Beta: and subject to change in the future).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: earningscall
3
- Version: 0.0.19
3
+ Version: 0.0.21
4
4
  Summary: The EarningsCall Python library provides convenient access to the EarningsCall API. It includes a pre-defined set of classes for API resources that initialize themselves dynamically from API responses.
5
5
  Project-URL: Homepage, https://earningscall.biz
6
6
  Project-URL: Documentation, https://github.com/EarningsCall/earningscall-python
@@ -126,6 +126,98 @@ Getting all transcripts for: Apple Inc...
126
126
  ...
127
127
  ```
128
128
 
129
+
130
+ ## Get Text by Speaker
131
+
132
+ If you want to get the text by speaker, you can do so by setting the `level` parameter to `2`.
133
+
134
+ NOTE: Level `2` data is provided in any plan that includes Enhanced Transcript Data.
135
+
136
+ ```python
137
+ from earningscall import get_company
138
+
139
+ company = get_company("aapl") # Lookup Apple, Inc by its ticker symbol, "AAPL"
140
+
141
+ transcript = company.get_transcript(year=2021, quarter=3, level=2)
142
+
143
+ first_speaker = transcript.speakers[0]
144
+ speaker_label = first_speaker.speaker
145
+ text = first_speaker.text
146
+ print(f"Speaker: {speaker_label}\nText: {text}")
147
+ ```
148
+
149
+ Output
150
+
151
+ ```text
152
+ Speaker: spk11
153
+ Text: Good day, and welcome to the Apple Q3 FY 2021 Earnings Conference Call. Today's call is being recorded. At this time, for opening remarks and introductions, I would like to turn the call over to Tejas Ghala, Director, Investor Relations and Corporate Finance. Please go ahead.
154
+ ```
155
+
156
+ ## Get Word-Level Timestamps
157
+
158
+ If you want to get the word-level timestamps, you can do so by setting the `level` parameter to `3`.
159
+
160
+ Each timestamp is the number of seconds since the start of the transcript.
161
+
162
+ NOTE: Level `3` data is provided in any plan that includes Enhanced Transcript Data.
163
+
164
+
165
+ ```python
166
+ from earningscall import get_company
167
+
168
+ company = get_company("aapl") # Lookup Apple, Inc by its ticker symbol, "AAPL"
169
+
170
+ transcript = company.get_transcript(year=2021, quarter=3, level=3)
171
+
172
+ first_speaker = transcript.speakers[0]
173
+ words_and_start_times = list(zip(first_speaker.words, first_speaker.start_times))
174
+ print(f"Speaker: {first_speaker.speaker}")
175
+ print(f"Words with start times: {words_and_start_times}")
176
+ ```
177
+
178
+ Output
179
+
180
+ ```text
181
+ Speaker: spk11
182
+ Words with start times: [('Good', 0.049), ('day,', 0.229), ('and', 0.489), ('welcome', 0.609), ('to', 0.929), ('the', 1.029), ('Apple', 1.229), ('Q3', 1.629), ('FY', 2.65), ('2021', 2.6599999999999997), ('Earnings', 3.81), ('Conference', 4.17), ('Call.', 4.55), ("Today's", 5.411), ('call', 5.811), ('is', 6.111), ('being', 6.271), ('recorded.', 6.471), ('At', 7.571), ('this', 7.671), ('time,', 7.871), ('for', 8.111), ('opening', 8.351), ('remarks', 8.631), ('and', 9.092), ('introductions,', 9.232), ('I', 9.832), ('would', 9.912), ('like', 10.052), ('to', 10.192), ('turn', 10.292), ('the', 10.492), ('call', 10.592), ('over', 10.872), ('to', 11.052), ('Tejas', 11.152), ('Ghala,', 11.532), ('Director,', 12.112), ('Investor', 12.533), ('Relations', 12.873), ('and', 13.353), ('Corporate', 13.473), ('Finance.', 13.773), ('Please', 14.413), ('go', 14.653), ('ahead.', 14.793)]
183
+ ```
184
+
185
+ ## Get Prepared Remarks and Q&A for a Single Quarter
186
+
187
+ If you want to get the prepared remarks and Q&A for a single quarter, you can do so by setting the `level` parameter to `4`.
188
+
189
+ NOTE: Level `4` data is provided in any plan that includes Enhanced Transcript Data.
190
+
191
+ ```python
192
+ from earningscall import get_company
193
+
194
+ company = get_company("aapl") # Lookup Apple, Inc by its ticker symbol, "AAPL"
195
+
196
+ transcript = company.get_transcript(year=2021, quarter=3, level=4)
197
+ print(f"{company} Q3 2021 Prepared Remarks: \"{transcript.prepared_remarks[:100]}...\"")
198
+ print(f"{company} Q3 2021 Q&A: \"{transcript.questions_and_answers[:100]}...\"")
199
+ ```
200
+
201
+ Output
202
+
203
+ ```text
204
+ Apple Inc. Q3 2021 Prepared Remarks: "Good day, and welcome to the Apple Q3 FY 2021 Earnings Conference Call. Today's call is being record..."
205
+ Apple Inc. Q3 2021 Q&A: "Our first question comes from Katie Huberty from Morgan Stanley. Please go ahead. Hello, Katie. Your..."
206
+ ```
207
+
208
+ ## Download Audio File
209
+
210
+ If you want to download the audio file for a single quarter, you can call the `download_audio_file` function.
211
+
212
+ ```python
213
+ from earningscall import get_company
214
+
215
+ company = get_company("aapl") # Lookup Apple, Inc by its ticker symbol, "AAPL"
216
+
217
+ print("Downloading audio file for Apple Inc. Q3 2021...")
218
+ audio_file = company.download_audio_file(year=2021, quarter=3, file_name="Apple Q3 2021.mp3")
219
+ ```
220
+
129
221
  ## List All Companies
130
222
 
131
223
  ```python
@@ -75,6 +75,98 @@ Getting all transcripts for: Apple Inc...
75
75
  ...
76
76
  ```
77
77
 
78
+
79
+ ## Get Text by Speaker
80
+
81
+ If you want to get the text by speaker, you can do so by setting the `level` parameter to `2`.
82
+
83
+ NOTE: Level `2` data is provided in any plan that includes Enhanced Transcript Data.
84
+
85
+ ```python
86
+ from earningscall import get_company
87
+
88
+ company = get_company("aapl") # Lookup Apple, Inc by its ticker symbol, "AAPL"
89
+
90
+ transcript = company.get_transcript(year=2021, quarter=3, level=2)
91
+
92
+ first_speaker = transcript.speakers[0]
93
+ speaker_label = first_speaker.speaker
94
+ text = first_speaker.text
95
+ print(f"Speaker: {speaker_label}\nText: {text}")
96
+ ```
97
+
98
+ Output
99
+
100
+ ```text
101
+ Speaker: spk11
102
+ Text: Good day, and welcome to the Apple Q3 FY 2021 Earnings Conference Call. Today's call is being recorded. At this time, for opening remarks and introductions, I would like to turn the call over to Tejas Ghala, Director, Investor Relations and Corporate Finance. Please go ahead.
103
+ ```
104
+
105
+ ## Get Word-Level Timestamps
106
+
107
+ If you want to get the word-level timestamps, you can do so by setting the `level` parameter to `3`.
108
+
109
+ Each timestamp is the number of seconds since the start of the transcript.
110
+
111
+ NOTE: Level `3` data is provided in any plan that includes Enhanced Transcript Data.
112
+
113
+
114
+ ```python
115
+ from earningscall import get_company
116
+
117
+ company = get_company("aapl") # Lookup Apple, Inc by its ticker symbol, "AAPL"
118
+
119
+ transcript = company.get_transcript(year=2021, quarter=3, level=3)
120
+
121
+ first_speaker = transcript.speakers[0]
122
+ words_and_start_times = list(zip(first_speaker.words, first_speaker.start_times))
123
+ print(f"Speaker: {first_speaker.speaker}")
124
+ print(f"Words with start times: {words_and_start_times}")
125
+ ```
126
+
127
+ Output
128
+
129
+ ```text
130
+ Speaker: spk11
131
+ Words with start times: [('Good', 0.049), ('day,', 0.229), ('and', 0.489), ('welcome', 0.609), ('to', 0.929), ('the', 1.029), ('Apple', 1.229), ('Q3', 1.629), ('FY', 2.65), ('2021', 2.6599999999999997), ('Earnings', 3.81), ('Conference', 4.17), ('Call.', 4.55), ("Today's", 5.411), ('call', 5.811), ('is', 6.111), ('being', 6.271), ('recorded.', 6.471), ('At', 7.571), ('this', 7.671), ('time,', 7.871), ('for', 8.111), ('opening', 8.351), ('remarks', 8.631), ('and', 9.092), ('introductions,', 9.232), ('I', 9.832), ('would', 9.912), ('like', 10.052), ('to', 10.192), ('turn', 10.292), ('the', 10.492), ('call', 10.592), ('over', 10.872), ('to', 11.052), ('Tejas', 11.152), ('Ghala,', 11.532), ('Director,', 12.112), ('Investor', 12.533), ('Relations', 12.873), ('and', 13.353), ('Corporate', 13.473), ('Finance.', 13.773), ('Please', 14.413), ('go', 14.653), ('ahead.', 14.793)]
132
+ ```
133
+
134
+ ## Get Prepared Remarks and Q&A for a Single Quarter
135
+
136
+ If you want to get the prepared remarks and Q&A for a single quarter, you can do so by setting the `level` parameter to `4`.
137
+
138
+ NOTE: Level `4` data is provided in any plan that includes Enhanced Transcript Data.
139
+
140
+ ```python
141
+ from earningscall import get_company
142
+
143
+ company = get_company("aapl") # Lookup Apple, Inc by its ticker symbol, "AAPL"
144
+
145
+ transcript = company.get_transcript(year=2021, quarter=3, level=4)
146
+ print(f"{company} Q3 2021 Prepared Remarks: \"{transcript.prepared_remarks[:100]}...\"")
147
+ print(f"{company} Q3 2021 Q&A: \"{transcript.questions_and_answers[:100]}...\"")
148
+ ```
149
+
150
+ Output
151
+
152
+ ```text
153
+ Apple Inc. Q3 2021 Prepared Remarks: "Good day, and welcome to the Apple Q3 FY 2021 Earnings Conference Call. Today's call is being record..."
154
+ Apple Inc. Q3 2021 Q&A: "Our first question comes from Katie Huberty from Morgan Stanley. Please go ahead. Hello, Katie. Your..."
155
+ ```
156
+
157
+ ## Download Audio File
158
+
159
+ If you want to download the audio file for a single quarter, you can call the `download_audio_file` function.
160
+
161
+ ```python
162
+ from earningscall import get_company
163
+
164
+ company = get_company("aapl") # Lookup Apple, Inc by its ticker symbol, "AAPL"
165
+
166
+ print("Downloading audio file for Apple Inc. Q3 2021...")
167
+ audio_file = company.download_audio_file(year=2021, quarter=3, file_name="Apple Q3 2021.mp3")
168
+ ```
169
+
78
170
  ## List All Companies
79
171
 
80
172
  ```python
@@ -12,7 +12,6 @@ log = logging.getLogger(__file__)
12
12
 
13
13
  DOMAIN = os.environ.get("ECALL_DOMAIN", "earningscall.biz")
14
14
  API_BASE = f"https://v2.api.{DOMAIN}"
15
- EARNINGS_CALL_VERSION = importlib.metadata.version("earningscall")
16
15
 
17
16
 
18
17
  def get_api_key():
@@ -48,9 +47,10 @@ def purge_cache():
48
47
 
49
48
 
50
49
  def get_headers():
50
+ earnings_call_version = importlib.metadata.version("earningscall")
51
51
  return {
52
- "User-Agent": f"EarningsCall Python/{EARNINGS_CALL_VERSION}",
53
- "X-EarningsCall-Version": EARNINGS_CALL_VERSION,
52
+ "User-Agent": f"EarningsCall Python/{earnings_call_version}",
53
+ "X-EarningsCall-Version": earnings_call_version,
54
54
  }
55
55
 
56
56
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "earningscall"
3
- version = "0.0.19"
3
+ version = "0.0.21"
4
4
  description = "The EarningsCall Python library provides convenient access to the EarningsCall API. It includes a pre-defined set of classes for API resources that initialize themselves dynamically from API responses."
5
5
  readme = "README.md"
6
6
  authors = [
File without changes
File without changes
File without changes
File without changes
File without changes