svi-py 0.1.0__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.
- svi_py-0.1.0/.idea/.gitignore +8 -0
- svi_py-0.1.0/.idea/inspectionProfiles/Project_Default.xml +62 -0
- svi_py-0.1.0/.idea/inspectionProfiles/profiles_settings.xml +6 -0
- svi_py-0.1.0/.idea/misc.xml +7 -0
- svi_py-0.1.0/.idea/modules.xml +8 -0
- svi_py-0.1.0/.idea/pysvi.iml +15 -0
- svi_py-0.1.0/.idea/vcs.xml +6 -0
- svi_py-0.1.0/.idea/workspace.xml +400 -0
- svi_py-0.1.0/LICENSE +21 -0
- svi_py-0.1.0/PKG-INFO +19 -0
- svi_py-0.1.0/README.md +2 -0
- svi_py-0.1.0/pyproject.toml +44 -0
- svi_py-0.1.0/src/pysvi/__init__.py +14 -0
- svi_py-0.1.0/src/pysvi/calibration.py +450 -0
- svi_py-0.1.0/src/pysvi/models.py +349 -0
- svi_py-0.1.0/tests/.hypothesis/constants/04d5334eddaa6d48 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/39e5d71908855d44 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/4f5183ae7f318575 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/5236f2afcb9c37ab +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/600cef6f1e6a3328 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/62f544cdde803041 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/7369e586b2529ddb +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/796c9aa25e43e699 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/8ffd74b0d1721c51 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/9459e787ef1a8d12 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/9c78fd0e06b0cfb4 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/9da6dc7b56180895 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/a451d5ee71ac59c5 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/aa68e366b8b2f82c +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/b5aa90b8006be0d9 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/cbf8c5ad575ff8d8 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/d5c9d735f74343e3 +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/da39a3ee5e6b4b0d +4 -0
- svi_py-0.1.0/tests/.hypothesis/constants/ec974f7a90192076 +4 -0
- svi_py-0.1.0/tests/conftest.py +125 -0
- svi_py-0.1.0/tests/test_calibration.py +82 -0
- svi_py-0.1.0/tests/test_models.py +38 -0
- svi_py-0.1.0/uv.lock +992 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<component name="InspectionProjectProfileManager">
|
|
2
|
+
<profile version="1.0">
|
|
3
|
+
<option name="myName" value="Project Default" />
|
|
4
|
+
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
5
|
+
<inspection_tool class="PgSelectFromProcedureInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
6
|
+
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
|
7
|
+
<option name="ignoredErrors">
|
|
8
|
+
<list>
|
|
9
|
+
<option value="N806" />
|
|
10
|
+
</list>
|
|
11
|
+
</option>
|
|
12
|
+
</inspection_tool>
|
|
13
|
+
<inspection_tool class="SqlAddNotNullColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
14
|
+
<inspection_tool class="SqlAggregatesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
15
|
+
<inspection_tool class="SqlAmbiguousColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
16
|
+
<inspection_tool class="SqlAutoIncrementDuplicateInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
17
|
+
<inspection_tool class="SqlCallNotationInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
|
18
|
+
<inspection_tool class="SqlCaseVsCoalesceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
19
|
+
<inspection_tool class="SqlCaseVsIfInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
20
|
+
<inspection_tool class="SqlCheckUsingColumnsInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
21
|
+
<inspection_tool class="SqlConstantExpressionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
22
|
+
<inspection_tool class="SqlCurrentSchemaInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
23
|
+
<inspection_tool class="SqlDeprecateTypeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
24
|
+
<inspection_tool class="SqlDerivedTableAliasInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
25
|
+
<inspection_tool class="SqlDialectInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
26
|
+
<inspection_tool class="SqlDropIndexedColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
27
|
+
<inspection_tool class="SqlDtInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
28
|
+
<inspection_tool class="SqlDuplicateColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
29
|
+
<inspection_tool class="SqlIdentifierInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
30
|
+
<inspection_tool class="SqlIllegalCursorStateInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
31
|
+
<inspection_tool class="SqlInsertIntoGeneratedColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
32
|
+
<inspection_tool class="SqlInsertNullIntoNotNullInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
33
|
+
<inspection_tool class="SqlInsertValuesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
34
|
+
<inspection_tool class="SqlJoinWithoutOnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
35
|
+
<inspection_tool class="SqlMisleadingReferenceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
36
|
+
<inspection_tool class="SqlMissingReturnInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
|
37
|
+
<inspection_tool class="SqlMultipleLimitClausesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
38
|
+
<inspection_tool class="SqlNoDataSourceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
39
|
+
<inspection_tool class="SqlRedundantAliasInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
40
|
+
<inspection_tool class="SqlRedundantCodeInCoalesceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
41
|
+
<inspection_tool class="SqlRedundantElseNullInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
42
|
+
<inspection_tool class="SqlRedundantLimitInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
43
|
+
<inspection_tool class="SqlRedundantOrderingDirectionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
44
|
+
<inspection_tool class="SqlResolveInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
|
45
|
+
<inspection_tool class="SqlShadowingAliasInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
46
|
+
<inspection_tool class="SqlShouldBeInGroupByInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
47
|
+
<inspection_tool class="SqlSideEffectsInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
48
|
+
<inspection_tool class="SqlSignatureInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
49
|
+
<inspection_tool class="SqlSingleSessionModeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
50
|
+
<inspection_tool class="SqlStorageInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
51
|
+
<inspection_tool class="SqlStringLengthExceededInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
52
|
+
<inspection_tool class="SqlTransactionStatementInTriggerInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
53
|
+
<inspection_tool class="SqlTriggerTransitionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
54
|
+
<inspection_tool class="SqlTypeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
55
|
+
<inspection_tool class="SqlUnicodeStringLiteralInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
56
|
+
<inspection_tool class="SqlUnreachableCodeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
57
|
+
<inspection_tool class="SqlUnusedCteInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
58
|
+
<inspection_tool class="SqlUnusedSubqueryItemInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
59
|
+
<inspection_tool class="SqlUnusedVariableInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
60
|
+
<inspection_tool class="SqlWithoutWhereInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
61
|
+
</profile>
|
|
62
|
+
</component>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="Black">
|
|
4
|
+
<option name="sdkName" value="uv (pysvi)" />
|
|
5
|
+
</component>
|
|
6
|
+
<component name="ProjectRootManager" version="2" project-jdk-name="uv (pysvi)" project-jdk-type="Python SDK" />
|
|
7
|
+
</project>
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
|
|
7
|
+
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
|
8
|
+
</content>
|
|
9
|
+
<orderEntry type="jdk" jdkName="uv (pysvi)" jdkType="Python SDK" />
|
|
10
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
|
11
|
+
</component>
|
|
12
|
+
<component name="TestRunnerService">
|
|
13
|
+
<option name="PROJECT_TEST_RUNNER" value="py.test" />
|
|
14
|
+
</component>
|
|
15
|
+
</module>
|
|
@@ -0,0 +1,400 @@
|
|
|
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="9339b1ea-eab2-4723-bc98-345421732824" name="Changes" comment="feat(pyproject): package name change">
|
|
8
|
+
<change beforePath="$PROJECT_DIR$/pyproject.toml" beforeDir="false" afterPath="$PROJECT_DIR$/pyproject.toml" afterDir="false" />
|
|
9
|
+
</list>
|
|
10
|
+
<option name="SHOW_DIALOG" value="false" />
|
|
11
|
+
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
12
|
+
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
13
|
+
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
14
|
+
</component>
|
|
15
|
+
<component name="FileTemplateManagerImpl">
|
|
16
|
+
<option name="RECENT_TEMPLATES">
|
|
17
|
+
<list>
|
|
18
|
+
<option value="Python Script" />
|
|
19
|
+
</list>
|
|
20
|
+
</option>
|
|
21
|
+
</component>
|
|
22
|
+
<component name="Git.Settings">
|
|
23
|
+
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
24
|
+
</component>
|
|
25
|
+
<component name="GitHubPullRequestSearchHistory">{
|
|
26
|
+
"lastFilter": {
|
|
27
|
+
"state": "OPEN",
|
|
28
|
+
"assignee": "marwinsteiner"
|
|
29
|
+
}
|
|
30
|
+
}</component>
|
|
31
|
+
<component name="GithubPullRequestsUISettings">{
|
|
32
|
+
"selectedUrlAndAccountId": {
|
|
33
|
+
"url": "https://github.com/marwinsteiner/pysvi.git",
|
|
34
|
+
"accountId": "982e7901-ccf2-4fd3-9937-59dfb66e3d2f"
|
|
35
|
+
}
|
|
36
|
+
}</component>
|
|
37
|
+
<component name="ProjectColorInfo">{
|
|
38
|
+
"associatedIndex": 1
|
|
39
|
+
}</component>
|
|
40
|
+
<component name="ProjectId" id="39B3rahESSB5DHqeimLFqbjJqeR" />
|
|
41
|
+
<component name="ProjectViewState">
|
|
42
|
+
<option name="hideEmptyMiddlePackages" value="true" />
|
|
43
|
+
<option name="showLibraryContents" value="true" />
|
|
44
|
+
</component>
|
|
45
|
+
<component name="PropertiesComponent">{
|
|
46
|
+
"keyToString": {
|
|
47
|
+
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
|
48
|
+
"Python tests.pytest in tests.executor": "Run",
|
|
49
|
+
"Python.conftest.executor": "Run",
|
|
50
|
+
"RunOnceActivity.ShowReadmeOnStart": "true",
|
|
51
|
+
"RunOnceActivity.git.unshallow": "true",
|
|
52
|
+
"git-widget-placeholder": "main",
|
|
53
|
+
"last_opened_file_path": "C:/Users/marwi/PycharmProjects/pysvi",
|
|
54
|
+
"node.js.detected.package.eslint": "true",
|
|
55
|
+
"node.js.detected.package.tslint": "true",
|
|
56
|
+
"node.js.selected.package.eslint": "(autodetect)",
|
|
57
|
+
"node.js.selected.package.tslint": "(autodetect)",
|
|
58
|
+
"nodejs_package_manager_path": "npm",
|
|
59
|
+
"settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyIntegratedToolsModulesConfigurable",
|
|
60
|
+
"vue.rearranger.settings.migration": "true"
|
|
61
|
+
}
|
|
62
|
+
}</component>
|
|
63
|
+
<component name="RunManager" selected="Python tests.pytest in tests">
|
|
64
|
+
<configuration name="conftest" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
|
65
|
+
<module name="pysvi" />
|
|
66
|
+
<option name="ENV_FILES" value="" />
|
|
67
|
+
<option name="INTERPRETER_OPTIONS" value="" />
|
|
68
|
+
<option name="PARENT_ENVS" value="true" />
|
|
69
|
+
<envs>
|
|
70
|
+
<env name="PYTHONUNBUFFERED" value="1" />
|
|
71
|
+
</envs>
|
|
72
|
+
<option name="SDK_HOME" value="" />
|
|
73
|
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests" />
|
|
74
|
+
<option name="IS_MODULE_SDK" value="true" />
|
|
75
|
+
<option name="ADD_CONTENT_ROOTS" value="true" />
|
|
76
|
+
<option name="ADD_SOURCE_ROOTS" value="true" />
|
|
77
|
+
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
|
78
|
+
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/tests/conftest.py" />
|
|
79
|
+
<option name="PARAMETERS" value="" />
|
|
80
|
+
<option name="SHOW_COMMAND_LINE" value="false" />
|
|
81
|
+
<option name="EMULATE_TERMINAL" value="false" />
|
|
82
|
+
<option name="MODULE_MODE" value="false" />
|
|
83
|
+
<option name="REDIRECT_INPUT" value="false" />
|
|
84
|
+
<option name="INPUT_FILE" value="" />
|
|
85
|
+
<method v="2" />
|
|
86
|
+
</configuration>
|
|
87
|
+
<configuration name="pytest in tests" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
|
|
88
|
+
<module name="pysvi" />
|
|
89
|
+
<option name="ENV_FILES" value="" />
|
|
90
|
+
<option name="INTERPRETER_OPTIONS" value="" />
|
|
91
|
+
<option name="PARENT_ENVS" value="true" />
|
|
92
|
+
<option name="SDK_HOME" value="" />
|
|
93
|
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests" />
|
|
94
|
+
<option name="IS_MODULE_SDK" value="true" />
|
|
95
|
+
<option name="ADD_CONTENT_ROOTS" value="true" />
|
|
96
|
+
<option name="ADD_SOURCE_ROOTS" value="true" />
|
|
97
|
+
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
|
98
|
+
<option name="_new_keywords" value="""" />
|
|
99
|
+
<option name="_new_parameters" value="""" />
|
|
100
|
+
<option name="_new_additionalArguments" value="""" />
|
|
101
|
+
<option name="_new_target" value=""$PROJECT_DIR$/tests"" />
|
|
102
|
+
<option name="_new_targetType" value=""PATH"" />
|
|
103
|
+
<method v="2" />
|
|
104
|
+
</configuration>
|
|
105
|
+
<recent_temporary>
|
|
106
|
+
<list>
|
|
107
|
+
<item itemvalue="Python tests.pytest in tests" />
|
|
108
|
+
<item itemvalue="Python.conftest" />
|
|
109
|
+
</list>
|
|
110
|
+
</recent_temporary>
|
|
111
|
+
</component>
|
|
112
|
+
<component name="SharedIndexes">
|
|
113
|
+
<attachedChunks>
|
|
114
|
+
<set>
|
|
115
|
+
<option value="bundled-js-predefined-d6986cc7102b-e03c56caf84a-JavaScript-PY-252.23892.515" />
|
|
116
|
+
<option value="bundled-python-sdk-7e47963ff851-f0eec537fc84-com.jetbrains.pycharm.pro.sharedIndexes.bundled-PY-252.23892.515" />
|
|
117
|
+
</set>
|
|
118
|
+
</attachedChunks>
|
|
119
|
+
</component>
|
|
120
|
+
<component name="TaskManager">
|
|
121
|
+
<task active="true" id="Default" summary="Default task">
|
|
122
|
+
<changelist id="9339b1ea-eab2-4723-bc98-345421732824" name="Changes" comment="" />
|
|
123
|
+
<created>1770155839071</created>
|
|
124
|
+
<option name="number" value="Default" />
|
|
125
|
+
<option name="presentableId" value="Default" />
|
|
126
|
+
<updated>1770155839071</updated>
|
|
127
|
+
<workItem from="1770155840153" duration="10593000" />
|
|
128
|
+
<workItem from="1770214658708" duration="3750000" />
|
|
129
|
+
</task>
|
|
130
|
+
<task id="LOCAL-00001" summary="feat(pysvi): initial commit">
|
|
131
|
+
<option name="closed" value="true" />
|
|
132
|
+
<created>1770156019522</created>
|
|
133
|
+
<option name="number" value="00001" />
|
|
134
|
+
<option name="presentableId" value="LOCAL-00001" />
|
|
135
|
+
<option name="project" value="LOCAL" />
|
|
136
|
+
<updated>1770156019522</updated>
|
|
137
|
+
</task>
|
|
138
|
+
<task id="LOCAL-00002" summary="feat(pysvi): repo setup">
|
|
139
|
+
<option name="closed" value="true" />
|
|
140
|
+
<created>1770156221174</created>
|
|
141
|
+
<option name="number" value="00002" />
|
|
142
|
+
<option name="presentableId" value="LOCAL-00002" />
|
|
143
|
+
<option name="project" value="LOCAL" />
|
|
144
|
+
<updated>1770156221174</updated>
|
|
145
|
+
</task>
|
|
146
|
+
<task id="LOCAL-00003" summary="feat(models): total variance functions, imports, models setup">
|
|
147
|
+
<option name="closed" value="true" />
|
|
148
|
+
<created>1770156444572</created>
|
|
149
|
+
<option name="number" value="00003" />
|
|
150
|
+
<option name="presentableId" value="LOCAL-00003" />
|
|
151
|
+
<option name="project" value="LOCAL" />
|
|
152
|
+
<updated>1770156444572</updated>
|
|
153
|
+
</task>
|
|
154
|
+
<task id="LOCAL-00004" summary="feat(models): adds the parametrisation abstract base class">
|
|
155
|
+
<option name="closed" value="true" />
|
|
156
|
+
<created>1770156608344</created>
|
|
157
|
+
<option name="number" value="00004" />
|
|
158
|
+
<option name="presentableId" value="LOCAL-00004" />
|
|
159
|
+
<option name="project" value="LOCAL" />
|
|
160
|
+
<updated>1770156608344</updated>
|
|
161
|
+
</task>
|
|
162
|
+
<task id="LOCAL-00005" summary="feat(models): adds the SVI parametrisation">
|
|
163
|
+
<option name="closed" value="true" />
|
|
164
|
+
<created>1770156779253</created>
|
|
165
|
+
<option name="number" value="00005" />
|
|
166
|
+
<option name="presentableId" value="LOCAL-00005" />
|
|
167
|
+
<option name="project" value="LOCAL" />
|
|
168
|
+
<updated>1770156779253</updated>
|
|
169
|
+
</task>
|
|
170
|
+
<task id="LOCAL-00006" summary="feat(models): adds the SSVI parametrisation">
|
|
171
|
+
<option name="closed" value="true" />
|
|
172
|
+
<created>1770157127734</created>
|
|
173
|
+
<option name="number" value="00006" />
|
|
174
|
+
<option name="presentableId" value="LOCAL-00006" />
|
|
175
|
+
<option name="project" value="LOCAL" />
|
|
176
|
+
<updated>1770157127734</updated>
|
|
177
|
+
</task>
|
|
178
|
+
<task id="LOCAL-00007" summary="feat(models): adds the ESSVI parametrisation">
|
|
179
|
+
<option name="closed" value="true" />
|
|
180
|
+
<created>1770157275302</created>
|
|
181
|
+
<option name="number" value="00007" />
|
|
182
|
+
<option name="presentableId" value="LOCAL-00007" />
|
|
183
|
+
<option name="project" value="LOCAL" />
|
|
184
|
+
<updated>1770157275302</updated>
|
|
185
|
+
</task>
|
|
186
|
+
<task id="LOCAL-00008" summary="feat(models): adds the ESSVI parametrisation">
|
|
187
|
+
<option name="closed" value="true" />
|
|
188
|
+
<created>1770157337864</created>
|
|
189
|
+
<option name="number" value="00008" />
|
|
190
|
+
<option name="presentableId" value="LOCAL-00008" />
|
|
191
|
+
<option name="project" value="LOCAL" />
|
|
192
|
+
<updated>1770157337864</updated>
|
|
193
|
+
</task>
|
|
194
|
+
<task id="LOCAL-00009" summary="feat(models): adds the ESSVI parametrisation">
|
|
195
|
+
<option name="closed" value="true" />
|
|
196
|
+
<created>1770157347177</created>
|
|
197
|
+
<option name="number" value="00009" />
|
|
198
|
+
<option name="presentableId" value="LOCAL-00009" />
|
|
199
|
+
<option name="project" value="LOCAL" />
|
|
200
|
+
<updated>1770157347177</updated>
|
|
201
|
+
</task>
|
|
202
|
+
<task id="LOCAL-00010" summary="feat(calibration): file setup + imports">
|
|
203
|
+
<option name="closed" value="true" />
|
|
204
|
+
<created>1770157649375</created>
|
|
205
|
+
<option name="number" value="00010" />
|
|
206
|
+
<option name="presentableId" value="LOCAL-00010" />
|
|
207
|
+
<option name="project" value="LOCAL" />
|
|
208
|
+
<updated>1770157649375</updated>
|
|
209
|
+
</task>
|
|
210
|
+
<task id="LOCAL-00011" summary="feat(calibration): adds the ticker parser">
|
|
211
|
+
<option name="closed" value="true" />
|
|
212
|
+
<created>1770157687689</created>
|
|
213
|
+
<option name="number" value="00011" />
|
|
214
|
+
<option name="presentableId" value="LOCAL-00011" />
|
|
215
|
+
<option name="project" value="LOCAL" />
|
|
216
|
+
<updated>1770157687689</updated>
|
|
217
|
+
</task>
|
|
218
|
+
<task id="LOCAL-00012" summary="feat(calibration): adds the bsm implied vola fitter">
|
|
219
|
+
<option name="closed" value="true" />
|
|
220
|
+
<created>1770157947211</created>
|
|
221
|
+
<option name="number" value="00012" />
|
|
222
|
+
<option name="presentableId" value="LOCAL-00012" />
|
|
223
|
+
<option name="project" value="LOCAL" />
|
|
224
|
+
<updated>1770157947212</updated>
|
|
225
|
+
</task>
|
|
226
|
+
<task id="LOCAL-00013" summary="feat(calibration): implied forward calculation">
|
|
227
|
+
<option name="closed" value="true" />
|
|
228
|
+
<created>1770157980643</created>
|
|
229
|
+
<option name="number" value="00013" />
|
|
230
|
+
<option name="presentableId" value="LOCAL-00013" />
|
|
231
|
+
<option name="project" value="LOCAL" />
|
|
232
|
+
<updated>1770157980643</updated>
|
|
233
|
+
</task>
|
|
234
|
+
<task id="LOCAL-00014" summary="feat(calibration): leg chooser for contemporaneity alignment">
|
|
235
|
+
<option name="closed" value="true" />
|
|
236
|
+
<created>1770158050226</created>
|
|
237
|
+
<option name="number" value="00014" />
|
|
238
|
+
<option name="presentableId" value="LOCAL-00014" />
|
|
239
|
+
<option name="project" value="LOCAL" />
|
|
240
|
+
<updated>1770158050226</updated>
|
|
241
|
+
</task>
|
|
242
|
+
<task id="LOCAL-00015" summary="feat(calibration): slice preparer">
|
|
243
|
+
<option name="closed" value="true" />
|
|
244
|
+
<created>1770158131900</created>
|
|
245
|
+
<option name="number" value="00015" />
|
|
246
|
+
<option name="presentableId" value="LOCAL-00015" />
|
|
247
|
+
<option name="project" value="LOCAL" />
|
|
248
|
+
<updated>1770158131900</updated>
|
|
249
|
+
</task>
|
|
250
|
+
<task id="LOCAL-00016" summary="feat(calibration): slice calibrator using the slice preparer">
|
|
251
|
+
<option name="closed" value="true" />
|
|
252
|
+
<created>1770158214539</created>
|
|
253
|
+
<option name="number" value="00016" />
|
|
254
|
+
<option name="presentableId" value="LOCAL-00016" />
|
|
255
|
+
<option name="project" value="LOCAL" />
|
|
256
|
+
<updated>1770158214539</updated>
|
|
257
|
+
</task>
|
|
258
|
+
<task id="LOCAL-00017" summary="feat(calibration): apply particular calibrated parameters to a particular slice">
|
|
259
|
+
<option name="closed" value="true" />
|
|
260
|
+
<created>1770158246707</created>
|
|
261
|
+
<option name="number" value="00017" />
|
|
262
|
+
<option name="presentableId" value="LOCAL-00017" />
|
|
263
|
+
<option name="project" value="LOCAL" />
|
|
264
|
+
<updated>1770158246707</updated>
|
|
265
|
+
</task>
|
|
266
|
+
<task id="LOCAL-00018" summary="feat(calibration): + the specification factory">
|
|
267
|
+
<option name="closed" value="true" />
|
|
268
|
+
<created>1770158271987</created>
|
|
269
|
+
<option name="number" value="00018" />
|
|
270
|
+
<option name="presentableId" value="LOCAL-00018" />
|
|
271
|
+
<option name="project" value="LOCAL" />
|
|
272
|
+
<updated>1770158271987</updated>
|
|
273
|
+
</task>
|
|
274
|
+
<task id="LOCAL-00019" summary="feat(calibration): strong typing of the ndarray npfloat64s">
|
|
275
|
+
<option name="closed" value="true" />
|
|
276
|
+
<created>1770158423324</created>
|
|
277
|
+
<option name="number" value="00019" />
|
|
278
|
+
<option name="presentableId" value="LOCAL-00019" />
|
|
279
|
+
<option name="project" value="LOCAL" />
|
|
280
|
+
<updated>1770158423324</updated>
|
|
281
|
+
</task>
|
|
282
|
+
<task id="LOCAL-00020" summary="feat(models): docstrings!">
|
|
283
|
+
<option name="closed" value="true" />
|
|
284
|
+
<created>1770159873248</created>
|
|
285
|
+
<option name="number" value="00020" />
|
|
286
|
+
<option name="presentableId" value="LOCAL-00020" />
|
|
287
|
+
<option name="project" value="LOCAL" />
|
|
288
|
+
<updated>1770159873248</updated>
|
|
289
|
+
</task>
|
|
290
|
+
<task id="LOCAL-00021" summary="feat(calibration): docstrings!">
|
|
291
|
+
<option name="closed" value="true" />
|
|
292
|
+
<created>1770160065944</created>
|
|
293
|
+
<option name="number" value="00021" />
|
|
294
|
+
<option name="presentableId" value="LOCAL-00021" />
|
|
295
|
+
<option name="project" value="LOCAL" />
|
|
296
|
+
<updated>1770160065944</updated>
|
|
297
|
+
</task>
|
|
298
|
+
<task id="LOCAL-00022" summary="feat(calibration + models): black && ruff reformatting">
|
|
299
|
+
<option name="closed" value="true" />
|
|
300
|
+
<created>1770160473422</created>
|
|
301
|
+
<option name="number" value="00022" />
|
|
302
|
+
<option name="presentableId" value="LOCAL-00022" />
|
|
303
|
+
<option name="project" value="LOCAL" />
|
|
304
|
+
<updated>1770160473422</updated>
|
|
305
|
+
</task>
|
|
306
|
+
<task id="LOCAL-00023" summary="feat(models): correct function signatures to include the missing parameters">
|
|
307
|
+
<option name="closed" value="true" />
|
|
308
|
+
<created>1770215707479</created>
|
|
309
|
+
<option name="number" value="00023" />
|
|
310
|
+
<option name="presentableId" value="LOCAL-00023" />
|
|
311
|
+
<option name="project" value="LOCAL" />
|
|
312
|
+
<updated>1770215707479</updated>
|
|
313
|
+
</task>
|
|
314
|
+
<task id="LOCAL-00024" summary="feat(models): improve readability of the svi_total_variance function">
|
|
315
|
+
<option name="closed" value="true" />
|
|
316
|
+
<created>1770215745236</created>
|
|
317
|
+
<option name="number" value="00024" />
|
|
318
|
+
<option name="presentableId" value="LOCAL-00024" />
|
|
319
|
+
<option name="project" value="LOCAL" />
|
|
320
|
+
<updated>1770215745236</updated>
|
|
321
|
+
</task>
|
|
322
|
+
<task id="LOCAL-00025" summary="feat(models): add the correct other args to the minimize calls in the calibrate methods of the different Parametrization classes (SSVI and ESSVI)">
|
|
323
|
+
<option name="closed" value="true" />
|
|
324
|
+
<created>1770215818443</created>
|
|
325
|
+
<option name="number" value="00025" />
|
|
326
|
+
<option name="presentableId" value="LOCAL-00025" />
|
|
327
|
+
<option name="project" value="LOCAL" />
|
|
328
|
+
<updated>1770215818443</updated>
|
|
329
|
+
</task>
|
|
330
|
+
<task id="LOCAL-00026" summary="feat(tests): adds tests">
|
|
331
|
+
<option name="closed" value="true" />
|
|
332
|
+
<created>1770215840738</created>
|
|
333
|
+
<option name="number" value="00026" />
|
|
334
|
+
<option name="presentableId" value="LOCAL-00026" />
|
|
335
|
+
<option name="project" value="LOCAL" />
|
|
336
|
+
<updated>1770215840738</updated>
|
|
337
|
+
</task>
|
|
338
|
+
<task id="LOCAL-00027" summary="pyproject: adds pytest options">
|
|
339
|
+
<option name="closed" value="true" />
|
|
340
|
+
<created>1770215873389</created>
|
|
341
|
+
<option name="number" value="00027" />
|
|
342
|
+
<option name="presentableId" value="LOCAL-00027" />
|
|
343
|
+
<option name="project" value="LOCAL" />
|
|
344
|
+
<updated>1770215873389</updated>
|
|
345
|
+
</task>
|
|
346
|
+
<task id="LOCAL-00028" summary="feat(init): initialization and build system definition">
|
|
347
|
+
<option name="closed" value="true" />
|
|
348
|
+
<created>1770216665510</created>
|
|
349
|
+
<option name="number" value="00028" />
|
|
350
|
+
<option name="presentableId" value="LOCAL-00028" />
|
|
351
|
+
<option name="project" value="LOCAL" />
|
|
352
|
+
<updated>1770216665510</updated>
|
|
353
|
+
</task>
|
|
354
|
+
<task id="LOCAL-00029" summary="feat(pyproject): package name change">
|
|
355
|
+
<option name="closed" value="true" />
|
|
356
|
+
<created>1770217777737</created>
|
|
357
|
+
<option name="number" value="00029" />
|
|
358
|
+
<option name="presentableId" value="LOCAL-00029" />
|
|
359
|
+
<option name="project" value="LOCAL" />
|
|
360
|
+
<updated>1770217777737</updated>
|
|
361
|
+
</task>
|
|
362
|
+
<option name="localTasksCounter" value="30" />
|
|
363
|
+
<servers />
|
|
364
|
+
</component>
|
|
365
|
+
<component name="TypeScriptGeneratedFilesManager">
|
|
366
|
+
<option name="version" value="3" />
|
|
367
|
+
</component>
|
|
368
|
+
<component name="VcsManagerConfiguration">
|
|
369
|
+
<MESSAGE value="feat(models): total variance functions, imports, models setup" />
|
|
370
|
+
<MESSAGE value="feat(models): adds the parametrisation abstract base class" />
|
|
371
|
+
<MESSAGE value="feat(models): adds the SVI parametrisation" />
|
|
372
|
+
<MESSAGE value="feat(models): adds the SSVI parametrisation" />
|
|
373
|
+
<MESSAGE value="feat(models): adds the ESSVI parametrisation" />
|
|
374
|
+
<MESSAGE value="feat(calibration): file setup + imports" />
|
|
375
|
+
<MESSAGE value="feat(calibration): adds the ticker parser" />
|
|
376
|
+
<MESSAGE value="feat(calibration): adds the bsm implied vola fitter" />
|
|
377
|
+
<MESSAGE value="feat(calibration): implied forward calculation" />
|
|
378
|
+
<MESSAGE value="feat(calibration): leg chooser for contemporaneity alignment" />
|
|
379
|
+
<MESSAGE value="feat(calibration): slice preparer" />
|
|
380
|
+
<MESSAGE value="feat(calibration): slice calibrator using the slice preparer" />
|
|
381
|
+
<MESSAGE value="feat(calibration): apply particular calibrated parameters to a particular slice" />
|
|
382
|
+
<MESSAGE value="feat(calibration): + the specification factory" />
|
|
383
|
+
<MESSAGE value="feat(calibration): strong typing of the ndarray npfloat64s" />
|
|
384
|
+
<MESSAGE value="feat(models): docstrings!" />
|
|
385
|
+
<MESSAGE value="feat(calibration): docstrings!" />
|
|
386
|
+
<MESSAGE value="feat(calibration + models): black && ruff reformatting" />
|
|
387
|
+
<MESSAGE value="feat(models): correct function signatures to include the missing parameters" />
|
|
388
|
+
<MESSAGE value="feat(models): improve readability of the svi_total_variance function" />
|
|
389
|
+
<MESSAGE value="feat(models): add the correct other args to the minimize calls in the calibrate methods of the different Parametrization classes (SSVI and ESSVI)" />
|
|
390
|
+
<MESSAGE value="feat(tests): adds tests" />
|
|
391
|
+
<MESSAGE value="pyproject: adds pytest options" />
|
|
392
|
+
<MESSAGE value="feat(init): initialization and build system definition" />
|
|
393
|
+
<MESSAGE value="feat(pyproject): package name change" />
|
|
394
|
+
<option name="LAST_COMMIT_MESSAGE" value="feat(pyproject): package name change" />
|
|
395
|
+
</component>
|
|
396
|
+
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
|
397
|
+
<SUITE FILE_PATH="coverage/pysvi$pytest_in_tests.coverage" NAME="pytest in tests Coverage Results" MODIFIED="1770215602751" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
|
|
398
|
+
<SUITE FILE_PATH="coverage/pysvi$conftest.coverage" NAME="conftest Coverage Results" MODIFIED="1770201782249" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
|
|
399
|
+
</component>
|
|
400
|
+
</project>
|
svi_py-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Marwin Steiner
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
svi_py-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: svi-py
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Stochastic volatility inspired parametrizations of the implied volatility surface in Python!
|
|
5
|
+
Author: Marwin Steiner
|
|
6
|
+
License: MIT
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Python: >=3.13
|
|
9
|
+
Requires-Dist: loguru>=0.7.3
|
|
10
|
+
Requires-Dist: numpy>=2.4.2
|
|
11
|
+
Requires-Dist: pandas>=3.0.0
|
|
12
|
+
Requires-Dist: py-lets-be-rational>=1.0.1
|
|
13
|
+
Requires-Dist: py-vollib>=1.0.1
|
|
14
|
+
Requires-Dist: scipy>=1.17.0
|
|
15
|
+
Requires-Dist: twine>=6.2.0
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
|
|
18
|
+
# pysvi
|
|
19
|
+
Stochastic volatility inspired parametrizations of the implied volatility surface in Python!
|
svi_py-0.1.0/README.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "svi-py"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Stochastic volatility inspired parametrizations of the implied volatility surface in Python!"
|
|
5
|
+
authors = [{name = "Marwin Steiner"}]
|
|
6
|
+
license = {text = "MIT"}
|
|
7
|
+
readme = "README.md"
|
|
8
|
+
requires-python = ">=3.13"
|
|
9
|
+
dependencies = [
|
|
10
|
+
"loguru>=0.7.3",
|
|
11
|
+
"numpy>=2.4.2",
|
|
12
|
+
"pandas>=3.0.0",
|
|
13
|
+
"py-lets-be-rational>=1.0.1",
|
|
14
|
+
"py-vollib>=1.0.1",
|
|
15
|
+
"scipy>=1.17.0",
|
|
16
|
+
"twine>=6.2.0",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
[dependency-groups]
|
|
20
|
+
dev = [
|
|
21
|
+
"black[ruff]>=26.1.0",
|
|
22
|
+
"hypothesis>=6.151.5",
|
|
23
|
+
"mypy>=1.19.1",
|
|
24
|
+
"pytest>=9.0.2",
|
|
25
|
+
"pytest-xdist>=3.8.0",
|
|
26
|
+
"ruff>=0.15.0",
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
[tool.pytest.ini_options]
|
|
30
|
+
testpaths = ["tests"]
|
|
31
|
+
pythonpath = "src"
|
|
32
|
+
addopts = "-v --strict-markers --import-mode=importlib"
|
|
33
|
+
filterwarnings = [
|
|
34
|
+
"ignore::DeprecationWarning",
|
|
35
|
+
"ignore::FutureWarning"
|
|
36
|
+
]
|
|
37
|
+
cov_source = "src/pysvi"
|
|
38
|
+
|
|
39
|
+
[build-system]
|
|
40
|
+
requires = ["hatchling"]
|
|
41
|
+
build-backend = "hatchling.build"
|
|
42
|
+
|
|
43
|
+
[tool.hatch.build.targets.wheel]
|
|
44
|
+
packages = ["src/pysvi"]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"""PySVI: Volatility surface parametrizations."""
|
|
2
|
+
|
|
3
|
+
__version__ = "0.1.0"
|
|
4
|
+
|
|
5
|
+
from .models import (SVI, SSVI, ESSVI,
|
|
6
|
+
svi_total_variance, ssvi_total_variance, essvi_total_variance)
|
|
7
|
+
from .calibration import (prepare_slice, calibrate_slice, apply_slice,
|
|
8
|
+
calculate_implied_forward, get_model)
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
"SVI", "SSVI", "ESSVI", "get_model",
|
|
12
|
+
"svi_total_variance", "ssvi_total_variance", "essvi_total_variance",
|
|
13
|
+
"prepare_slice", "calibrate_slice", "apply_slice", "calculate_implied_forward"
|
|
14
|
+
]
|