datamule 2.0.7__tar.gz → 2.0.8__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 (60) hide show
  1. {datamule-2.0.7 → datamule-2.0.8}/PKG-INFO +1 -1
  2. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/document.py +2 -2
  3. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/tables/tables.py +10 -9
  4. {datamule-2.0.7 → datamule-2.0.8}/datamule.egg-info/PKG-INFO +1 -1
  5. {datamule-2.0.7 → datamule-2.0.8}/setup.py +1 -1
  6. {datamule-2.0.7 → datamule-2.0.8}/datamule/__init__.py +0 -0
  7. {datamule-2.0.7 → datamule-2.0.8}/datamule/config.py +0 -0
  8. {datamule-2.0.7 → datamule-2.0.8}/datamule/data/listed_filer_metadata.csv +0 -0
  9. {datamule-2.0.7 → datamule-2.0.8}/datamule/datamule/__init__.py +0 -0
  10. {datamule-2.0.7 → datamule-2.0.8}/datamule/datamule/datamule_lookup.py +0 -0
  11. {datamule-2.0.7 → datamule-2.0.8}/datamule/datamule/datamule_mysql_rds.py +0 -0
  12. {datamule-2.0.7 → datamule-2.0.8}/datamule/datamule/downloader.py +0 -0
  13. {datamule-2.0.7 → datamule-2.0.8}/datamule/datamule/sec_connector.py +0 -0
  14. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/__init__.py +0 -0
  15. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/tables/__init__.py +0 -0
  16. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/tables/tables_13fhr.py +0 -0
  17. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/tables/tables_25nse.py +0 -0
  18. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/tables/tables_informationtable.py +0 -0
  19. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/tables/tables_npx.py +0 -0
  20. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/tables/tables_ownership.py +0 -0
  21. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/tables/tables_proxyvotingrecord.py +0 -0
  22. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/tables/tables_sbsef.py +0 -0
  23. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/tables/tables_sdr.py +0 -0
  24. {datamule-2.0.7 → datamule-2.0.8}/datamule/document/tables/utils.py +0 -0
  25. {datamule-2.0.7 → datamule-2.0.8}/datamule/helper.py +0 -0
  26. {datamule-2.0.7 → datamule-2.0.8}/datamule/index.py +0 -0
  27. {datamule-2.0.7 → datamule-2.0.8}/datamule/mapping_dicts/__init__.py +0 -0
  28. {datamule-2.0.7 → datamule-2.0.8}/datamule/mapping_dicts/html_mapping_dicts.py +0 -0
  29. {datamule-2.0.7 → datamule-2.0.8}/datamule/mapping_dicts/txt_mapping_dicts.py +0 -0
  30. {datamule-2.0.7 → datamule-2.0.8}/datamule/mapping_dicts/xml_mapping_dicts.py +0 -0
  31. {datamule-2.0.7 → datamule-2.0.8}/datamule/package_updater.py +0 -0
  32. {datamule-2.0.7 → datamule-2.0.8}/datamule/portfolio.py +0 -0
  33. {datamule-2.0.7 → datamule-2.0.8}/datamule/portfolio_compression_utils.py +0 -0
  34. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/__init__.py +0 -0
  35. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/infrastructure/__init__.py +0 -0
  36. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/infrastructure/submissions_metadata.py +0 -0
  37. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/submissions/__init__.py +0 -0
  38. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/submissions/downloader.py +0 -0
  39. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/submissions/eftsquery.py +0 -0
  40. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/submissions/monitor.py +0 -0
  41. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/submissions/streamer.py +0 -0
  42. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/submissions/textsearch.py +0 -0
  43. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/utils.py +0 -0
  44. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/xbrl/__init__.py +0 -0
  45. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/xbrl/downloadcompanyfacts.py +0 -0
  46. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/xbrl/filter_xbrl.py +0 -0
  47. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/xbrl/streamcompanyfacts.py +0 -0
  48. {datamule-2.0.7 → datamule-2.0.8}/datamule/sec/xbrl/xbrlmonitor.py +0 -0
  49. {datamule-2.0.7 → datamule-2.0.8}/datamule/seclibrary/__init__.py +0 -0
  50. {datamule-2.0.7 → datamule-2.0.8}/datamule/seclibrary/bq.py +0 -0
  51. {datamule-2.0.7 → datamule-2.0.8}/datamule/sheet.py +0 -0
  52. {datamule-2.0.7 → datamule-2.0.8}/datamule/submission.py +0 -0
  53. {datamule-2.0.7 → datamule-2.0.8}/datamule/utils/__init__.py +0 -0
  54. {datamule-2.0.7 → datamule-2.0.8}/datamule/utils/construct_submissions_data.py +0 -0
  55. {datamule-2.0.7 → datamule-2.0.8}/datamule/utils/format_accession.py +0 -0
  56. {datamule-2.0.7 → datamule-2.0.8}/datamule.egg-info/SOURCES.txt +0 -0
  57. {datamule-2.0.7 → datamule-2.0.8}/datamule.egg-info/dependency_links.txt +0 -0
  58. {datamule-2.0.7 → datamule-2.0.8}/datamule.egg-info/requires.txt +0 -0
  59. {datamule-2.0.7 → datamule-2.0.8}/datamule.egg-info/top_level.txt +0 -0
  60. {datamule-2.0.7 → datamule-2.0.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datamule
3
- Version: 2.0.7
3
+ Version: 2.0.8
4
4
  Summary: Work with SEC submissions at scale.
5
5
  Home-page: https://github.com/john-friedman/datamule-python
6
6
  Author: John Friedman
@@ -231,13 +231,13 @@ class Document:
231
231
  with open(output_filename, 'w',encoding='utf-8') as f:
232
232
  json.dump(self.data, f, indent=2)
233
233
 
234
- def parse_tables(self):
234
+ def parse_tables(self,must_exist_in_mapping=True):
235
235
  if self.extension != '.xml':
236
236
  self._tables = []
237
237
  else:
238
238
  # Use the property to trigger parsing if needed
239
239
  data = self.data
240
- tables = Tables(document_type = self.type, accession=self.accession, data=data)
240
+ tables = Tables(document_type = self.type, accession=self.accession, data=data,must_exist_in_mapping=must_exist_in_mapping)
241
241
  self._tables = tables.tables
242
242
 
243
243
  @property
@@ -64,14 +64,14 @@ def seperate_data(tables_dict, data):
64
64
 
65
65
  return data_list
66
66
 
67
- def apply_mapping(flattened_data, mapping_dict, accession):
67
+ def apply_mapping(flattened_data, mapping_dict, accession, must_exist_in_mapping=False):
68
68
  """Apply mapping to flattened data and add accession"""
69
69
 
70
70
  # Handle case where flattened_data is a list of dictionaries
71
71
  if isinstance(flattened_data, list):
72
72
  results = []
73
73
  for data_dict in flattened_data:
74
- results.append(apply_mapping(data_dict, mapping_dict, accession))
74
+ results.extend(apply_mapping(data_dict, mapping_dict, accession,must_exist_in_mapping))
75
75
  return results
76
76
 
77
77
  # Original logic for single dictionary
@@ -85,10 +85,11 @@ def apply_mapping(flattened_data, mapping_dict, accession):
85
85
  ordered_row[new_key] = None
86
86
 
87
87
  # Add any remaining keys that weren't in the mapping
88
- for key, value in flattened_data.items():
89
- ordered_row[key] = value
88
+ if not must_exist_in_mapping:
89
+ for key, value in flattened_data.items():
90
+ ordered_row[key] = value
90
91
 
91
- return ordered_row
92
+ return [ordered_row]
92
93
 
93
94
  # should have table type, accession, data
94
95
  class Table:
@@ -99,7 +100,7 @@ class Table:
99
100
 
100
101
 
101
102
  class Tables():
102
- def __init__(self,document_type,accession,data):
103
+ def __init__(self,document_type,accession,data,must_exist_in_mapping=True):
103
104
  self.document_type = document_type
104
105
  self.accession = accession
105
106
  self.data = data
@@ -107,9 +108,9 @@ class Tables():
107
108
  # to fill in
108
109
  self.tables = []
109
110
 
110
- self.parse_tables()
111
+ self.parse_tables(must_exist_in_mapping=must_exist_in_mapping)
111
112
 
112
- def parse_tables(self):
113
+ def parse_tables(self,must_exist_in_mapping=True):
113
114
  # first select dict
114
115
 
115
116
  try:
@@ -125,5 +126,5 @@ class Tables():
125
126
 
126
127
  for table_name, flattened_data in data_dicts:
127
128
  mapping_dict = tables_dict[table_name]['mapping']
128
- mapped_data = apply_mapping(flattened_data, mapping_dict, self.accession)
129
+ mapped_data = apply_mapping(flattened_data, mapping_dict, self.accession,must_exist_in_mapping)
129
130
  self.tables.append(Table(mapped_data, table_name, self.accession))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datamule
3
- Version: 2.0.7
3
+ Version: 2.0.8
4
4
  Summary: Work with SEC submissions at scale.
5
5
  Home-page: https://github.com/john-friedman/datamule-python
6
6
  Author: John Friedman
@@ -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.0.7",
35
+ version="2.0.8",
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