pyWinService 2.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.
Files changed (34) hide show
  1. pywinservice-2.0.1/.gitignore +218 -0
  2. pywinservice-2.0.1/.idea/.gitignore +8 -0
  3. pywinservice-2.0.1/.idea/PyService.iml +19 -0
  4. pywinservice-2.0.1/.idea/inspectionProfiles/Project_Default.xml +53 -0
  5. pywinservice-2.0.1/.idea/inspectionProfiles/profiles_settings.xml +6 -0
  6. pywinservice-2.0.1/.idea/misc.xml +15 -0
  7. pywinservice-2.0.1/.idea/modules.xml +8 -0
  8. pywinservice-2.0.1/.idea/runConfigurations/Demo.xml +26 -0
  9. pywinservice-2.0.1/.idea/runConfigurations/Demo_gen_batch.xml +26 -0
  10. pywinservice-2.0.1/.idea/runConfigurations/build_demo.xml +11 -0
  11. pywinservice-2.0.1/.idea/runConfigurations/build_pkg.xml +17 -0
  12. pywinservice-2.0.1/.idea/runConfigurations/install_deps.xml +17 -0
  13. pywinservice-2.0.1/.idea/runConfigurations/test_pyservice_py.xml +18 -0
  14. pywinservice-2.0.1/.idea/runConfigurations/tests.xml +24 -0
  15. pywinservice-2.0.1/.idea/vcs.xml +6 -0
  16. pywinservice-2.0.1/.idea/watcherTasks.xml +9 -0
  17. pywinservice-2.0.1/.python-version +1 -0
  18. pywinservice-2.0.1/LICENSE +21 -0
  19. pywinservice-2.0.1/PKG-INFO +28 -0
  20. pywinservice-2.0.1/README.md +0 -0
  21. pywinservice-2.0.1/pyproject.toml +89 -0
  22. pywinservice-2.0.1/setup.cfg +4 -0
  23. pywinservice-2.0.1/src/Demo.py +84 -0
  24. pywinservice-2.0.1/src/build_demo.bat +8 -0
  25. pywinservice-2.0.1/src/pyWinService/__init__.py +708 -0
  26. pywinservice-2.0.1/src/pyWinService.egg-info/PKG-INFO +28 -0
  27. pywinservice-2.0.1/src/pyWinService.egg-info/SOURCES.txt +32 -0
  28. pywinservice-2.0.1/src/pyWinService.egg-info/dependency_links.txt +1 -0
  29. pywinservice-2.0.1/src/pyWinService.egg-info/requires.txt +7 -0
  30. pywinservice-2.0.1/src/pyWinService.egg-info/top_level.txt +1 -0
  31. pywinservice-2.0.1/test/conftest.py +35 -0
  32. pywinservice-2.0.1/test/test_pyservice.py +754 -0
  33. pywinservice-2.0.1/tox.ini +39 -0
  34. pywinservice-2.0.1/uv.lock +303 -0
