equal-data 0.0.1__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.
File without changes
@@ -0,0 +1,8 @@
1
+ # Default ignored files
2
+ /shelf/
3
+ /workspace.xml
4
+ # Editor-based HTTP Client requests
5
+ /httpRequests/
6
+ # Datasource local storage ignored files
7
+ /dataSources/
8
+ /dataSources.local.xml
@@ -0,0 +1 @@
1
+ equal-data
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="PYTHON_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
6
+ </content>
7
+ <orderEntry type="inheritedJdk" />
8
+ <orderEntry type="sourceFolder" forTests="false" />
9
+ </component>
10
+ </module>
@@ -0,0 +1,305 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="DuplicatedCode" enabled="true" level="WEAK WARNING" enabled_by_default="true">
5
+ <Languages>
6
+ <language minSize="54" name="Python" />
7
+ </Languages>
8
+ </inspection_tool>
9
+ <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
10
+ <inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
11
+ <option name="ignoredPackages">
12
+ <value>
13
+ <list size="278">
14
+ <item index="0" class="java.lang.String" itemvalue="joblib" />
15
+ <item index="1" class="java.lang.String" itemvalue="threadpoolctl" />
16
+ <item index="2" class="java.lang.String" itemvalue="scikit-learn" />
17
+ <item index="3" class="java.lang.String" itemvalue="PyYAML" />
18
+ <item index="4" class="java.lang.String" itemvalue="crsts" />
19
+ <item index="5" class="java.lang.String" itemvalue="cycler" />
20
+ <item index="6" class="java.lang.String" itemvalue="numpy" />
21
+ <item index="7" class="java.lang.String" itemvalue="Flask-Bootstrap" />
22
+ <item index="8" class="java.lang.String" itemvalue="aiocontextvars" />
23
+ <item index="9" class="java.lang.String" itemvalue="win32-setctime" />
24
+ <item index="10" class="java.lang.String" itemvalue="elasticsearch" />
25
+ <item index="11" class="java.lang.String" itemvalue="fake-useragent" />
26
+ <item index="12" class="java.lang.String" itemvalue="scapy" />
27
+ <item index="13" class="java.lang.String" itemvalue="dpkt" />
28
+ <item index="14" class="java.lang.String" itemvalue="urllib3" />
29
+ <item index="15" class="java.lang.String" itemvalue="pyparsing" />
30
+ <item index="16" class="java.lang.String" itemvalue="hmmlearn" />
31
+ <item index="17" class="java.lang.String" itemvalue="Flask" />
32
+ <item index="18" class="java.lang.String" itemvalue="scipy" />
33
+ <item index="19" class="java.lang.String" itemvalue="kiwisolver" />
34
+ <item index="20" class="java.lang.String" itemvalue="loguru" />
35
+ <item index="21" class="java.lang.String" itemvalue="gunicorn" />
36
+ <item index="22" class="java.lang.String" itemvalue="pandas" />
37
+ <item index="23" class="java.lang.String" itemvalue="scikit-plot" />
38
+ <item index="24" class="java.lang.String" itemvalue="colorama" />
39
+ <item index="25" class="java.lang.String" itemvalue="contextvars" />
40
+ <item index="26" class="java.lang.String" itemvalue="matplotlib" />
41
+ <item index="27" class="java.lang.String" itemvalue="typing_extensions" />
42
+ <item index="28" class="java.lang.String" itemvalue="pytz" />
43
+ <item index="29" class="java.lang.String" itemvalue="Pillow" />
44
+ <item index="30" class="java.lang.String" itemvalue="Flask-Cors" />
45
+ <item index="31" class="java.lang.String" itemvalue="Flask-SocketIO" />
46
+ <item index="32" class="java.lang.String" itemvalue="Flask-CKEditor" />
47
+ <item index="33" class="java.lang.String" itemvalue="Babel" />
48
+ <item index="34" class="java.lang.String" itemvalue="pickleshare" />
49
+ <item index="35" class="java.lang.String" itemvalue="psycopg2" />
50
+ <item index="36" class="java.lang.String" itemvalue="defusedxml" />
51
+ <item index="37" class="java.lang.String" itemvalue="executing" />
52
+ <item index="38" class="java.lang.String" itemvalue="pycparser" />
53
+ <item index="39" class="java.lang.String" itemvalue="markdown-it-py" />
54
+ <item index="40" class="java.lang.String" itemvalue="paddlepaddle" />
55
+ <item index="41" class="java.lang.String" itemvalue="trio" />
56
+ <item index="42" class="java.lang.String" itemvalue="stanfordcorenlp" />
57
+ <item index="43" class="java.lang.String" itemvalue="Pygments" />
58
+ <item index="44" class="java.lang.String" itemvalue="starlette" />
59
+ <item index="45" class="java.lang.String" itemvalue="bleach" />
60
+ <item index="46" class="java.lang.String" itemvalue="anyjson" />
61
+ <item index="47" class="java.lang.String" itemvalue="multiprocess" />
62
+ <item index="48" class="java.lang.String" itemvalue="soupsieve" />
63
+ <item index="49" class="java.lang.String" itemvalue="aspose-ocr-python-net" />
64
+ <item index="50" class="java.lang.String" itemvalue="uvicorn" />
65
+ <item index="51" class="java.lang.String" itemvalue="paddle-bfloat" />
66
+ <item index="52" class="java.lang.String" itemvalue="jsonschema" />
67
+ <item index="53" class="java.lang.String" itemvalue="pywin32" />
68
+ <item index="54" class="java.lang.String" itemvalue="qtconsole" />
69
+ <item index="55" class="java.lang.String" itemvalue="terminado" />
70
+ <item index="56" class="java.lang.String" itemvalue="comm" />
71
+ <item index="57" class="java.lang.String" itemvalue="pydantic" />
72
+ <item index="58" class="java.lang.String" itemvalue="aspose-pdf" />
73
+ <item index="59" class="java.lang.String" itemvalue="Werkzeug" />
74
+ <item index="60" class="java.lang.String" itemvalue="asgiref" />
75
+ <item index="61" class="java.lang.String" itemvalue="jupyter-client" />
76
+ <item index="62" class="java.lang.String" itemvalue="jupyterlab-pygments" />
77
+ <item index="63" class="java.lang.String" itemvalue="click" />
78
+ <item index="64" class="java.lang.String" itemvalue="ipykernel" />
79
+ <item index="65" class="java.lang.String" itemvalue="nbconvert" />
80
+ <item index="66" class="java.lang.String" itemvalue="wsproto" />
81
+ <item index="67" class="java.lang.String" itemvalue="attrs" />
82
+ <item index="68" class="java.lang.String" itemvalue="contourpy" />
83
+ <item index="69" class="java.lang.String" itemvalue="psutil" />
84
+ <item index="70" class="java.lang.String" itemvalue="jedi" />
85
+ <item index="71" class="java.lang.String" itemvalue="pdfminer.six" />
86
+ <item index="72" class="java.lang.String" itemvalue="pure-eval" />
87
+ <item index="73" class="java.lang.String" itemvalue="aspose-tasks" />
88
+ <item index="74" class="java.lang.String" itemvalue="asttokens" />
89
+ <item index="75" class="java.lang.String" itemvalue="platformdirs" />
90
+ <item index="76" class="java.lang.String" itemvalue="notebook-shim" />
91
+ <item index="77" class="java.lang.String" itemvalue="Flask-Babel" />
92
+ <item index="78" class="java.lang.String" itemvalue="idna" />
93
+ <item index="79" class="java.lang.String" itemvalue="paddlenlp" />
94
+ <item index="80" class="java.lang.String" itemvalue="referencing" />
95
+ <item index="81" class="java.lang.String" itemvalue="decorator" />
96
+ <item index="82" class="java.lang.String" itemvalue="pkgutil-resolve-name" />
97
+ <item index="83" class="java.lang.String" itemvalue="json5" />
98
+ <item index="84" class="java.lang.String" itemvalue="trio-websocket" />
99
+ <item index="85" class="java.lang.String" itemvalue="cffi" />
100
+ <item index="86" class="java.lang.String" itemvalue="pandocfilters" />
101
+ <item index="87" class="java.lang.String" itemvalue="datasets" />
102
+ <item index="88" class="java.lang.String" itemvalue="jupyter-events" />
103
+ <item index="89" class="java.lang.String" itemvalue="sniffio" />
104
+ <item index="90" class="java.lang.String" itemvalue="websocket-client" />
105
+ <item index="91" class="java.lang.String" itemvalue="exceptiongroup" />
106
+ <item index="92" class="java.lang.String" itemvalue="celery" />
107
+ <item index="93" class="java.lang.String" itemvalue="jupyter" />
108
+ <item index="94" class="java.lang.String" itemvalue="selenium" />
109
+ <item index="95" class="java.lang.String" itemvalue="cron-descriptor" />
110
+ <item index="96" class="java.lang.String" itemvalue="seqeval" />
111
+ <item index="97" class="java.lang.String" itemvalue="stack-data" />
112
+ <item index="98" class="java.lang.String" itemvalue="zipp" />
113
+ <item index="99" class="java.lang.String" itemvalue="mdurl" />
114
+ <item index="100" class="java.lang.String" itemvalue="nest-asyncio" />
115
+ <item index="101" class="java.lang.String" itemvalue="prompt-toolkit" />
116
+ <item index="102" class="java.lang.String" itemvalue="itsdangerous" />
117
+ <item index="103" class="java.lang.String" itemvalue="django-cors-headers" />
118
+ <item index="104" class="java.lang.String" itemvalue="msgpack-python" />
119
+ <item index="105" class="java.lang.String" itemvalue="outcome" />
120
+ <item index="106" class="java.lang.String" itemvalue="ipywidgets" />
121
+ <item index="107" class="java.lang.String" itemvalue="blinker" />
122
+ <item index="108" class="java.lang.String" itemvalue="pyarrow" />
123
+ <item index="109" class="java.lang.String" itemvalue="annotated-types" />
124
+ <item index="110" class="java.lang.String" itemvalue="paddlefsl" />
125
+ <item index="111" class="java.lang.String" itemvalue="tornado" />
126
+ <item index="112" class="java.lang.String" itemvalue="django-celery-results" />
127
+ <item index="113" class="java.lang.String" itemvalue="astor" />
128
+ <item index="114" class="java.lang.String" itemvalue="jsonpointer" />
129
+ <item index="115" class="java.lang.String" itemvalue="Send2Trash" />
130
+ <item index="116" class="java.lang.String" itemvalue="overrides" />
131
+ <item index="117" class="java.lang.String" itemvalue="pyhanlp" />
132
+ <item index="118" class="java.lang.String" itemvalue="LAC" />
133
+ <item index="119" class="java.lang.String" itemvalue="sortedcontainers" />
134
+ <item index="120" class="java.lang.String" itemvalue="mistune" />
135
+ <item index="121" class="java.lang.String" itemvalue="importlib-resources" />
136
+ <item index="122" class="java.lang.String" itemvalue="pdfplumber" />
137
+ <item index="123" class="java.lang.String" itemvalue="future" />
138
+ <item index="124" class="java.lang.String" itemvalue="jupyter-console" />
139
+ <item index="125" class="java.lang.String" itemvalue="debugpy" />
140
+ <item index="126" class="java.lang.String" itemvalue="argon2-cffi" />
141
+ <item index="127" class="java.lang.String" itemvalue="multidict" />
142
+ <item index="128" class="java.lang.String" itemvalue="yarl" />
143
+ <item index="129" class="java.lang.String" itemvalue="pycryptodome" />
144
+ <item index="130" class="java.lang.String" itemvalue="aspose-words" />
145
+ <item index="131" class="java.lang.String" itemvalue="webencodings" />
146
+ <item index="132" class="java.lang.String" itemvalue="mysqlclient" />
147
+ <item index="133" class="java.lang.String" itemvalue="traitlets" />
148
+ <item index="134" class="java.lang.String" itemvalue="protobuf" />
149
+ <item index="135" class="java.lang.String" itemvalue="pywinpty" />
150
+ <item index="136" class="java.lang.String" itemvalue="rfc3339-validator" />
151
+ <item index="137" class="java.lang.String" itemvalue="colorlog" />
152
+ <item index="138" class="java.lang.String" itemvalue="arrow" />
153
+ <item index="139" class="java.lang.String" itemvalue="huggingface-hub" />
154
+ <item index="140" class="java.lang.String" itemvalue="opt-einsum" />
155
+ <item index="141" class="java.lang.String" itemvalue="bce-python-sdk" />
156
+ <item index="142" class="java.lang.String" itemvalue="python-dateutil" />
157
+ <item index="143" class="java.lang.String" itemvalue="nbclient" />
158
+ <item index="144" class="java.lang.String" itemvalue="QtPy" />
159
+ <item index="145" class="java.lang.String" itemvalue="MarkupSafe" />
160
+ <item index="146" class="java.lang.String" itemvalue="jupyter-server" />
161
+ <item index="147" class="java.lang.String" itemvalue="pydantic-core" />
162
+ <item index="148" class="java.lang.String" itemvalue="tinycss2" />
163
+ <item index="149" class="java.lang.String" itemvalue="frozenlist" />
164
+ <item index="150" class="java.lang.String" itemvalue="fsspec" />
165
+ <item index="151" class="java.lang.String" itemvalue="python-json-logger" />
166
+ <item index="152" class="java.lang.String" itemvalue="filelock" />
167
+ <item index="153" class="java.lang.String" itemvalue="jupyterlab-widgets" />
168
+ <item index="154" class="java.lang.String" itemvalue="pyzmq" />
169
+ <item index="155" class="java.lang.String" itemvalue="sentencepiece" />
170
+ <item index="156" class="java.lang.String" itemvalue="certifi" />
171
+ <item index="157" class="java.lang.String" itemvalue="anyio" />
172
+ <item index="158" class="java.lang.String" itemvalue="pypinyin" />
173
+ <item index="159" class="java.lang.String" itemvalue="notebook" />
174
+ <item index="160" class="java.lang.String" itemvalue="xxhash" />
175
+ <item index="161" class="java.lang.String" itemvalue="beautifulsoup4" />
176
+ <item index="162" class="java.lang.String" itemvalue="django-celery-beat" />
177
+ <item index="163" class="java.lang.String" itemvalue="isoduration" />
178
+ <item index="164" class="java.lang.String" itemvalue="jupyter-lsp" />
179
+ <item index="165" class="java.lang.String" itemvalue="fqdn" />
180
+ <item index="166" class="java.lang.String" itemvalue="cryptography" />
181
+ <item index="167" class="java.lang.String" itemvalue="fonttools" />
182
+ <item index="168" class="java.lang.String" itemvalue="backcall" />
183
+ <item index="169" class="java.lang.String" itemvalue="PySocks" />
184
+ <item index="170" class="java.lang.String" itemvalue="widgetsnbextension" />
185
+ <item index="171" class="java.lang.String" itemvalue="argon2-cffi-bindings" />
186
+ <item index="172" class="java.lang.String" itemvalue="charset-normalizer" />
187
+ <item index="173" class="java.lang.String" itemvalue="jionlp" />
188
+ <item index="174" class="java.lang.String" itemvalue="jupyter-core" />
189
+ <item index="175" class="java.lang.String" itemvalue="jieba" />
190
+ <item index="176" class="java.lang.String" itemvalue="matplotlib-inline" />
191
+ <item index="177" class="java.lang.String" itemvalue="webcolors" />
192
+ <item index="178" class="java.lang.String" itemvalue="hanlp-downloader" />
193
+ <item index="179" class="java.lang.String" itemvalue="SQLAlchemy" />
194
+ <item index="180" class="java.lang.String" itemvalue="importlib-metadata" />
195
+ <item index="181" class="java.lang.String" itemvalue="Jinja2" />
196
+ <item index="182" class="java.lang.String" itemvalue="rfc3986-validator" />
197
+ <item index="183" class="java.lang.String" itemvalue="types-python-dateutil" />
198
+ <item index="184" class="java.lang.String" itemvalue="sqlparse" />
199
+ <item index="185" class="java.lang.String" itemvalue="jsonschema-specifications" />
200
+ <item index="186" class="java.lang.String" itemvalue="rpds-py" />
201
+ <item index="187" class="java.lang.String" itemvalue="uri-template" />
202
+ <item index="188" class="java.lang.String" itemvalue="pypdfium2" />
203
+ <item index="189" class="java.lang.String" itemvalue="aspose-zip" />
204
+ <item index="190" class="java.lang.String" itemvalue="jupyterlab" />
205
+ <item index="191" class="java.lang.String" itemvalue="visualdl" />
206
+ <item index="192" class="java.lang.String" itemvalue="Aspose.Slides" />
207
+ <item index="193" class="java.lang.String" itemvalue="jiojio" />
208
+ <item index="194" class="java.lang.String" itemvalue="jupyter-server-terminals" />
209
+ <item index="195" class="java.lang.String" itemvalue="billiard" />
210
+ <item index="196" class="java.lang.String" itemvalue="typer" />
211
+ <item index="197" class="java.lang.String" itemvalue="parso" />
212
+ <item index="198" class="java.lang.String" itemvalue="jupyterlab-server" />
213
+ <item index="199" class="java.lang.String" itemvalue="nbformat" />
214
+ <item index="200" class="java.lang.String" itemvalue="tzdata" />
215
+ <item index="201" class="java.lang.String" itemvalue="ipython" />
216
+ <item index="202" class="java.lang.String" itemvalue="rich" />
217
+ <item index="203" class="java.lang.String" itemvalue="dill" />
218
+ <item index="204" class="java.lang.String" itemvalue="packaging" />
219
+ <item index="205" class="java.lang.String" itemvalue="fastjsonschema" />
220
+ <item index="206" class="java.lang.String" itemvalue="prometheus-client" />
221
+ <item index="207" class="java.lang.String" itemvalue="JPype1" />
222
+ <item index="208" class="java.lang.String" itemvalue="tqdm" />
223
+ <item index="209" class="java.lang.String" itemvalue="fastapi" />
224
+ <item index="210" class="java.lang.String" itemvalue="paddle2onnx" />
225
+ <item index="211" class="java.lang.String" itemvalue="django-timezone-field" />
226
+ <item index="212" class="java.lang.String" itemvalue="aiohttp" />
227
+ <item index="213" class="java.lang.String" itemvalue="zipfile36" />
228
+ <item index="214" class="java.lang.String" itemvalue="async-lru" />
229
+ <item index="215" class="java.lang.String" itemvalue="aiosignal" />
230
+ <item index="216" class="java.lang.String" itemvalue="httpx" />
231
+ <item index="217" class="java.lang.String" itemvalue="greenlet" />
232
+ <item index="218" class="java.lang.String" itemvalue="looseversion" />
233
+ <item index="219" class="java.lang.String" itemvalue="etelemetry" />
234
+ <item index="220" class="java.lang.String" itemvalue="python-dotenv" />
235
+ <item index="221" class="java.lang.String" itemvalue="h11" />
236
+ <item index="222" class="java.lang.String" itemvalue="marshmallow" />
237
+ <item index="223" class="java.lang.String" itemvalue="kombu" />
238
+ <item index="224" class="java.lang.String" itemvalue="redis" />
239
+ <item index="225" class="java.lang.String" itemvalue="pathlib" />
240
+ <item index="226" class="java.lang.String" itemvalue="backports.zoneinfo" />
241
+ <item index="227" class="java.lang.String" itemvalue="lxml" />
242
+ <item index="228" class="java.lang.String" itemvalue="vine" />
243
+ <item index="229" class="java.lang.String" itemvalue="dnspython" />
244
+ <item index="230" class="java.lang.String" itemvalue="nibabel" />
245
+ <item index="231" class="java.lang.String" itemvalue="rdflib" />
246
+ <item index="232" class="java.lang.String" itemvalue="reportlab" />
247
+ <item index="233" class="java.lang.String" itemvalue="PyMuPDFb" />
248
+ <item index="234" class="java.lang.String" itemvalue="pypdf" />
249
+ <item index="235" class="java.lang.String" itemvalue="simplejson" />
250
+ <item index="236" class="java.lang.String" itemvalue="openai" />
251
+ <item index="237" class="java.lang.String" itemvalue="pyxnat" />
252
+ <item index="238" class="java.lang.String" itemvalue="pydantic_core" />
253
+ <item index="239" class="java.lang.String" itemvalue="configparser" />
254
+ <item index="240" class="java.lang.String" itemvalue="milvus" />
255
+ <item index="241" class="java.lang.String" itemvalue="httpcore" />
256
+ <item index="242" class="java.lang.String" itemvalue="distro" />
257
+ <item index="243" class="java.lang.String" itemvalue="pydot" />
258
+ <item index="244" class="java.lang.String" itemvalue="environs" />
259
+ <item index="245" class="java.lang.String" itemvalue="networkx" />
260
+ <item index="246" class="java.lang.String" itemvalue="traits" />
261
+ <item index="247" class="java.lang.String" itemvalue="async-timeout" />
262
+ <item index="248" class="java.lang.String" itemvalue="isodate" />
263
+ <item index="249" class="java.lang.String" itemvalue="python-crontab" />
264
+ <item index="250" class="java.lang.String" itemvalue="nipype" />
265
+ <item index="251" class="java.lang.String" itemvalue="httplib2" />
266
+ <item index="252" class="java.lang.String" itemvalue="wcwidth" />
267
+ <item index="253" class="java.lang.String" itemvalue="requests" />
268
+ <item index="254" class="java.lang.String" itemvalue="click-didyoumean" />
269
+ <item index="255" class="java.lang.String" itemvalue="mysql-connector-python" />
270
+ <item index="256" class="java.lang.String" itemvalue="docker" />
271
+ <item index="257" class="java.lang.String" itemvalue="eventlet" />
272
+ <item index="258" class="java.lang.String" itemvalue="ci-info" />
273
+ <item index="259" class="java.lang.String" itemvalue="milvus-lite" />
274
+ <item index="260" class="java.lang.String" itemvalue="prov" />
275
+ <item index="261" class="java.lang.String" itemvalue="pymilvus" />
276
+ <item index="262" class="java.lang.String" itemvalue="PyMuPDF" />
277
+ <item index="263" class="java.lang.String" itemvalue="six" />
278
+ <item index="264" class="java.lang.String" itemvalue="importlib_resources" />
279
+ <item index="265" class="java.lang.String" itemvalue="prompt_toolkit" />
280
+ <item index="266" class="java.lang.String" itemvalue="amqp" />
281
+ <item index="267" class="java.lang.String" itemvalue="aiofiles" />
282
+ <item index="268" class="java.lang.String" itemvalue="socksio" />
283
+ <item index="269" class="java.lang.String" itemvalue="chardet" />
284
+ <item index="270" class="java.lang.String" itemvalue="Django" />
285
+ <item index="271" class="java.lang.String" itemvalue="configobj" />
286
+ <item index="272" class="java.lang.String" itemvalue="pillow" />
287
+ <item index="273" class="java.lang.String" itemvalue="grpcio" />
288
+ <item index="274" class="java.lang.String" itemvalue="click-repl" />
289
+ <item index="275" class="java.lang.String" itemvalue="click-plugins" />
290
+ <item index="276" class="java.lang.String" itemvalue="frontend" />
291
+ <item index="277" class="java.lang.String" itemvalue="ujson" />
292
+ </list>
293
+ </value>
294
+ </option>
295
+ </inspection_tool>
296
+ <inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
297
+ <option name="ignoredIdentifiers">
298
+ <list>
299
+ <option value="dict.get" />
300
+ </list>
301
+ </option>
302
+ </inspection_tool>
303
+ <inspection_tool class="Stylelint" enabled="true" level="ERROR" enabled_by_default="true" />
304
+ </profile>
305
+ </component>
@@ -0,0 +1,6 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <settings>
3
+ <option name="USE_PROJECT_PROFILE" value="false" />
4
+ <version value="1.0" />
5
+ </settings>
6
+ </component>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectRootManager" version="2" project-jdk-name="$USER_HOME$/software/miniconda3" project-jdk-type="Python SDK" />
4
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/kjiujing.iml" filepath="$PROJECT_DIR$/.idea/kjiujing.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,383 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="AutoImportSettings">
4
+ <option name="autoReloadType" value="SELECTIVE" />
5
+ </component>
6
+ <component name="ChangeListManager">
7
+ <list default="true" id="60409865-bf43-4f6b-9523-f99905def12b" name="Changes" comment="" />
8
+ <option name="SHOW_DIALOG" value="false" />
9
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
11
+ <option name="LAST_RESOLUTION" value="IGNORE" />
12
+ </component>
13
+ <component name="FileTemplateManagerImpl">
14
+ <option name="RECENT_TEMPLATES">
15
+ <list>
16
+ <option value="Python Script" />
17
+ </list>
18
+ </option>
19
+ </component>
20
+ <component name="MarkdownSettingsMigration">
21
+ <option name="stateVersion" value="1" />
22
+ </component>
23
+ <component name="ProjectId" id="3AjmYHwjGn2QsNHdJumON2rVcQh" />
24
+ <component name="ProjectViewState">
25
+ <option name="autoscrollFromSource" value="true" />
26
+ <option name="hideEmptyMiddlePackages" value="true" />
27
+ <option name="showLibraryContents" value="true" />
28
+ </component>
29
+ <component name="PropertiesComponent"><![CDATA[{
30
+ "keyToString": {
31
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
32
+ "RunOnceActivity.ShowReadmeOnStart": "true",
33
+ "WebServerToolWindowFactoryState": "true",
34
+ "last_opened_file_path": "/Users/kaizan/workspace/tiger/kjiujing",
35
+ "node.js.detected.package.eslint": "true",
36
+ "node.js.detected.package.stylelint": "true",
37
+ "node.js.detected.package.tslint": "true",
38
+ "node.js.selected.package.eslint": "(autodetect)",
39
+ "node.js.selected.package.stylelint": "",
40
+ "node.js.selected.package.tslint": "(autodetect)",
41
+ "nodejs_package_manager_path": "npm",
42
+ "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable",
43
+ "vue.rearranger.settings.migration": "true"
44
+ }
45
+ }]]></component>
46
+ <component name="RecentsManager">
47
+ <key name="MoveFile.RECENT_KEYS">
48
+ <recent name="$PROJECT_DIR$/src/kjiujing" />
49
+ <recent name="$PROJECT_DIR$/src/test" />
50
+ </key>
51
+ </component>
52
+ <component name="RunManager" selected="Python.core (2)">
53
+ <configuration default="true" type="DjangoTestsConfigurationType">
54
+ <module name="equal-data" />
55
+ <option name="INTERPRETER_OPTIONS" value="" />
56
+ <option name="PARENT_ENVS" value="true" />
57
+ <envs>
58
+ <env name="PYTHONUNBUFFERED" value="1" />
59
+ </envs>
60
+ <option name="SDK_HOME" value="" />
61
+ <option name="WORKING_DIRECTORY" value="" />
62
+ <option name="IS_MODULE_SDK" value="false" />
63
+ <option name="ADD_CONTENT_ROOTS" value="true" />
64
+ <option name="ADD_SOURCE_ROOTS" value="true" />
65
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
66
+ <option name="TARGET" value="" />
67
+ <option name="SETTINGS_FILE" value="" />
68
+ <option name="CUSTOM_SETTINGS" value="false" />
69
+ <option name="USE_OPTIONS" value="false" />
70
+ <option name="OPTIONS" value="" />
71
+ <method v="2" />
72
+ </configuration>
73
+ <configuration default="true" type="PyBehaveRunConfigurationType" factoryName="Behave">
74
+ <module name="equal-data" />
75
+ <option name="INTERPRETER_OPTIONS" value="" />
76
+ <option name="PARENT_ENVS" value="true" />
77
+ <option name="SDK_HOME" value="" />
78
+ <option name="WORKING_DIRECTORY" value="" />
79
+ <option name="IS_MODULE_SDK" value="true" />
80
+ <option name="ADD_CONTENT_ROOTS" value="true" />
81
+ <option name="ADD_SOURCE_ROOTS" value="true" />
82
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
83
+ <option name="ADDITIONAL_ARGS" value="" />
84
+ <method v="2" />
85
+ </configuration>
86
+ <configuration default="true" type="PythonConfigurationType" factoryName="Python">
87
+ <module name="equal-data" />
88
+ <option name="INTERPRETER_OPTIONS" value="" />
89
+ <option name="PARENT_ENVS" value="true" />
90
+ <envs>
91
+ <env name="PYTHONUNBUFFERED" value="1" />
92
+ </envs>
93
+ <option name="SDK_HOME" value="" />
94
+ <option name="WORKING_DIRECTORY" value="" />
95
+ <option name="IS_MODULE_SDK" value="false" />
96
+ <option name="ADD_CONTENT_ROOTS" value="true" />
97
+ <option name="ADD_SOURCE_ROOTS" value="true" />
98
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
99
+ <option name="SCRIPT_NAME" value="" />
100
+ <option name="PARAMETERS" value="" />
101
+ <option name="SHOW_COMMAND_LINE" value="false" />
102
+ <option name="EMULATE_TERMINAL" value="false" />
103
+ <option name="MODULE_MODE" value="false" />
104
+ <option name="REDIRECT_INPUT" value="false" />
105
+ <option name="INPUT_FILE" value="" />
106
+ <method v="2" />
107
+ </configuration>
108
+ <configuration name="core (1)" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
109
+ <module name="equal-data" />
110
+ <option name="INTERPRETER_OPTIONS" value="" />
111
+ <option name="PARENT_ENVS" value="true" />
112
+ <envs>
113
+ <env name="PYTHONUNBUFFERED" value="1" />
114
+ </envs>
115
+ <option name="SDK_HOME" value="" />
116
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/src/kjiujing" />
117
+ <option name="IS_MODULE_SDK" value="true" />
118
+ <option name="ADD_CONTENT_ROOTS" value="true" />
119
+ <option name="ADD_SOURCE_ROOTS" value="true" />
120
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
121
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/src/kjiujing/core.py" />
122
+ <option name="PARAMETERS" value="" />
123
+ <option name="SHOW_COMMAND_LINE" value="false" />
124
+ <option name="EMULATE_TERMINAL" value="false" />
125
+ <option name="MODULE_MODE" value="false" />
126
+ <option name="REDIRECT_INPUT" value="false" />
127
+ <option name="INPUT_FILE" value="" />
128
+ <method v="2" />
129
+ </configuration>
130
+ <configuration name="core (2)" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
131
+ <module name="equal-data" />
132
+ <option name="INTERPRETER_OPTIONS" value="" />
133
+ <option name="PARENT_ENVS" value="true" />
134
+ <envs>
135
+ <env name="PYTHONUNBUFFERED" value="1" />
136
+ </envs>
137
+ <option name="SDK_HOME" value="" />
138
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/src/equaldata" />
139
+ <option name="IS_MODULE_SDK" value="true" />
140
+ <option name="ADD_CONTENT_ROOTS" value="true" />
141
+ <option name="ADD_SOURCE_ROOTS" value="true" />
142
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
143
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/src/equaldata/core.py" />
144
+ <option name="PARAMETERS" value="" />
145
+ <option name="SHOW_COMMAND_LINE" value="false" />
146
+ <option name="EMULATE_TERMINAL" value="false" />
147
+ <option name="MODULE_MODE" value="false" />
148
+ <option name="REDIRECT_INPUT" value="false" />
149
+ <option name="INPUT_FILE" value="" />
150
+ <method v="2" />
151
+ </configuration>
152
+ <configuration name="core" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
153
+ <module name="equal-data" />
154
+ <option name="INTERPRETER_OPTIONS" value="" />
155
+ <option name="PARENT_ENVS" value="true" />
156
+ <envs>
157
+ <env name="PYTHONUNBUFFERED" value="1" />
158
+ </envs>
159
+ <option name="SDK_HOME" value="" />
160
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/src/api" />
161
+ <option name="IS_MODULE_SDK" value="true" />
162
+ <option name="ADD_CONTENT_ROOTS" value="true" />
163
+ <option name="ADD_SOURCE_ROOTS" value="true" />
164
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
165
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/src/api/core.py" />
166
+ <option name="PARAMETERS" value="" />
167
+ <option name="SHOW_COMMAND_LINE" value="false" />
168
+ <option name="EMULATE_TERMINAL" value="false" />
169
+ <option name="MODULE_MODE" value="false" />
170
+ <option name="REDIRECT_INPUT" value="false" />
171
+ <option name="INPUT_FILE" value="" />
172
+ <method v="2" />
173
+ </configuration>
174
+ <configuration name="main" type="PythonConfigurationType" factoryName="Python" nameIsGenerated="true">
175
+ <module name="equal-data" />
176
+ <option name="INTERPRETER_OPTIONS" value="" />
177
+ <option name="PARENT_ENVS" value="true" />
178
+ <envs>
179
+ <env name="PYTHONUNBUFFERED" value="1" />
180
+ </envs>
181
+ <option name="SDK_HOME" value="" />
182
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
183
+ <option name="IS_MODULE_SDK" value="true" />
184
+ <option name="ADD_CONTENT_ROOTS" value="true" />
185
+ <option name="ADD_SOURCE_ROOTS" value="true" />
186
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
187
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/main.py" />
188
+ <option name="PARAMETERS" value="" />
189
+ <option name="SHOW_COMMAND_LINE" value="false" />
190
+ <option name="EMULATE_TERMINAL" value="false" />
191
+ <option name="MODULE_MODE" value="false" />
192
+ <option name="REDIRECT_INPUT" value="false" />
193
+ <option name="INPUT_FILE" value="" />
194
+ <method v="2" />
195
+ </configuration>
196
+ <configuration name="t_1" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
197
+ <module name="equal-data" />
198
+ <option name="INTERPRETER_OPTIONS" value="" />
199
+ <option name="PARENT_ENVS" value="true" />
200
+ <envs>
201
+ <env name="PYTHONUNBUFFERED" value="1" />
202
+ </envs>
203
+ <option name="SDK_HOME" value="" />
204
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/src/kjiujing" />
205
+ <option name="IS_MODULE_SDK" value="true" />
206
+ <option name="ADD_CONTENT_ROOTS" value="true" />
207
+ <option name="ADD_SOURCE_ROOTS" value="true" />
208
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
209
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/src/test/t_1.py" />
210
+ <option name="PARAMETERS" value="" />
211
+ <option name="SHOW_COMMAND_LINE" value="false" />
212
+ <option name="EMULATE_TERMINAL" value="false" />
213
+ <option name="MODULE_MODE" value="false" />
214
+ <option name="REDIRECT_INPUT" value="false" />
215
+ <option name="INPUT_FILE" value="" />
216
+ <method v="2" />
217
+ </configuration>
218
+ <configuration name="t_2" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
219
+ <module name="equal-data" />
220
+ <option name="INTERPRETER_OPTIONS" value="" />
221
+ <option name="PARENT_ENVS" value="true" />
222
+ <envs>
223
+ <env name="PYTHONUNBUFFERED" value="1" />
224
+ </envs>
225
+ <option name="SDK_HOME" value="" />
226
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/src/test" />
227
+ <option name="IS_MODULE_SDK" value="true" />
228
+ <option name="ADD_CONTENT_ROOTS" value="true" />
229
+ <option name="ADD_SOURCE_ROOTS" value="true" />
230
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
231
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/src/test/t_2.py" />
232
+ <option name="PARAMETERS" value="" />
233
+ <option name="SHOW_COMMAND_LINE" value="false" />
234
+ <option name="EMULATE_TERMINAL" value="false" />
235
+ <option name="MODULE_MODE" value="false" />
236
+ <option name="REDIRECT_INPUT" value="false" />
237
+ <option name="INPUT_FILE" value="" />
238
+ <method v="2" />
239
+ </configuration>
240
+ <configuration default="true" type="Python.FlaskServer">
241
+ <module name="equal-data" />
242
+ <option name="INTERPRETER_OPTIONS" value="" />
243
+ <option name="PARENT_ENVS" value="true" />
244
+ <option name="SDK_HOME" value="" />
245
+ <option name="WORKING_DIRECTORY" value="" />
246
+ <option name="IS_MODULE_SDK" value="false" />
247
+ <option name="ADD_CONTENT_ROOTS" value="true" />
248
+ <option name="ADD_SOURCE_ROOTS" value="true" />
249
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
250
+ <option name="launchJavascriptDebuger" value="false" />
251
+ <method v="2" />
252
+ </configuration>
253
+ <configuration default="true" type="Tox" factoryName="Tox">
254
+ <module name="equal-data" />
255
+ <option name="INTERPRETER_OPTIONS" value="" />
256
+ <option name="PARENT_ENVS" value="true" />
257
+ <option name="SDK_HOME" value="" />
258
+ <option name="WORKING_DIRECTORY" value="" />
259
+ <option name="IS_MODULE_SDK" value="false" />
260
+ <option name="ADD_CONTENT_ROOTS" value="true" />
261
+ <option name="ADD_SOURCE_ROOTS" value="true" />
262
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
263
+ <method v="2" />
264
+ </configuration>
265
+ <configuration default="true" type="docs" factoryName="Docutils task">
266
+ <module name="equal-data" />
267
+ <option name="INTERPRETER_OPTIONS" value="" />
268
+ <option name="PARENT_ENVS" value="true" />
269
+ <option name="SDK_HOME" value="" />
270
+ <option name="WORKING_DIRECTORY" value="" />
271
+ <option name="IS_MODULE_SDK" value="false" />
272
+ <option name="ADD_CONTENT_ROOTS" value="true" />
273
+ <option name="ADD_SOURCE_ROOTS" value="true" />
274
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
275
+ <option name="docutils_input_file" value="" />
276
+ <option name="docutils_output_file" value="" />
277
+ <option name="docutils_params" value="" />
278
+ <option name="docutils_task" value="" />
279
+ <option name="docutils_open_in_browser" value="false" />
280
+ <method v="2" />
281
+ </configuration>
282
+ <configuration default="true" type="docs" factoryName="Sphinx task">
283
+ <module name="equal-data" />
284
+ <option name="INTERPRETER_OPTIONS" value="" />
285
+ <option name="PARENT_ENVS" value="true" />
286
+ <option name="SDK_HOME" value="" />
287
+ <option name="WORKING_DIRECTORY" value="" />
288
+ <option name="IS_MODULE_SDK" value="false" />
289
+ <option name="ADD_CONTENT_ROOTS" value="true" />
290
+ <option name="ADD_SOURCE_ROOTS" value="true" />
291
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
292
+ <option name="docutils_input_file" value="" />
293
+ <option name="docutils_output_file" value="" />
294
+ <option name="docutils_params" value="" />
295
+ <option name="docutils_task" value="" />
296
+ <option name="docutils_open_in_browser" value="false" />
297
+ <method v="2" />
298
+ </configuration>
299
+ <configuration default="true" type="tests" factoryName="Autodetect">
300
+ <module name="equal-data" />
301
+ <option name="INTERPRETER_OPTIONS" value="" />
302
+ <option name="PARENT_ENVS" value="true" />
303
+ <option name="SDK_HOME" value="" />
304
+ <option name="WORKING_DIRECTORY" value="" />
305
+ <option name="IS_MODULE_SDK" value="false" />
306
+ <option name="ADD_CONTENT_ROOTS" value="true" />
307
+ <option name="ADD_SOURCE_ROOTS" value="true" />
308
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
309
+ <option name="_new_additionalArguments" value="&quot;&quot;" />
310
+ <option name="_new_target" value="&quot;&quot;" />
311
+ <option name="_new_targetType" value="&quot;PATH&quot;" />
312
+ <method v="2" />
313
+ </configuration>
314
+ <configuration default="true" type="tests" factoryName="Doctests">
315
+ <module name="equal-data" />
316
+ <option name="INTERPRETER_OPTIONS" value="" />
317
+ <option name="PARENT_ENVS" value="true" />
318
+ <option name="SDK_HOME" value="" />
319
+ <option name="WORKING_DIRECTORY" value="" />
320
+ <option name="IS_MODULE_SDK" value="false" />
321
+ <option name="ADD_CONTENT_ROOTS" value="true" />
322
+ <option name="ADD_SOURCE_ROOTS" value="true" />
323
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
324
+ <option name="SCRIPT_NAME" value="" />
325
+ <option name="CLASS_NAME" value="" />
326
+ <option name="METHOD_NAME" value="" />
327
+ <option name="FOLDER_NAME" value="" />
328
+ <option name="TEST_TYPE" value="TEST_SCRIPT" />
329
+ <option name="PATTERN" value="" />
330
+ <option name="USE_PATTERN" value="false" />
331
+ <method v="2" />
332
+ </configuration>
333
+ <recent_temporary>
334
+ <list>
335
+ <item itemvalue="Python.core (2)" />
336
+ <item itemvalue="Python.core (1)" />
337
+ <item itemvalue="Python.t_1" />
338
+ <item itemvalue="Python.t_2" />
339
+ <item itemvalue="Python.core" />
340
+ </list>
341
+ </recent_temporary>
342
+ </component>
343
+ <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
344
+ <component name="TaskManager">
345
+ <task active="true" id="Default" summary="Default task">
346
+ <changelist id="60409865-bf43-4f6b-9523-f99905def12b" name="Changes" comment="" />
347
+ <created>1773114399905</created>
348
+ <option name="number" value="Default" />
349
+ <option name="presentableId" value="Default" />
350
+ <updated>1773114399905</updated>
351
+ <workItem from="1773114401077" duration="5815000" />
352
+ <workItem from="1773199615751" duration="5124000" />
353
+ <workItem from="1773365873362" duration="17542000" />
354
+ </task>
355
+ <servers />
356
+ </component>
357
+ <component name="TypeScriptGeneratedFilesManager">
358
+ <option name="version" value="3" />
359
+ </component>
360
+ <component name="XDebuggerManager">
361
+ <breakpoint-manager>
362
+ <breakpoints>
363
+ <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
364
+ <url>file://$PROJECT_DIR$/../equal-data/src/test/t_1.py</url>
365
+ <line>59</line>
366
+ <option name="timeStamp" value="2" />
367
+ </line-breakpoint>
368
+ <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
369
+ <url>file://$PROJECT_DIR$/../equal-data/src/kjj/core.py</url>
370
+ <line>36</line>
371
+ <option name="timeStamp" value="4" />
372
+ </line-breakpoint>
373
+ </breakpoints>
374
+ </breakpoint-manager>
375
+ </component>
376
+ <component name="com.intellij.coverage.CoverageDataManagerImpl">
377
+ <SUITE FILE_PATH="coverage/kjiujing$core__2_.coverage" NAME="core (2) Coverage Results" MODIFIED="1773713178018" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/equaldata" />
378
+ <SUITE FILE_PATH="coverage/kjiujing$core.coverage" NAME="core Coverage Results" MODIFIED="1773121844054" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/api" />
379
+ <SUITE FILE_PATH="coverage/kjiujing$t_1.coverage" NAME="t_1 Coverage Results" MODIFIED="1773387817510" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/kjiujing" />
380
+ <SUITE FILE_PATH="coverage/kjiujing$t_2.coverage" NAME="t_2 Coverage Results" MODIFIED="1773382810811" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/test" />
381
+ <SUITE FILE_PATH="coverage/kjiujing$core__1_.coverage" NAME="core (1) Coverage Results" MODIFIED="1773712533177" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/src/kjiujing" />
382
+ </component>
383
+ </project>
@@ -0,0 +1,10 @@
1
+
2
+ ### LICENSE
3
+ ```text
4
+ MIT License
5
+
6
+ Copyright (c) 2024 Your Name
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ of this software and associated documentation files (the "Software"), to deal
10
+ in the Software without restriction...
@@ -0,0 +1,78 @@
1
+ Metadata-Version: 2.4
2
+ Name: equal-data
3
+ Version: 0.0.1
4
+ Summary: 金融数据获取 Skill,支持 100+ 个金融数据接口。kjiujing 官方提供的SKILL工具包。
5
+ Project-URL: Homepage, https://github.com/username/my_project
6
+ Project-URL: Documentation, https://readthedocs.org
7
+ Project-URL: Repository, https://github.com/username/my_project.git
8
+ Project-URL: Issues, https://github.com/username/my_project/issues
9
+ Author-email: wangyanlei <wangyanlei310@163.com>
10
+ License: MIT
11
+ License-File: LICENSE
12
+ Keywords: package,pypi,tutorial
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.8
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Requires-Python: >=3.8
23
+ Provides-Extra: dev
24
+ Requires-Dist: black; extra == 'dev'
25
+ Requires-Dist: mypy; extra == 'dev'
26
+ Requires-Dist: pytest>=7.0; extra == 'dev'
27
+ Description-Content-Type: text/markdown
28
+
29
+ # My Package
30
+
31
+ TuShare
32
+ ===============
33
+
34
+
35
+ * easy to use as most of the data returned are pandas DataFrame objects
36
+ * can be easily saved as csv, excel or json files
37
+ * can be inserted into MySQL or Mongodb
38
+
39
+ Target Users
40
+ --------------
41
+
42
+ * financial market analyst of China
43
+ * learners of financial data analysis with pandas/NumPy
44
+ * people who are interested in China financial data
45
+
46
+ Installation
47
+ --------------
48
+
49
+ pip install kjiujing
50
+
51
+ Upgrade
52
+ ---------------
53
+
54
+ pip install kjiujing --upgrade
55
+
56
+ Quick Start
57
+ --------------
58
+
59
+ ::
60
+
61
+ import kjiujing as kjj
62
+
63
+ ts.get_hist_data('600848')
64
+
65
+ return::
66
+
67
+ open high close low volume p_change ma5
68
+ date
69
+ 2012-01-11 6.880 7.380 7.060 6.880 14129.96 2.62 7.060
70
+ 2012-01-12 7.050 7.100 6.980 6.900 7895.19 -1.13 7.020
71
+ 2012-01-13 6.950 7.000 6.700 6.690 6611.87 -4.01 6.913
72
+ 2012-01-16 6.680 6.750 6.510 6.480 2941.63 -2.84 6.813
73
+ 2012-01-17 6.660 6.880 6.860 6.460 8642.57 5.38 6.822
74
+ 2012-01-18 7.000 7.300 6.890 6.880 13075.40 0.44 6.788
75
+ 2012-01-19 6.690 6.950 6.890 6.680 6117.32 0.00 6.770
76
+ 2012-01-20 6.870 7.080 7.010 6.870 6813.09 1.74 6.832
77
+
78
+
@@ -0,0 +1,50 @@
1
+ # My Package
2
+
3
+ TuShare
4
+ ===============
5
+
6
+
7
+ * easy to use as most of the data returned are pandas DataFrame objects
8
+ * can be easily saved as csv, excel or json files
9
+ * can be inserted into MySQL or Mongodb
10
+
11
+ Target Users
12
+ --------------
13
+
14
+ * financial market analyst of China
15
+ * learners of financial data analysis with pandas/NumPy
16
+ * people who are interested in China financial data
17
+
18
+ Installation
19
+ --------------
20
+
21
+ pip install kjiujing
22
+
23
+ Upgrade
24
+ ---------------
25
+
26
+ pip install kjiujing --upgrade
27
+
28
+ Quick Start
29
+ --------------
30
+
31
+ ::
32
+
33
+ import kjiujing as kjj
34
+
35
+ ts.get_hist_data('600848')
36
+
37
+ return::
38
+
39
+ open high close low volume p_change ma5
40
+ date
41
+ 2012-01-11 6.880 7.380 7.060 6.880 14129.96 2.62 7.060
42
+ 2012-01-12 7.050 7.100 6.980 6.900 7895.19 -1.13 7.020
43
+ 2012-01-13 6.950 7.000 6.700 6.690 6611.87 -4.01 6.913
44
+ 2012-01-16 6.680 6.750 6.510 6.480 2941.63 -2.84 6.813
45
+ 2012-01-17 6.660 6.880 6.860 6.460 8642.57 5.38 6.822
46
+ 2012-01-18 7.000 7.300 6.890 6.880 13075.40 0.44 6.788
47
+ 2012-01-19 6.690 6.950 6.890 6.680 6117.32 0.00 6.770
48
+ 2012-01-20 6.870 7.080 7.010 6.870 6813.09 1.74 6.832
49
+
50
+
@@ -0,0 +1,44 @@
1
+ [build-system]
2
+ requires = ["hatchling"] # 构建后端,也可用 "setuptools", "flit", "poetry"
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "equal-data" # PyPI 上的包名(必须唯一,用连字符)
7
+ version = "0.0.1" # 版本号
8
+ description = "金融数据获取 Skill,支持 100+ 个金融数据接口。kjiujing 官方提供的SKILL工具包。"
9
+ readme = "README.md"
10
+ license = {text = "MIT"} # 或 license = {file = "LICENSE"}
11
+ authors = [
12
+ {name = "wangyanlei", email = "wangyanlei310@163.com"}
13
+ ]
14
+ keywords = ["pypi", "package", "tutorial"]
15
+ classifiers = [
16
+ "Development Status :: 3 - Alpha",
17
+ "Intended Audience :: Developers",
18
+ "License :: OSI Approved :: MIT License",
19
+ "Programming Language :: Python :: 3",
20
+ "Programming Language :: Python :: 3.8",
21
+ "Programming Language :: Python :: 3.9",
22
+ "Programming Language :: Python :: 3.10",
23
+ "Programming Language :: Python :: 3.11",
24
+ "Operating System :: OS Independent",
25
+ ]
26
+ requires-python = ">=3.8" # Python 版本要求
27
+ dependencies = [ # 运行时依赖
28
+ ]
29
+
30
+ [project.optional-dependencies] # 可选依赖(用户可用 pip install my-package[dev] 安装)
31
+ dev = [
32
+ "pytest>=7.0",
33
+ "black",
34
+ "mypy",
35
+ ]
36
+
37
+ [project.urls] # PyPI 页面会显示这些链接
38
+ Homepage = "https://github.com/username/my_project"
39
+ Documentation = "https://readthedocs.org"
40
+ Repository = "https://github.com/username/my_project.git"
41
+ Issues = "https://github.com/username/my_project/issues"
42
+
43
+ [tool.hatch.build.targets.wheel] # 构建配置
44
+ packages = ["src/kjj"]
@@ -0,0 +1,12 @@
1
+ # -*- coding: utf-8 -*-
2
+ import sys
3
+ import os
4
+
5
+ curPath = os.path.abspath(os.path.dirname(__file__))
6
+ sys.path.append(curPath)
7
+ """
8
+ @Description
9
+ @Author:yanlei.wang
10
+ @file: __init__.py.py
11
+ @date:2026/3/10 11:47
12
+ """
@@ -0,0 +1,8 @@
1
+ """ 通过请求api 返回最终金融数据"""
2
+
3
+ __version__ = "0.0.3"
4
+ from .core import (
5
+ KjjApi
6
+ )
7
+
8
+ __all__ = ["KjjApi"]
@@ -0,0 +1,12 @@
1
+ # -*- coding: utf-8 -*-
2
+ import sys
3
+ import os
4
+
5
+ curPath = os.path.abspath(os.path.dirname(__file__))
6
+ sys.path.append(curPath)
7
+ """
8
+ @Description
9
+ @Author:yanlei.wang
10
+ @file: __init__.py.py
11
+ @date:2026/3/13 15:47
12
+ """
@@ -0,0 +1,13 @@
1
+ # -*- coding: utf-8 -*-
2
+ import sys
3
+ import os
4
+
5
+ curPath = os.path.abspath(os.path.dirname(__file__))
6
+ sys.path.append(curPath)
7
+ """
8
+ @Description
9
+ @Author:yanlei.wang
10
+ @file: conf.py
11
+ @date:2026/3/13 15:47
12
+ """
13
+ base_url = "https://equaldata.kanjiujing.cn/equal-data/api/tool/common/invoke"
@@ -0,0 +1,57 @@
1
+ # -*- coding: utf-8 -*-
2
+ import sys
3
+ import os
4
+
5
+ import requests
6
+
7
+ curPath = os.path.abspath(os.path.dirname(__file__))
8
+ sys.path.append(curPath)
9
+ """
10
+ @Description
11
+ @Author:yanlei.wang
12
+ @file: core.py
13
+ @date:2026/3/10 11:57
14
+ """
15
+ from datetime import datetime, timedelta
16
+ from kjj.utils.common_tools import to_camel_case
17
+ from kjj.common.conf import base_url
18
+
19
+
20
+ class KjjApi:
21
+ def __init__(self, token):
22
+ self.token = token
23
+ self.base_url = base_url
24
+
25
+ def query_kjj_data(self, **kwargs):
26
+ """
27
+ ?interfaceId=15&requestType=GET&pageIndex=0&pageSize=10&changeType=1&startDate=2026-02-11&endDate=2026-03-13
28
+ """
29
+ params = kwargs if kwargs else {}
30
+ # 注意:request 参数是服务端注入的,客户端无需传递
31
+ headers = {"Content-Type": "application/x-www-form-urlencoded",
32
+ "Token": self.token}
33
+ # 过滤 None 值
34
+ payload = {to_camel_case(k): v for k, v in params.items() if v is not None}
35
+ payload.update({"requestType": "GET"})
36
+ response = requests.get(self.base_url, params=payload, headers=headers)
37
+ response.raise_for_status()
38
+ data_lst = response.json().get("data", [])
39
+ if data_lst:
40
+ return data_lst
41
+ return response.json().get("msg", "接口请求异常!!")
42
+
43
+
44
+ if __name__ == '__main__':
45
+ api = KjjApi('bear ')
46
+ # 查询最近30天的增持记录
47
+ data = api.query_kjj_data(
48
+ interfaceId=115,
49
+ page_index=0,
50
+ page_size=50,
51
+ change_type=1, # 假设1为增持,请根据实际枚举值调整
52
+ start_date=(datetime.now() - timedelta(days=30)).strftime("%Y-%m-%d"),
53
+ end_date=datetime.now().strftime("%Y-%m-%d"),
54
+ )
55
+
56
+ print(data)
57
+
@@ -0,0 +1,12 @@
1
+ # -*- coding: utf-8 -*-
2
+ import sys
3
+ import os
4
+
5
+ curPath = os.path.abspath(os.path.dirname(__file__))
6
+ sys.path.append(curPath)
7
+ """
8
+ @Description
9
+ @Author:yanlei.wang
10
+ @file: __init__.py.py
11
+ @date:2026/3/13 13:36
12
+ """
@@ -0,0 +1,17 @@
1
+ # -*- coding: utf-8 -*-
2
+ import sys
3
+ import os
4
+
5
+ curPath = os.path.abspath(os.path.dirname(__file__))
6
+ sys.path.append(curPath)
7
+ """
8
+ @Description
9
+ @Author:yanlei.wang
10
+ @file: tools.py
11
+ @date:2026/3/13 13:37
12
+ """
13
+ def to_camel_case(snake_str):
14
+ """将 snake_case 转换为 camelCase"""
15
+ components = snake_str.split('_')
16
+ # 第一个单词保持小写,其余单词首字母大写
17
+ return components[0] + ''.join(x.capitalize() for x in components[1:])
@@ -0,0 +1,12 @@
1
+ # -*- coding: utf-8 -*-
2
+ import sys
3
+ import os
4
+
5
+ curPath = os.path.abspath(os.path.dirname(__file__))
6
+ sys.path.append(curPath)
7
+ """
8
+ @Description
9
+ @Author:yanlei.wang
10
+ @file: __init__.py.py
11
+ @date:2026/3/13 14:13
12
+ """
@@ -0,0 +1,59 @@
1
+
2
+ # -*- coding: utf-8 -*-
3
+ import sys
4
+ import os
5
+
6
+ curPath = os.path.abspath(os.path.dirname(__file__))
7
+ sys.path.append(curPath)
8
+ """
9
+ @Description
10
+ @Author:yanlei.wang
11
+ @file: t_1.py
12
+ @date:2026/3/13 09:38
13
+ """
14
+
15
+ import requests
16
+ from src.utils.common_tools import to_camel_case
17
+ from datetime import datetime, timedelta
18
+ import pandas as pd
19
+
20
+
21
+ class KjjAPI:
22
+ def __init__(self):
23
+ self.base_url = "https://kjjapi.kanjiujing.cn/com-api"
24
+
25
+ def get_holding_changes(self, uri, **kwargs):
26
+ """
27
+ """
28
+ url = self.base_url + uri
29
+ params = kwargs if kwargs else {}
30
+ # 注意:request 参数是服务端注入的,客户端无需传递
31
+ headers = {"Content-Type": "application/x-www-form-urlencoded",
32
+ "Token": "abc......"}
33
+ # 过滤 None 值
34
+ payload = {to_camel_case(k): v for k, v in params.items() if v is not None}
35
+
36
+ response = requests.post(url, data=payload, headers=headers)
37
+ response.raise_for_status()
38
+ data_lst = response.json().get("data", [])
39
+ if isinstance(data_lst, list):
40
+ return pd.DataFrame(data_lst)
41
+ return pd.DataFrame()
42
+
43
+
44
+ # 使用示例
45
+ if __name__ == "__main__":
46
+ api = KjjAPI()
47
+ # 查询最近30天的增持记录
48
+ data = api.get_holding_changes(
49
+ uri="/api/tool/manager/holding/change/list",
50
+ page_index=0,
51
+ page_size=50,
52
+ change_type=1, # 假设1为增持,请根据实际枚举值调整
53
+ start_date=(datetime.now() - timedelta(days=30)).strftime("%Y-%m-%d"),
54
+ end_date=datetime.now().strftime("%Y-%m-%d"),
55
+ platform="lhh5"
56
+ )
57
+
58
+ print(data)
59
+