datamule 0.415__cp39-cp39-macosx_10_9_universal2.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 datamule might be problematic. Click here for more details.

Files changed (37) hide show
  1. datamule/__init__.py +62 -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/helper.py +123 -0
  10. datamule/monitor.py +236 -0
  11. datamule/mulebot/__init__.py +1 -0
  12. datamule/mulebot/helper.py +35 -0
  13. datamule/mulebot/mulebot.py +130 -0
  14. datamule/mulebot/mulebot_server/__init__.py +1 -0
  15. datamule/mulebot/mulebot_server/server.py +87 -0
  16. datamule/mulebot/mulebot_server/static/css/minimalist.css +174 -0
  17. datamule/mulebot/mulebot_server/static/scripts/artifacts.js +68 -0
  18. datamule/mulebot/mulebot_server/static/scripts/chat.js +92 -0
  19. datamule/mulebot/mulebot_server/static/scripts/filingArtifacts.js +56 -0
  20. datamule/mulebot/mulebot_server/static/scripts/listArtifacts.js +15 -0
  21. datamule/mulebot/mulebot_server/static/scripts/main.js +57 -0
  22. datamule/mulebot/mulebot_server/static/scripts/prefilledPrompt.js +27 -0
  23. datamule/mulebot/mulebot_server/static/scripts/suggestions.js +47 -0
  24. datamule/mulebot/mulebot_server/static/scripts/tableArtifacts.js +129 -0
  25. datamule/mulebot/mulebot_server/static/scripts/utils.js +28 -0
  26. datamule/mulebot/mulebot_server/templates/chat-minimalist.html +91 -0
  27. datamule/mulebot/search.py +52 -0
  28. datamule/mulebot/tools.py +82 -0
  29. datamule/packageupdater.py +207 -0
  30. datamule/parser/sgml_parsing/sgml_parser_cy.c +19082 -0
  31. datamule/parser/sgml_parsing/sgml_parser_cy.cpython-39-darwin.so +0 -0
  32. datamule/portfolio.py +16 -0
  33. datamule/submission.py +61 -0
  34. datamule-0.415.dist-info/METADATA +36 -0
  35. datamule-0.415.dist-info/RECORD +37 -0
  36. datamule-0.415.dist-info/WHEEL +5 -0
  37. datamule-0.415.dist-info/top_level.txt +1 -0
