datamule 0.381__py3-none-any.whl → 1.0.2__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.
Files changed (75) hide show
  1. datamule/__init__.py +46 -86
  2. datamule/book/book.py +34 -0
  3. datamule/book/eftsquery.py +127 -0
  4. datamule/book/xbrl_retriever.py +88 -0
  5. datamule/config.py +29 -0
  6. datamule/data/company_former_names.csv +8148 -8148
  7. datamule/data/company_metadata.csv +10049 -10049
  8. datamule/data/company_tickers.csv +9999 -10168
  9. datamule/data/sec-glossary.csv +728 -728
  10. datamule/data/xbrl_descriptions.csv +10024 -10024
  11. datamule/document.py +279 -0
  12. datamule/downloader/downloader.py +374 -0
  13. datamule/downloader/premiumdownloader.py +335 -0
  14. datamule/helper.py +123 -136
  15. datamule/mapping_dicts/txt_mapping_dicts.py +232 -0
  16. datamule/mapping_dicts/xml_mapping_dicts.py +19 -0
  17. datamule/monitor.py +238 -0
  18. datamule/mulebot/__init__.py +1 -1
  19. datamule/mulebot/helper.py +34 -34
  20. datamule/mulebot/mulebot.py +129 -129
  21. datamule/mulebot/mulebot_server/server.py +86 -86
  22. datamule/mulebot/mulebot_server/static/css/minimalist.css +173 -173
  23. datamule/mulebot/mulebot_server/static/scripts/artifacts.js +67 -67
  24. datamule/mulebot/mulebot_server/static/scripts/chat.js +91 -91
  25. datamule/mulebot/mulebot_server/static/scripts/filingArtifacts.js +55 -55
  26. datamule/mulebot/mulebot_server/static/scripts/listArtifacts.js +14 -14
  27. datamule/mulebot/mulebot_server/static/scripts/main.js +56 -56
  28. datamule/mulebot/mulebot_server/static/scripts/prefilledPrompt.js +26 -26
  29. datamule/mulebot/mulebot_server/static/scripts/suggestions.js +46 -46
  30. datamule/mulebot/mulebot_server/static/scripts/tableArtifacts.js +128 -128
  31. datamule/mulebot/mulebot_server/static/scripts/utils.js +27 -27
  32. datamule/mulebot/mulebot_server/templates/chat-minimalist.html +90 -90
  33. datamule/mulebot/search.py +51 -51
  34. datamule/mulebot/tools.py +82 -82
  35. datamule/packageupdater.py +207 -0
  36. datamule/portfolio.py +106 -0
  37. datamule/submission.py +76 -0
  38. datamule-1.0.2.dist-info/METADATA +27 -0
  39. datamule-1.0.2.dist-info/RECORD +43 -0
  40. {datamule-0.381.dist-info → datamule-1.0.2.dist-info}/WHEEL +1 -1
  41. datamule/data/filing_types.csv +0 -485
  42. datamule/data/ftd_locations.csv +0 -388
  43. datamule/datamule_api.py +0 -21
  44. datamule/dataset_builder/_init.py +0 -1
  45. datamule/dataset_builder/dataset_builder.py +0 -260
  46. datamule/downloader/dropbox_downloader.py +0 -225
  47. datamule/downloader/ftd.py +0 -216
  48. datamule/downloader/information_table_13f.py +0 -231
  49. datamule/downloader/sec_downloader.py +0 -635
  50. datamule/filing_viewer/__init__.py +0 -1
  51. datamule/filing_viewer/filing_viewer.py +0 -256
  52. datamule/global_vars.py +0 -202
  53. datamule/parser/__init__.py +0 -1
  54. datamule/parser/basic_10k_parser.py +0 -82
  55. datamule/parser/basic_10q_parser.py +0 -73
  56. datamule/parser/basic_13d_parser.py +0 -58
  57. datamule/parser/basic_13g_parser.py +0 -61
  58. datamule/parser/basic_8k_parser.py +0 -84
  59. datamule/parser/company_concepts_parser.py +0 -0
  60. datamule/parser/form_d_parser.py +0 -70
  61. datamule/parser/generalized_item_parser.py +0 -78
  62. datamule/parser/generalized_xml_parser.py +0 -0
  63. datamule/parser/helper.py +0 -75
  64. datamule/parser/information_table_parser_13fhr.py +0 -41
  65. datamule/parser/insider_trading_parser.py +0 -158
  66. datamule/parser/mappings.py +0 -95
  67. datamule/parser/n_port_p_parser.py +0 -70
  68. datamule/parser/sec_parser.py +0 -79
  69. datamule/parser/sgml_parser.py +0 -180
  70. datamule/sec_filing.py +0 -126
  71. datamule/sec_search.py +0 -20
  72. datamule-0.381.dist-info/METADATA +0 -132
  73. datamule-0.381.dist-info/RECORD +0 -61
  74. /datamule/{downloader → book}/__init__.py +0 -0
  75. {datamule-0.381.dist-info → datamule-1.0.2.dist-info}/top_level.txt +0 -0
