datamule 2.3.6__tar.gz → 2.3.7__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.
Potentially problematic release.
This version of datamule might be problematic. Click here for more details.
- {datamule-2.3.6 → datamule-2.3.7}/PKG-INFO +1 -1
- {datamule-2.3.6 → datamule-2.3.7}/datamule/submission/submission.py +13 -6
- {datamule-2.3.6 → datamule-2.3.7}/datamule.egg-info/PKG-INFO +1 -1
- {datamule-2.3.6 → datamule-2.3.7}/setup.py +1 -1
- {datamule-2.3.6 → datamule-2.3.7}/datamule/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/book/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/book/book.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/book/s3transfer.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/cloud/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/config.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/data/listed_filer_metadata.csv +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/datamule/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/datamule/datamule_lookup.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/datamule/datamule_mysql_rds.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/datamule/downloader.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/datamule/sec_connector.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/datasets.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/document/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/document/document.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/helper.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/index.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/mapping_dicts/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/mapping_dicts/html_mapping_dicts.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/mapping_dicts/txt_mapping_dicts.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/mapping_dicts/xml_mapping_dicts.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/package_updater.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/portfolio/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/portfolio/portfolio.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/portfolio/portfolio_compression_utils_legacy.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/infrastructure/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/infrastructure/submissions_metadata.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/submissions/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/submissions/downloader.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/submissions/eftsquery.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/submissions/monitor.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/submissions/streamer.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/submissions/textsearch.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/utils.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/xbrl/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/xbrl/downloadcompanyfacts.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/xbrl/filter_xbrl.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/xbrl/streamcompanyfacts.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sec/xbrl/xbrlmonitor.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/seclibrary/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/seclibrary/bq.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sheet/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/sheet/sheet.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/submission/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/submission/tar_submission.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tables/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tables/tables.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tables/tables_13fhr.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tables/tables_25nse.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tables/tables_informationtable.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tables/tables_npx.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tables/tables_ownership.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tables/tables_proxyvotingrecord.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tables/tables_sbsef.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tables/tables_sdr.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tables/utils.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tags/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tags/config.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tags/dictionaries.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tags/regex.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/tags/utils.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/utils/__init__.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/utils/construct_submissions_data.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/utils/format_accession.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule/utils/pdf.py +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule.egg-info/SOURCES.txt +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule.egg-info/dependency_links.txt +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule.egg-info/requires.txt +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/datamule.egg-info/top_level.txt +0 -0
- {datamule-2.3.6 → datamule-2.3.7}/setup.cfg +0 -0
|
@@ -6,8 +6,6 @@ from secsgml.parse_sgml import transform_metadata_string
|
|
|
6
6
|
from secsgml.utils import bytes_to_str
|
|
7
7
|
from ..sec.utils import headers
|
|
8
8
|
import tarfile
|
|
9
|
-
import zstandard as zstd
|
|
10
|
-
import gzip
|
|
11
9
|
import urllib.request
|
|
12
10
|
from secxbrl import parse_inline_xbrl
|
|
13
11
|
from company_fundamentals import construct_fundamentals
|
|
@@ -22,10 +20,19 @@ class FundamentalsAccessor:
|
|
|
22
20
|
self._cache = {}
|
|
23
21
|
self._all_data = None
|
|
24
22
|
|
|
25
|
-
def __getattr__(self,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
def __getattr__(self, name):
|
|
24
|
+
# Try as category first
|
|
25
|
+
try:
|
|
26
|
+
if name not in self._cache:
|
|
27
|
+
result = self.submission.parse_fundamentals(categories=[name])
|
|
28
|
+
if result: # Only cache if we got actual data
|
|
29
|
+
self._cache[name] = result
|
|
30
|
+
return result
|
|
31
|
+
except:
|
|
32
|
+
pass
|
|
33
|
+
|
|
34
|
+
# Fall back to dict behavior
|
|
35
|
+
return getattr(self._get_all_data(), name)
|
|
29
36
|
|
|
30
37
|
def _get_all_data(self):
|
|
31
38
|
if self._all_data is None:
|
|
@@ -32,7 +32,7 @@ if not os.path.exists(file_path):
|
|
|
32
32
|
setup(
|
|
33
33
|
name="datamule",
|
|
34
34
|
author="John Friedman",
|
|
35
|
-
version="2.3.
|
|
35
|
+
version="2.3.7",
|
|
36
36
|
description="Work with SEC submissions at scale.",
|
|
37
37
|
packages=find_packages(include=['datamule', 'datamule.*']),
|
|
38
38
|
url="https://github.com/john-friedman/datamule-python",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|