dtscore 2.3.0__tar.gz → 2.3.2__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.
Files changed (57) hide show
  1. {dtscore-2.3.0 → dtscore-2.3.2}/LICENSE +0 -0
  2. {dtscore-2.3.0/src/dtscore.egg-info → dtscore-2.3.2}/PKG-INFO +109 -109
  3. {dtscore-2.3.0 → dtscore-2.3.2}/README.md +0 -0
  4. {dtscore-2.3.0 → dtscore-2.3.2}/pyproject.toml +1 -1
  5. {dtscore-2.3.0 → dtscore-2.3.2}/setup.cfg +4 -4
  6. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/__init__.py +0 -0
  7. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/consoleutils.py +0 -0
  8. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/csvnames.py +0 -0
  9. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/dataframenames.py +0 -0
  10. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/domain.py +0 -0
  11. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/events.py +0 -0
  12. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/fileutils.py +0 -0
  13. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/globals.py +4 -4
  14. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/__init__.py +0 -0
  15. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/account_summary_tags.py +0 -0
  16. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/client.py +0 -0
  17. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/comm.py +0 -0
  18. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/commission_report.py +0 -0
  19. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/common.py +0 -0
  20. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/connection.py +0 -0
  21. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/const.py +0 -0
  22. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/contract.py +0 -0
  23. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/decoder.py +0 -0
  24. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/enum_implem.py +0 -0
  25. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/errors.py +0 -0
  26. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/execution.py +0 -0
  27. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/ineligibility_reason.py +0 -0
  28. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/message.py +0 -0
  29. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/news.py +0 -0
  30. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/object_implem.py +0 -0
  31. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/order.py +0 -0
  32. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/order_cancel.py +0 -0
  33. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/order_condition.py +0 -0
  34. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/order_state.py +0 -0
  35. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/orderdecoder.py +0 -0
  36. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/reader.py +0 -0
  37. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/scanner.py +0 -0
  38. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/server_versions.py +0 -0
  39. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/softdollartier.py +0 -0
  40. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/tag_value.py +0 -0
  41. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/ticktype.py +0 -0
  42. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/utils.py +0 -0
  43. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/ibapi/wrapper.py +0 -0
  44. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/logging.py +0 -0
  45. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/queuemanager.py +0 -0
  46. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/schema_enums.py +0 -0
  47. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/tiingo.py +0 -0
  48. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/tws.py +28 -2
  49. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore/utils.py +0 -0
  50. {dtscore-2.3.0 → dtscore-2.3.2/src/dtscore.egg-info}/PKG-INFO +109 -109
  51. {dtscore-2.3.0 → dtscore-2.3.2}/tests/test.py +0 -0
  52. {dtscore-2.3.0 → dtscore-2.3.2}/tests/test2.py +1 -1
  53. {dtscore-2.3.0 → dtscore-2.3.2}/tests/test_ib.py +0 -0
  54. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore.egg-info/SOURCES.txt +0 -0
  55. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore.egg-info/dependency_links.txt +0 -0
  56. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore.egg-info/requires.txt +0 -0
  57. {dtscore-2.3.0 → dtscore-2.3.2}/src/dtscore.egg-info/top_level.txt +0 -0
