datamule 1.2.8__tar.gz → 1.2.9__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 (66) hide show
  1. {datamule-1.2.8 → datamule-1.2.9}/PKG-INFO +1 -1
  2. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/d.py +50 -52
  3. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/processing.py +13 -5
  4. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/table.py +4 -4
  5. {datamule-1.2.8 → datamule-1.2.9}/datamule.egg-info/PKG-INFO +1 -1
  6. {datamule-1.2.8 → datamule-1.2.9}/setup.py +1 -1
  7. {datamule-1.2.8 → datamule-1.2.9}/datamule/__init__.py +0 -0
  8. {datamule-1.2.8 → datamule-1.2.9}/datamule/config.py +0 -0
  9. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/__init__.py +0 -0
  10. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/document.py +0 -0
  11. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/__init__.py +0 -0
  12. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/atsn.py +0 -0
  13. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/cfportal.py +0 -0
  14. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/ex102_abs.py +0 -0
  15. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/ex99a_sdr.py +0 -0
  16. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/ex99c_sdr.py +0 -0
  17. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/ex99g_sdr.py +0 -0
  18. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/ex99i_sdr.py +0 -0
  19. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/information_table.py +0 -0
  20. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/nmfp.py +0 -0
  21. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/npx.py +0 -0
  22. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/onefourtyfour.py +0 -0
  23. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/ownership.py +0 -0
  24. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/proxy_voting_record.py +0 -0
  25. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/sbs.py +0 -0
  26. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/sbsef.py +0 -0
  27. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/schedule13.py +0 -0
  28. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/sdr.py +0 -0
  29. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/submission_metadata.py +0 -0
  30. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/ta.py +0 -0
  31. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/thirteenfhr.py +0 -0
  32. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/twentyfivense.py +0 -0
  33. {datamule-1.2.8 → datamule-1.2.9}/datamule/document/mappings/twentyfourf2nt.py +0 -0
  34. {datamule-1.2.8 → datamule-1.2.9}/datamule/helper.py +0 -0
  35. {datamule-1.2.8 → datamule-1.2.9}/datamule/index.py +0 -0
  36. {datamule-1.2.8 → datamule-1.2.9}/datamule/mapping_dicts/__init__.py +0 -0
  37. {datamule-1.2.8 → datamule-1.2.9}/datamule/mapping_dicts/txt_mapping_dicts.py +0 -0
  38. {datamule-1.2.8 → datamule-1.2.9}/datamule/mapping_dicts/xml_mapping_dicts.py +0 -0
  39. {datamule-1.2.8 → datamule-1.2.9}/datamule/package_updater.py +0 -0
  40. {datamule-1.2.8 → datamule-1.2.9}/datamule/portfolio.py +0 -0
  41. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/__init__.py +0 -0
  42. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/infrastructure/__init__.py +0 -0
  43. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/infrastructure/submissions_metadata.py +0 -0
  44. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/submissions/__init__.py +0 -0
  45. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/submissions/downloader.py +0 -0
  46. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/submissions/eftsquery.py +0 -0
  47. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/submissions/monitor.py +0 -0
  48. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/submissions/streamer.py +0 -0
  49. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/submissions/textsearch.py +0 -0
  50. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/utils.py +0 -0
  51. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/xbrl/__init__.py +0 -0
  52. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/xbrl/downloadcompanyfacts.py +0 -0
  53. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/xbrl/filter_xbrl.py +0 -0
  54. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/xbrl/streamcompanyfacts.py +0 -0
  55. {datamule-1.2.8 → datamule-1.2.9}/datamule/sec/xbrl/xbrlmonitor.py +0 -0
  56. {datamule-1.2.8 → datamule-1.2.9}/datamule/seclibrary/__init__.py +0 -0
  57. {datamule-1.2.8 → datamule-1.2.9}/datamule/seclibrary/bq.py +0 -0
  58. {datamule-1.2.8 → datamule-1.2.9}/datamule/seclibrary/downloader.py +0 -0
  59. {datamule-1.2.8 → datamule-1.2.9}/datamule/seclibrary/query.py +0 -0
  60. {datamule-1.2.8 → datamule-1.2.9}/datamule/sheet.py +0 -0
  61. {datamule-1.2.8 → datamule-1.2.9}/datamule/submission.py +0 -0
  62. {datamule-1.2.8 → datamule-1.2.9}/datamule.egg-info/SOURCES.txt +0 -0
  63. {datamule-1.2.8 → datamule-1.2.9}/datamule.egg-info/dependency_links.txt +0 -0
  64. {datamule-1.2.8 → datamule-1.2.9}/datamule.egg-info/requires.txt +0 -0
  65. {datamule-1.2.8 → datamule-1.2.9}/datamule.egg-info/top_level.txt +0 -0
  66. {datamule-1.2.8 → datamule-1.2.9}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datamule
