db2_hj3415 0.1.5__py2.py3-none-any.whl → 0.1.7__py2.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.
- db2_hj3415/nfs/dart.py +27 -0
- db2_hj3415/nfs/models.py +8 -8
- {db2_hj3415-0.1.5.dist-info → db2_hj3415-0.1.7.dist-info}/METADATA +1 -1
- {db2_hj3415-0.1.5.dist-info → db2_hj3415-0.1.7.dist-info}/RECORD +6 -6
- {db2_hj3415-0.1.5.dist-info → db2_hj3415-0.1.7.dist-info}/WHEEL +0 -0
- {db2_hj3415-0.1.5.dist-info → db2_hj3415-0.1.7.dist-info}/entry_points.txt +0 -0
db2_hj3415/nfs/dart.py
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
from motor.motor_asyncio import AsyncIOMotorClient
|
2
|
+
from pymongo import InsertOne
|
3
|
+
from db2_hj3415.nfs import Dart, DB_NAME, get_collection
|
4
|
+
|
5
|
+
COL_NAME = "dart"
|
6
|
+
|
7
|
+
async def save_many(many_data: list[Dart], client: AsyncIOMotorClient) -> dict:
|
8
|
+
if not many_data:
|
9
|
+
return {"inserted_count": 0, "skipped": 0}
|
10
|
+
|
11
|
+
collection = get_collection(client, DB_NAME, COL_NAME)
|
12
|
+
|
13
|
+
# unique index 보장용 (이미 설정되었는지 확인)
|
14
|
+
await collection.create_index("rcept_no", unique=True)
|
15
|
+
|
16
|
+
ops = []
|
17
|
+
skipped = 0
|
18
|
+
|
19
|
+
for item in many_data:
|
20
|
+
doc = item.model_dump(mode="json", exclude={"id"}) # _id는 제외
|
21
|
+
ops.append(InsertOne(doc))
|
22
|
+
|
23
|
+
try:
|
24
|
+
result = await collection.bulk_write(ops, ordered=False)
|
25
|
+
return {"inserted_count": result.inserted_count, "skipped": skipped}
|
26
|
+
except Exception as e:
|
27
|
+
return {"error": str(e)}
|
db2_hj3415/nfs/models.py
CHANGED
@@ -2,7 +2,7 @@ from pydantic import BaseModel, Field, field_serializer, ConfigDict, field_valid
|
|
2
2
|
from datetime import datetime
|
3
3
|
|
4
4
|
class C101(BaseModel):
|
5
|
-
id: str | None = Field(alias="_id")
|
5
|
+
id: str | None = Field(default=None, alias="_id")
|
6
6
|
날짜: datetime
|
7
7
|
코드: str
|
8
8
|
bps: int | None
|
@@ -58,7 +58,7 @@ class 항목값q(BaseModel):
|
|
58
58
|
|
59
59
|
|
60
60
|
class C103(BaseModel):
|
61
|
-
id: str | None = Field(alias="_id")
|
61
|
+
id: str | None = Field(default=None, alias="_id")
|
62
62
|
코드: str
|
63
63
|
날짜: datetime
|
64
64
|
손익계산서q: list[항목값q]
|
@@ -76,7 +76,7 @@ class C103(BaseModel):
|
|
76
76
|
|
77
77
|
|
78
78
|
class C104(BaseModel):
|
79
|
-
id: str | None = Field(alias="_id")
|
79
|
+
id: str | None = Field(default=None, alias="_id")
|
80
80
|
코드: str
|
81
81
|
날짜: datetime
|
82
82
|
|
@@ -109,7 +109,7 @@ class 기업데이터(BaseModel):
|
|
109
109
|
)
|
110
110
|
|
111
111
|
class C106(BaseModel):
|
112
|
-
id: str | None = Field(alias="_id")
|
112
|
+
id: str | None = Field(default=None, alias="_id")
|
113
113
|
코드: str
|
114
114
|
날짜: datetime
|
115
115
|
|
@@ -124,7 +124,7 @@ class C106(BaseModel):
|
|
124
124
|
|
125
125
|
|
126
126
|
class C108(BaseModel):
|
127
|
-
id: str | None = Field(alias="_id")
|
127
|
+
id: str | None = Field(default=None, alias="_id")
|
128
128
|
코드: str
|
129
129
|
날짜: datetime
|
130
130
|
|
@@ -147,9 +147,9 @@ class C108(BaseModel):
|
|
147
147
|
)
|
148
148
|
|
149
149
|
class Dart(BaseModel):
|
150
|
-
id: str | None = Field(alias="_id")
|
151
|
-
코드: str = Field(default=None, alias="stock_code") # 종목 코드 (6자리)
|
152
|
-
날짜: datetime = Field(default=None, alias="rcept_dt") # 접수 일자 (YYYYMMDD)
|
150
|
+
id: str | None = Field(default=None, alias="_id")
|
151
|
+
코드: str | None= Field(default=None, alias="stock_code") # 종목 코드 (6자리)
|
152
|
+
날짜: datetime | None = Field(default=None, alias="rcept_dt") # 접수 일자 (YYYYMMDD)
|
153
153
|
|
154
154
|
corp_cls: str # 기업 구분 (예: 'K', 'Y', 'N')
|
155
155
|
corp_code: str # 고유 회사 코드 (8자리)
|
@@ -26,9 +26,9 @@ db2_hj3415/nfs/c103.py,sha256=NY2e_BTfSHkELIEUJ8XhhYdNETQaRGOrF4qNaewB2_E,1460
|
|
26
26
|
db2_hj3415/nfs/c104.py,sha256=aVLchUoxomlthS7FZ0adskBXmxIWQISGfc2EgWkWZDI,1460
|
27
27
|
db2_hj3415/nfs/c106.py,sha256=dAVSnEM5E-sJZExMTfqDoQlozTtH05JOtenzbIUdvtQ,1460
|
28
28
|
db2_hj3415/nfs/c108.py,sha256=F_kP1HMhpe9E6VKm_m-aDl6PZ-FqVs5-O2_-rU8f34Y,3761
|
29
|
-
db2_hj3415/nfs/dart.py,sha256=
|
30
|
-
db2_hj3415/nfs/models.py,sha256=
|
31
|
-
db2_hj3415-0.1.
|
32
|
-
db2_hj3415-0.1.
|
33
|
-
db2_hj3415-0.1.
|
34
|
-
db2_hj3415-0.1.
|
29
|
+
db2_hj3415/nfs/dart.py,sha256=yaqs7Qt8AYzbKWdPSNsaryOBOpVmNudTooBEaj2N-aY,876
|
30
|
+
db2_hj3415/nfs/models.py,sha256=nzoFbkoC58JGL79kcTZyTBheSRAdhPTDZZO36aDi3HU,4934
|
31
|
+
db2_hj3415-0.1.7.dist-info/entry_points.txt,sha256=JAGFsxKtvbNgaKCSKo-QRYwCyToabWmdRW0MZWtg9kg,45
|
32
|
+
db2_hj3415-0.1.7.dist-info/WHEEL,sha256=Dyt6SBfaasWElUrURkknVFAZDHSTwxg3PaTza7RSbkY,100
|
33
|
+
db2_hj3415-0.1.7.dist-info/METADATA,sha256=dnP69gfUyRZSEeqR5Vd1aJcTyr7CBl1ycF3uUsnMD60,709
|
34
|
+
db2_hj3415-0.1.7.dist-info/RECORD,,
|
File without changes
|
File without changes
|