@@ -1,132 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: datamule
3
- Version: 0.381
4
- Summary: Making it easier to use SEC filings.
5
- Home-page: https://github.com/john-friedman/datamule-python
6
- Author: John Friedman
7
- License: MIT License
8
-
9
- Copyright (c) 2024 John Friedman
10
-
11
- Permission is hereby granted, free of charge, to any person obtaining a copy
12
- of this software and associated documentation files (the "Software"), to deal
13
- in the Software without restriction, including without limitation the rights
14
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
- copies of the Software, and to permit persons to whom the Software is
16
- furnished to do so, subject to the following conditions:
17
-
18
- The above copyright notice and this permission notice shall be included in all
19
- copies or substantial portions of the Software.
20
-
21
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
- SOFTWARE.
28
-
29
- Description-Content-Type: text/markdown
30
- Requires-Dist: aiohttp
31
- Requires-Dist: aiolimiter
32
- Requires-Dist: tqdm
33
- Requires-Dist: requests
34
- Requires-Dist: nest-asyncio
35
- Requires-Dist: aiofiles
36
- Requires-Dist: polars
37
- Requires-Dist: setuptools
38
- Requires-Dist: selectolax
39
- Provides-Extra: all
40
- Requires-Dist: pandas ; extra == 'all'
41
- Requires-Dist: lxml ; extra == 'all'
42
- Requires-Dist: openai ; extra == 'all'
43
- Requires-Dist: google-generativeai ; extra == 'all'
44
- Requires-Dist: psutil ; extra == 'all'
45
- Requires-Dist: flask ; extra == 'all'
46
- Provides-Extra: dataset_builder
47
- Requires-Dist: pandas ; extra == 'dataset_builder'
48
- Requires-Dist: google-generativeai ; extra == 'dataset_builder'
49
- Requires-Dist: psutil ; extra == 'dataset_builder'
50
- Provides-Extra: filing_viewer
51
- Requires-Dist: lxml ; extra == 'filing_viewer'
52
- Provides-Extra: mulebot
53
- Requires-Dist: openai ; extra == 'mulebot'
54
- Provides-Extra: mulebot_server
55
- Requires-Dist: flask ; extra == 'mulebot_server'
56
-
57
- # datamule
58
-
59
- [![Downloads](https://static.pepy.tech/badge/datamule)](https://pepy.tech/project/datamule)
60
- [![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fjohn-friedman%2Fdatamule-python&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com)
61
- ![GitHub](https://img.shields.io/github/stars/john-friedman/datamule-python)
62
-
63
- A Python package for working with SEC filings at scale. Includes [Mulebot](https://chat.datamule.xyz/), an open-source chatbot for SEC data with no storage requirements. 📚 [Full Documentation](https://john-friedman.github.io/datamule-python/) | 🌐 [Website](https://datamule.xyz/)
64
-
65
- Articles:
66
- - [Article: Creating Structured Datasets from SEC filings](https://medium.com/@jgfriedman99/how-to-create-alternative-datasets-using-datamule-d3a0192da8f6)
67
- - [Article: Deploy a Financial Chatbot in 5 Minutes](https://medium.com/@jgfriedman99/how-to-deploy-a-financial-chatbot-in-5-minutes-ef5eec973d4c)
68
-
69
- ## Key Features
70
-
71
- - 📥 [Download SEC filings quickly and efficiently](https://john-friedman.github.io/datamule-python/usage/downloader.html#)
72
- - 🔍 [Monitor EDGAR for new filings in real-time](https://john-friedman.github.io/datamule-python/usage/downloader.html#monitoring-new-filings)
73
- - 📊 [Parse filings at scale](https://john-friedman.github.io/datamule-python/usage/parsing.html#filing-parser)
74
- - 💾 [Access comprehensive datasets (10-Ks, SIC codes, etc.)](https://john-friedman.github.io/datamule-python/datasets.html)
75
- - 🤖 [Interact with SEC data using MuleBot](https://john-friedman.github.io/datamule-python/usage/mulebot.html)
76
-
77
- ## Quick Start
78
-
79
- ```bash
80
- # Basic installation
81
- pip install datamule
82
-
83
- # Install with all features
84
- pip install datamule[all]
85
- ```
86
-
87
- ```python
88
- import datamule as dm
89
-
90
- # Download filings
91
- downloader = dm.Downloader()
92
- downloader.download(form='10-K', ticker='AAPL')
93
-
94
- # Download filing attachments such as information tables
95
- downloader.download(form='13F-HR',file_types=['INFORMATION TABLE'],date=('2024-09-14','2024-09-16'))
96
-
97
- # Download every 10Q from 2023. Should take 2 minutes
98
- downloader.download_dataset(dataset='10q_2023')
99
- ```
100
-
101
- ## Available Extras
102
-
103
- - `filing_viewer`: Filing viewer module
104
- - `mulebot`: SEC data interaction chatbot
105
- - `mulebot_server`: Flask server for MuleBot
106
- - `all`: All available features
107
-
108
- ## Resources
109
-
110
- - 📊 [SEC Filing Glossary](https://datamule.xyz/sec_glossary)
111
- - 📈 [XBRL Fact Glossary](https://datamule.xyz/xbrl_fact_glossary)
112
- - 🤖 [Try MuleBot](https://chat.datamule.xyz/)
113
-
114
- ## Datasets
115
-
116
- Access comprehensive SEC datasets including:
117
- - Historical FTD data (since 2004)
118
- - 10-K and 10-Q filings (since 2001)
119
- - 13F-HR Information Tables (since 2013)
120
- - MD&A collection (100,000+ since 2001, requires free API key)
121
-
122
- ## Contributing
123
-
124
- Contributions are welcome! Please feel free to submit a Pull Request.
125
-
126
- ## License
127
-
128
- [MIT License](LICENSE)
129
-
130
- ---
131
-
132
- For detailed usage examples, API reference, and advanced features, please visit our [documentation](https://john-friedman.github.io/datamule-python/).
@@ -1,61 +0,0 @@
1
- datamule/__init__.py,sha256=fdl2hIu4qGb1_3ZR0FNV5FoVAcNTAex-Uzw7Ahd1Ub4,2385
2
- datamule/datamule_api.py,sha256=j78aWWjUgDRiozZEvdD36nUYy7VQL6zjEko3qndjvCc,755
3
- datamule/global_vars.py,sha256=PnaGwbq7hxahIen1WI9IMzwY9cv1ssxckyR13OFm5bA,14449
4
- datamule/helper.py,sha256=yHSryxKBm0Dt7RIUGnZx3lsTluomSl46cr-anOgcIxg,5474
5
- datamule/sec_filing.py,sha256=RIjxks4DuAJcxwGJBpXDVj0LYRVvwXcpDYG973DaZhw,5318
6
- datamule/sec_search.py,sha256=KteN1n7y9auOryonJt17_um3QfEZkWmf7qN71TbscEY,826
7
- datamule/data/company_former_names.csv,sha256=zTBWdV12_JE3aROFOMrFNTHLPW_M4TDruxtl15-XfA0,714528
8
- datamule/data/company_metadata.csv,sha256=X7uSIwConqC0sz-moIhXIISg6FI7GLGSlvAfDDf8Sd0,3078648
9
- datamule/data/company_tickers.csv,sha256=OtladoD7ZfxrRMmZa5hmZlG3YQdqGOxMXIlhk6s0znA,417504
10
- datamule/data/filing_types.csv,sha256=CAkckqgpSxihMaXnc5IkNS-5NE6OYJgsRoYPDCJpyuk,5433
11
- datamule/data/ftd_locations.csv,sha256=2ykZ_QCV86Sx1I0IkIOmxxTtlSiJbhdPqrYx7nfuBmA,45288
12
- datamule/data/sec-glossary.csv,sha256=TPjTBVM3kyFd8xHsmihykepvKbuLAAthOfEDjh_H-Kk,251937
13
- datamule/data/xbrl_descriptions.csv,sha256=Hg9BOo9zSjR7Khvx0pikILcbmDK_A404dmQtWuESK4s,2631548
14
- datamule/dataset_builder/_init.py,sha256=ogmcPxCP6RB3ofpmGlBhXTQHZ_Mksu_WQY3b7jM0k6Y,43
15
- datamule/dataset_builder/dataset_builder.py,sha256=7bo7HP5vfNg1ZrSEH3p8Pc45UswuTkGuk46dF3o-p_k,10036
16
- datamule/downloader/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- datamule/downloader/dropbox_downloader.py,sha256=hMTz712smo_JeNsDMaI3Vu9lYcYq4F6eNclvFeKrQAU,8202
18
- datamule/downloader/ftd.py,sha256=vta7ejot1KRI-ntQ2YZTXUMxXiwMEH9GZtwvzeyKzJU,6583
19
- datamule/downloader/information_table_13f.py,sha256=IwrCOpali7-Qqcmh16-k6Tg14vE1c3rPQ2iSPJq2OFk,9242
20
- datamule/downloader/sec_downloader.py,sha256=olGZE7-tpGHwGzLluNrDstvDO03OfvwiB1fKehCsXw8,30462
21
- datamule/filing_viewer/__init__.py,sha256=9yUjDNmd-_HJkGASq7IT69UBoev14IvCLbwFLjP6G3s,69
22
- datamule/filing_viewer/filing_viewer.py,sha256=rGRI9yAT3V4zE3BHKNso49MLzR2EgPA5ZNTZEOLi7yk,8522
23
- datamule/mulebot/__init__.py,sha256=GM5cTnijSSLO9GXFdsCuz5B1iwGUcxDbpoBQ6zw1Odo,30
24
- datamule/mulebot/helper.py,sha256=Hzzr2HReHpFe2GfpVU79EXvQFx3oL9UiwkJp--Sd1N4,1114
25
- datamule/mulebot/mulebot.py,sha256=wN0Tv5fvarXgk1LRCcgPhj8Xgd8uYFn-cMucxTxRsEo,5966
26
- datamule/mulebot/search.py,sha256=kuuPaMp2z9U8GY2LCulmqC8VFlYOLXf3bfLaBETObb0,2124
27
- datamule/mulebot/tools.py,sha256=6giVRck3dgHmX0w9IvTe5I2FAiaBGTYuvwH6futDaes,3022
28
- datamule/mulebot/mulebot_server/__init__.py,sha256=x1QhXys7BWxi2g9_ZHUYA6S6rL3VL2718x4rYtGaaIg,33
29
- datamule/mulebot/mulebot_server/server.py,sha256=G9Pd0mGNWU04pHc73D8rIn7PWGjoApd3BBWn3CwXkHM,3633
30
- datamule/mulebot/mulebot_server/static/css/minimalist.css,sha256=0oGf8p1cJFLjPUfx95rH6tbtbeUFUbZ1DhmzYkak6ro,3147
31
- datamule/mulebot/mulebot_server/static/scripts/artifacts.js,sha256=jvcvjRioXwKx4dJwyIrVnD0sEpdHR13DrVwfWzgcXag,2325
32
- datamule/mulebot/mulebot_server/static/scripts/chat.js,sha256=i9HIPcOLTuhOwT6AIxLI5FLQhMHIaDfaFSBSJCpEIlg,3199
33
- datamule/mulebot/mulebot_server/static/scripts/filingArtifacts.js,sha256=yVDthXjmZ9cRSeu_9mRPf8JWAWeuwvRi5Hd9o_3Puek,2089
34
- datamule/mulebot/mulebot_server/static/scripts/listArtifacts.js,sha256=kZeRl6ztFnOd46xNbUXIvEKYbgFcxT4ABDDmataEVpg,443
35
- datamule/mulebot/mulebot_server/static/scripts/main.js,sha256=GXWqjzFozNhWdc2jgh0mplIGM_FUG4LR-A8DGN5yTgg,1938
36
- datamule/mulebot/mulebot_server/static/scripts/prefilledPrompt.js,sha256=qRbhF3MmwmIQAV-QYxw-SOMFuFSF2tH5oBen5OYX5hQ,1119
37
- datamule/mulebot/mulebot_server/static/scripts/suggestions.js,sha256=vqFoHG0z0YIhmA1w2X60biKRSWlkYkXcVuAmwbvsCaE,1841
38
- datamule/mulebot/mulebot_server/static/scripts/tableArtifacts.js,sha256=jelibkbM9YlrlU7_-kaVisMh8OjIKWZpJQ9_FiHV4OQ,4565
39
- datamule/mulebot/mulebot_server/static/scripts/utils.js,sha256=pOzsJ6bGxakN6G5qUvmkZd34u0GRHFxvH3pKpUmnhMc,1282
40
- datamule/mulebot/mulebot_server/templates/chat-minimalist.html,sha256=mm-LomSoNcJImsFwLpFWt3kIFnxUzIPmUZ1Dt5BFN0s,7065
41
- datamule/parser/__init__.py,sha256=cBUylBtwsQROlCT26LTIcHrZREA8cytkWVGLdkDaZdY,43
42
- datamule/parser/basic_10k_parser.py,sha256=z1ZP8L8ZOfcpo6S3jmS3aQvefOurqS4u6oy9bh1UBHA,3137
43
- datamule/parser/basic_10q_parser.py,sha256=kZWGljvC0TYLh4eWl4JQyl4XYto8X6NN6YIW-_iffqA,2695
44
- datamule/parser/basic_13d_parser.py,sha256=1nxBi9KFJuzw7CeEXpJFDzYVUd6rj4eCYiKHsGjK2b4,1585
45
- datamule/parser/basic_13g_parser.py,sha256=H9_MuOgkYVTIGwhj9w_WIpfMDdgakE_qs0Y3fvaUj_E,1691
46
- datamule/parser/basic_8k_parser.py,sha256=fzf8q9LOpBMHGWw-sfqUq3pyFZBlw47nLJBQWPhtGGg,2549
47
- datamule/parser/company_concepts_parser.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- datamule/parser/form_d_parser.py,sha256=NTAfC8W3i2y7aIofXoLlAbY-4F6QVELYfIPIrVErjVY,2105
49
- datamule/parser/generalized_item_parser.py,sha256=M2bmYivSXe0POyBtDlPMykyyCgG8n1egRpJuZtZTR_g,2694
50
- datamule/parser/generalized_xml_parser.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- datamule/parser/helper.py,sha256=gIDmm5FUhWBLc9LnJ1EJL42RjfrYbrqq6QvTNZVuAJU,2628
52
- datamule/parser/information_table_parser_13fhr.py,sha256=vCIEqxOoBf1lnOKTJAifnPEXihtSPZcwRFW8yWhEZLc,1808
53
- datamule/parser/insider_trading_parser.py,sha256=IrH5a3qikPjC1GFoYzapfYW_CArbK0FkbJLbWSfsYNQ,7264
54
- datamule/parser/mappings.py,sha256=dq6EjaxxDHjH-sg62adRwJOf1v736QiLwXavOHs2vy8,5380
55
- datamule/parser/n_port_p_parser.py,sha256=T6GliMm-TETPsFM-hDKt1BkMnSenvDeThj50RsIip50,2293
56
- datamule/parser/sec_parser.py,sha256=0f-hPNcL_LsjJchJ5TgYlS76IFKNQ8ZetOzAMTTeWvw,3061
57
- datamule/parser/sgml_parser.py,sha256=vw0kLDmH_prokBuKfZ9PkFmp-oV82ZzFpEEBJM1RrFI,6575
58
- datamule-0.381.dist-info/METADATA,sha256=hOEoOOqzP3QlWzONwUj4yr6RG6sQnMfjThcktgBG3W8,5597
59
- datamule-0.381.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
60
- datamule-0.381.dist-info/top_level.txt,sha256=iOfgmtSMFVyr7JGl_bYSTDry79JbmsG4p8zKq89ktKk,9
61
- datamule-0.381.dist-info/RECORD,,
File without changes