datamule 0.422__cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.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.
Files changed (54) hide show
  1. datamule/__init__.py +71 -0
  2. datamule/data/company_former_names.csv +8148 -0
  3. datamule/data/company_metadata.csv +10049 -0
  4. datamule/data/company_tickers.csv +9999 -0
  5. datamule/data/sec-glossary.csv +728 -0
  6. datamule/data/xbrl_descriptions.csv +10024 -0
  7. datamule/dataset_builder/dataset_builder.py +259 -0
  8. datamule/document.py +130 -0
  9. datamule/downloader/downloader.py +364 -0
  10. datamule/downloader/premiumdownloader.py +332 -0
  11. datamule/helper.py +123 -0
  12. datamule/monitor.py +236 -0
  13. datamule/mulebot/__init__.py +1 -0
  14. datamule/mulebot/helper.py +35 -0
  15. datamule/mulebot/mulebot.py +130 -0
  16. datamule/mulebot/mulebot_server/__init__.py +1 -0
  17. datamule/mulebot/mulebot_server/server.py +87 -0
  18. datamule/mulebot/mulebot_server/static/css/minimalist.css +174 -0
  19. datamule/mulebot/mulebot_server/static/scripts/artifacts.js +68 -0
  20. datamule/mulebot/mulebot_server/static/scripts/chat.js +92 -0
  21. datamule/mulebot/mulebot_server/static/scripts/filingArtifacts.js +56 -0
  22. datamule/mulebot/mulebot_server/static/scripts/listArtifacts.js +15 -0
  23. datamule/mulebot/mulebot_server/static/scripts/main.js +57 -0
  24. datamule/mulebot/mulebot_server/static/scripts/prefilledPrompt.js +27 -0
  25. datamule/mulebot/mulebot_server/static/scripts/suggestions.js +47 -0
  26. datamule/mulebot/mulebot_server/static/scripts/tableArtifacts.js +129 -0
  27. datamule/mulebot/mulebot_server/static/scripts/utils.js +28 -0
  28. datamule/mulebot/mulebot_server/templates/chat-minimalist.html +91 -0
  29. datamule/mulebot/search.py +52 -0
  30. datamule/mulebot/tools.py +82 -0
  31. datamule/packageupdater.py +207 -0
  32. datamule/parser/document_parsing/basic_10k_parser.py +82 -0
  33. datamule/parser/document_parsing/basic_10q_parser.py +73 -0
  34. datamule/parser/document_parsing/basic_13d_parser.py +58 -0
  35. datamule/parser/document_parsing/basic_13g_parser.py +61 -0
  36. datamule/parser/document_parsing/basic_8k_parser.py +84 -0
  37. datamule/parser/document_parsing/form_d_parser.py +70 -0
  38. datamule/parser/document_parsing/generalized_item_parser.py +78 -0
  39. datamule/parser/document_parsing/generalized_xml_parser.py +0 -0
  40. datamule/parser/document_parsing/helper.py +75 -0
  41. datamule/parser/document_parsing/information_table_parser_13fhr.py +41 -0
  42. datamule/parser/document_parsing/insider_trading_parser.py +158 -0
  43. datamule/parser/document_parsing/mappings.py +95 -0
  44. datamule/parser/document_parsing/n_port_p_parser.py +70 -0
  45. datamule/parser/document_parsing/sec_parser.py +73 -0
  46. datamule/parser/document_parsing/sgml_parser.py +94 -0
  47. datamule/parser/sgml_parsing/sgml_parser_cy.c +19082 -0
  48. datamule/parser/sgml_parsing/sgml_parser_cy.cpython-312-x86_64-linux-gnu.so +0 -0
  49. datamule/portfolio.py +21 -0
  50. datamule/submission.py +67 -0
  51. datamule-0.422.dist-info/METADATA +31 -0
  52. datamule-0.422.dist-info/RECORD +54 -0
  53. datamule-0.422.dist-info/WHEEL +6 -0
  54. datamule-0.422.dist-info/top_level.txt +1 -0
datamule/__init__.py ADDED
@@ -0,0 +1,71 @@
1
+ import sys
2
+ from importlib.util import find_spec
3
+ from functools import lru_cache
4
+
5
+ def __getattr__(name):
6
+ if name == 'Downloader':
7
+ from .downloader.downloader import Downloader
8
+ return Downloader
9
+ elif name == 'PremiumDownloader':
10
+ from .downloader.premiumdownloader import PremiumDownloader
11
+ return PremiumDownloader
12
+ elif name == 'Parser':
13
+ from .parser.document_parsing.sec_parser import Parser
14
+ return Parser
15
+ elif name == 'Monitor':
16
+ from .monitor import Monitor
17
+ return Monitor
18
+ elif name == 'PackageUpdater':
19
+ from .packageupdater import PackageUpdater
20
+ return PackageUpdater
21
+ elif name == 'Submission':
22
+ from .submission import Submission
23
+ return Submission
24
+ elif name == 'Portfolio':
25
+ from .portfolio import Portfolio
26
+ return Portfolio
27
+ elif name == 'Document':
28
+ from .document import Document
29
+ return Document
30
+ elif name == "parse_sgml_submission":
31
+ from .parser.sgml_parsing.sgml_parser_cy import parse_sgml_submission
32
+ return parse_sgml_submission
33
+ elif name == 'DatasetBuilder':
34
+ from .dataset_builder import DatasetBuilder
35
+ return DatasetBuilder
36
+ elif name == 'load_package_csv':
37
+ from .helper import load_package_csv
38
+ return load_package_csv
39
+ elif name == 'load_package_dataset':
40
+ from .helper import load_package_dataset
41
+ return load_package_dataset
42
+ raise AttributeError(f"module 'datamule' has no attribute '{name}'")
43
+
44
+ # Lazy load nest_asyncio only when needed
45
+ def _is_notebook_env():
46
+ """Check if the code is running in a Jupyter or Colab environment."""
47
+ try:
48
+ shell = get_ipython().__class__.__name__
49
+ return shell in ('ZMQInteractiveShell', 'Shell', 'Google.Colab')
50
+ except NameError:
51
+ return False
52
+
53
+ @lru_cache(maxsize=1)
54
+ def _setup_notebook_env():
55
+ """Setup Jupyter/Colab-specific configurations if needed."""
56
+ if _is_notebook_env():
57
+ import nest_asyncio
58
+ nest_asyncio.apply()
59
+
60
+ # Set up notebook environment
61
+ _setup_notebook_env()
62
+
63
+ __all__ = [
64
+ 'Downloader',
65
+ 'PremiumDownloader',
66
+ 'load_package_csv',
67
+ 'load_package_dataset',
68
+ 'Parser',
69
+ 'Filing',
70
+ 'DatasetBuilder'
71
+ ]