datamule/portfolio.py ADDED
@@ -0,0 +1,16 @@
1
+ from pathlib import Path
2
+ from .submission import Submission
3
+
4
+ class Portfolio:
5
+ def __init__(self, path):
6
+ self.path = Path(path)
7
+ self.submissions = []
8
+
9
+ # Load all subdirectories as submissions
10
+ for folder in self.path.iterdir():
11
+ if folder.is_dir():
12
+ self.submissions.append(Submission(folder))
13
+
14
+
15
+ def __iter__(self):
16
+ return iter(self.submissions)
datamule/submission.py ADDED
@@ -0,0 +1,61 @@
1
+ from pathlib import Path
2
+ import json
3
+ from .document import Document
4
+
5
+ class Submission:
6
+ def __init__(self, path):
7
+ self.path = Path(path)
8
+ self._load_metadata()
9
+
10
+ def _load_metadata(self):
11
+ metadata_path = self.path / 'metadata.json'
12
+ with metadata_path.open('r') as f:
13
+ self.metadata = json.load(f)
14
+
15
+ def keep(self, document_types):
16
+ """Keep files of specified document types, delete others
17
+ Args:
18
+ document_types: string or list of strings representing document types to keep
19
+ """
20
+ # Convert single string to list for consistent handling
21
+ if isinstance(document_types, str):
22
+ document_types = [document_types]
23
+
24
+ for doc in self.metadata['documents']:
25
+ filename = doc.get('FILENAME')
26
+ if filename is None:
27
+ continue
28
+
29
+ filepath = self.path / filename
30
+ # Delete if document type isn't in our keep list
31
+ if doc['TYPE'] not in document_types and filepath.exists():
32
+ filepath.unlink()
33
+
34
+ def drop(self, document_types):
35
+ """Delete files of specified document types, keep others
36
+ Args:
37
+ document_types: string or list of strings representing document types to drop
38
+ """
39
+ # Convert single string to list for consistent handling
40
+ if isinstance(document_types, str):
41
+ document_types = [document_types]
42
+
43
+ for doc in self.metadata['documents']:
44
+ filename = doc.get('FILENAME')
45
+ if filename is None:
46
+ continue
47
+
48
+ filepath = self.path / filename
49
+ # Delete if document type is in our drop list
50
+ if doc['TYPE'] in document_types and filepath.exists():
51
+ filepath.unlink()
52
+
53
+ def document_type(self, document_type):
54
+ for doc in self.metadata['documents']:
55
+ if doc['TYPE'] == document_type:
56
+ filename = doc.get('FILENAME')
57
+ if filename is None:
58
+ continue
59
+
60
+ document_path = self.path / filename
61
+ yield Document(doc['TYPE'], document_path)
@@ -0,0 +1,36 @@
1
+ Metadata-Version: 2.1
2
+ Name: datamule
3
+ Version: 0.415
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: UNKNOWN
8
+ Platform: UNKNOWN
9
+ Requires-Dist: aiohttp
10
+ Requires-Dist: aiolimiter
11
+ Requires-Dist: tqdm
12
+ Requires-Dist: requests
13
+ Requires-Dist: nest-asyncio
14
+ Requires-Dist: aiofiles
15
+ Requires-Dist: polars
16
+ Requires-Dist: setuptools
17
+ Requires-Dist: selectolax
18
+ Requires-Dist: pytz
19
+ Requires-Dist: zstandard
20
+ Provides-Extra: all
21
+ Requires-Dist: pandas; extra == "all"
22
+ Requires-Dist: google-generativeai; extra == "all"
23
+ Requires-Dist: flask; extra == "all"
24
+ Requires-Dist: psutil; extra == "all"
25
+ Requires-Dist: openai; extra == "all"
26
+ Provides-Extra: dataset_builder
27
+ Requires-Dist: pandas; extra == "dataset-builder"
28
+ Requires-Dist: google-generativeai; extra == "dataset-builder"
29
+ Requires-Dist: psutil; extra == "dataset-builder"
30
+ Provides-Extra: mulebot
31
+ Requires-Dist: openai; extra == "mulebot"
32
+ Provides-Extra: mulebot_server
33
+ Requires-Dist: flask; extra == "mulebot-server"
34
+
35
+ UNKNOWN
36
+
@@ -0,0 +1,37 @@
1
+ datamule/__init__.py,sha256=8zx1hqAJeTxqmJ43zjJpJl8SRIRBx1zj8RNrsvYrQhE,1972
2
+ datamule/document.py,sha256=Yn8UqUjKwYPE29MrMjreHK_HY9eTqOSjPyM5B1VBrHQ,5144
3
+ datamule/helper.py,sha256=tr3AQWus9dHNZFKpLSglWjcb8zmm5qDXjOWACMhvMxQ,4594
4
+ datamule/monitor.py,sha256=mRaM8v5NgcMF9DJ1s_YBzucjrbr-3yFwW422MVml-_Q,9114
5
+ datamule/packageupdater.py,sha256=rw4hTnQGjZttee8QmTadg9vlhEjVp_dwdSFv8uQNvss,9584
6
+ datamule/portfolio.py,sha256=piKibT_xZ9vZDpep1xS69eQceRrdq8FKqeRDf_-aQ38,425
7
+ datamule/submission.py,sha256=aTpXH79vgVXzvpja6Kax-RdtyXiR7S9BwwkpMFmq7rA,2274
8
+ datamule/data/company_former_names.csv,sha256=HE9cAv-_QKFX6jT-_-D0rHmaDyQuAzL4MJwank5O1U8,706380
9
+ datamule/data/company_metadata.csv,sha256=yPovrCVjYwLWTU_hBUFJymp8iNO0NBYuq_QwOkRLoN8,3068599
10
+ datamule/data/company_tickers.csv,sha256=GW6lOP54RiGJCx-d9N5jEBy7tGVgU3zI-5xHJXrZfSI,400363
11
+ datamule/data/sec-glossary.csv,sha256=-cN7GjiadLw5C1sv4zSeCnfeZZDYeSgJl-0ydarMAo0,251209
12
+ datamule/data/xbrl_descriptions.csv,sha256=SQ9wUURNqG424rnTiZtopsxV2q-PvU4NMj52LqgDsvg,2621524
13
+ datamule/dataset_builder/dataset_builder.py,sha256=NCvNbDwlEkA_eAbqbsG--YlqPBDREFTVSM1GJquR0RE,9747
14
+ datamule/mulebot/__init__.py,sha256=YvZXV6xQ0iP-oGD8rloufjdwJL6D46P3NNr0CY9PQCA,29
15
+ datamule/mulebot/helper.py,sha256=olztOwltfELZ-IERM2bRNLBavD04kfB6ueWTisJAleA,1080
16
+ datamule/mulebot/mulebot.py,sha256=XbtgvXBSFu9OaaLW_k1KDgHVTNQGV8_0ZwNMFad-pPU,5837
17
+ datamule/mulebot/search.py,sha256=mwvbB6Fex5dEQkfxkCL53ne5pXdVno-5KlZ5vZyGnJQ,2073
18
+ datamule/mulebot/tools.py,sha256=ctnGc2HItR-Roi-QXkc7GEaAOEYQiFRtfmdmIxNxYXk,2940
19
+ datamule/mulebot/mulebot_server/__init__.py,sha256=x1QhXys7BWxi2g9_ZHUYA6S6rL3VL2718x4rYtGaaIg,33
20
+ datamule/mulebot/mulebot_server/server.py,sha256=M7kU4aZUoi8X8DUKZNckLewBiI637Krbeap31qD2jt8,3547
21
+ datamule/mulebot/mulebot_server/static/css/minimalist.css,sha256=Tz1tz8oF_esbfCvLTJBmTfb-5MIiqjfhU_4A4nto1mo,2974
22
+ datamule/mulebot/mulebot_server/static/scripts/artifacts.js,sha256=WUAoI3LtEBEt3x-Ri0gwd6YT0JtGNwDZ_b8tuhWWSsg,2258
23
+ datamule/mulebot/mulebot_server/static/scripts/chat.js,sha256=q8vV_KtzuNCXCfXqavM1HROIkYHItOAmaR8P1OjSqa0,3108
24
+ datamule/mulebot/mulebot_server/static/scripts/filingArtifacts.js,sha256=wxeIM2RzF6Zh_9ivnYuNyTzIgIcEz0-zX8gTCvyACJo,2034
25
+ datamule/mulebot/mulebot_server/static/scripts/listArtifacts.js,sha256=DZFLe-45mmzWvJPO1be5Ivfqx0BInrXfduQ1IhbHWzk,429
26
+ datamule/mulebot/mulebot_server/static/scripts/main.js,sha256=NEIVih1WJeQ-qo5k8hnmgFHd7N839Mr6hJur856oXVQ,1882
27
+ datamule/mulebot/mulebot_server/static/scripts/prefilledPrompt.js,sha256=mGhAXQnjnSxYqVqg1mE5g_ev0-aDhh849xunQtRchnY,1093
28
+ datamule/mulebot/mulebot_server/static/scripts/suggestions.js,sha256=TCyz8OYuXeIG9qNRgwU2fhz18YNXpy4Bl9mk66lXefo,1795
29
+ datamule/mulebot/mulebot_server/static/scripts/tableArtifacts.js,sha256=UtkUpLvELNI4Ibpb7VstgVA9Tk-8jbkxXhmXsgufFa4,4437
30
+ datamule/mulebot/mulebot_server/static/scripts/utils.js,sha256=oGPMtyT9dvuqHqrfZj33t4vLZiF8UJrMXB1hpPXRNu4,1255
31
+ datamule/mulebot/mulebot_server/templates/chat-minimalist.html,sha256=MsTbgpnLD0JCQiKKP3XeeNJRNsRqKsRa1j_XXW7nBKw,6975
32
+ datamule/parser/sgml_parsing/sgml_parser_cy.c,sha256=UwXSuLGSBLKfO5bM7xTzjFLnGDV3-NNnCjgUCPAY1gk,796689
33
+ datamule/parser/sgml_parsing/sgml_parser_cy.cpython-39-darwin.so,sha256=iHMgFC3SaB8jttskCj-7xvVZxk7D_Aq4A-hrsiAY0dc,362392
34
+ datamule-0.415.dist-info/METADATA,sha256=UhfdwTuFt8AnoUVaA6lvfw6Jt_9vYsYIfh903yiaOCI,1051
35
+ datamule-0.415.dist-info/WHEEL,sha256=Kpi8Y7ETJ76qV_mhWFgtod7iK9qT4KSd2dlvMqnPXEY,113
36
+ datamule-0.415.dist-info/top_level.txt,sha256=iOfgmtSMFVyr7JGl_bYSTDry79JbmsG4p8zKq89ktKk,9
37
+ datamule-0.415.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.45.1)
3
+ Root-Is-Purelib: false
4
+ Tag: cp39-cp39-macosx_10_9_universal2
5
+
@@ -0,0 +1 @@
1
+ datamule