cs-models 0.0.769__py3-none-any.whl → 0.0.771__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.

Potentially problematic release.


This version of cs-models might be problematic. Click here for more details.

@@ -1,15 +1,16 @@
1
1
  from marshmallow import Schema, fields
2
+ from ...utils.utils import Safe13FDate, Safe13FInteger
2
3
 
3
4
 
4
5
  class Coverpage13FSchema(Schema):
5
6
  ACCESSION_NUMBER = fields.String(required=True)
6
- REPORTCALENDARORQUARTER = fields.Date(required=True, format="%d-%b-%Y")
7
+ REPORTCALENDARORQUARTER = Safe13FDate(required=True)
7
8
  ISAMENDMENT = fields.String()
8
- AMENDMENTNO = fields.Integer()
9
+ AMENDMENTNO = Safe13FInteger(allow_none=True)
9
10
  AMENDMENTTYPE = fields.String()
10
11
  CONFDENIEDEXPIRED = fields.String()
11
- DATEDENIEDEXPIRED = fields.Date(format="%d-%b-%Y")
12
- DATEREPORTED = fields.Date(format="%d-%b-%Y")
12
+ DATEDENIEDEXPIRED = Safe13FDate(allow_none=True)
13
+ DATEREPORTED = Safe13FDate(allow_none=True)
13
14
  REASONFORNONCONFIDENTIALITY = fields.String()
14
15
  FILINGMANAGER_NAME = fields.String(required=True)
15
16
  FILINGMANAGER_STREET1 = fields.String()
@@ -1,12 +1,12 @@
1
- from sqlalchemy import Column, Integer, String, Date
1
+ from sqlalchemy import Column, Integer, String, PrimaryKeyConstraint
2
2
  from ...database import Base
3
3
 
4
4
 
5
5
  class Infotable13FModel(Base):
6
6
  __tablename__ = '13finfotable'
7
7
 
8
- ACCESSION_NUMBER = Column(String(25), primary_key=True)
9
- INFOTABLE_SK = Column(Integer, primary_key=True)
8
+ ACCESSION_NUMBER = Column(String(25))
9
+ INFOTABLE_SK = Column(Integer)
10
10
  NAMEOFISSUER = Column(String(200), nullable=False)
11
11
  TITLEOFCLASS = Column(String(150), nullable=False)
12
12
  CUSIP = Column(String(9), nullable=False)
@@ -20,3 +20,7 @@ class Infotable13FModel(Base):
20
20
  VOTING_AUTH_SOLE = Column(Integer, nullable=False)
21
21
  VOTING_AUTH_SHARED = Column(Integer, nullable=False)
22
22
  VOTING_AUTH_NONE = Column(Integer, nullable=False)
23
+
24
+ __table_args__ = (
25
+ PrimaryKeyConstraint('ACCESSION_NUMBER', 'INFOTABLE_SK'),
26
+ )
@@ -1,19 +1,20 @@
1
1
  from marshmallow import Schema, fields
2
+ from ...utils.utils import Safe13FInteger
2
3
 
3
4
 
4
5
  class Infotable13FSchema(Schema):
5
6
  ACCESSION_NUMBER = fields.String(required=True)
6
- INFOTABLE_SK = fields.Integer(required=True)
7
+ INFOTABLE_SK = Safe13FInteger(required=True)
7
8
  NAMEOFISSUER = fields.String(required=True)
8
9
  TITLEOFCLASS = fields.String(required=True)
9
10
  CUSIP = fields.String(required=True)
10
11
  FIGI = fields.String()
11
- VALUE = fields.Integer(required=True)
12
- SSHPRNAMT = fields.Integer(required=True)
12
+ VALUE = Safe13FInteger(required=True)
13
+ SSHPRNAMT = Safe13FInteger(required=True)
13
14
  SSHPRNAMTTYPE = fields.String(required=True)
14
15
  PUTCALL = fields.String()
15
16
  INVESTMENTDISCRETION = fields.String(required=True)
16
17
  OTHERMANAGER = fields.String()
