TSN-Abstracter 6.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.
- tsn_abstracter-6.1.0/LICENSE.md +138 -0
- tsn_abstracter-6.1.0/PKG-INFO +244 -0
- tsn_abstracter-6.1.0/README.md +90 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/App.py +145 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/Config.py +85 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/Cryptography.py +118 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/Deco.py +88 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/File.py +344 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/Log.py +401 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/Misc.py +97 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/Safe.py +88 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/String.py +263 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/TSNDL.py +395 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/TUI/Draw.py +40 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/TUI/Entry.py +162 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/TUI/Globals.py +56 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/TUI/Input.py +101 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/TUI/Keybind.py +37 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/TUI/Menu.py +343 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/TUI/Prompt.py +110 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/TUI/__init__.py +36 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/Time.py +374 -0
- tsn_abstracter-6.1.0/TSN_Abstracter/__init__.py +194 -0
- tsn_abstracter-6.1.0/TSN_Abstracter.egg-info/PKG-INFO +244 -0
- tsn_abstracter-6.1.0/TSN_Abstracter.egg-info/SOURCES.txt +27 -0
- tsn_abstracter-6.1.0/TSN_Abstracter.egg-info/dependency_links.txt +1 -0
- tsn_abstracter-6.1.0/TSN_Abstracter.egg-info/top_level.txt +1 -0
- tsn_abstracter-6.1.0/pyproject.toml +20 -0
- tsn_abstracter-6.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
## TSN Abstracter (TSNA) © (2025-2026) - Ascellayn / The Sirio Network | `TSN License 2.1 - [Base]`
|
|
2
|
+
|
|
3
|
+
**__The Sirio Network License 2.1 - [Base]__**
|
|
4
|
+
*https://sirio-network.com/license/2.1 | Published 01/12/2025 at 01:45:46*
|
|
5
|
+
|
|
6
|
+
The Sirio Network License is a customizable license ranging from "libre and open" to "source-available".
|
|
7
|
+
This document is provided publicly and is authorized to be shared ***strictly unmodified*** by anyone.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
#### PREAMBLE
|
|
11
|
+
The Sirio Network is **not a law firm nor provides legal services/advice**. The Licenses provided are provided ***"as-is"***, thus **no warranty are provided** nor should be requested.
|
|
12
|
+
We are thus **not liable** to the fullest extent for any damages caused resulting from the use of The Sirio Network Licenses.
|
|
13
|
+
Our goal is to provide more-or-less **a set of guidelines** that should be followed for any party involved.
|
|
14
|
+
**This License only covers source-code for software, images and sounds.**
|
|
15
|
+
|
|
16
|
+
The Sirio Network reserves the right to "deprecate" this License, which implies an even further complete drop of responsibility of this license.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## DEFINITIONS
|
|
20
|
+
We may refer ourselves (The Sirio Network) as ***"`TSN`"***, we may also employ the use of ***"`TSNL`"*** which is short for "The Sirio Network License". TSN is the entity of whom is sole and unique provider of the TSNL.
|
|
21
|
+
The Creator (or Creators) of this Work shall be referred as the ***"`Author`"***; Contributors that have added to this Work after this License was applied are NOT considered Authors unless explicitly said so by the original Author(s).
|
|
22
|
+
Which ever source material that the License attempts to protect, whenever is it the source-code for software, image or sounds will be referred to as ***"`Work`"***.
|
|
23
|
+
The User that agreed to TSNL's terms and conditions imposed by the Author shall be referenced by any capitalization of the third person such as ***"`You`"***.
|
|
24
|
+
There may comes a time where You may use the Work as if you were the Author, such as in cases such as ***"`forking`"*** (modifying and redistributing the original Work), the users of Your Fork are considered ***"`Third-Parties`"***.
|
|
25
|
+
|
|
26
|
+
TSNL contains a "foundation" in which it houses universal restrictions and guidelines to be applied to any License type. This foundation can then be mixed with ***"`Modifiers`"*** in order to protect further and more strictly the Work in question.
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### By using this work, whenever it is using it, modifying it or redistributing it, You agree to the following terms:
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# The Sirio Network License - Foundation
|
|
33
|
+
This section of the license covers the universal restrictions imposed by the TSN License.
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## General TSN Agreement
|
|
37
|
+
- This Work comes with absolutely **no warranty**, any issues that arises from this piece of Work __is entirely Your responsibility__ and not of the Author's.
|
|
38
|
+
- The Author is **not liable** for any damages caused, you are using this Work at your own risk.
|
|
39
|
+
|
|
40
|
+
- The Sirio Network is **not responsable for any legal help**, we are simply providing a guideline that, in an utopia should be fully respected by all parties involved.
|
|
41
|
+
|
|
42
|
+
- The use of this Work in a **personal environnement** (not available publicly in any capacity, thus not available to any third-party) is entirely authorized and thus lifts any restrictions.
|
|
43
|
+
|
|
44
|
+
- In any circumstances, the leaking of future versions of this Work is **strictly prohibited** no matter which restrictions this license applies.
|
|
45
|
+
- The use of this Work to train "Generative AI Models" is **strictly forbidden**.
|
|
46
|
+
- This work **cannot contain any form of AI Generated Content**. Failure to comply voids the validity of this license.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
### Fair-use
|
|
50
|
+
The TSN License allows You to use this Work without worrying about its relevant restrictions in a fair use context.
|
|
51
|
+
Attribution is required for the relevant Work.
|
|
52
|
+
|
|
53
|
+
Fair-use is defined as the use of one's Work in or for the following conditions:
|
|
54
|
+
- To provide useful criticism of the Author's Work.
|
|
55
|
+
- To provide a satirical, comedic modification to this piece of Work.
|
|
56
|
+
|
|
57
|
+
However if you have to publish your possibly derived version of the Work and it is restricted to be derived, then your derived version cannot be available publicly to download.
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
### Attribution & Redistribution
|
|
61
|
+
Attribution is defined as **citing the source** material of this Work.
|
|
62
|
+
Redistribution is defined as **reuploading in any capacity, shape or form** whenever modified or not, this piece of Work anywhere publicly on the internet. Attribution is required unless these specific restrictions have been lifted.
|
|
63
|
+
|
|
64
|
+
- **Attribution is required** by __providing the licensing text__ in the format "[Work Name] © [Copyright year] by [Author] is licensed under [TSN License]" *in a easily accessible and visible space* for the user of where you are redistributing this Work.
|
|
65
|
+
- An easily accessible and visible space is defined by an area where the user can comfortably and easily access the attribution text without needing to click or hover on an element while being close to the redistribution / derivate of the attributed material.
|
|
66
|
+
|
|
67
|
+
- Redistribution of the *latest version* of this Work **must be linked to the original source** by providing the licensing text and **must not reupload** any of the files concerning this Work.
|
|
68
|
+
- Previous versions of this Work may be freely redistributed, and in turn authorized to fully reupload, in a non-commercial environment.
|
|
69
|
+
|
|
70
|
+
The abandonment status can be declared manually early by the Author and is a permanent change that cannot be re-acted upon on to the affected versions of the Work at the time of the declaration.
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
# The Sirio Network License - Modifiers
|
|
74
|
+
Each modifier category is ordered from most "free" to most "strict".
|
|
75
|
+
|
|
76
|
+
#### Commercial Modifiers
|
|
77
|
+
## Commercially Free (C_Free)
|
|
78
|
+
This modifier imposes not a single regulation in the use of this Work commercially. You are entirely free to make profits with this Work while respecting the other conditions and restrictions given by this license.
|
|
79
|
+
This includes profiting off redistributing the Author's Work
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## Commercially Derivable (C_Fork)
|
|
83
|
+
You may profit off of this Work by deriving it (alias "Forking") and bringing sufficient modifications to be fully distinct of the original Work.
|
|
84
|
+
These modifications must bring new features to the Work, simple rebranding does not count as a respectable derivation.
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
## Non-Commercial (C_Closed)
|
|
88
|
+
You are not authorized in any capacity to make profits off of this Work, whenever it is by redistributing, modifying, advertising or linking this Work in any capacity.
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
#### Derivation Modifiers
|
|
92
|
+
## Freely Derivable (D_Free)
|
|
93
|
+
This modifier imposes not a single regulation in the modification of this Work. You are entirely free to derivate this Work while respecting the other conditions and restrictions given by this license.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
## Derivable for Contribution (D_Fork)
|
|
97
|
+
You are allowed to derivate this Work with the intended goal to contribute to this Work while respecting the other restrictions applied.
|
|
98
|
+
Whenever possible, these derivations should stay private.
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
## Derivable via provided interfaces (D_API)
|
|
102
|
+
This work allows you to "derivate" it thanks to the interfaces (ie: Modular System, APIs) it provides, you may copy/modify parts of this Work within reason if the provided interfaces aren't enough to be able to derivate this Work in a way you'd like.
|
|
103
|
+
Avoiding touching the original Work as much as possibly is heavily encouraged, the Author has the final word whenever your derivation respects their interfaces.
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## Non-Derivable (D_Closed)
|
|
107
|
+
You are not authorized to modify this piece of Work in any capacity. This piece of Work is strictly source-available.
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
## Timed Expiration (Timed)
|
|
111
|
+
The Timed special-modifier permits an Author to attempt to assure the protection of their Work while they're actively working on it, but still gives the You a chance to Work on the project and attempt to improve it as older versions of the Work's restrictions expires.
|
|
112
|
+
|
|
113
|
+
### Restriction Lifting (Time-Based, Older Versions)
|
|
114
|
+
This section specifies how **restrictions are lifted** according to **how much time has passed**. These restrictions can only be lifted for ***previous versions / non-latest / older versions*** of this Work.
|
|
115
|
+
|
|
116
|
+
- Older versions of this Work which are __over 3 months old__ (>92 days) are **authorized to be deviated** while *keeping the attribution requirements*.
|
|
117
|
+
- Older versions of this Work which are __over 6 months old__ (>183 days) **removes all restrictions** of this license *excluding the redistribution requirements*.
|
|
118
|
+
- Older versions of this Work which are __over a year old__ (>366 days) are **considered public domain**.
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
### Restriction Lifting (Abandonment Status)
|
|
122
|
+
If this Work has **not been updated in the past 3 months** (>92 days) and or the author is **not willing to update it**, the restriction lifting is now as follows:
|
|
123
|
+
|
|
124
|
+
- All older versions of this Work are now **authorized to be deviated** while ***keeping the attribution requirements***.
|
|
125
|
+
- If the latest version of this Work is __over 6 months old__ (>183 days) this Work is **now considered public domain**.
|
|
126
|
+
|
|
127
|
+
In case the author comes to update once again this Work, **all previously lifted restrictions still apply** to older versions (older version including the latest version prior to the newest update of the Work).
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
# The Sirio Network License - Modifier Aliases
|
|
131
|
+
## TSN License - Universal
|
|
132
|
+
This modifier alias refers to "D_Free, C_Free", which is the most open license that the TSN License can provide.
|
|
133
|
+
|
|
134
|
+
## TSN License - Base
|
|
135
|
+
This modifier alias refers to "D_Fork, C_Fork", which is the most adapted license for community driven projects that the TSN License can provide.
|
|
136
|
+
|
|
137
|
+
## TSN License - Strict
|
|
138
|
+
This modifier alias refers to "D_Closed, C_Closed", which is the most restricted license the TSN License can provide.
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: TSN_Abstracter
|
|
3
|
+
Version: 6.1.0
|
|
4
|
+
Summary: The Abstraction Library for The Sirio Network's numerous projects.
|
|
5
|
+
Author-email: Ascellayn <contact+pypi@sirio-network.com>, The Sirio Network <contact+pypi@sirio-network.com>
|
|
6
|
+
License: ## TSN Abstracter (TSNA) © (2025-2026) - Ascellayn / The Sirio Network | `TSN License 2.1 - [Base]`
|
|
7
|
+
|
|
8
|
+
**__The Sirio Network License 2.1 - [Base]__**
|
|
9
|
+
*https://sirio-network.com/license/2.1 | Published 01/12/2025 at 01:45:46*
|
|
10
|
+
|
|
11
|
+
The Sirio Network License is a customizable license ranging from "libre and open" to "source-available".
|
|
12
|
+
This document is provided publicly and is authorized to be shared ***strictly unmodified*** by anyone.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
#### PREAMBLE
|
|
16
|
+
The Sirio Network is **not a law firm nor provides legal services/advice**. The Licenses provided are provided ***"as-is"***, thus **no warranty are provided** nor should be requested.
|
|
17
|
+
We are thus **not liable** to the fullest extent for any damages caused resulting from the use of The Sirio Network Licenses.
|
|
18
|
+
Our goal is to provide more-or-less **a set of guidelines** that should be followed for any party involved.
|
|
19
|
+
**This License only covers source-code for software, images and sounds.**
|
|
20
|
+
|
|
21
|
+
The Sirio Network reserves the right to "deprecate" this License, which implies an even further complete drop of responsibility of this license.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## DEFINITIONS
|
|
25
|
+
We may refer ourselves (The Sirio Network) as ***"`TSN`"***, we may also employ the use of ***"`TSNL`"*** which is short for "The Sirio Network License". TSN is the entity of whom is sole and unique provider of the TSNL.
|
|
26
|
+
The Creator (or Creators) of this Work shall be referred as the ***"`Author`"***; Contributors that have added to this Work after this License was applied are NOT considered Authors unless explicitly said so by the original Author(s).
|
|
27
|
+
Which ever source material that the License attempts to protect, whenever is it the source-code for software, image or sounds will be referred to as ***"`Work`"***.
|
|
28
|
+
The User that agreed to TSNL's terms and conditions imposed by the Author shall be referenced by any capitalization of the third person such as ***"`You`"***.
|
|
29
|
+
There may comes a time where You may use the Work as if you were the Author, such as in cases such as ***"`forking`"*** (modifying and redistributing the original Work), the users of Your Fork are considered ***"`Third-Parties`"***.
|
|
30
|
+
|
|
31
|
+
TSNL contains a "foundation" in which it houses universal restrictions and guidelines to be applied to any License type. This foundation can then be mixed with ***"`Modifiers`"*** in order to protect further and more strictly the Work in question.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
### By using this work, whenever it is using it, modifying it or redistributing it, You agree to the following terms:
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# The Sirio Network License - Foundation
|
|
38
|
+
This section of the license covers the universal restrictions imposed by the TSN License.
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## General TSN Agreement
|
|
42
|
+
- This Work comes with absolutely **no warranty**, any issues that arises from this piece of Work __is entirely Your responsibility__ and not of the Author's.
|
|
43
|
+
- The Author is **not liable** for any damages caused, you are using this Work at your own risk.
|
|
44
|
+
|
|
45
|
+
- The Sirio Network is **not responsable for any legal help**, we are simply providing a guideline that, in an utopia should be fully respected by all parties involved.
|
|
46
|
+
|
|
47
|
+
- The use of this Work in a **personal environnement** (not available publicly in any capacity, thus not available to any third-party) is entirely authorized and thus lifts any restrictions.
|
|
48
|
+
|
|
49
|
+
- In any circumstances, the leaking of future versions of this Work is **strictly prohibited** no matter which restrictions this license applies.
|
|
50
|
+
- The use of this Work to train "Generative AI Models" is **strictly forbidden**.
|
|
51
|
+
- This work **cannot contain any form of AI Generated Content**. Failure to comply voids the validity of this license.
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### Fair-use
|
|
55
|
+
The TSN License allows You to use this Work without worrying about its relevant restrictions in a fair use context.
|
|
56
|
+
Attribution is required for the relevant Work.
|
|
57
|
+
|
|
58
|
+
Fair-use is defined as the use of one's Work in or for the following conditions:
|
|
59
|
+
- To provide useful criticism of the Author's Work.
|
|
60
|
+
- To provide a satirical, comedic modification to this piece of Work.
|
|
61
|
+
|
|
62
|
+
However if you have to publish your possibly derived version of the Work and it is restricted to be derived, then your derived version cannot be available publicly to download.
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
### Attribution & Redistribution
|
|
66
|
+
Attribution is defined as **citing the source** material of this Work.
|
|
67
|
+
Redistribution is defined as **reuploading in any capacity, shape or form** whenever modified or not, this piece of Work anywhere publicly on the internet. Attribution is required unless these specific restrictions have been lifted.
|
|
68
|
+
|
|
69
|
+
- **Attribution is required** by __providing the licensing text__ in the format "[Work Name] © [Copyright year] by [Author] is licensed under [TSN License]" *in a easily accessible and visible space* for the user of where you are redistributing this Work.
|
|
70
|
+
- An easily accessible and visible space is defined by an area where the user can comfortably and easily access the attribution text without needing to click or hover on an element while being close to the redistribution / derivate of the attributed material.
|
|
71
|
+
|
|
72
|
+
- Redistribution of the *latest version* of this Work **must be linked to the original source** by providing the licensing text and **must not reupload** any of the files concerning this Work.
|
|
73
|
+
- Previous versions of this Work may be freely redistributed, and in turn authorized to fully reupload, in a non-commercial environment.
|
|
74
|
+
|
|
75
|
+
The abandonment status can be declared manually early by the Author and is a permanent change that cannot be re-acted upon on to the affected versions of the Work at the time of the declaration.
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
# The Sirio Network License - Modifiers
|
|
79
|
+
Each modifier category is ordered from most "free" to most "strict".
|
|
80
|
+
|
|
81
|
+
#### Commercial Modifiers
|
|
82
|
+
## Commercially Free (C_Free)
|
|
83
|
+
This modifier imposes not a single regulation in the use of this Work commercially. You are entirely free to make profits with this Work while respecting the other conditions and restrictions given by this license.
|
|
84
|
+
This includes profiting off redistributing the Author's Work
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
## Commercially Derivable (C_Fork)
|
|
88
|
+
You may profit off of this Work by deriving it (alias "Forking") and bringing sufficient modifications to be fully distinct of the original Work.
|
|
89
|
+
These modifications must bring new features to the Work, simple rebranding does not count as a respectable derivation.
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
## Non-Commercial (C_Closed)
|
|
93
|
+
You are not authorized in any capacity to make profits off of this Work, whenever it is by redistributing, modifying, advertising or linking this Work in any capacity.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
#### Derivation Modifiers
|
|
97
|
+
## Freely Derivable (D_Free)
|
|
98
|
+
This modifier imposes not a single regulation in the modification of this Work. You are entirely free to derivate this Work while respecting the other conditions and restrictions given by this license.
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
## Derivable for Contribution (D_Fork)
|
|
102
|
+
You are allowed to derivate this Work with the intended goal to contribute to this Work while respecting the other restrictions applied.
|
|
103
|
+
Whenever possible, these derivations should stay private.
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
## Derivable via provided interfaces (D_API)
|
|
107
|
+
This work allows you to "derivate" it thanks to the interfaces (ie: Modular System, APIs) it provides, you may copy/modify parts of this Work within reason if the provided interfaces aren't enough to be able to derivate this Work in a way you'd like.
|
|
108
|
+
Avoiding touching the original Work as much as possibly is heavily encouraged, the Author has the final word whenever your derivation respects their interfaces.
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
## Non-Derivable (D_Closed)
|
|
112
|
+
You are not authorized to modify this piece of Work in any capacity. This piece of Work is strictly source-available.
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
## Timed Expiration (Timed)
|
|
116
|
+
The Timed special-modifier permits an Author to attempt to assure the protection of their Work while they're actively working on it, but still gives the You a chance to Work on the project and attempt to improve it as older versions of the Work's restrictions expires.
|
|
117
|
+
|
|
118
|
+
### Restriction Lifting (Time-Based, Older Versions)
|
|
119
|
+
This section specifies how **restrictions are lifted** according to **how much time has passed**. These restrictions can only be lifted for ***previous versions / non-latest / older versions*** of this Work.
|
|
120
|
+
|
|
121
|
+
- Older versions of this Work which are __over 3 months old__ (>92 days) are **authorized to be deviated** while *keeping the attribution requirements*.
|
|
122
|
+
- Older versions of this Work which are __over 6 months old__ (>183 days) **removes all restrictions** of this license *excluding the redistribution requirements*.
|
|
123
|
+
- Older versions of this Work which are __over a year old__ (>366 days) are **considered public domain**.
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
### Restriction Lifting (Abandonment Status)
|
|
127
|
+
If this Work has **not been updated in the past 3 months** (>92 days) and or the author is **not willing to update it**, the restriction lifting is now as follows:
|
|
128
|
+
|
|
129
|
+
- All older versions of this Work are now **authorized to be deviated** while ***keeping the attribution requirements***.
|
|
130
|
+
- If the latest version of this Work is __over 6 months old__ (>183 days) this Work is **now considered public domain**.
|
|
131
|
+
|
|
132
|
+
In case the author comes to update once again this Work, **all previously lifted restrictions still apply** to older versions (older version including the latest version prior to the newest update of the Work).
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
# The Sirio Network License - Modifier Aliases
|
|
136
|
+
## TSN License - Universal
|
|
137
|
+
This modifier alias refers to "D_Free, C_Free", which is the most open license that the TSN License can provide.
|
|
138
|
+
|
|
139
|
+
## TSN License - Base
|
|
140
|
+
This modifier alias refers to "D_Fork, C_Fork", which is the most adapted license for community driven projects that the TSN License can provide.
|
|
141
|
+
|
|
142
|
+
## TSN License - Strict
|
|
143
|
+
This modifier alias refers to "D_Closed, C_Closed", which is the most restricted license the TSN License can provide.
|
|
144
|
+
|
|
145
|
+
Project-URL: Homepage, https://github.com/Ascellayn/TSN_Abstracter
|
|
146
|
+
Project-URL: Issues, https://github.com/Ascellayn/TSN_Abstracter/issues
|
|
147
|
+
Classifier: Programming Language :: Python :: 3
|
|
148
|
+
Classifier: Operating System :: OS Independent
|
|
149
|
+
Classifier: Natural Language :: English
|
|
150
|
+
Requires-Python: >=3.13
|
|
151
|
+
Description-Content-Type: text/markdown
|
|
152
|
+
License-File: LICENSE.md
|
|
153
|
+
Dynamic: license-file
|
|
154
|
+
|
|
155
|
+
<p align="center">
|
|
156
|
+
<img src="https://sirio-network.com/Root/Banner/TSNA.png" alt="TSN Abstracter Banner">
|
|
157
|
+
<h2 align="center">The pillar of The Sirio Network</h2>
|
|
158
|
+
</p>
|
|
159
|
+
|
|
160
|
+
<br>
|
|
161
|
+
|
|
162
|
+
**__TSN Abstracter__** *(also called* ***TSNA)*** is a monolithic Python Module containing commonly used functions to avoid rewriting them for every project.
|
|
163
|
+
TSNA can be used to make fully featured [Terminal Applications](./TSN_Abstracter/TUI.py) or CLI Based tools with some ease. **It is however crucial to mention that TSNA lacks any formal documentation**, only **DocStrings** within the Python Files are the unique type of documentation available for TSNA.
|
|
164
|
+
|
|
165
|
+
<br>
|
|
166
|
+
|
|
167
|
+
TSN Abstracter is currently used to power numerous tools and applications built by The Sirio Network such as:
|
|
168
|
+
- [Tachibana](https://github.com/Ascellayn/TSN_Tachibana)
|
|
169
|
+
- [Adellian](https://github.com/Ascellayn/Adellian)
|
|
170
|
+
- [Kozeki](https://github.com/Ascellayn/TSN_Kozeki)
|
|
171
|
+
- [The Kosaka Discord Bot's Eco-System](https://github.com/stars/Ascellayn/lists/kosaka-eco-system)
|
|
172
|
+
- [Caerbannog](https://github.com/Ascellayn/Caerbannog)
|
|
173
|
+
- [TSN "Yae"](https://sirio-network.com/Projects/Yae/Browser)
|
|
174
|
+
- [TSN "Himeki"](https://himeki.sirio-network.com/)
|
|
175
|
+
|
|
176
|
+
<br>
|
|
177
|
+
|
|
178
|
+
## Installation / Usage
|
|
179
|
+
TSNA has been historically been without a proper Python Package, this **however finally changes now**.
|
|
180
|
+
You should simply be able to run `pip install TSN-Abstracter` nowadays.
|
|
181
|
+
|
|
182
|
+
TSNA however on [Adellian](https://github.com/Ascellayn/Adellian) still installs TSNA the old way by **cloning the repository then adding the folder path to your `PYTHONPATH`.**
|
|
183
|
+
All projects from The Sirio Network thus installs TSNA this way and thus are only tested as such.
|
|
184
|
+
In the case of Adellian, with an installation at `/System/Library/TSN_Abstracter`, the `.bashrc` contains the following line: `export PYTHONPATH=/System/Library/TSN_Abstracter:$`.
|
|
185
|
+
You can do something similar if you wish to install TSN Abstracter the old way.
|
|
186
|
+
|
|
187
|
+
<br>
|
|
188
|
+
|
|
189
|
+
All that's left to do after installation is to simply include at the very top of your Python script `from TSN_Abstracter import *;` and then get to roll with it.
|
|
190
|
+
We recommend the following template file Python File to start your TSNA fueled programs:
|
|
191
|
+
```python
|
|
192
|
+
# [Program] (c) [Author] (Date) - [License]
|
|
193
|
+
from TSN_Abstracter import *;
|
|
194
|
+
|
|
195
|
+
Debug_Mode: bool = Root_CFG["Debug"];
|
|
196
|
+
|
|
197
|
+
if (__name__ != "__main__"): TSN_Abstracter.Import_Unsupported(); # Remove this if your script can be imported as a Python Module
|
|
198
|
+
else:
|
|
199
|
+
TSN_Abstracter.App_Init(True);
|
|
200
|
+
Config.Logger.Print_Level = 15 if (Debug_Mode) else 20;
|
|
201
|
+
Config.Logger.File = True;
|
|
202
|
+
|
|
203
|
+
# Do whatever your program does here
|
|
204
|
+
...
|
|
205
|
+
```
|
|
206
|
+
TSNA automatically attempts to read data from `App.tsna`, this file contains basic information about your application:
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"Name": "Tachibana",
|
|
210
|
+
"Description": "Tachibana is a (work in progress) TSNA-Based rewrite of Adellian's SSHMan Application.",
|
|
211
|
+
"Author": ["Ascellayn", "The Sirio Network"],
|
|
212
|
+
"Contributors": [],
|
|
213
|
+
"License": "TSN License 2.1 - Base",
|
|
214
|
+
"License_Year": "2026",
|
|
215
|
+
"Codename": "TSN_Tachibana",
|
|
216
|
+
"Branch": "Azure",
|
|
217
|
+
"Version": [1,0,0],
|
|
218
|
+
"Version_Prefix": "",
|
|
219
|
+
"Version_Suffix": "_dev",
|
|
220
|
+
"TSNA": [6,0,0] # Minimum required TSNA Version for the Application to run,
|
|
221
|
+
"Public": {}, # You can put anything in there, used for application-specific options.
|
|
222
|
+
"Private": {} # Application's private data to be only used internally. This is not meant to be present in the App.tsna file.
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
TSN Abstracter is obviously __developer oriented__, it is **your job to look at TSNA and find functions that are deemed useful** to you.
|
|
226
|
+
|
|
227
|
+
## Dependencies
|
|
228
|
+
- The "LZMA" Python Module (should be shipped with your OS's Libraries)
|
|
229
|
+
- **If you import the "Cryptography" TSNA Module"**:
|
|
230
|
+
- python3-cryptography
|
|
231
|
+
- **If you import the "TUI" TSNA Module"**:
|
|
232
|
+
- python3-curses
|
|
233
|
+
|
|
234
|
+
<br>
|
|
235
|
+
|
|
236
|
+
### Random facts about TSNA
|
|
237
|
+
TSN Abstracter was created in early 2025 after things started getting hectic when it came to creating stuff such as (at the time) Kosaka and [TSN Trinity](https://github.com/Ascellayn/TSN_Trinity). I would constantly have this `TSNDB_Dependencies.py` or `SN_PyDepends` file that I'd have to manually synchronize across all those projects. At some point I decided enough was enough and thus TSN Abstracter was born.
|
|
238
|
+
If we have to take in *when* TSNA was truly created then it was created during Kosaka's Pre-Ceres Lifecycle, which was in the middle of 2024.
|
|
239
|
+
TSNA was created so early it does not follow TSN's naming conventions, thus, a Blue Archive character or thing was never attributed as its codename / name.
|
|
240
|
+
New coding style conventions or things such as the [TSN Commit Guideline](https://sirio-network.com/guideline/commit) had their start in TSNA.
|
|
241
|
+
|
|
242
|
+
<br>
|
|
243
|
+
|
|
244
|
+
###### [TSN Abstracter (TSNA) © Ascellayn / The Sirio Network (2025-2026) - TSN License 2.1 - Base](https://github.com/Ascellayn/TSN_Abstracter/LICENSE.md)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://sirio-network.com/Root/Banner/TSNA.png" alt="TSN Abstracter Banner">
|
|
3
|
+
<h2 align="center">The pillar of The Sirio Network</h2>
|
|
4
|
+
</p>
|
|
5
|
+
|
|
6
|
+
<br>
|
|
7
|
+
|
|
8
|
+
**__TSN Abstracter__** *(also called* ***TSNA)*** is a monolithic Python Module containing commonly used functions to avoid rewriting them for every project.
|
|
9
|
+
TSNA can be used to make fully featured [Terminal Applications](./TSN_Abstracter/TUI.py) or CLI Based tools with some ease. **It is however crucial to mention that TSNA lacks any formal documentation**, only **DocStrings** within the Python Files are the unique type of documentation available for TSNA.
|
|
10
|
+
|
|
11
|
+
<br>
|
|
12
|
+
|
|
13
|
+
TSN Abstracter is currently used to power numerous tools and applications built by The Sirio Network such as:
|
|
14
|
+
- [Tachibana](https://github.com/Ascellayn/TSN_Tachibana)
|
|
15
|
+
- [Adellian](https://github.com/Ascellayn/Adellian)
|
|
16
|
+
- [Kozeki](https://github.com/Ascellayn/TSN_Kozeki)
|
|
17
|
+
- [The Kosaka Discord Bot's Eco-System](https://github.com/stars/Ascellayn/lists/kosaka-eco-system)
|
|
18
|
+
- [Caerbannog](https://github.com/Ascellayn/Caerbannog)
|
|
19
|
+
- [TSN "Yae"](https://sirio-network.com/Projects/Yae/Browser)
|
|
20
|
+
- [TSN "Himeki"](https://himeki.sirio-network.com/)
|
|
21
|
+
|
|
22
|
+
<br>
|
|
23
|
+
|
|
24
|
+
## Installation / Usage
|
|
25
|
+
TSNA has been historically been without a proper Python Package, this **however finally changes now**.
|
|
26
|
+
You should simply be able to run `pip install TSN-Abstracter` nowadays.
|
|
27
|
+
|
|
28
|
+
TSNA however on [Adellian](https://github.com/Ascellayn/Adellian) still installs TSNA the old way by **cloning the repository then adding the folder path to your `PYTHONPATH`.**
|
|
29
|
+
All projects from The Sirio Network thus installs TSNA this way and thus are only tested as such.
|
|
30
|
+
In the case of Adellian, with an installation at `/System/Library/TSN_Abstracter`, the `.bashrc` contains the following line: `export PYTHONPATH=/System/Library/TSN_Abstracter:$`.
|
|
31
|
+
You can do something similar if you wish to install TSN Abstracter the old way.
|
|
32
|
+
|
|
33
|
+
<br>
|
|
34
|
+
|
|
35
|
+
All that's left to do after installation is to simply include at the very top of your Python script `from TSN_Abstracter import *;` and then get to roll with it.
|
|
36
|
+
We recommend the following template file Python File to start your TSNA fueled programs:
|
|
37
|
+
```python
|
|
38
|
+
# [Program] (c) [Author] (Date) - [License]
|
|
39
|
+
from TSN_Abstracter import *;
|
|
40
|
+
|
|
41
|
+
Debug_Mode: bool = Root_CFG["Debug"];
|
|
42
|
+
|
|
43
|
+
if (__name__ != "__main__"): TSN_Abstracter.Import_Unsupported(); # Remove this if your script can be imported as a Python Module
|
|
44
|
+
else:
|
|
45
|
+
TSN_Abstracter.App_Init(True);
|
|
46
|
+
Config.Logger.Print_Level = 15 if (Debug_Mode) else 20;
|
|
47
|
+
Config.Logger.File = True;
|
|
48
|
+
|
|
49
|
+
# Do whatever your program does here
|
|
50
|
+
...
|
|
51
|
+
```
|
|
52
|
+
TSNA automatically attempts to read data from `App.tsna`, this file contains basic information about your application:
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"Name": "Tachibana",
|
|
56
|
+
"Description": "Tachibana is a (work in progress) TSNA-Based rewrite of Adellian's SSHMan Application.",
|
|
57
|
+
"Author": ["Ascellayn", "The Sirio Network"],
|
|
58
|
+
"Contributors": [],
|
|
59
|
+
"License": "TSN License 2.1 - Base",
|
|
60
|
+
"License_Year": "2026",
|
|
61
|
+
"Codename": "TSN_Tachibana",
|
|
62
|
+
"Branch": "Azure",
|
|
63
|
+
"Version": [1,0,0],
|
|
64
|
+
"Version_Prefix": "",
|
|
65
|
+
"Version_Suffix": "_dev",
|
|
66
|
+
"TSNA": [6,0,0] # Minimum required TSNA Version for the Application to run,
|
|
67
|
+
"Public": {}, # You can put anything in there, used for application-specific options.
|
|
68
|
+
"Private": {} # Application's private data to be only used internally. This is not meant to be present in the App.tsna file.
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
TSN Abstracter is obviously __developer oriented__, it is **your job to look at TSNA and find functions that are deemed useful** to you.
|
|
72
|
+
|
|
73
|
+
## Dependencies
|
|
74
|
+
- The "LZMA" Python Module (should be shipped with your OS's Libraries)
|
|
75
|
+
- **If you import the "Cryptography" TSNA Module"**:
|
|
76
|
+
- python3-cryptography
|
|
77
|
+
- **If you import the "TUI" TSNA Module"**:
|
|
78
|
+
- python3-curses
|
|
79
|
+
|
|
80
|
+
<br>
|
|
81
|
+
|
|
82
|
+
### Random facts about TSNA
|
|
83
|
+
TSN Abstracter was created in early 2025 after things started getting hectic when it came to creating stuff such as (at the time) Kosaka and [TSN Trinity](https://github.com/Ascellayn/TSN_Trinity). I would constantly have this `TSNDB_Dependencies.py` or `SN_PyDepends` file that I'd have to manually synchronize across all those projects. At some point I decided enough was enough and thus TSN Abstracter was born.
|
|
84
|
+
If we have to take in *when* TSNA was truly created then it was created during Kosaka's Pre-Ceres Lifecycle, which was in the middle of 2024.
|
|
85
|
+
TSNA was created so early it does not follow TSN's naming conventions, thus, a Blue Archive character or thing was never attributed as its codename / name.
|
|
86
|
+
New coding style conventions or things such as the [TSN Commit Guideline](https://sirio-network.com/guideline/commit) had their start in TSNA.
|
|
87
|
+
|
|
88
|
+
<br>
|
|
89
|
+
|
|
90
|
+
###### [TSN Abstracter (TSNA) © Ascellayn / The Sirio Network (2025-2026) - TSN License 2.1 - Base](https://github.com/Ascellayn/TSN_Abstracter/LICENSE.md)
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"""
|
|
2
|
+
This module from TSN Abstracter is in charge of storing Application Information and Configuration automatically.
|
|
3
|
+
It simply loads `App.tsna` if it finds it.
|
|
4
|
+
|
|
5
|
+
Most keys are self-explainable and serve practically only cosmetic purposes.
|
|
6
|
+
However the TSNA Key which is a tuple (saved as an array) containing the minimum TSNA Version required to run the Application.
|
|
7
|
+
`TSN_Abstracter.Require_Version()` will be automatically ran using that very key if you use `TSN_Abstracter.App_Init()` (which you should).
|
|
8
|
+
"""
|
|
9
|
+
from . import File, Time;
|
|
10
|
+
from typing import Any;
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
Name: str = "Unnamed TSNA-Based Program";
|
|
17
|
+
Description: str = "This is a program which uses TSN Abstracter.";
|
|
18
|
+
|
|
19
|
+
Author: list[str] = ["John Doe"];
|
|
20
|
+
Contributors: list[str] = [];
|
|
21
|
+
|
|
22
|
+
License: str = "Public Domain";
|
|
23
|
+
License_Year: str = str(Time.Elapsed_Time(Time.Get_Unix())["Years"] + 1970); # Calculates the current year.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Codename: str = "NoCodename";
|
|
27
|
+
Branch: str = "Main";
|
|
28
|
+
Version: tuple[int, ...] = (0, 0, 0);
|
|
29
|
+
Version_Prefix: str = "";
|
|
30
|
+
Version_Suffix: str = "";
|
|
31
|
+
TSNA: tuple[int, int, int] = (6,0,0);
|
|
32
|
+
Public: dict[str, Any] = {};
|
|
33
|
+
Private: dict[str, Any] = {};
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def Dump(Private: bool = False) -> dict[str, str | list[str] | tuple[int, ...] | dict[str, Any]]:
|
|
40
|
+
""" Retrieve the currently active-in-memory TSNA App JSON
|
|
41
|
+
|
|
42
|
+
Arguments:
|
|
43
|
+
Private (bool*): Whenever to also include the "Private" key of the TSNA App JSON.
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
dict[str, str | list[str] | tuple[int, ...] | dict[str, Any]]: The TSNA App JSON
|
|
47
|
+
|
|
48
|
+
Examples:
|
|
49
|
+
>>> App.Dump(True);
|
|
50
|
+
{
|
|
51
|
+
"Name": "Serina",
|
|
52
|
+
"Description": "Serina Host-Machine Server for retrieving the current state of all TSNA based applications with the Sena Client enabled.",
|
|
53
|
+
"Author": ["Ascellayn", "The Sirio Network"],
|
|
54
|
+
"Contributors": [],
|
|
55
|
+
"License": "TSN License 2.1 - Base",
|
|
56
|
+
"License_Year": "2026",
|
|
57
|
+
"Codename": "TSN_Serina",
|
|
58
|
+
"Branch": "Azure",
|
|
59
|
+
"Version": [1,0,0],
|
|
60
|
+
"Version_Prefix": "",
|
|
61
|
+
"Version_Suffix": "",
|
|
62
|
+
"TSNA": [6,2,0],
|
|
63
|
+
"Public": [],
|
|
64
|
+
"Private": []
|
|
65
|
+
}
|
|
66
|
+
"""
|
|
67
|
+
Dict: dict[str, str | list[str] | tuple[int, ...] | dict[str, Any]] = {
|
|
68
|
+
"Name": Name,
|
|
69
|
+
"Description": Description,
|
|
70
|
+
"Author": Author,
|
|
71
|
+
"Contributors": Contributors,
|
|
72
|
+
"License": License,
|
|
73
|
+
"License_Year": License_Year,
|
|
74
|
+
"Codename": Codename,
|
|
75
|
+
"Branch": Branch,
|
|
76
|
+
"Version": Version,
|
|
77
|
+
"Version_Prefix": Version_Prefix,
|
|
78
|
+
"Version_Suffix": Version_Suffix,
|
|
79
|
+
"TSNA": TSNA,
|
|
80
|
+
"Public": Public,
|
|
81
|
+
"Private": {}
|
|
82
|
+
};
|
|
83
|
+
if (Private): Dict["Private"] = Private; # pyright: ignore[reportArgumentType] // Unsure why the typing gets angry here
|
|
84
|
+
return Dict;
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def JSON(JSON: dict[str, Any]) -> None:
|
|
88
|
+
""" Replaces the currently active TSNA App Data with whatever data is present in the argument.
|
|
89
|
+
|
|
90
|
+
Arguments:
|
|
91
|
+
JSON (dict[str, Any]*): A TSNA App Dictionary.
|
|
92
|
+
|
|
93
|
+
Examples:
|
|
94
|
+
>>> App.Name;
|
|
95
|
+
"Unnamed TSNA-Based Program"
|
|
96
|
+
|
|
97
|
+
>>> App.JSON({
|
|
98
|
+
"Name": "Serina",
|
|
99
|
+
"Description": "Serina Host-Machine Server for retrieving the current state of all TSNA based applications with the Sena Client enabled.",
|
|
100
|
+
"Author": ["Ascellayn", "The Sirio Network"],
|
|
101
|
+
"Contributors": [],
|
|
102
|
+
"License": "TSN License 2.1 - Base",
|
|
103
|
+
"License_Year": "2026",
|
|
104
|
+
"Codename": "TSN_Serina",
|
|
105
|
+
"Branch": "Azure",
|
|
106
|
+
"Version": [1,0,0],
|
|
107
|
+
"Version_Prefix": "",
|
|
108
|
+
"Version_Suffix": "",
|
|
109
|
+
"TSNA": [6,2,0],
|
|
110
|
+
"Public": [],
|
|
111
|
+
"Private": []
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
>>> App.Name;
|
|
115
|
+
"Serina"
|
|
116
|
+
"""
|
|
117
|
+
global Name, Description, Author, Contributors, License, License_Year, Codename, Branch, Version, Version_Prefix, Version_Suffix, TSNA, Public, Private;
|
|
118
|
+
Name = JSON.get("Name", Name);
|
|
119
|
+
Description = JSON.get("Description", Description);
|
|
120
|
+
|
|
121
|
+
Author = JSON.get("Author", Author);
|
|
122
|
+
Contributors = JSON.get("Contributors", Contributors);
|
|
123
|
+
|
|
124
|
+
License = JSON.get("License", License);
|
|
125
|
+
License_Year = JSON.get("License_Year", License_Year);
|
|
126
|
+
|
|
127
|
+
Codename = JSON.get("Codename", Codename);
|
|
128
|
+
Branch = JSON.get("Branch", Branch);
|
|
129
|
+
Version = tuple(JSON.get("Version", Version));
|
|
130
|
+
Version_Prefix = JSON.get("Version_Prefix", Version_Prefix);
|
|
131
|
+
Version_Suffix = JSON.get("Version_Suffix", Version_Suffix);
|
|
132
|
+
|
|
133
|
+
TSNA = tuple(JSON.get("TSNA", TSNA)); # pyright: ignore[reportConstantRedefinition]
|
|
134
|
+
Public = JSON.get("Public", Public);
|
|
135
|
+
Private = JSON.get("Private", Private);
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
if (File.Exists(f"{File.Main_Directory}/App.tsna")):
|
|
142
|
+
AppTSNA = File.JSON_Read(f"{File.Main_Directory}/App.tsna");
|
|
143
|
+
if ("Private" in AppTSNA): del AppTSNA["Private"]; # You are not supposed to insert ANYTHING in the Private key from the App.tsna file, only within the code you should access this.
|
|
144
|
+
JSON(AppTSNA);
|
|
145
|
+
del AppTSNA;
|