earningscall 0.0.22__tar.gz → 0.0.23__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 (64) hide show
  1. {earningscall-0.0.22 → earningscall-0.0.23}/CHANGELOG.md +6 -0
  2. {earningscall-0.0.22 → earningscall-0.0.23}/PKG-INFO +1 -1
  3. {earningscall-0.0.22 → earningscall-0.0.23}/earningscall/api.py +4 -1
  4. {earningscall-0.0.22 → earningscall-0.0.23}/earningscall/transcript.py +2 -2
  5. {earningscall-0.0.22 → earningscall-0.0.23}/hatch.toml +1 -1
  6. {earningscall-0.0.22 → earningscall-0.0.23}/pyproject.toml +4 -1
  7. earningscall-0.0.23/tests/test_errors.py +14 -0
  8. {earningscall-0.0.22 → earningscall-0.0.23}/.github/workflows/release.yml +0 -0
  9. {earningscall-0.0.22 → earningscall-0.0.23}/.github/workflows/test.yml +0 -0
  10. {earningscall-0.0.22 → earningscall-0.0.23}/.gitignore +0 -0
  11. {earningscall-0.0.22 → earningscall-0.0.23}/.python-version +0 -0
  12. {earningscall-0.0.22 → earningscall-0.0.23}/DEVELOPMENT.md +0 -0
  13. {earningscall-0.0.22 → earningscall-0.0.23}/LICENSE +0 -0
  14. {earningscall-0.0.22 → earningscall-0.0.23}/README.md +0 -0
  15. {earningscall-0.0.22 → earningscall-0.0.23}/TODO.md +0 -0
  16. {earningscall-0.0.22 → earningscall-0.0.23}/earningscall/__init__.py +0 -0
  17. {earningscall-0.0.22 → earningscall-0.0.23}/earningscall/company.py +0 -0
  18. {earningscall-0.0.22 → earningscall-0.0.23}/earningscall/errors.py +0 -0
  19. {earningscall-0.0.22 → earningscall-0.0.23}/earningscall/event.py +0 -0
  20. {earningscall-0.0.22 → earningscall-0.0.23}/earningscall/exports.py +0 -0
  21. {earningscall-0.0.22 → earningscall-0.0.23}/earningscall/sectors.py +0 -0
  22. {earningscall-0.0.22 → earningscall-0.0.23}/earningscall/symbols.py +0 -0
  23. {earningscall-0.0.22 → earningscall-0.0.23}/earningscall/utils.py +0 -0
  24. {earningscall-0.0.22 → earningscall-0.0.23}/scripts/download_audio_files.py +0 -0
  25. {earningscall-0.0.22 → earningscall-0.0.23}/scripts/download_single_audio_file.py +0 -0
  26. {earningscall-0.0.22 → earningscall-0.0.23}/scripts/download_sp500_audio_files.py +0 -0
  27. {earningscall-0.0.22 → earningscall-0.0.23}/scripts/get_all_company_transcripts.py +0 -0
  28. {earningscall-0.0.22 → earningscall-0.0.23}/scripts/get_single_transcript.py +0 -0
  29. {earningscall-0.0.22 → earningscall-0.0.23}/scripts/list_companies.py +0 -0
  30. {earningscall-0.0.22 → earningscall-0.0.23}/setup.cfg +0 -0
  31. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/aapl-q1-2022-advanced-data-level-2.yaml +0 -0
  32. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/aapl-q1-2022-advanced-data-level-3.yaml +0 -0
  33. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/aapl-q1-2022-advanced-data-level-4.yaml +0 -0
  34. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/aapl-q1-2022-speaker-name-map-v2.yaml +0 -0
  35. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/aapl-q1-2030-not-authorized-l2.yaml +0 -0
  36. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/aapl-q1-2030-not-authorized.yaml +0 -0
  37. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/aapl-q1-2030-not-found.yaml +0 -0
  38. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/aapl-q1-2030-server-error.yaml +0 -0
  39. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/demo-symbols-v2-alpha.yaml +0 -0
  40. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/demo-symbols-v2.yaml +0 -0
  41. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/meta-q3-2024-not-authorized.yaml +0 -0
  42. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/meta-q3-2024-not-found.yaml +0 -0
  43. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/meta-q3-2024-other-error.yaml +0 -0
  44. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/msft-company-events.yaml +0 -0
  45. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/msft-q1-2022-audio-file-short-clip.yaml +0 -0
  46. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/msft-transcript-response.yaml +0 -0
  47. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/sp500-company-list-failed.yaml +0 -0
  48. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/sp500-company-list.yaml +0 -0
  49. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/symbols-v2-missing-edge-cases.yaml +0 -0
  50. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/symbols-v2.yaml +0 -0
  51. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/symbols.txt +0 -0
  52. {earningscall-0.0.22 → earningscall-0.0.23}/tests/data/symbols.yaml +0 -0
  53. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_company.py +0 -0
  54. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_download_audio_files.py +0 -0
  55. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_earnings_event.py +0 -0
  56. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_exports.py +0 -0
  57. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_get_company_events.py +0 -0
  58. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_get_sp500_companies_api.py +0 -0
  59. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_get_transcript.py +0 -0
  60. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_helper.py +0 -0
  61. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_responses_mocking.py +0 -0
  62. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_sectors.py +0 -0
  63. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_symbols.py +0 -0
  64. {earningscall-0.0.22 → earningscall-0.0.23}/tests/test_utils.py +0 -0