17
- VOTING_AUTH_SOLE = fields.Integer(required=True)
18
- VOTING_AUTH_SHARED = fields.Integer(required=True)
19
- VOTING_AUTH_NONE = fields.Integer(required=True)
18
+ VOTING_AUTH_SOLE = Safe13FInteger(required=True)
19
+ VOTING_AUTH_SHARED = Safe13FInteger(required=True)
20
+ VOTING_AUTH_NONE = Safe13FInteger(required=True)
@@ -1,14 +1,18 @@
1
- from sqlalchemy import Column, Integer, String, Date
1
+ from sqlalchemy import Column, Integer, String, PrimaryKeyConstraint
2
2
  from ...database import Base
3
3
 
4
4
 
5
5
  class Othermanager13FModel(Base):
6
6
  __tablename__ = '13fothermanager'
7
7
 
8
- ACCESSION_NUMBER = Column(String(25), primary_key=True)
9
- OTHERMANAGER_SK = Column(Integer, primary_key=True)
8
+ ACCESSION_NUMBER = Column(String(25))
9
+ OTHERMANAGER_SK = Column(Integer)
10
10
  CIK = Column(String(10))
11
11
  FORM13FFILENUMBER = Column(String(17))
12
12
  CRDNUMBER = Column(String(9))
13
13
  SECFILENUMBER = Column(String(17))
14
14
  NAME = Column(String(150), nullable=False)
15
+
16
+ __table_args__ = (
17
+ PrimaryKeyConstraint('ACCESSION_NUMBER', 'OTHERMANAGER_SK'),
18
+ )
@@ -1,9 +1,10 @@
1
1
  from marshmallow import Schema, fields
2
+ from ...utils.utils import Safe13FInteger
2
3
 
3
4
 
4
5
  class Othermanager13FSchema(Schema):
5
6
  ACCESSION_NUMBER = fields.String(required=True)
6
- OTHERMANAGER_SK = fields.Integer(required=True)
7
+ OTHERMANAGER_SK = Safe13FInteger(required=True)
7
8
  CIK = fields.String()
8
9
  FORM13FFILENUMBER = fields.String()
9
10
  CRDNUMBER = fields.String()
@@ -1,9 +1,10 @@
1
1
  from marshmallow import Schema, fields
2
+ from ...utils.utils import Safe13FInteger
2
3
 
3
4
 
4
5
  class Othermanager213FSchema(Schema):
5
6
  ACCESSION_NUMBER = fields.String(required=True)
6
- SEQUENCENUMBER = fields.Integer(required=True)
7
+ SEQUENCENUMBER = Safe13FInteger(required=True)
7
8
  CIK = fields.String()
8
9
  FORM13FFILENUMBER = fields.String()
9
10
  CRDNUMBER = fields.String()
@@ -1,4 +1,5 @@
1
1
  from marshmallow import Schema, fields
2
+ from ...utils.utils import Safe13FDate
2
3
 
3
4
 
4
5
  class Signature13FSchema(Schema):
@@ -9,4 +10,4 @@ class Signature13FSchema(Schema):
9
10
  SIGNATURE = fields.String(required=True)
10
11
  CITY = fields.String(required=True)
11
12
  STATEORCOUNTRY = fields.String(required=True)
12
- SIGNATUREDATE = fields.Date(required=True, format="%d-%b-%Y")
13
+ SIGNATUREDATE = Safe13FDate(required=True)
@@ -1,9 +1,10 @@
1
1
  from marshmallow import Schema, fields
2
+ from ...utils.utils import Safe13FDate
2
3
 
3
4
 
4
5
  class Submission13FSchema(Schema):
5
6
  ACCESSION_NUMBER = fields.String(required=True)
6
- FILING_DATE = fields.Date(required=True, format="%d-%b-%Y")
7
+ FILING_DATE = Safe13FDate(required=True)
7
8
  SUBMISSIONTYPE = fields.String(required=True)
8
9
  CIK = fields.String(required=True)
9
- PERIODOFREPORT = fields.Date(required=True, format="%d-%b-%Y")
10
+ PERIODOFREPORT = Safe13FDate(required=True)
cs_models/utils/utils.py CHANGED
@@ -1,7 +1,7 @@
1
1
  import json
