datamule 1.8.0__py3-none-any.whl → 1.8.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.
@@ -218,7 +218,7 @@ def datamule_lookup(cik=None, accession_number=None, submission_type=None, filin
218
218
 
219
219
  # Set default columns if none specified
220
220
  if columns is None:
221
- columns = ['accessionNumber', 'cik', 'filingDate', 'submissionType']
221
+ columns = ['accessionNumber', 'cik', 'filingDate', 'submissionType','detectedTime']
222
222
 
223
223
  # Validate page_size
224
224
  page_size = min(max(1, page_size), 25000)
datamule/submission.py CHANGED
@@ -3,17 +3,21 @@ import json
3
3
  from .document.document import Document
4
4
  from secsgml import parse_sgml_content_into_memory
5
5
  from secsgml.parse_sgml import transform_metadata_string
6
+ from secsgml.utils import bytes_to_str
7
+ from .sec.utils import headers
6
8
  import tarfile
7
9
  import zstandard as zstd
8
10
  import gzip
11
+ import urllib.request
12
+
9
13
 
10
14
 
11
15
  class Submission:
12
16
  def __init__(self, path=None, sgml_content=None, keep_document_types=None,
13
- batch_tar_path=None, accession_prefix=None, portfolio_ref=None):
17
+ batch_tar_path=None, accession_prefix=None, portfolio_ref=None,url=None):
14
18
 
15
19
  # Validate parameters
16
- param_count = sum(x is not None for x in [path, sgml_content, batch_tar_path])
20
+ param_count = sum(x is not None for x in [path, sgml_content, batch_tar_path,url])
17
21
  if param_count != 1:
18
22
  raise ValueError("Exactly one of path, sgml_content, or batch_tar_path must be provided")
19
23
 
@@ -25,9 +29,19 @@ class Submission:
25
29
  self.accession_prefix = accession_prefix
26
30
  self.portfolio_ref = portfolio_ref
27
31
 
28
- if sgml_content is not None:
32
+ if url is not None or sgml_content is not None:
33
+ if url is not None:
34
+ request = urllib.request.Request(url, headers=headers)
35
+ response = urllib.request.urlopen(request)
36
+
37
+ if response.getcode() == 200:
38
+ sgml_content=response.read()
39
+ else:
40
+ raise ValueError(f"URL: {url}, Error: {response.getcode()}")
41
+
29
42
  self.path = None
30
43
  metadata, raw_documents = parse_sgml_content_into_memory(sgml_content)
44
+ metadata = bytes_to_str(metadata)
31
45
 
32
46
  # standardize metadata
33
47
  metadata = transform_metadata_string(metadata)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datamule
3
- Version: 1.8.0
3
+ Version: 1.8.2
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
@@ -6,7 +6,7 @@ datamule/package_updater.py,sha256=Z9zaa_y0Z5cknpRn8oPea3gg4kquFHfpfhduKKCZ6NU,9
6
6
  datamule/portfolio.py,sha256=tADqQMkFaFyjanbJ0QcaOHGdJJB254rOg29FW7a13l0,11835
7
7
  datamule/portfolio_compression_utils.py,sha256=8OPYEN5zAdV1FiTxgVN3S7cTKs99Elv74bwgoIJP4QY,12654
8
8
  datamule/sheet.py,sha256=V5iR9_LkuwTFxfHCfzgadO6qgB6qOhzWiCAED-y8ZJQ,22744
9
- datamule/submission.py,sha256=ooLsesZ5HkgSWyEFID4u08CobTxdo35eAUHSCB6fw2k,10332
9
+ datamule/submission.py,sha256=IHfEvHcLj9mrJGCNaJSMRqP9kHuJerGGM9IrN5mLDtM,10865
10
10
  datamule/data/listed_filer_metadata.csv,sha256=dT9fQ8AC5P1-Udf_UF0ZkdXJ88jNxJb_tuhi5YYL1rc,2426827
11
11
  datamule/datamule/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  datamule/datamule/sec_connector.py,sha256=qCDsOgSFtfp-uz-APJjX4YrRoIGnnX-xHCL_JjLmRxk,2387
@@ -59,13 +59,13 @@ datamule/sec/xbrl/streamcompanyfacts.py,sha256=Qq88PqW5_j1k3Aqrl0KRmKeF54D6Wbb6H
59
59
  datamule/sec/xbrl/xbrlmonitor.py,sha256=TKFVfSyyUUfUgFQw4WxEVs4g8Nh-2C0tygNIRmTqW3Y,5848
60
60
  datamule/seclibrary/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
61
  datamule/seclibrary/bq.py,sha256=C8sb_rpXTvchprrFLcbRar4Qi0XWW25tnv1YsHSS5o4,18025
62
- datamule/seclibrary/datamule_lookup.py,sha256=_opEh-DRY3ZBXFbuE2Ua_aRwoc1IsV-cPSWK0c61ofY,9465
62
+ datamule/seclibrary/datamule_lookup.py,sha256=-xsATUVwm58Y1nNP287c-1pHB2uttngIiJ5Zy3DRi-s,9480
63
63
  datamule/seclibrary/downloader.py,sha256=6cPPddjXekOwlzsyratUqzpCSbvdaNyRCGjQXUtVoJU,17930
64
64
  datamule/seclibrary/query.py,sha256=qGuursTERRbOGfoDcYcpo4oWkW3PCBW6x1Qf1Puiak4,7352
65
65
  datamule/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
66
  datamule/utils/construct_submissions_data.py,sha256=aX7ZaAp3zXHLcv4TFk_rGwjb8r7yNDQDFVg4nPf60kM,5934
67
67
  datamule/utils/format_accession.py,sha256=60RtqoNqoT9zSKVb1DeOv1gncJxzPTFMNW4SNOVmC_g,476
68
- datamule-1.8.0.dist-info/METADATA,sha256=QGhncvN1wEhQ3m9mrqZ2-jrb7LZ9BwJAzhCp72CEUWc,524
69
- datamule-1.8.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
70
- datamule-1.8.0.dist-info/top_level.txt,sha256=iOfgmtSMFVyr7JGl_bYSTDry79JbmsG4p8zKq89ktKk,9
71
- datamule-1.8.0.dist-info/RECORD,,
68
+ datamule-1.8.2.dist-info/METADATA,sha256=dGgw4rg0oPbvpi2VTd0FqSnfpH_cDiIg14o-z_ioWJw,524
69
+ datamule-1.8.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
70
+ datamule-1.8.2.dist-info/top_level.txt,sha256=iOfgmtSMFVyr7JGl_bYSTDry79JbmsG4p8zKq89ktKk,9
71
+ datamule-1.8.2.dist-info/RECORD,,