File without changes
@@ -1,109 +1,109 @@
1
- Metadata-Version: 2.1
2
- Name: dtscore
3
- Version: 2.3.0
4
- Summary: DTS Core Services
5
- Author-email: "D. Smith" <dgsmith.hpot@gmail.com>
6
- Classifier: Development Status :: 5 - Production/Stable
7
- Classifier: Environment :: Console
8
- Classifier: Intended Audience :: Developers
9
- Classifier: License :: OSI Approved :: BSD License
10
- Classifier: Operating System :: Microsoft :: Windows :: Windows 11
11
- Classifier: Programming Language :: Python :: 3.10
12
- Requires-Python: >=3.10
13
- Description-Content-Type: text/markdown
14
- License-File: LICENSE
15
- Requires-Dist: importlib-metadata; python_version >= "3.10"
16
- Requires-Dist: requests>=2.31
17
- Requires-Dist: urllib3>=2.0
18
-
19
- # Prep
20
-
21
- See: https://packaging.python.org/en/latest/tutorials/packaging-projects/
22
-
23
- ## Setup Testpypi and Pypi (one time only)
24
-
25
- .pypirc file in $home (c:/users/dgsmith) directory<br/>
26
-
27
- ```
28
- [testpypi]
29
- username = __token__
30
- password = token from test.pypi.org goes here
31
- ```
32
-
33
- ## Project folder structure
34
-
35
- ```
36
- pyexample
37
- ├── src
38
- │ ├── pyexample_USERNAME_HERE
39
- │ │ ├── __init__.py
40
- │ │ ├── module_mpi4py_1.py
41
- │ │ ├── module_numpy_1.py
42
- │ │ └── module_numpy_2.py
43
- │ │-- module2_USERNAME_HERE
44
- │ │ ├── __init__.py
45
- │ │ ├── ...
46
- ├── tests
47
- │ ├── test1.py
48
- ├── .gitignore
49
- ├── LICENSE
50
- ├── pyproject.toml
51
- ├── README.md
52
- ```
53
-
54
- ## Other Steps
55
-
56
- * Create a virtual environment (.venv)
57
- * pip install any dependencies
58
- * pip freeze to create requirements.txt
59
-
60
- ## Tools install
61
-
62
- ```
63
- python -m pip install --upgrade pip
64
- python -m pip install --upgrade build
65
- python -m pip install --upgrade twine
66
- ```
67
-
68
- ## Create pyproject.toml
69
- under project folder create pyproject.toml
70
-
71
- ```
72
- [build-system]
73
- requires = ["setuptools"]
74
- build-backend = "setuptools.build_meta"
75
-
76
- [project]
77
- name = "dtscore_dsmi"
78
- version = "0.0.2"
79
- authors = [
80
- { name="D. Smith", email="dgsmith.hpot@gmail.com" },
81
- ]
82
- description = "DTS Core Services"
83
- readme = "README.md"
84
- requires-python = ">= 3.10"
85
- dependencies = [
86
- 'requests>=2.31',
87
- 'importlib-metadata; python_version>="3.10"',
88
- 'urllib3>=2.0'
89
- ]
90
- classifiers = [
91
- 'Development Status :: 5 - Production/Stable',
92
- 'Environment :: Console',
93
- 'Intended Audience :: Developers',
94
- 'License :: OSI Approved :: BSD License',
95
- 'Operating System :: Microsoft :: Windows :: Windows 11',
96
- 'Programming Language :: Python :: 3.10',
97
- ]
98
- ```
99
-
100
- ## Build the distribution
101
-
102
- * delete any previous versions from the dist folder
103
- * check version number in pyproject.toml
104
-
105
- | Command | Result |
106
- | --- | --- |
107
- | python -m build |builds the application<br/> |
108
- | twine upload --repository testpypi dist/* |upload distribution to testpypi, or<br/> |
109
- | twine upload dist/* |upload distribution to pypi |
1
+ Metadata-Version: 2.2
2
+ Name: dtscore
3
+ Version: 2.3.2
4
+ Summary: DTS Core Services
5
+ Author-email: "D. Smith" <dgsmith.hpot@gmail.com>
6
+ Classifier: Development Status :: 5 - Production/Stable
7
+ Classifier: Environment :: Console
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: License :: OSI Approved :: BSD License
10
+ Classifier: Operating System :: Microsoft :: Windows :: Windows 11
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Requires-Python: >=3.10
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE
15
+ Requires-Dist: importlib-metadata; python_version >= "3.10"
16
+ Requires-Dist: requests>=2.31
17
+ Requires-Dist: urllib3>=2.0
18
+
19
+ # Prep
20
+
21
+ See: https://packaging.python.org/en/latest/tutorials/packaging-projects/
22
+
23
+ ## Setup Testpypi and Pypi (one time only)
24
+
25
+ .pypirc file in $home (c:/users/dgsmith) directory<br/>
26
+
27
+ ```
28
+ [testpypi]
29
+ username = __token__
30
+ password = token from test.pypi.org goes here
31
+ ```
32
+
33
+ ## Project folder structure
34
+
35
+ ```
36
+ pyexample
37
+ ├── src
38
+ │ ├── pyexample_USERNAME_HERE
39
+ │ │ ├── __init__.py
40
+ │ │ ├── module_mpi4py_1.py
41
+ │ │ ├── module_numpy_1.py
42
+ │ │ └── module_numpy_2.py
43
+ │ │-- module2_USERNAME_HERE
44
+ │ │ ├── __init__.py
45
+ │ │ ├── ...
46
+ ├── tests
47
+ │ ├── test1.py
48
+ ├── .gitignore
49
+ ├── LICENSE
50
+ ├── pyproject.toml
51
+ ├── README.md
52
+ ```
53
+
54
+ ## Other Steps
55
+
56
+ * Create a virtual environment (.venv)
57
+ * pip install any dependencies
58
+ * pip freeze to create requirements.txt
59
+
60
+ ## Tools install
61
+
62
+ ```
63
+ python -m pip install --upgrade pip
64
+ python -m pip install --upgrade build
65
+ python -m pip install --upgrade twine
66
+ ```
67
+
68
+ ## Create pyproject.toml
69
+ under project folder create pyproject.toml
70
+
71
+ ```
72
+ [build-system]
73
+ requires = ["setuptools"]
74
+ build-backend = "setuptools.build_meta"
75
+
76
+ [project]
77
+ name = "dtscore_dsmi"
78
+ version = "0.0.2"
79
+ authors = [
80
+ { name="D. Smith", email="dgsmith.hpot@gmail.com" },
81
+ ]
82
+ description = "DTS Core Services"
83
+ readme = "README.md"
84
+ requires-python = ">= 3.10"
85
+ dependencies = [
86
+ 'requests>=2.31',
87
+ 'importlib-metadata; python_version>="3.10"',
88
+ 'urllib3>=2.0'
89
+ ]
90
+ classifiers = [
91
+ 'Development Status :: 5 - Production/Stable',
92
+ 'Environment :: Console',
93
+ 'Intended Audience :: Developers',
94
+ 'License :: OSI Approved :: BSD License',
95
+ 'Operating System :: Microsoft :: Windows :: Windows 11',
96
+ 'Programming Language :: Python :: 3.10',
97
+ ]
98
+ ```
99
+
100
+ ## Build the distribution
101
+
102
+ * delete any previous versions from the dist folder
103
+ * check version number in pyproject.toml
104
+
105
+ | Command | Result |
106
+ | --- | --- |
107
+ | python -m build |builds the application<br/> |
108
+ | twine upload --repository testpypi dist/* |upload distribution to testpypi, or<br/> |
109
+ | twine upload dist/* |upload distribution to pypi |
File without changes
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dtscore"
7
- version = "2.3.0"
7
+ version = "2.3.2"
8
8
  authors = [
9
9
  { name="D. Smith", email="dgsmith.hpot@gmail.com" },
10
10
  ]
@@ -1,4 +1,4 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
-
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
File without changes
File without changes
File without changes
File without changes
@@ -7,14 +7,14 @@ from datetime import date
7
7
  from dtscore import schema_enums as se
8
8
 
9
9
  # logging constants
10
- logshome = r"C:\users\dgsmith\dev\logs"
10
+ logshome = r"C:\users\dgsmi_\dev\logs"
11
11
  loglevel = logging.DEBUG
12
12
  portfoliogenlogfilename = "portfolio_gen_.log"
13
13
  logfilepath = os.path.join(logshome, portfoliogenlogfilename)
14
14
  logformat = '%(asctime)s: %(levelname)-5s: %(module)-15s - %(message)s'
15
15
 
16
16
  # general paths and folders not related to a single analysis environment
17
- apphome = r'c:\users\dgsmith\documents\personal\005_financial\trading\dts'
17
+ apphome = r'c:\users\dgsmi_\documents\personal\005_financial\trading\dts'
18
18
  analyzerexepath = r"analyzer\dtsanalyzer.exe"
19
19
  coredatafolder = r"coredata"
20
20
  analysesfolder = r"analyses"
@@ -75,10 +75,10 @@ topxcount = 20
75
75
  # script/config output ***************************************************************************
76
76
  as_db_environment = se.DbEnvironment.Prod
77
77
  as_dataset_type = se.DatasetType.FullDay
78
- as_reports_folder = r"C:\users\dgsmith\Documents\personal\financial\trading\dts\results"
78
+ as_reports_folder = r"C:\users\dgsmi_\Documents\personal\financial\trading\dts\results"
79
79
  as_report_name_template = "portfolio_summary.csv"
80
80
  as_logging_level = se.LogLevel.Info
81
- as_log_folder = r"C:/Users/dgsmith/dev/logs/portfolio_summary_.log"
81
+ as_log_folder = r"C:/Users/dgsmi_/dev/logs/portfolio_summary_.log"
82
82
  as_runtype = se.RunType.MultiPortfolioAnalysis
83
83
 
84
84
  # Portfolio section default parameter values
File without changes
File without changes
@@ -44,15 +44,24 @@ class OrderAction:
44
44
  @dataclass
45
45
  class CoreOrder:
46
46
  symbol:str
47
- action:OrderAction
47
+ action:str
48
48
  qty:int
49
- ordertype:OrderType
49
+ ordertype:str
50
50
  limitprice:Optional[float] = None
51
51
  stopprice:Optional[float] = None
52
52
  orderid:Optional[ibclnt.OrderId] = None
53
53
  ocagroup:Optional[str] = None
54
54
  ocatype:Optional[int] = None
55
55
 
56
+ def __str__(self):
57
+ ordertext = f'{self.action} {self.qty} {self.symbol} @ '
58
+ match self.ordertype:
59
+ case OrderType.Market: suffix = OrderType.Market
60
+ case OrderType.Limit: suffix = f'{self.limitprice} {OrderType.Limit}'
61
+ case OrderType.Stop: suffix = f'{self.stopprice} {OrderType.Stop}'
62
+ ordertext += suffix
63
+ return ordertext
64
+
56
65
  # -------------------------------------------------------------------------------------------------
57
66
  @dataclass
58
67
  class OrderState:
@@ -261,6 +270,23 @@ def make_oca(orders:Iterable[CoreOrder]) -> list[CoreOrder]:
261
270
  grouped_orders = [make_group(o) for o in orders]
262
271
  return grouped_orders
263
272
 
273
+ # --------------------------------------------------------------------------------
274
+ def to_orderaction(action:str) -> str:
275
+ match str.upper(action):
276
+ case 'B': return OrderAction.Buy
277
+ case 'BUY': return OrderAction.Buy
278
+ case 'S': return OrderAction.Sell
279
+ case 'SELL': return OrderAction.Sell
280
+ case _: raise Exception(f"Unknown order action string: {action}")
281
+
282
+ # --------------------------------------------------------------------------------
283
+ def to_ordertype(ordertype:str) -> str:
284
+ match str.upper(ordertype):
285
+ case 'LMT': return OrderType.Limit
286
+ case 'STP': return OrderType.Stop
287
+ case 'MKT': return OrderType.Market
288
+ case _: raise Exception(f"Unknown order type string: {ordertype}")
289
+
264
290
 
265
291
  #######################################################################################
266
292
  # private api
File without changes
@@ -1,109 +1,109 @@
1
- Metadata-Version: 2.1
2
- Name: dtscore
3
- Version: 2.3.0
4
- Summary: DTS Core Services
5
- Author-email: "D. Smith" <dgsmith.hpot@gmail.com>
6
- Classifier: Development Status :: 5 - Production/Stable
7
- Classifier: Environment :: Console
8
- Classifier: Intended Audience :: Developers
9
- Classifier: License :: OSI Approved :: BSD License
10
- Classifier: Operating System :: Microsoft :: Windows :: Windows 11
11
- Classifier: Programming Language :: Python :: 3.10
12
- Requires-Python: >=3.10
13
- Description-Content-Type: text/markdown
14
- License-File: LICENSE
15
- Requires-Dist: importlib-metadata; python_version >= "3.10"
16
- Requires-Dist: requests>=2.31
17
- Requires-Dist: urllib3>=2.0
18
-
19
- # Prep
20
-
21
- See: https://packaging.python.org/en/latest/tutorials/packaging-projects/
22
-
23
- ## Setup Testpypi and Pypi (one time only)
24
-
25
- .pypirc file in $home (c:/users/dgsmith) directory<br/>
26
-
27
- ```
28
- [testpypi]
29
- username = __token__
30
- password = token from test.pypi.org goes here
31
- ```
32
-
33
- ## Project folder structure
34
-
35
- ```
36
- pyexample
37
- ├── src
38
- │ ├── pyexample_USERNAME_HERE
39
- │ │ ├── __init__.py
40
- │ │ ├── module_mpi4py_1.py
41
- │ │ ├── module_numpy_1.py
42
- │ │ └── module_numpy_2.py
43
- │ │-- module2_USERNAME_HERE
44
- │ │ ├── __init__.py
45
- │ │ ├── ...
46
- ├── tests
47
- │ ├── test1.py
48
- ├── .gitignore
49
- ├── LICENSE
50
- ├── pyproject.toml
51
- ├── README.md
52
- ```
53
-
54
- ## Other Steps
55
-
56
- * Create a virtual environment (.venv)
57
- * pip install any dependencies
58
- * pip freeze to create requirements.txt
59
-
60
- ## Tools install
61
-
62
- ```
63
- python -m pip install --upgrade pip
64
- python -m pip install --upgrade build
65
- python -m pip install --upgrade twine
66
- ```
67
-
68
- ## Create pyproject.toml
69
- under project folder create pyproject.toml
70
-
71
- ```
72
- [build-system]
73
- requires = ["setuptools"]
74
- build-backend = "setuptools.build_meta"
75
-
76
- [project]
77
- name = "dtscore_dsmi"
78
- version = "0.0.2"
79
- authors = [
80
- { name="D. Smith", email="dgsmith.hpot@gmail.com" },
81
- ]
82
- description = "DTS Core Services"
83
- readme = "README.md"
84
- requires-python = ">= 3.10"
85
- dependencies = [
86
- 'requests>=2.31',
87
- 'importlib-metadata; python_version>="3.10"',
88
- 'urllib3>=2.0'
89
- ]
90
- classifiers = [
91
- 'Development Status :: 5 - Production/Stable',
92
- 'Environment :: Console',
93
- 'Intended Audience :: Developers',
94
- 'License :: OSI Approved :: BSD License',
95
- 'Operating System :: Microsoft :: Windows :: Windows 11',
96
- 'Programming Language :: Python :: 3.10',
97
- ]
98
- ```
99
-
100
- ## Build the distribution
101
-
102
- * delete any previous versions from the dist folder
103
- * check version number in pyproject.toml
104
-
105
- | Command | Result |
106
- | --- | --- |
107
- | python -m build |builds the application<br/> |
108
- | twine upload --repository testpypi dist/* |upload distribution to testpypi, or<br/> |
109
- | twine upload dist/* |upload distribution to pypi |
1
+ Metadata-Version: 2.2
2
+ Name: dtscore
3
+ Version: 2.3.2
4
+ Summary: DTS Core Services
5
+ Author-email: "D. Smith" <dgsmith.hpot@gmail.com>
6
+ Classifier: Development Status :: 5 - Production/Stable
7
+ Classifier: Environment :: Console
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: License :: OSI Approved :: BSD License
10
+ Classifier: Operating System :: Microsoft :: Windows :: Windows 11
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Requires-Python: >=3.10
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE
15
+ Requires-Dist: importlib-metadata; python_version >= "3.10"
16
+ Requires-Dist: requests>=2.31
17
+ Requires-Dist: urllib3>=2.0
18
+
19
+ # Prep
20
+
21
+ See: https://packaging.python.org/en/latest/tutorials/packaging-projects/
22
+
23
+ ## Setup Testpypi and Pypi (one time only)
24
+
25
+ .pypirc file in $home (c:/users/dgsmith) directory<br/>
26
+
27
+ ```
28
+ [testpypi]
29
+ username = __token__
30
+ password = token from test.pypi.org goes here
31
+ ```
32
+
33
+ ## Project folder structure
34
+
35
+ ```
36
+ pyexample
37
+ ├── src
38
+ │ ├── pyexample_USERNAME_HERE
39
+ │ │ ├── __init__.py
40
+ │ │ ├── module_mpi4py_1.py
41
+ │ │ ├── module_numpy_1.py
42
+ │ │ └── module_numpy_2.py
43
+ │ │-- module2_USERNAME_HERE
44
+ │ │ ├── __init__.py
45
+ │ │ ├── ...
46
+ ├── tests
47
+ │ ├── test1.py
48
+ ├── .gitignore
49
+ ├── LICENSE
50
+ ├── pyproject.toml
51
+ ├── README.md
52
+ ```
53
+
54
+ ## Other Steps
55
+
56
+ * Create a virtual environment (.venv)
57
+ * pip install any dependencies
58
+ * pip freeze to create requirements.txt
59
+
60
+ ## Tools install
61
+
62
+ ```
63
+ python -m pip install --upgrade pip
64
+ python -m pip install --upgrade build
65
+ python -m pip install --upgrade twine
66
+ ```
67
+
68
+ ## Create pyproject.toml
69
+ under project folder create pyproject.toml
70
+
71
+ ```
72
+ [build-system]
73
+ requires = ["setuptools"]
74
+ build-backend = "setuptools.build_meta"
75
+
76
+ [project]
77
+ name = "dtscore_dsmi"
78
+ version = "0.0.2"
79
+ authors = [
80
+ { name="D. Smith", email="dgsmith.hpot@gmail.com" },
81
+ ]
82
+ description = "DTS Core Services"
83
+ readme = "README.md"
84
+ requires-python = ">= 3.10"
85
+ dependencies = [
86
+ 'requests>=2.31',
87
+ 'importlib-metadata; python_version>="3.10"',
88
+ 'urllib3>=2.0'
89
+ ]
90
+ classifiers = [
91
+ 'Development Status :: 5 - Production/Stable',
92
+ 'Environment :: Console',
93
+ 'Intended Audience :: Developers',
94
+ 'License :: OSI Approved :: BSD License',
95
+ 'Operating System :: Microsoft :: Windows :: Windows 11',
96
+ 'Programming Language :: Python :: 3.10',
97
+ ]
98
+ ```
99
+
100
+ ## Build the distribution
101
+
102
+ * delete any previous versions from the dist folder
103
+ * check version number in pyproject.toml
104
+
105
+ | Command | Result |
106
+ | --- | --- |
107
+ | python -m build |builds the application<br/> |
108
+ | twine upload --repository testpypi dist/* |upload distribution to testpypi, or<br/> |
109
+ | twine upload dist/* |upload distribution to pypi |
File without changes
@@ -20,7 +20,7 @@ import datetime as dt
20
20
 
21
21
  # test for unknown symbol
22
22
  tickers = ['vix','aapl']
23
- start = dt.datetime(2024,1,4).date();
23
+ start = dt.datetime(2024,1,4).date()
24
24
  end = dt.datetime(2024,1,10).date()
25
25
  for ticker in tickers:
26
26
  try:
File without changes