2
2
  import pytz
3
3
  from datetime import datetime
4
- from marshmallow import ValidationError
4
+ from marshmallow import ValidationError, fields
5
5
  from sqlalchemy.sql.expression import ClauseElement
6
6
 
7
7
 
@@ -144,6 +144,32 @@ def pre_load_date_fields(in_data, date_fields, date_format='%m-%d-%Y'):
144
144
  return in_data
145
145
 
146
146
 
147
+ class Safe13FDate(fields.Date):
148
+ def __init__(self, format="%d-%b-%Y", **kwargs):
149
+ super().__init__(format=format, **kwargs)
150
+
151
+ def _deserialize(self, value, attr, data, **kwargs):
152
+ if value in (None, ""):
153
+ return None
154
+ try:
155
+ return datetime.strptime(value, self.format).date()
156
+ except (ValueError, TypeError):
157
+ raise ValidationError("Not a valid date.")
158
+
159
+
160
+ class Safe13FInteger(fields.Integer):
161
+ def __init__(self, **kwargs):
162
+ super().__init__(format=format, **kwargs)
163
+
164
+ def _deserialize(self, value, attr, data, **kwargs):
165
+ if value in (None, ""):
166
+ return None
167
+ try:
168
+ return int(value)
169
+ except (ValueError, TypeError):
170
+ raise ValidationError("Not a valid integer.")
171
+
172
+
147
173
  if __name__ == '__main__':
148
174
  from doctest import testmod
149
175
  testmod()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cs-models
3
- Version: 0.0.769
3
+ Version: 0.0.771
4
4
  Summary: MySQL db models
5
5
  Home-page: https://github.com/mindgram/cs-models
6
6
  Author: Shrey Verma
@@ -222,7 +222,7 @@ cs_models/resources/Counsels/models.py,sha256=p8u93IonSVmPb5k0BlRv6HVW_PS9CY5xwF
222
222
  cs_models/resources/Counsels/schemas.py,sha256=zO7ItcXvtDJgJFmtYCZm4wHFBPPhmj76TUc6VRwK0qI,423
223
223
  cs_models/resources/CoverPage13F/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
224
224
  cs_models/resources/CoverPage13F/models.py,sha256=2e9q0RMgtTXu0QonnOvLA5rJJ5xXN8RWXQjJi-AxD2w,1127
225
- cs_models/resources/CoverPage13F/schemas.py,sha256=3WtOKLOVhtJK60Fn5-w_Qfi4jf19qrD_UWcn6JFFWso,1042
225
+ cs_models/resources/CoverPage13F/schemas.py,sha256=0rXY2BKDHNh1rSMBTE63g9WEKEJ_QVh4J5DSxCem5PU,1089
226
226
  cs_models/resources/CrawlerLog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
227
  cs_models/resources/CrawlerLog/models.py,sha256=neo5PRROx9GxvjQNnukwKvVMGTqnXrXhN_jG_HWwFSE,985
228
228
  cs_models/resources/CrawlerLog/schemas.py,sha256=2hqlZuM787N2ah8tb-CTGCAGBFgjsDafKApVvPYvxM8,1554
@@ -403,8 +403,8 @@ cs_models/resources/IPOUnderwriter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
403
403
  cs_models/resources/IPOUnderwriter/models.py,sha256=1SK9xEMx_CyM49Uf6mzKdL-dx8P2KVTRb0X9bVkQpTk,805
404
404
  cs_models/resources/IPOUnderwriter/schemas.py,sha256=sSBN9Pf7YQIrGviaFyNMau4BOvGNpgkICg4EnbziQv8,401
405
405
  cs_models/resources/InfoTable13F/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
406
- cs_models/resources/InfoTable13F/models.py,sha256=R1qW8ptL81djXmi2fWebKaQdUdpbgjbQVksypz3RWXo,898
407
- cs_models/resources/InfoTable13F/schemas.py,sha256=t3gesGi_PtjIdpoGdccY9TftXVNKGD9NgejbQcnQaZg,759
406
+ cs_models/resources/InfoTable13F/models.py,sha256=pRSl-EVjWy9sCf-9bjp4cx5nn76a_ygzcRoz2orjXP0,974
407
+ cs_models/resources/InfoTable13F/schemas.py,sha256=auQ1-NfXkDB_kMrv5poKkR57mEhaZIuu1YXsN_n1P2Q,801
408
408
  cs_models/resources/InsightsQueue/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