3
- Version: 1.2.8
3
+ Version: 1.2.9
4
4
  Summary: Making it easier to use SEC filings.
5
5
  Home-page: https://github.com/john-friedman/datamule-python
6
6
  Author: John Friedman
@@ -10,7 +10,7 @@ issuer_list_d_dict = {
10
10
  'issuer_entityType': 'entityType',
11
11
  'issuer_issuerAddress_street2': 'issuerStreet2',
12
12
  'issuer_entityName': 'entityName',
13
- 'accession': 'accessionNumber',
13
+ 'accession': 'accession',
14
14
  'issuer_edgarPreviousNameList_value': 'edgarPreviousNameListValue',
15
15
  'issuer_entityTypeOtherDesc': 'entityTypeOtherDesc',
16
16
  'issuer_yearOfInc_yetToBeFormed': 'yearOfIncYetToBeFormed',
@@ -26,66 +26,64 @@ metadata_d_dict = {
26
26
  "submissionType" : "submissionType",
27
27
  }
28
28
  offering_data_d_dict = {
29
- 'salesCompensationList_recipient': 'salesCompensationRecipient',
30
- 'useOfProceeds_clarificationOfResponse': 'useOfProceedsClarification',
31
- 'industryGroup_investmentFundInfo_investmentFundType': 'investmentFundType',
32
- 'typeOfFiling_newOrAmendment_isAmendment': 'isAmendment',
33
- 'salesCompensationList_recipient_recipientAddress_stateOrCountryDescription': 'recipientStateOrCountryDescription',
34
- 'signatureBlock_signature_signatureName': 'signatureName',
35
- 'federalExemptionsExclusions_item': 'federalExemptionsItem',
36
- 'salesCommissionsFindersFees_findersFees_isEstimate': 'findersFeesIsEstimate',
37
- 'salesCommissionsFindersFees_salesCommissions_dollarAmount': 'salesCommissionsDollarAmount',
38
- 'salesCompensationList_recipient_recipientName': 'recipientName',
39
- 'salesCommissionsFindersFees_salesCommissions_isEstimate': 'salesCommissionsIsEstimate',
29
+ 'salesCompensationList_recipient_foreignSolicitation': 'foreignSolicitation',
30
+ 'typeOfFiling_dateOfFirstSale_yetToOccur': 'dateOfFirstSaleYetToOccur',
31
+ 'industryGroup_investmentFundInfo_is40Act': 'is40Act',
32
+ 'salesCommissionsFindersFees_findersFees_dollarAmount': 'findersFeesAmount',
40
33
  'offeringSalesAmounts_totalRemaining': 'totalRemaining',
41
- 'salesCommissionsFindersFees_clarificationOfResponse': 'salesCommissionsClarification',
42
- 'salesCompensationList_recipient_statesOfSolicitationList_value': 'recipientStatesOfSolicitationValue',
43
- 'investors_numberNonAccreditedInvestors': 'numberNonAccreditedInvestors',
44
- 'typesOfSecuritiesOffered_isTenantInCommonType': 'isTenantInCommonType',
45
- 'businessCombinationTransaction_isBusinessCombinationTransaction': 'isBusinessCombinationTransaction',
46
- 'typesOfSecuritiesOffered_isSecurityToBeAcquiredType': 'isSecurityToBeAcquiredType',
47
34
  'issuerSize_aggregateNetAssetValueRange': 'aggregateNetAssetValueRange',
48
- 'typesOfSecuritiesOffered_isPooledInvestmentFundType': 'isPooledInvestmentFundType',
49
- 'offeringSalesAmounts_clarificationOfResponse': 'offeringSalesAmountsClarification',
35
+ 'typesOfSecuritiesOffered_isSecurityToBeAcquiredType': 'isSecurityToBeAcquiredType',
36
+ 'salesCompensationList_recipient_recipientAddress_stateOrCountryDescription': 'recipientStateOrCountryDescription',
37
+ 'typesOfSecuritiesOffered_isEquityType': 'isEquityType',
38
+ 'investors_totalNumberAlreadyInvested': 'totalNumberAlreadyInvested',
39
+ 'minimumInvestmentAccepted': 'minimumInvestmentAccepted',
40
+ 'salesCompensationList_recipient_associatedBDName': 'associatedBDName',
41
+ 'salesCompensationList_recipient_statesOfSolicitationList_state': 'statesOfSolicitationState',
42
+ 'businessCombinationTransaction_isBusinessCombinationTransaction': 'isBusinessCombinationTransaction',
43
+ 'useOfProceeds_grossProceedsUsed_isEstimate': 'grossProceedsUsedIsEstimate',
44
+ 'federalExemptionsExclusions_item': 'federalExemptionsExclusionsItem',
45
+ 'useOfProceeds_grossProceedsUsed_dollarAmount': 'grossProceedsUsedAmount',
46
+ 'industryGroup_industryGroupType': 'industryGroupType',
50
47
  'signatureBlock_signature_nameOfSigner': 'nameOfSigner',
51
- 'industryGroup_investmentFundInfo_is40Act': 'is40Act',
52
- 'salesCompensationList_recipient_recipientAddress_city': 'recipientCity',
53
- 'typeOfFiling_dateOfFirstSale_yetToOccur': 'dateOfFirstSaleYetToOccur',
54
- 'signatureBlock_signature': 'signature',
55
- 'salesCompensationList_recipient_foreignSolicitation': 'recipientForeignSolicitation',
56
- 'businessCombinationTransaction_clarificationOfResponse': 'businessCombinationClarification',
57
- 'salesCompensationList_recipient_associatedBDName': 'recipientAssociatedBDName',
58
- 'salesCompensationList_recipient_statesOfSolicitationList_state': 'recipientStatesOfSolicitationState',
59
- 'typeOfFiling_dateOfFirstSale_value': 'dateOfFirstSaleValue',
60
- 'signatureBlock_signature_signatureTitle': 'signatureTitle',
61
- 'signatureBlock_signature_issuerName': 'signatureIssuerName',
62
- 'durationOfOffering_moreThanOneYear': 'durationOfferingMoreThanOneYear',
63
- 'offeringSalesAmounts_totalAmountSold': 'totalAmountSold',
64
48
  'signatureBlock_signature_signatureDate': 'signatureDate',
49
+ 'salesCommissionsFindersFees_salesCommissions_isEstimate': 'salesCommissionsIsEstimate',
50
+ 'typesOfSecuritiesOffered_isOtherType': 'isOtherType',
51
+ 'salesCompensationList_recipient_associatedBDCRDNumber': 'associatedBDCRDNumber',
52
+ 'salesCompensationList_recipient_recipientAddress_stateOrCountry': 'recipientStateOrCountry',
53
+ 'typesOfSecuritiesOffered_descriptionOfOtherType': 'descriptionOfOtherType',
54
+ 'salesCommissionsFindersFees_salesCommissions_dollarAmount': 'salesCommissionsAmount',
55
+ 'useOfProceeds_clarificationOfResponse': 'useOfProceedsClarification',
56
+ 'accession': 'accession',
57
+ 'typesOfSecuritiesOffered_isPooledInvestmentFundType': 'isPooledInvestmentFundType',
58
+ 'salesCompensationList_recipient_statesOfSolicitationList_value': 'statesOfSolicitationValue',
59
+ 'signatureBlock_signature_signatureName': 'signatureName',
60
+ 'typeOfFiling_newOrAmendment_isAmendment': 'isAmendment',
65
61
  'issuerSize_revenueRange': 'revenueRange',
62
+ 'salesCommissionsFindersFees_clarificationOfResponse': 'salesCommissionsFindersFeesClarification',
63
+ 'salesCompensationList_recipient_recipientAddress_zipCode': 'recipientZipCode',
64
+ 'salesCompensationList_recipient_recipientAddress_city': 'recipientCity',
66
65
  'typesOfSecuritiesOffered_isOptionToAcquireType': 'isOptionToAcquireType',
66
+ 'businessCombinationTransaction_clarificationOfResponse': 'businessCombinationClarification',
67
+ 'typesOfSecuritiesOffered_isTenantInCommonType': 'isTenantInCommonType',
68
+ 'salesCompensationList_recipient_statesOfSolicitationList_description': 'statesOfSolicitationDescription',
69
+ 'offeringSalesAmounts_totalOfferingAmount': 'totalOfferingAmount',
70
+ 'investors_numberNonAccreditedInvestors': 'numberNonAccreditedInvestors',
67
71
  'signatureBlock_authorizedRepresentative': 'authorizedRepresentative',
72
+ 'signatureBlock_signature_issuerName': 'issuerName',
68
73
  'salesCompensationList_recipient_recipientAddress_street2': 'recipientStreet2',
69
- 'useOfProceeds_grossProceedsUsed_isEstimate': 'grossProceedsUsedIsEstimate',
70
- 'salesCommissionsFindersFees_findersFees_dollarAmount': 'findersFeesDollarAmount',
71
- 'typesOfSecuritiesOffered_isEquityType': 'isEquityType',
72
- 'typesOfSecuritiesOffered_descriptionOfOtherType': 'descriptionOfOtherType',
74
+ 'typesOfSecuritiesOffered_isDebtType': 'isDebtType',
73
75
  'salesCompensationList_recipient_recipientAddress_street1': 'recipientStreet1',
74
- 'minimumInvestmentAccepted': 'minimumInvestmentAccepted',
75
- 'typesOfSecuritiesOffered_isOtherType': 'isOtherType',
76
+ 'signatureBlock_signature_signatureTitle': 'signatureTitle',
77
+ 'industryGroup_investmentFundInfo_investmentFundType': 'investmentFundType',
78
+ 'salesCommissionsFindersFees_findersFees_isEstimate': 'findersFeesIsEstimate',
79
+ 'typeOfFiling_dateOfFirstSale_value': 'dateOfFirstSaleValue',
80
+ 'offeringSalesAmounts_totalAmountSold': 'totalAmountSold',
81
+ 'offeringSalesAmounts_clarificationOfResponse': 'offeringSalesAmountsClarification',
82
+ 'investors_hasNonAccreditedInvestors': 'hasNonAccreditedInvestors',
76
83
  'salesCompensationList_recipient_recipientCRDNumber': 'recipientCRDNumber',
77
- 'typesOfSecuritiesOffered_isDebtType': 'isDebtType',
78
- 'accession': 'accessionNumber',
79
- 'investors_totalNumberAlreadyInvested': 'totalNumberAlreadyInvested',
80
84
  'typesOfSecuritiesOffered_isMineralPropertyType': 'isMineralPropertyType',
81
- 'industryGroup_industryGroupType': 'industryGroupType',
82
- 'salesCompensationList_recipient_statesOfSolicitationList_description': 'recipientStatesOfSolicitationDescription',
83
- 'salesCompensationList_recipient_associatedBDCRDNumber': 'recipientAssociatedBDCRDNumber',
84
- 'useOfProceeds_grossProceedsUsed_dollarAmount': 'grossProceedsUsedDollarAmount',
85
- 'investors_hasNonAccreditedInvestors': 'hasNonAccreditedInvestors',
86
- 'salesCompensationList_recipient_recipientAddress_zipCode': 'recipientZipCode',
87
- 'offeringSalesAmounts_totalOfferingAmount': 'totalOfferingAmount',
88
- 'salesCompensationList_recipient_recipientAddress_stateOrCountry': 'recipientStateOrCountry'
85
+ 'salesCompensationList_recipient_recipientName': 'recipientName',
86
+ 'durationOfOffering_moreThanOneYear': 'moreThanOneYear'
89
87
  }
90
88
  primary_issuer_d_dict = {
91
89
  'yearOfInc_withinFiveYears': 'yearOfIncWithinFiveYears',
@@ -103,7 +101,7 @@ primary_issuer_d_dict = {
103
101
  'edgarPreviousNameList_value': 'edgarPreviousNameListValue',
104
102
  'issuerAddress_stateOrCountry': 'issuerStateOrCountry',
105
103
  'entityName': 'entityName',
106
- 'accession': 'accessionNumber',
104
+ 'accession': 'accession',
107
105
  'issuerAddress_street2': 'issuerStreet2',
108
106
  'issuerAddress_city': 'issuerCity',
109
107
  'issuerAddress_stateOrCountryDescription': 'issuerStateOrCountryDescription',
@@ -116,7 +114,7 @@ related_persons_d_dict = {
116
114
  'relatedPersonInfo_relatedPersonRelationshipList_relationship': 'relatedPersonRelationship',
117
115
  'relatedPersonInfo_relationshipClarification': 'relationshipClarification',
118
116
  'relatedPersonInfo_relatedPersonName_lastName': 'relatedPersonLastName',
119
- 'accession': 'accessionNumber',
117
+ 'accession': 'accession',
120
118
  'relatedPersonInfo_relatedPersonName_middleName': 'relatedPersonMiddleName',
121
119
  'relatedPersonInfo_relatedPersonAddress_zipCode': 'relatedPersonZipCode',
122
120
  'relatedPersonInfo_relatedPersonAddress_city': 'relatedPersonCity',
@@ -418,8 +418,14 @@ def process_cfportal(data, accession):
418
418
 
419
419
  def process_d(data, accession):
420
420
  tables = []
421
- groups = ['contactData', 'notificationAddressList', 'primaryIssuer', 'issuerList', 'relatedPersonsList', 'offeringData']
422
- for group in groups:
421
+ groups = [('contactData', 'contact_data_d'),
422
+ ('notificationAddressList', 'notification_address_list_d'),
423
+ ('primaryIssuer', 'primary_issuer_d'),
424
+ ('issuerList', 'issuer_list_d'),
425
+ ('relatedPersonsList', 'related_persons_list_d'),
426
+ ('offeringData', 'offering_data_d'),
427
+ ]
428
+ for group,table_type in groups:
423
429
  if group == 'relatedPersonList':
424
430
  group_data = data['edgarSubmission'].pop('relatedPersonInfo', None)
425
431
  data['edgarSubmission'].pop(group, None)
@@ -430,14 +436,16 @@ def process_d(data, accession):
430
436
 
431
437
  if group_data:
432
438
  # Special handling ONLY for relatedPersonsList
433
- if group in ['relatedPersonsList', 'issuerList']:
439
+ if group in ['relatedPersonsList', 'issuerList','offeringData']:
434
440
  # Use the new flatten_dict_to_rows ONLY for this key
435
441
  flattened_rows = flatten_dict_to_rows(group_data)
436
442
  if flattened_rows:
437
- tables.append(Table(flattened_rows, f'{group}_d', accession))
443
+ tables.append(Table(flattened_rows, table_type, accession))
438
444
  else:
439
445
  # Everything else remains EXACTLY the same
440
- tables.append(Table(_flatten_dict(group_data), f'{group}_d', accession))
446
+ tables.append(Table(_flatten_dict(group_data), table_type, accession))
447
+
448
+
441
449
 
442
450
  metadata_table = Table(_flatten_dict(data['edgarSubmission']), 'metadata_d', accession)
443
451
  tables.append(metadata_table)
@@ -203,15 +203,15 @@ class Table():
203
203
  mapping_dict = signature_schedule_13_dict
204
204
 
205
205
  # D
206
- elif self.type == 'issuerList_d':
206
+ elif self.type == 'issuer_list_d':
207
207
  mapping_dict = issuer_list_d_dict
208
208
  elif self.type == 'metadata_d':
209
209
  mapping_dict = metadata_d_dict
210
- elif self.type == 'offeringData_d':
210
+ elif self.type == 'offering_data_d':
211
211
  mapping_dict = offering_data_d_dict
212
- elif self.type == 'primaryIssuer_d':
212
+ elif self.type == 'primary_issuer_d':
213
213
  mapping_dict = primary_issuer_d_dict
214
- elif self.type == 'relatedPersonsList_d':
214
+ elif self.type == 'related_persons_list_d':
215
215
  mapping_dict = related_persons_d_dict
216
216
  # SDR
217
217
  elif self.type == 'sdr':
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datamule
3
- Version: 1.2.8
3
+ Version: 1.2.9
4
4
  Summary: Making it easier to use SEC filings.
5
5
  Home-page: https://github.com/john-friedman/datamule-python
6
6
  Author: John Friedman
@@ -30,7 +30,7 @@ if not file_path.exists():
30
30
  setup(
31
31
  name="datamule",
32
32
  author="John Friedman",
33
- version="1.2.8",
33
+ version="1.2.9",
34
34
  description="Making it easier to use SEC filings.",
35
35
  packages=find_packages(include=['datamule', 'datamule.*']),
36
36
  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