@@ -1,3 +1,9 @@
1
+ ## Release `0.0.23` - 2024-11-24
2
+
3
+ * Allow `None` for optional fields in SpeakerInfo data structure.
4
+ * Update logging format for API calls.
5
+ * Update logging level to DEBUG in unit tests.
6
+
1
7
  ## Release `0.0.22` - 2024-10-07
2
8
 
3
9
  * Add **experimental feature**: Speaker Names and Titles
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: earningscall
3
- Version: 0.0.22
3
+ Version: 0.0.23
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
@@ -1,4 +1,5 @@
1
1
  import importlib
2
+ import urllib.parse
2
3
  import logging
3
4
  import os
4
5
  from importlib.metadata import PackageNotFoundError
@@ -83,7 +84,9 @@ def do_get(
83
84
  **kwargs.get("params", {}),
84
85
  }
85
86
  url = f"{API_BASE}/{path}"
86
- log.debug(f"do_get url: {url} params: {params}")
87
+ if log.isEnabledFor(logging.DEBUG):
88
+ full_url = f"{url}?{urllib.parse.urlencode(params)}"
89
+ log.debug(f"GET: {full_url}")
87
90
  if use_cache and earningscall.enable_requests_cache:
88
91
  return cache_session().get(url, params=params)
89
92
  else:
@@ -9,8 +9,8 @@ from earningscall.event import EarningsEvent
9
9
  @dataclass_json
10
10
  @dataclass
11
11
  class SpeakerInfo:
12
- name: str
13
- title: str
12
+ name: Optional[str] = field(default=None)
13
+ title: Optional[str] = field(default=None)
14
14
 
15
15
 
16
16
  @dataclass_json
@@ -21,7 +21,7 @@ cov = [
21
21
  type = "container"
22
22
 
23
23
  [[envs.all.matrix]]
24
- python = ["3.8", "3.9", "3.10", "3.11", "3.12"]
24
+ python = ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
25
25
 
26
26
  [envs.lint]
27
27
  detached = true
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "earningscall"
3
- version = "0.0.22"
3
+ version = "0.0.23"
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 = [
@@ -161,3 +161,6 @@ exclude_lines = [
161
161
  "if __name__ == .__main__.:",
162
162
  "if TYPE_CHECKING:",
163
163
  ]
164
+
165
+ [tool.pytest.ini_options]
166
+ log_level = "DEBUG"
@@ -0,0 +1,14 @@
1
+ from earningscall.errors import InsufficientApiAccessError
2
+
3
+
4
+ def test_errors():
5
+ ##
6
+ error = InsufficientApiAccessError("You don't have access")
7
+ ##
8
+ assert error.msg == "You don't have access"
9
+ assert str(error) == "You don't have access"
10
+ ##
11
+ error = InsufficientApiAccessError()
12
+ ##
13
+ assert error.msg is None
14
+ assert str(error) == ""
File without changes
File without changes
File without changes
File without changes
File without changes