409
409
  cs_models/resources/InsightsQueue/models.py,sha256=s9yrfdbC_Iw9NGa9rCpgz2EdDqRDJVmw_LIXkwIoD84,976
410
410
  cs_models/resources/InsightsQueue/schemas.py,sha256=eU-uzGW1L2lwtkAwuAUKxSnCkOY4DiABpWYfofu0M1g,653
@@ -744,11 +744,11 @@ cs_models/resources/OrangeBookProductSubsidiary/__init__.py,sha256=47DEQpj8HBSa-
744
744
  cs_models/resources/OrangeBookProductSubsidiary/models.py,sha256=-vlsqjhqoQ_-DvWwA5aQ_nYIuvQPuo4CActyK2_Ybw8,808
745
745
  cs_models/resources/OrangeBookProductSubsidiary/schemas.py,sha256=w6P8rDDZEzUoFyJGibhwqQT7HvYvqlRa_-7epF7AwGY,380
746
746
  cs_models/resources/OtherManager13F/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
747
- cs_models/resources/OtherManager13F/models.py,sha256=1RHkT23FyK-cMcTFjgn4e7BAjNRLnpNDe7kF1dCICcY,465
748
- cs_models/resources/OtherManager13F/schemas.py,sha256=qUkG1Mc7zGQ1sLkfagcm1hm80ou-cipCdA95Is5KFoQ,356
747
+ cs_models/resources/OtherManager13F/models.py,sha256=tVW8rcK1UNuc2e8PwDmHxzDvob9lHDhl3YFtn0EP73c,544
748
+ cs_models/resources/OtherManager13F/schemas.py,sha256=uFfhZ_vlntCeZgTy948nlayDus5LZqPuHEtgSqcwH7Q,398
749
749
  cs_models/resources/OtherManager213F/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
750
750
  cs_models/resources/OtherManager213F/models.py,sha256=C5W50ZsZq3ufW2bw3Iq26dDSdhdMsbgfE0V9-I3z_X0,464
751
- cs_models/resources/OtherManager213F/schemas.py,sha256=SbxhgjOPJwXtWgWrblf7_RTOwbOJezidZiLeIDdbbe0,356
751
+ cs_models/resources/OtherManager213F/schemas.py,sha256=NQcdc_oENviW274zQ_buQ_VDEwEiwJnXcnqXYjQIqL0,398
752
752
  cs_models/resources/PTAB2Decision/__init__.py,sha256=ypyxd9cWlb0Ikt_vCZUxym_ZEF-rqxP5b7RKmF-RgWs,4988
753
753
  cs_models/resources/PTAB2Decision/models.py,sha256=JNc8Ub7B0c_gQW-iYho4o64Q77hetu9yr2jBDaLy2xQ,1909
754
754
  cs_models/resources/PTAB2Decision/schemas.py,sha256=UNNE2PuK2l-onqHkx0pN8AlY2sSWcueWxVunz3wr4sg,5093
@@ -934,7 +934,7 @@ cs_models/resources/SearchLink/models.py,sha256=l1tPCSKHK7Wq1OUWFH72NYncEt6Q3bR0
934
934
  cs_models/resources/SearchLink/schemas.py,sha256=A8Y6LRgw7MHs9bihf0gZPfqp6KDm0Z8k6PJSL9WVxsc,448
935
935
  cs_models/resources/Signature13F/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
936
936
  cs_models/resources/Signature13F/models.py,sha256=E-n7Fz1Lz7XOeD6H6Ca0TIe6ixxRXao0hWGGZJkr4m8,538
937
- cs_models/resources/Signature13F/schemas.py,sha256=uG2Fmq9PMway83Ol-km35LNlPAJWFhAZzwFX2hY6zbE,437
937
+ cs_models/resources/Signature13F/schemas.py,sha256=5I0yQ5amGPQg2yoklmtJJ4HiQe14kNpw7OCUXFmrm1o,457
938
938
  cs_models/resources/SmartGrid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