@@ -0,0 +1,218 @@
1
+ ### JetBrains template
2
+ # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
3
+ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
4
+
5
+ # User-specific stuff
6
+ .idea/**/workspace.xml
7
+ .idea/**/tasks.xml
8
+ .idea/**/usage.statistics.xml
9
+ .idea/**/dictionaries
10
+ .idea/**/shelf
11
+
12
+ # Generated files
13
+ .idea/**/contentModel.xml
14
+
15
+ # Sensitive or high-churn files
16
+ .idea/**/dataSources/
17
+ .idea/**/dataSources.ids
18
+ .idea/**/dataSources.local.xml
19
+ .idea/**/sqlDataSources.xml
20
+ .idea/**/dynamic.xml
21
+ .idea/**/uiDesigner.xml
22
+ .idea/**/dbnavigator.xml
23
+
24
+ # Gradle
25
+ .idea/**/gradle.xml
26
+ .idea/**/libraries
27
+
28
+ # Gradle and Maven with auto-import
29
+ # When using Gradle or Maven with auto-import, you should exclude module files,
30
+ # since they will be recreated, and may cause churn. Uncomment if using
31
+ # auto-import.
32
+ # .idea/artifacts
33
+ # .idea/compiler.xml
34
+ # .idea/jarRepositories.xml
35
+ # .idea/modules.xml
36
+ # .idea/*.iml
37
+ # .idea/modules
38
+ # *.iml
39
+ # *.ipr
40
+
41
+ # CMake
42
+ cmake-build-*/
43
+
44
+ # Mongo Explorer plugin
45
+ .idea/**/mongoSettings.xml
46
+
47
+ # File-based project format
48
+ *.iws
49
+
50
+ # IntelliJ
51
+ out/
52
+
53
+ # mpeltonen/sbt-idea plugin
54
+ .idea_modules/
55
+
56
+ # JIRA plugin
57
+ atlassian-ide-plugin.xml
58
+
59
+ # Cursive Clojure plugin
60
+ .idea/replstate.xml
61
+
62
+ # Crashlytics plugin (for Android Studio and IntelliJ)
63
+ com_crashlytics_export_strings.xml
64
+ crashlytics.properties
65
+ crashlytics-build.properties
66
+ fabric.properties
67
+
68
+ # Editor-based Rest Client
69
+ .idea/httpRequests
70
+
71
+ # Android studio 3.1+ serialized cache file
72
+ .idea/caches/build_file_checksums.ser
73
+
74
+ ### Python template
75
+ # Byte-compiled / optimized / DLL files
76
+ __pycache__/
77
+ *.py[cod]
78
+ *$py.class
79
+
80
+ # C extensions
81
+ *.so
82
+
83
+ # Distribution / packaging
84
+ .Python
85
+ build/
86
+ develop-eggs/
87
+ dist/
88
+ downloads/
89
+ eggs/
90
+ .eggs/
91
+ lib/
92
+ lib64/
93
+ parts/
94
+ sdist/
95
+ var/
96
+ wheels/
97
+ share/python-wheels/
98
+ *.egg-info/
99
+ .installed.cfg
100
+ *.egg
101
+ MANIFEST
102
+
103
+ # PyInstaller
104
+ # Usually these files are written by a python script from a template
105
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
106
+ *.manifest
107
+ *.spec
108
+
109
+ # Installer logs
110
+ pip-log.txt
111
+ pip-delete-this-directory.txt
112
+
113
+ # Unit test / coverage reports
114
+ htmlcov/
115
+ .tox/
116
+ .nox/
117
+ .coverage
118
+ .coverage.*
119
+ .cache
120
+ nosetests.xml
121
+ coverage.xml
122
+ *.cover
123
+ *.py,cover
124
+ .hypothesis/
125
+ .pytest_cache/
126
+ cover/
127
+
128
+ # Translations
129
+ *.mo
130
+ *.pot
131
+
132
+ # Django stuff:
133
+ *.log*
134
+ local_settings.py
135
+ db.sqlite3
136
+ db.sqlite3-journal
137
+
138
+ # Flask stuff:
139
+ instance/
140
+ .webassets-cache
141
+
142
+ # Scrapy stuff:
143
+ .scrapy
144
+
145
+ # Sphinx documentation
146
+ docs/_build/
147
+
148
+ # PyBuilder
149
+ .pybuilder/
150
+ target/
151
+
152
+ # Jupyter Notebook
153
+ .ipynb_checkpoints
154
+
155
+ # IPython
156
+ profile_default/
157
+ ipython_config.py
158
+
159
+ # pyenv
160
+ # For a library or package, you might want to ignore these files since the code is
161
+ # intended to run in multiple environments; otherwise, check them in:
162
+ # .python-version
163
+
164
+ # pipenv
165
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
166
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
167
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
168
+ # install all needed dependencies.
169
+ #Pipfile.lock
170
+
171
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
172
+ __pypackages__/
173
+
174
+ # Celery stuff
175
+ celerybeat-schedule
176
+ celerybeat.pid
177
+
178
+ # SageMath parsed files
179
+ *.sage.py
180
+
181
+ # Environments
182
+ .env
183
+ .venv
184
+ env/
185
+ venv/
186
+ ENV/
187
+ env.bak/
188
+ venv.bak/
189
+
190
+ # Spyder project settings
191
+ .spyderproject
192
+ .spyproject
193
+
194
+ # Rope project settings
195
+ .ropeproject
196
+
197
+ # mkdocs documentation
198
+ /site
199
+
200
+ # mypy
201
+ .mypy_cache/
202
+ .dmypy.json
203
+ dmypy.json
204
+ monkeytype.sqlite3
205
+ mypy/
206
+
207
+ # Pyre type checker
208
+ .pyre/
209
+
210
+ # pytype static type analyzer
211
+ .pytype/
212
+
213
+ # Cython debug symbols
214
+ cython_debug/
215
+
216
+ /__version__.py
217
+ /run/
218
+ *Demo.json
@@ -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,19 @@
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$/test" isTestSource="true" />
7
+ <excludeFolder url="file://$MODULE_DIR$/.tox" />
8
+ <excludeFolder url="file://$MODULE_DIR$/.venv" />
9
+ <excludeFolder url="file://$MODULE_DIR$/build" />
10
+ <excludeFolder url="file://$MODULE_DIR$/dist" />
11
+ <excludeFolder url="file://$MODULE_DIR$/src/pyservice.egg-info" />
12
+ <excludeFolder url="file://$MODULE_DIR$/htmlcov" />
13
+ <excludeFolder url="file://$MODULE_DIR$/run" />
14
+ <excludeFolder url="file://$MODULE_DIR$/src/pywinservice.egg-info" />
15
+ </content>
16
+ <orderEntry type="jdk" jdkName="uv (PyService)" jdkType="Python SDK" />
17
+ <orderEntry type="sourceFolder" forTests="false" />
18
+ </component>
19
+ </module>
@@ -0,0 +1,53 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="HtmlUnknownTag" enabled="true" level="WARNING" enabled_by_default="true">
5
+ <option name="myValues">
6
+ <value>
7
+ <list size="7">
8
+ <item index="0" class="java.lang.String" itemvalue="nobr" />
9
+ <item index="1" class="java.lang.String" itemvalue="noembed" />
10
+ <item index="2" class="java.lang.String" itemvalue="comment" />
11
+ <item index="3" class="java.lang.String" itemvalue="noscript" />
12
+ <item index="4" class="java.lang.String" itemvalue="embed" />
13
+ <item index="5" class="java.lang.String" itemvalue="script" />
14
+ <item index="6" class="java.lang.String" itemvalue="ql" />
15
+ </list>
16
+ </value>
17
+ </option>
18
+ <option name="myCustomValuesEnabled" value="true" />
19
+ </inspection_tool>
20
+ <inspection_tool class="PyCompatibilityInspection" enabled="true" level="WARNING" enabled_by_default="true">
21
+ <option name="ourVersions">
22
+ <value>
23
+ <list size="4">
24
+ <item index="0" class="java.lang.String" itemvalue="3.10" />
25
+ <item index="1" class="java.lang.String" itemvalue="3.11" />
26
+ <item index="2" class="java.lang.String" itemvalue="3.12" />
27
+ <item index="3" class="java.lang.String" itemvalue="3.13" />
28
+ </list>
29
+ </value>
30
+ </option>
31
+ </inspection_tool>
32
+ <inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
33
+ <option name="ignoredBaseClasses">
34
+ <list>
35
+ <option value="unittest.TestCase" />
36
+ <option value="unittest.case.TestCase" />
37
+ <option value="win32serviceutil.ServiceFramework" />
38
+ <option value="System.Object" />
39
+ <option value="System.Array" />
40
+ <option value="wx.core.Object" />
41
+ </list>
42
+ </option>
43
+ </inspection_tool>
44
+ <inspection_tool class="PyShadowingBuiltinsInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false">
45
+ <option name="ignoredNames">
46
+ <list>
47
+ <option value="filter" />
48
+ </list>
49
+ </option>
50
+ </inspection_tool>
51
+ <inspection_tool class="PyShadowingNamesInspection" enabled="true" level="INFORMATION" enabled_by_default="true" />
52
+ </profile>
53
+ </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,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Black">
4
+ <option name="sdkName" value="Python 3.13 [uv] (PyService)" />
5
+ </component>
6
+ <component name="ProjectRootManager" version="2" project-jdk-name="uv (PyService)" project-jdk-type="Python SDK" />
7
+ <component name="RuffConfiguration">
8
+ <option name="enabled" value="true" />
9
+ <option name="executableDiscoveryMode" value="PATH" />
10
+ </component>
11
+ <component name="TyConfiguration">
12
+ <option name="enabled" value="true" />
13
+ <option name="executableDiscoveryMode" value="PATH" />
14
+ </component>
15
+ </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/PyService.iml" filepath="$PROJECT_DIR$/.idea/PyService.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,26 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="Demo" type="PythonConfigurationType" factoryName="Python" nameIsGenerated="true">
3
+ <module name="PyService" />
4
+ <option name="ENV_FILES" value="" />
5
+ <option name="INTERPRETER_OPTIONS" value="" />
6
+ <option name="PARENT_ENVS" value="true" />
7
+ <envs>
8
+ <env name="PYTHONUNBUFFERED" value="1" />
9
+ </envs>
10
+ <option name="SDK_HOME" value="" />
11
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/run" />
12
+ <option name="IS_MODULE_SDK" value="true" />
13
+ <option name="ADD_CONTENT_ROOTS" value="true" />
14
+ <option name="ADD_SOURCE_ROOTS" value="true" />
15
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
16
+ <option name="RUN_TOOL" value="true" />
17
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/src/Demo.py" />
18
+ <option name="PARAMETERS" value="start_local" />
19
+ <option name="SHOW_COMMAND_LINE" value="false" />
20
+ <option name="EMULATE_TERMINAL" value="false" />
21
+ <option name="MODULE_MODE" value="false" />
22
+ <option name="REDIRECT_INPUT" value="false" />
23
+ <option name="INPUT_FILE" value="" />
24
+ <method v="2" />
25
+ </configuration>
26
+ </component>
@@ -0,0 +1,26 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="Demo gen_batch" type="PythonConfigurationType" factoryName="Python">
3
+ <module name="PyService" />
4
+ <option name="ENV_FILES" value="" />
5
+ <option name="INTERPRETER_OPTIONS" value="" />
6
+ <option name="PARENT_ENVS" value="true" />
7
+ <envs>
8
+ <env name="PYTHONUNBUFFERED" value="1" />
9
+ </envs>
10
+ <option name="SDK_HOME" value="" />
11
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/run" />
12
+ <option name="IS_MODULE_SDK" value="true" />
13
+ <option name="ADD_CONTENT_ROOTS" value="true" />
14
+ <option name="ADD_SOURCE_ROOTS" value="true" />
15
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
16
+ <option name="RUN_TOOL" value="true" />
17
+ <option name="SCRIPT_NAME" value="$PROJECT_DIR$/src/Demo.py" />
18
+ <option name="PARAMETERS" value="gen_batch" />
19
+ <option name="SHOW_COMMAND_LINE" value="false" />
20
+ <option name="EMULATE_TERMINAL" value="false" />
21
+ <option name="MODULE_MODE" value="false" />
22
+ <option name="REDIRECT_INPUT" value="false" />
23
+ <option name="INPUT_FILE" value="" />
24
+ <method v="2" />
25
+ </configuration>
26
+ </component>
@@ -0,0 +1,11 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="build_demo" type="BatchConfigurationType" factoryName="Batch">
3
+ <module name="PyService" />
4
+ <option name="INTERPRETER_OPTIONS" value="" />
5
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
6
+ <option name="PARENT_ENVS" value="true" />
7
+ <option name="SCRIPT_NAME" value="./src/build_demo.bat" />
8
+ <option name="PARAMETERS" value="" />
9
+ <method v="2" />
10
+ </configuration>
11
+ </component>
@@ -0,0 +1,17 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="build_pkg" type="ShConfigurationType">
3
+ <option name="SCRIPT_TEXT" value="uv build" />
4
+ <option name="INDEPENDENT_SCRIPT_PATH" value="true" />
5
+ <option name="SCRIPT_PATH" value="" />
6
+ <option name="SCRIPT_OPTIONS" value="" />
7
+ <option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
8
+ <option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
9
+ <option name="INDEPENDENT_INTERPRETER_PATH" value="false" />
10
+ <option name="INTERPRETER_PATH" value="$PROJECT_DIR$/../../../Windows/system32/cmd.exe" />
11
+ <option name="INTERPRETER_OPTIONS" value="" />
12
+ <option name="EXECUTE_IN_TERMINAL" value="false" />
13
+ <option name="EXECUTE_SCRIPT_FILE" value="false" />
14
+ <envs />
15
+ <method v="2" />
16
+ </configuration>
17
+ </component>
@@ -0,0 +1,17 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="install deps" type="ShConfigurationType">
3
+ <option name="SCRIPT_TEXT" value="uv sync --all-extras" />
4
+ <option name="INDEPENDENT_SCRIPT_PATH" value="true" />
5
+ <option name="SCRIPT_PATH" value="" />
6
+ <option name="SCRIPT_OPTIONS" value="" />
7
+ <option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
8
+ <option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
9
+ <option name="INDEPENDENT_INTERPRETER_PATH" value="false" />
10
+ <option name="INTERPRETER_PATH" value="$PROJECT_DIR$/../../../Windows/system32/cmd.exe" />
11
+ <option name="INTERPRETER_OPTIONS" value="" />
12
+ <option name="EXECUTE_IN_TERMINAL" value="false" />
13
+ <option name="EXECUTE_SCRIPT_FILE" value="false" />
14
+ <envs />
15
+ <method v="2" />
16
+ </configuration>
17
+ </component>
@@ -0,0 +1,18 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="test_pyservice.py" type="tests" factoryName="Autodetect">
3
+ <module name="PyService" />
4
+ <option name="ENV_FILES" value="" />
5
+ <option name="INTERPRETER_OPTIONS" value="" />
6
+ <option name="PARENT_ENVS" value="true" />
7
+ <option name="SDK_HOME" value="" />
8
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/test" />
9
+ <option name="IS_MODULE_SDK" value="true" />
10
+ <option name="ADD_CONTENT_ROOTS" value="true" />
11
+ <option name="ADD_SOURCE_ROOTS" value="true" />
12
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
13
+ <option name="_new_additionalArguments" value="&quot;&quot;" />
14
+ <option name="_new_target" value="&quot;$PROJECT_DIR$/test/test_pyservice.py&quot;" />
15
+ <option name="_new_targetType" value="&quot;PATH&quot;" />
16
+ <method v="2" />
17
+ </configuration>
18
+ </component>
@@ -0,0 +1,24 @@
1
+ <component name="ProjectRunConfigurationManager">
2
+ <configuration default="false" name="tests" type="Tox" factoryName="Tox">
3
+ <module name="PyService" />
4
+ <option name="ENV_FILES" value="" />
5
+ <option name="INTERPRETER_OPTIONS" value="" />
6
+ <option name="PARENT_ENVS" value="true" />
7
+ <envs>
8
+ <env name="PYTHONUNBUFFERED" value="1" />
9
+ </envs>
10
+ <option name="SDK_HOME" value="" />
11
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
12
+ <option name="IS_MODULE_SDK" value="true" />
13
+ <option name="ADD_CONTENT_ROOTS" value="true" />
14
+ <option name="ADD_SOURCE_ROOTS" value="true" />
15
+ <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
16
+ <arguments>
17
+ <array />
18
+ </arguments>
19
+ <runOnlyEnvs>
20
+ <array />
21
+ </runOnlyEnvs>
22
+ <method v="2" />
23
+ </configuration>
24
+ </component>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectTasksOptions">
4
+ <enabled-global>
5
+ <option value="ruff format" />
6
+ <option value="ruff format stubs" />
7
+ </enabled-global>
8
+ </component>
9
+ </project>
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Ryan Smith
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 NON-INFRINGEMENT. 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.
@@ -0,0 +1,28 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyWinService
3
+ Version: 2.0.1
4
+ Summary: Add your description here
5
+ Author-email: Ryan Smith <7897914+Mimer29or40@users.noreply.github.com>
6
+ Project-URL: Homepage, https://github.com/Mimer29or40/PyService
7
+ Keywords: KEYWORDS
8
+ Classifier: Development Status :: 5 - Production/Stable
9
+ Classifier: Framework :: Flake8
10
+ Classifier: Framework :: Pytest
11
+ Classifier: Framework :: tox
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Classifier: Typing :: Typed
19
+ Requires-Python: >=3.13
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Requires-Dist: pywin32>=311
23
+ Requires-Dist: python-dateutil>=2.9.0
24
+ Provides-Extra: dev
25
+ Requires-Dist: tox>=4.36.0; extra == "dev"
26
+ Requires-Dist: pytest>=9.0.2; extra == "dev"
27
+ Requires-Dist: pyinstaller>=6.19.0; extra == "dev"
28
+ Dynamic: license-file
File without changes
@@ -0,0 +1,89 @@
1
+ [project]
2
+ name = "pyWinService"
3
+ #version = "" # Defined by setuptools_scm
4
+ description = "Add your description here"
5
+ readme = "README.md"
6
+ authors = [
7
+ { name = "Ryan Smith", email = "7897914+Mimer29or40@users.noreply.github.com" }
8
+ ]
9
+ keywords = [
10
+ "KEYWORDS",
11
+ ]
12
+ classifiers = [
13
+ "Development Status :: 5 - Production/Stable",
14
+ "Framework :: Flake8",
15
+ "Framework :: Pytest",
16
+ "Framework :: tox",
17
+ "License :: OSI Approved :: MIT License",
18
+ "Programming Language :: Python",
19
+ "Programming Language :: Python :: 3",
20
+ "Programming Language :: Python :: 3.13",
21
+ "Programming Language :: Python :: 3.14",
22
+ "Programming Language :: Python :: 3 :: Only",
23
+ "Typing :: Typed",
24
+ ]
25
+ requires-python = ">=3.13"
26
+ dependencies = [
27
+ "pywin32>=311",
28
+ "python-dateutil>=2.9.0",
29
+ ]
30
+ dynamic = ["version"]
31
+
32
+ [project.urls]
33
+ Homepage = "https://github.com/Mimer29or40/PyService"
34
+
35
+ [project.optional-dependencies]
36
+ dev = [
37
+ "tox>=4.36.0",
38
+ "pytest>=9.0.2",
39
+ "pyinstaller>=6.19.0",
40
+ ]
41
+
42
+ [build-system]
43
+ requires = ["setuptools", "setuptools_scm"]
44
+ build-backend = "setuptools.build_meta"
45
+
46
+ [[tool.uv.index]]
47
+ name = "pypi"
48
+ url = "https://pypi.org/simple"
49
+ publish-url = "https://upload.pypi.org/legacy/"
50
+
51
+ [[tool.uv.index]]
52
+ name = "testpypi"
53
+ url = "https://test.pypi.org/simple/"
54
+ publish-url = "https://test.pypi.org/legacy/"
55
+ explicit = true
56
+
57
+ [tool.setuptools.packages.find]
58
+ where = ["src"]
59
+
60
+ [tool.setuptools_scm]
61
+ write_to = "__version__.py"
62
+ local_scheme = "no-local-version"
63
+
64
+ [tool.ruff]
65
+ fix = true
66
+ line-length = 120
67
+
68
+ [tool.ruff.format]
69
+ docstring-code-format = true
70
+ docstring-code-line-length = "dynamic"
71
+
72
+ [tool.ruff.lint]
73
+ select = ["ALL"]
74
+ ignore = [
75
+ "ANN401",
76
+ "COM812",
77
+ "D203",
78
+ "D213",
79
+ ]
80
+
81
+ [tool.ruff.lint.per-file-ignores]
82
+ "test/*" = [
83
+ "INP001",
84
+ "S101",
85
+ ]
86
+
87
+ [tool.ruff.lint.isort]
88
+ force-single-line = true
89
+ required-imports = ["from __future__ import annotations"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+