icarus-python3 1.0.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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Carlo Gatti
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.
@@ -0,0 +1,22 @@
1
+ Metadata-Version: 2.4
2
+ Name: icarus-python3
3
+ Version: 1.0.0
4
+ Summary: IcarusPython3 is the Python3 build system for first-party Python packages in Icarus Builder
5
+ Author-email: Carlo Gatti <carlo.gatti@me.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/64rl0/IcarusPython3
8
+ Requires-Python: >=3.9
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: setuptools
12
+ Requires-Dist: build
13
+ Requires-Dist: twine
14
+ Requires-Dist: wheel
15
+ Dynamic: license-file
16
+
17
+ # IcarusPython3
18
+
19
+ IcarusPython3 is the Python3 build system for first-party Python packages in Icarus Builder.
20
+
21
+ ## Package documentation
22
+ [Read the Docs](file:///Users/carlogtt/Library/CloudStorage/Dropbox/SDE/Python/CarloCodes/_Projects/IcarusPython3/docs/html/index.html)
@@ -0,0 +1,6 @@
1
+ # IcarusPython3
2
+
3
+ IcarusPython3 is the Python3 build system for first-party Python packages in Icarus Builder.
4
+
5
+ ## Package documentation
6
+ [Read the Docs](file:///Users/carlogtt/Library/CloudStorage/Dropbox/SDE/Python/CarloCodes/_Projects/IcarusPython3/docs/html/index.html)
@@ -0,0 +1,177 @@
1
+ [project]
2
+ name = "icarus-python3"
3
+ description = "IcarusPython3 is the Python3 build system for first-party Python packages in Icarus Builder"
4
+ readme = "README.md"
5
+ license = "MIT"
6
+ authors = [
7
+ {name = "Carlo Gatti", email = "carlo.gatti@me.com"}
8
+ ]
9
+ requires-python = ">= 3.9"
10
+ dynamic = ["version"]
11
+ dependencies = [
12
+ "setuptools",
13
+ "build",
14
+ "twine",
15
+ "wheel",
16
+ ]
17
+
18
+ [project.urls]
19
+ Homepage = "https://github.com/64rl0/IcarusPython3"
20
+
21
+ [project.optional-dependencies]
22
+ # development = []
23
+
24
+
25
+ [build-system]
26
+ requires = ["setuptools"]
27
+ build-backend = "setuptools.build_meta"
28
+
29
+
30
+ [tool.setuptools]
31
+ include-package-data = true
32
+
33
+ [tool.setuptools.package-data]
34
+ "*" = ["**/*"]
35
+
36
+
37
+ [tool.black]
38
+ # black docs
39
+ # https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html
40
+
41
+ # How many characters per line to allow. The default is 88.
42
+ line-length = 100
43
+
44
+ # Black normalize ' to ". Setting to 1 so that strings are left
45
+ # unchanged instead.
46
+ skip-string-normalization = 1
47
+
48
+ # Enable potentially disruptive style changes that may be added to
49
+ # Black’s main functionality in the next major release.
50
+ preview = true
51
+ unstable = true
52
+
53
+
54
+ [tool.isort]
55
+ # isort docs
56
+ # https://pycqa.github.io/isort/docs/configuration/options.html
57
+
58
+ # The max length of an import line (used for wrapping long imports).
59
+ line_length = 100
60
+
61
+ # Use parentheses for line continuation on length limit instead of
62
+ # backslashes. NOTE: This is separate from wrap modes, and only affects
63
+ # how individual lines that are too long get continued, not sections of
64
+ # multiple imports.
65
+ use_parentheses = true
66
+
67
+ # What sections isort should display imports for and in what order.
68
+ sections = ['FUTURE', 'STDLIB', 'THIRDPARTY', 'MYLIB', 'FIRSTPARTY', 'LOCALFOLDER']
69
+
70
+ # Multi line output (0-grid, 1-vertical, 2-hanging, 3-vert-hanging,
71
+ # 4-vert-grid, 5-vert-grid-grouped, 6-deprecated-alias-for-5, 7-noqa,
72
+ # 8-vertical-hanging-indent-bracket,
73
+ # 9-vertical-prefix-from-module-import,
74
+ # 10-hanging-indent-with-parentheses).
75
+ multi_line_output = 3
76
+
77
+ # A mapping of import sections to import heading comments that should
78
+ # show above them.
79
+ import_headings = {future="Special Imports", stdlib="Standard Library Imports", thirdparty="Third Party Library Imports", mylib ="My Library Imports", firstparty="Local Application Imports", localfolder="Local Folder (Relative) Imports"}
80
+
81
+ # Inserts a blank line before a comment following an import.
82
+ ensure_newline_before_comments = true
83
+
84
+ # Includes a trailing comma on multi line imports that include
85
+ # parentheses.
86
+ include_trailing_comma = true
87
+
88
+ # Split imports list followed by a trailing comma into
89
+ # VERTICAL_HANGING_INDENT mode. This follows Black style magic comma.
90
+ split_on_trailing_comma = true
91
+
92
+ # Causes all non-indented imports to float to the top of the file
93
+ #having its imports sorted (immediately below the top of file comment).
94
+ # This can be an excellent shortcut for collecting imports every once
95
+ #in a while when you place them in the middle of a file to avoid context
96
+ # switching.
97
+ float_to_top = true
98
+
99
+ # If enabled, isort will apply import headings to indended imports the
100
+ # same way it does unindented ones.
101
+ indented_import_headings = false
102
+
103
+ # Force all imports to be sorted alphabetically within a section.
104
+ #force_alphabetical_sort_within_sections = true
105
+
106
+ # If enabled, isort will strip comments that exist within import lines.
107
+ #ignore_comments = true
108
+
109
+ # Add an explicitly defined source path (modules within src paths have
110
+ #their imports automatically categorized as first_party). Glob expansion
111
+ # (* and **) is supported for this option.
112
+ src_paths = ['src/*']
113
+
114
+ # Force isort to recognize a module as part of Python's internal future
115
+ # compatibility libraries. WARNING: this overrides the behavior of
116
+ # future handling and therefore can result in code that can't execute.
117
+ known_future_library = ['__future__']
118
+
119
+ # Extra modules to be included in the list of ones in Python's standard
120
+ # library.
121
+ extra_standard_library = []
122
+
123
+ # Force isort to recognize a module as being part of a third party
124
+ # library.
125
+ known_third_party = []
126
+
127
+ # known_OTHER is how imports of custom sections are defined.
128
+ # OTHER is a placeholder for the custom section name.
129
+ known_mylib = ['carlogtt_library', 'carlogtt_python_library']
130
+
131
+ # Force isort to recognize a module as being part of the current python
132
+ # project.
133
+ known_first_party = []
134
+
135
+ # Force isort to recognize a module as being a local folder. Generally,
136
+ #this is reserved for relative imports (from . import module).
137
+ known_local_folder = []
138
+
139
+
140
+ [tool.mypy]
141
+ # mypy docs
142
+ # https://mypy.readthedocs.io/en/latest/config_file.html
143
+
144
+ # Enables the type-checker on the interior of functions without type
145
+ # annotations.
146
+ check_untyped_defs = true
147
+
148
+ # Generate a warning when returning a value with type Any from a function
149
+ # declared with a non-Any return type.
150
+ warn_return_any = true
151
+
152
+ # Treat parameters with a None default value as having an implicit
153
+ # optional type (T | None).
154
+ implicit_optional = false
155
+
156
+ # Displaying specific error codes makes it easier to silence specific
157
+ # errors.
158
+ show_error_codes = true
159
+
160
+ # Show source code snippets and location markers in error messages.
161
+ pretty = true
162
+
163
+ # Suppresses errors about packages which do not implement type-hint
164
+ # sharing.
165
+ ignore_missing_imports = false
166
+
167
+ # Warns about unneeded '# type: ignore' comments.
168
+ warn_unused_ignores = true
169
+
170
+
171
+ [tool.pytest.ini_options]
172
+ addopts = "-vvv --color=yes --durations=5"
173
+ testpaths = [
174
+ "test",
175
+ "tests",
176
+ "integration",
177
+ ]
@@ -0,0 +1,9 @@
1
+ [flake8]
2
+ ignore = E203,W503
3
+ max-line-length = 100
4
+ max-doc-length = 72
5
+
6
+ [egg_info]
7
+ tag_build =
8
+ tag_date = 0
9
+
@@ -0,0 +1,65 @@
1
+ # ======================================================================
2
+ # MODULE DETAILS
3
+ # This section provides metadata about the module, including its
4
+ # creation date, author, copyright information, and a brief description
5
+ # of the module's purpose and functionality.
6
+ # ======================================================================
7
+
8
+ # __| \ _ \ | _ \ __| __ __| __ __|
9
+ # ( _ \ / | ( | (_ | | |
10
+ # \___| _/ _\ _|_\ ____| \___/ \___| _| _|
11
+
12
+ # setup.py
13
+ # Created 2/16/26 - 9:50 AM UK Time (London) by carlogtt
14
+
15
+ """
16
+ This module ...
17
+ """
18
+
19
+ # ======================================================================
20
+ # EXCEPTIONS
21
+ # This section documents any exceptions made code or quality rules.
22
+ # These exceptions may be necessary due to specific coding requirements
23
+ # or to bypass false positives.
24
+ # ======================================================================
25
+ #
26
+
27
+ # ======================================================================
28
+ # IMPORTS
29
+ # Importing required libraries and modules for the application.
30
+ # ======================================================================
31
+
32
+ # Standard Library Imports
33
+ import os
34
+
35
+ # Third Party Library Imports
36
+ from setuptools import setup
37
+
38
+ # END IMPORTS
39
+ # ======================================================================
40
+
41
+
42
+ def derive_version() -> str:
43
+ """
44
+ This function is required for Icarus Builder to determine the
45
+ package version from the version in `icarus.cfg`.
46
+
47
+ The version number is expected to be provided via the
48
+ environment variable `ICARUS_PACKAGE_VERSION`.
49
+
50
+ If this variable is not found, a KeyError will be raised.
51
+
52
+ :return: The version number as a string.
53
+ """
54
+
55
+ version = os.environ.get('ICARUS_PACKAGE_VERSION')
56
+
57
+ if version is None:
58
+ raise KeyError("ICARUS_PACKAGE_VERSION not found in the environment.")
59
+
60
+ return version
61
+
62
+
63
+ setup(
64
+ version=derive_version(),
65
+ )
@@ -0,0 +1,35 @@
1
+ # ======================================================================
2
+ # MODULE DETAILS
3
+ # This section provides metadata about the module, including its
4
+ # creation date, author, copyright information, and a brief description
5
+ # of the module's purpose and functionality.
6
+ # ======================================================================
7
+
8
+ # __| \ _ \ | _ \ __| __ __| __ __|
9
+ # ( _ \ / | ( | (_ | | |
10
+ # \___| _/ _\ _|_\ ____| \___/ \___| _| _|
11
+
12
+ # src/icarus_python3/__init__.py
13
+ # Created 7/19/23 - 10:24 AM UK Time (London) by carlogtt
14
+
15
+ """
16
+ This module ...
17
+ """
18
+
19
+ # ======================================================================
20
+ # EXCEPTIONS
21
+ # This section documents any exceptions made code or quality rules.
22
+ # These exceptions may be necessary due to specific coding requirements
23
+ # or to bypass false positives.
24
+ # ======================================================================
25
+ # flake8: noqa
26
+
27
+ # ======================================================================
28
+ # IMPORTS
29
+ # Importing required libraries and modules for the application.
30
+ # ======================================================================
31
+
32
+
33
+ # END IMPORTS
34
+ # ======================================================================
35
+
@@ -0,0 +1,35 @@
1
+ # ======================================================================
2
+ # MODULE DETAILS
3
+ # This section provides metadata about the module, including its
4
+ # creation date, author, copyright information, and a brief description
5
+ # of the module's purpose and functionality.
6
+ # ======================================================================
7
+
8
+ # __| \ _ \ | _ \ __| __ __| __ __|
9
+ # ( _ \ / | ( | (_ | | |
10
+ # \___| _/ _\ _|_\ ____| \___/ \___| _| _|
11
+
12
+ # src/icarus_python3/main.py
13
+ # Created 1/25/24 - 10:07 PM UK Time (London) by carlogtt
14
+
15
+ """
16
+ This module ...
17
+ """
18
+
19
+ # ======================================================================
20
+ # EXCEPTIONS
21
+ # This section documents any exceptions made code or quality rules.
22
+ # These exceptions may be necessary due to specific coding requirements
23
+ # or to bypass false positives.
24
+ # ======================================================================
25
+ #
26
+
27
+ # ======================================================================
28
+ # IMPORTS
29
+ # Importing required libraries and modules for the application.
30
+ # ======================================================================
31
+
32
+
33
+ # END IMPORTS
34
+ # ======================================================================
35
+
@@ -0,0 +1 @@
1
+ # Marker file that indicates this package supports typing.
@@ -0,0 +1,22 @@
1
+ Metadata-Version: 2.4
2
+ Name: icarus-python3
3
+ Version: 1.0.0
4
+ Summary: IcarusPython3 is the Python3 build system for first-party Python packages in Icarus Builder
5
+ Author-email: Carlo Gatti <carlo.gatti@me.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/64rl0/IcarusPython3
8
+ Requires-Python: >=3.9
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: setuptools
12
+ Requires-Dist: build
13
+ Requires-Dist: twine
14
+ Requires-Dist: wheel
15
+ Dynamic: license-file
16
+
17
+ # IcarusPython3
18
+
19
+ IcarusPython3 is the Python3 build system for first-party Python packages in Icarus Builder.
20
+
21
+ ## Package documentation
22
+ [Read the Docs](file:///Users/carlogtt/Library/CloudStorage/Dropbox/SDE/Python/CarloCodes/_Projects/IcarusPython3/docs/html/index.html)
@@ -0,0 +1,14 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ setup.cfg
5
+ setup.py
6
+ src/icarus_python3/__init__.py
7
+ src/icarus_python3/main.py
8
+ src/icarus_python3/py.typed
9
+ src/icarus_python3.egg-info/PKG-INFO
10
+ src/icarus_python3.egg-info/SOURCES.txt
11
+ src/icarus_python3.egg-info/dependency_links.txt
12
+ src/icarus_python3.egg-info/requires.txt
13
+ src/icarus_python3.egg-info/top_level.txt
14
+ test/test_application.py
@@ -0,0 +1,4 @@
1
+ setuptools
2
+ build
3
+ twine
4
+ wheel
@@ -0,0 +1 @@
1
+ icarus_python3
@@ -0,0 +1,62 @@
1
+ # ======================================================================
2
+ # MODULE DETAILS
3
+ # This section provides metadata about the module, including its
4
+ # creation date, author, copyright information, and a brief description
5
+ # of the module's purpose and functionality.
6
+ # ======================================================================
7
+
8
+ # __| \ _ \ | _ \ __| __ __| __ __|
9
+ # ( _ \ / | ( | (_ | | |
10
+ # \___| _/ _\ _|_\ ____| \___/ \___| _| _|
11
+
12
+ # test/test_application.py
13
+ # Created 2/27/24 - 11:14 AM UK Time (London) by carlogtt
14
+
15
+ """
16
+ This module ...
17
+ """
18
+
19
+ # ======================================================================
20
+ # EXCEPTIONS
21
+ # This section documents any exceptions made code or quality rules.
22
+ # These exceptions may be necessary due to specific coding requirements
23
+ # or to bypass false positives.
24
+ # ======================================================================
25
+ #
26
+
27
+ # ======================================================================
28
+ # IMPORTS
29
+ # Importing required libraries and modules for the application.
30
+ # ======================================================================
31
+
32
+ # Standard Library Imports
33
+ import textwrap
34
+
35
+ # Third Party Library Imports
36
+ import pytest
37
+
38
+ # END IMPORTS
39
+ # ======================================================================
40
+
41
+
42
+ # List of public names in the module
43
+ # __all__ = []
44
+
45
+ # Setting up logger for current module
46
+ # module_logger =
47
+
48
+ # Type aliases
49
+ #
50
+
51
+
52
+ @pytest.mark.xfail
53
+ def test_that_you_wrote_tests():
54
+ assertion_string = textwrap.dedent("""\
55
+ No, you have not written tests.
56
+
57
+ However, unless a test is run, the pytest execution will fail
58
+ due to no tests or missing coverage. So, write a real test and
59
+ then remove this!
60
+ """)
61
+ assert False, assertion_string
62
+