939
939
  cs_models/resources/SmartGrid/models.py,sha256=9weIkYbh-Y-My5vjjUP-N-ziSNV-AWww1UUltK8EIy0,1011
940
940
  cs_models/resources/SmartGrid/schemas.py,sha256=v5iG5dsEDnRp8P3UKba7uN39ZD_hqPvfLWyX1ltKKjM,665
@@ -946,7 +946,7 @@ cs_models/resources/Stream/models.py,sha256=wXb7yOjW82ZqmLhRcDhjLPk6_WJ5FGmvKpOc
946
946
  cs_models/resources/Stream/schemas.py,sha256=ZFsdEKINFGaSBUAcQQvilq5MKpYGliZseguQoc_opxk,3111
947
947
  cs_models/resources/Submission13F/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
948
948
  cs_models/resources/Submission13F/models.py,sha256=T5Eky-8itEcZRY18Gbx3X0XLGVVZ03aVUyLtUngEf9U,411
949
- cs_models/resources/Submission13F/schemas.py,sha256=P7o0buKt870uRULAuqodfyQaW8U8YCrF9bIUhDUs-9g,348
949
+ cs_models/resources/Submission13F/schemas.py,sha256=0OKI8QdO2BGj_rNBtpQovzFEQ4OkF7Zu69XmYejJcg4,349
950
950
  cs_models/resources/Subsidiary/__init__.py,sha256=VmclFNMwdFXNcE9RKe-Dvl_V-OmomBK8YxeyegHMbIY,3357
951
951
  cs_models/resources/Subsidiary/models.py,sha256=C_DcgEhel41dNcq3YX4SI9uRmGt_MZZi10SNDpPdQmc,695
952
952
  cs_models/resources/Subsidiary/schemas.py,sha256=DcAyO5t4KWD7fR3_D_zrc5AORkMgUbGs_Z_Q-pLWwLM,1288
@@ -1265,9 +1265,9 @@ cs_models/resources_mongo/DocumentTree/__init__.py,sha256=0dRx5h5Y2cKgNH0F0FyfoY
1265
1265
  cs_models/resources_mongo/DocumentTree/schemas.py,sha256=gzKFDivnNKmUuLetsP6eBgrtD_JjFwIDSmBT9xtHRX4,416
1266
1266
  cs_models/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1267
1267
  cs_models/utils/alchemy.py,sha256=fhINGFn41owJ2DLXQKXAAtLqeZ1BRzD_qU0wPK_bsGQ,1598
1268
- cs_models/utils/utils.py,sha256=bY623DuzycfPQiaOQT2AxfANeWfwr5w76dBuQ813-ns,3664
1268
+ cs_models/utils/utils.py,sha256=BzCDk3u1np7DoJQqCZIJN4f80JNHvJoWO4qEFgolN-8,4474
1269
1269
  cs_models/utils/profiling/__init__.py,sha256=N-73vb0M92C975fxgXyBCBjCPELl8Oh21ZY_-tzDnns,569
1270
- cs_models-0.0.769.dist-info/METADATA,sha256=la1Cvk116d-9pH70zSOypG2BQo5XOgrne2yCmC5FXHo,751
1271
- cs_models-0.0.769.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1272
- cs_models-0.0.769.dist-info/top_level.txt,sha256=M7CA8Nh5t0vRManQ9gHfphhO16uhMqIbfaxr1jPDg18,10
1273
- cs_models-0.0.769.dist-info/RECORD,,
1270
+ cs_models-0.0.771.dist-info/METADATA,sha256=fC8-t-ZFGcfyBnNuK6SpyGeD-R06fxX0nLLS0MzNsyg,751
1271
+ cs_models-0.0.771.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1272
+ cs_models-0.0.771.dist-info/top_level.txt,sha256=M7CA8Nh5t0vRManQ9gHfphhO16uhMqIbfaxr1jPDg18,10
1273
+ cs_models-0.0.771.dist-info/RECORD,,