AveyTense

Library written in Python. Mostly provides extensions to inbuilt Python solutions. License: MIT Sometimes it is needed to shorten the code, and sometimes there are no inbuilt solutions in this case. For example it is possible to inspect many attributes in an object with many uses of hasattr() inbuilt function: hasattr(o, attr1) or hasattr(o, attr2) or or hasattr(o, attrN) You can do the same simplier: from import .hasattr(o, (attr1, attr2, , attrN)) To do the same with and keyword, just use the following version: from import .hasattr(o, (attr1, attr2, , attrN), and) 1st option .hasattr(o, (attr1, attr2, , attrN), modeand) 2nd option Next up we have list.append() and list.extend() methods. What if you wanted to append more items or extend the list with variable amount of iterables? Instead of using a loop to invoke both methods amount of times determined by count of iterables or items, you can use the following solution: from import Yes .append(iterable, e1, e2, ..., eN) e1, e2, ..., eN - elements .extend(iterable, i1, i2, ..., iN) i1, i2, ..., iN - iterables No list_[] elements(e1, e2, ..., eN) e1, e2, ..., eN - elements iterables(i1, i2, ..., iN) i1, i2, ..., iN - iterables for e in elements: list_.append(e) for i in iterables: list_.extend(i)

Declaration Naming

Naming in AveyTense differs from PEP 8. In global scope: In local scope notations vary. Usually functions follow Python's function naming syntax, and variables can be singly underscored around.

Versioning

See PEP 440. Packaging system doesn't feature local version syntax. That means syntax is following: [N!]N(.N)*[{a|b|rc}N][.postN][.devN] syntax as in pep 440 (\d+\!)?\d+(\.(\d)+)*((a|b|rc)(\d)+)?(\.post(\d)+)?(\.dev(\d)+)? syntax with regular expression

Versions & Download

Since 0.3.26rc1
Before you install AveyTense, ensure you have Python 3.8 or higher installed. Then run following command: >>> pip install aveytense pip command for AveyTense has been provided on 6th August 2024. In the result, AveyTense project will be installed, along with typing_extensions project. AveyTense requires typing_extensions 4.10.0 or higher. And you're set! If you happen to be out-of-date, use the command below: >>> pip install --upgrade aveytense Now you can import module aveytense! Before 0.3.40, main module was called tense. For backward compatibility, consider using the import statement in the following way: import as tense ≥ 0.3.40 import tense < 0.3.40
Before 0.3.26rc1
Versions preceding 0.3.26rc1 were able to be downloaded only as ZIP or 7Z files. Due to loose of support sooner or later, you are encouraged to download newer versions of AveyTense. To install older versions, scroll down and track versions before 0.3.26rc1 (7th August 2024).

Extracted files are preferred to be placed in the same directory as the folder you are working on; it isn't recommended to extract them to the site-packages Python folder, which hoards installed PyPi projects. Before AveyTense 0.3.30, there were 2 ways to install the library: with PyPi and with traditional zip/7-zip installation. Second method is no longer maintained, consider frequently updating the library via the command pip install --upgrade aveytense.

After orientation of publishing next versions of AveyTense to PyPi in version 0.3.30, subsequent updates are no longer available via file ./tense/information/changes.txt. Everything new is now provided in this Google document.
* planned upload date or AveyTense inclusions may be invalid and may differ in the official publications

Releases Upload date End-of-Life Languages Status Zip 7-Zip
0.3.50 PyPI: 12th Jul 2025 - Python - -
0.3.49 PyPI: 3rd Jul 2025 - Python - -
0.3.48 PyPI: 24th Jun 2025 - Python - -
0.3.47 PyPI: 12th Jun 2025 - Python - -
0.3.46 PyPI: 30th May 2025 - Python - -
0.3.45 PyPI: 16th May 2025 - Python - -
0.3.44 PyPI: 3rd May 2025 - Python - -
0.3.43 PyPI: 18th Apr 2025 - Python - -
0.3.42 PyPI: 2nd Apr 2025 - Python - -
0.3.41 PyPI: 14th Mar 2025 - Python - -
0.3.40 PyPI: 27th Feb 2025 - Python - -
0.3.39 PyPI: 14th Feb 2025 - Python - -
0.3.38 PyPI: 11th Feb 2025 - Python - -
0.3.37 PyPI: 9th Feb 2025 - Python - -
0.3.37a1 PyPI: 3rd Feb 2025 - Python - -
0.3.36 PyPI: 2nd Feb 2025 - Python - -
0.3.35 PyPI: 23rd Jan 2025 - Python - -
0.3.34 PyPI: 15th Jan 2025 - Python - -
0.3.33 PyPI: 25th Dec 2024 - Python - -
0.3.32 PyPI: 16th Dec 2024 - Python - -
0.3.31 PyPI: 8th Dec 2024 - Python - -
0.3.30 PyPI: 29th Nov 2024 - Python - -
0.3.29 3rd Dec 2024 * (as 0.3.28a2)
archive: 27th Nov 2024
PyPI: 27th Nov 2024
- Python Lend! Lend!
0.3.28 23rd Nov 2024 * (as 0.3.28a1)
archive: 23rd Nov 2024
PyPI: 23rd Nov 2024
- Python Lend! Lend!
0.3.27 13th Nov 2024 *
archive: 11th Nov 2024
PyPI: 22nd Nov 2024
- Python Lend! Lend!
0.3.27rc2 3rd Nov 2024 *
archive: 27th Oct 2024
PyPI: 27th Oct 2024
- Python Lend! Lend!
0.3.27rc1 23rd Oct 2024 *
archive: 19th Oct 2024
PyPI: 20th Oct 2024
- Python Lend! Lend!
0.3.27b3 13th Oct 2024 *
archive: 13th Oct 2024
PyPI: 13th Oct 2024
- Python Lend! Lend!
0.3.27b2 3rd Oct 2024 *
archive: 26th Sep 2024
PyPI: 26th Sep 2024
- Python Lend! Lend!
0.3.27b1 23rd Sep 2024 *
archive: 23rd Sep 2024
PyPI: 23rd Sep 2024
- Python Lend! Lend!
0.3.27a5 archive: 13th Sep 2024
PyPI: 13th Sep 2024
- Python Lend! Lend!
0.3.27a4 archive: 9th Sep 2024
PyPI: 9th Sep 2024
- Python Lend! Lend!
0.3.27a3 archive: 2nd Sep 2024
PyPI: 3rd Sep 2024
- Python Lend! Lend!
0.3.27a2 archive: 28th Aug 2024
PyPI: 29th Aug 2024
- Python Lend! Lend!
0.3.27a1 archive: 27th Aug 2024
PyPI: 27th Aug 2024
- Python Lend! Lend!
0.3.26 archive: 24th Aug 2024
PyPI: 26th Aug 2024
- Python Lend! Lend!
0.3.26rc3 archive: 21st Aug 2024
PyPI: 21st Aug 2024
- Python Lend! Lend!
0.3.26rc2 archive: 15th Aug 2024
PyPI: 16th Aug 2024
- Python, Java Lend! Lend!
0.3.26rc1 archive: 7th Aug 2024
PyPI: 7th Aug 2024
- Python, Java Lend! Lend!
0.3.26b3 29th Jul 2024 31st Aug 2025 Python, Java Lend! Lend!
0.3.26b2 25th Jul 2024 31st Aug 2025 Python, Java Lend! Lend!
0.3.26a4 24th Jul 2024 31st Aug 2025 Python, Java Lend! Lend!
0.3.26b1 23rd Jul 2024 31st Aug 2025 Python, Java Lend! Lend!
0.3.26a3 22nd Jul 2024 31st Aug 2025 Python, Java Lend! Lend!
0.3.26a2 21st Jul 2024 31st Aug 2025 Python, Java Lend! Lend!
0.3.26a1 20th Jul 2024 31st Aug 2025 Python, Java Lend!
0.3.25 19th Jul 2024 29th Jun 2025 Sass (CSS), TS, JS, C++, C#, Java, Python, PHP, Lua no support
0.3.24 29th Jun 2024 29th Jun 2025 Sass (CSS), TS, JS, C++, C#, Java, Python, PHP, Lua no support
0.3.23 18th Mar 2024 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.22 28th Jan 2024 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.21 10th Dec 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.20 16th Nov 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.19 21st Oct 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.18 27th Sep 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.17 13th Sep 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.16 2nd Sep 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.15 13th Aug 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.14 31st Jul 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.13 12th Jun 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.12 29th May 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.11 14th May 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.10 10th May 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.9 1st May 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.8 14th Apr 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.7 2nd Apr 2023 27th Nov 2024 Sass (CSS), JS + TS, C++, C#, Java, Python, PHP, Lua no support
0.3.6 26th Mar 2023 27th Nov 2024 Sass, TypeScript, C++, C#, Java, Python, PHP, Lua no support
0.3.5 5th Mar 2023 27th Nov 2024 Sass, TypeScript, C++, C#, Java, Python, PHP, Lua no support
0.3.4 23th Feb 2023 20th Jul 2024 Sass, TypeScript, C++, C#, Java, Python, PHP, Lua no support
0.3.3 14th Feb 2023 20th Jul 2024 Sass, TypeScript, C++, C#, Java, Python, PHP, Lua no support
0.3.2 5th Feb 2023 20th Jul 2024 Sass, TypeScript, C++, C#, Java, Python, PHP, Lua no support
0.3.1 30th Jan 2023 20th Jul 2024 Sass, TypeScript, C++, C#, Java, Python, PHP, Lua no support
0.3.0 18th Jan 2023 20th Jul 2024 Sass, TypeScript, C++, C#, Java, Python, PHP, Lua no support
0.2.16 15th Jan 2023 19th Jul 2024 Sass, TypeScript, C++, C#, Java, PHP, Lua no support
0.2.15 13th Jan 2023 19th Jul 2024 Sass, TypeScript, C++, C#, Java, PHP, Lua no support
0.2.14 9th Jan 2023 19th Jul 2024 Sass, TypeScript, C++, C#, Java, PHP, Lua no support
0.2.13 8th Jan 2023 19th Jul 2024 Sass, TypeScript, C++, C#, Java, PHP, Lua no support
0.2.12 6th Jan 2023 19th Jul 2024 Sass, TypeScript, C++, C#, Java, PHP, Lua no support
0.2.11 31st Dec 2022 19th Jul 2024 Sass, TypeScript, C++, C#, Java, PHP, Lua no support
0.2.10 28th Dec 2022 19th Jul 2024 Sass, TypeScript, C++, C#, Java, PHP, Lua no support
0.2.9 25th Dec 2022 19th Jul 2024 Sass, TypeScript, C++, C#, Java, PHP, Lua no support
0.2.8 23rd Dec 2022 19th Jul 2024 Sass, TypeScript, C++, C#, Java, PHP, Lua no support
0.2.7 18th Dec 2022 19th Jul 2024 TypeScript, C#, Java, PHP, Lua no support
0.2.6 13th Dec 2022 19th Jul 2024 TypeScript, C++, Java, PHP, Lua no support
0.2.5 9th Dec 2022 19th Jul 2024 TypeScript, C++, Java, PHP, Lua no support
0.2.4 3rd Dec 2022 2nd Sep 2023 TypeScript, C++, Java, PHP, Lua no support
0.2.3 29th Nov 2022 2nd Sep 2023 TypeScript, C++, Java, PHP, Lua no support
0.2.2 23th Nov 2022 2nd Sep 2023 TypeScript, C++, PHP, Lua no support
0.2.1 19th Nov 2022 5th Feb 2023 TypeScript, C++, PHP no support

AveyTense Declarations

As an explanation, there are symbols used to mark availability of all declarations:

Submodules

Note: local submodules preceded with underscore aren't counted in the list, since their components may be imported via public submodules anyway. Keep that on mind!
aveytense.constants (≥ 0.3.26rc3)
Math constants (since 0.3.35 also contains enum members to shorten code when providing these to specific functions)
aveytense.exceptions (≥ 0.3.44)
Provides custom exception classes
aveytense.extensions (≥ 0.3.24; < 0.3.26rc1)
Extensions of AveyTense, removed as it was useless and possibly unrelated. It was the submodule where tests on ANSIColor occurred, before class aveytense.Color replaced that class utterly.
aveytense.games (≥ 0.3.31; < 0.3.47)
Submodule for entertainment. Most declarations were affiliated with class Games, which is featured in this submodule. Removed to be in separate, projected PyPi project aveytense_games.
aveytense.operators (≥ 0.3.27a3)
Extension of operator Python standard library.
aveytense.primary (≥ 0.3.24; < 0.3.26rc3)
The submodule where abroad() and reckon() functions were defined; name changed so the submodule will be never imported. This allows to shorten the import statement (since only aveytense module import is required).
aveytense.tcs (≥ 0.3.25?; < 0.3.26rc3)
This submodule featured constants and types collection (also the meaning of this alias). It has been replaced by 2 different submodules: aveytense.constants and aveytense.types_collection.
aveytense.types_collection (≥ 0.3.27a4)
Features types from various Python libraries (including typing and enum) and abstract classes.
aveytense.util (≥ 0.3.34)
Contains utility classes to create abstract, final and frozen classes, abstract and final methods, as well as final variables.

Constants

Most constants since 0.3.35 are located in submodule aveytense.constants.
aveytense.constants.JS_MAX_SAFE_INTEGER (≥ 0.3.26b3)
Returns the greatest safe integer in JavaScript, thats 9007199254740991 (253 - 1). See also Number.MAX_SAFE_INTEGER. 0.3.50: this constant may occur as ~.Math.JS_MAX_SAFE_INTEGER rather than in current form.
aveytense.constants.JS_MAX_VALUE (≥ 0.3.26b3)
Returns the greatest number value that can be represented in JavaScript before evaluation hits Infinity, thats 21024 - 2971 (1.797693... * 10308; exact value). See also Number.MAX_VALUE. 0.3.50: this constant may occur as ~.Math.JS_MAX_VALUE rather than in current form.
aveytense.constants.JS_MIN_SAFE_INTEGER (≥ 0.3.26b3)
Returns the least safe integer in JavaScript, thats -9007199254740991 (-253 - 1). See also Number.MIN_SAFE_INTEGER. 0.3.50: this constant may occur as ~.Math.JS_MIN_SAFE_INTEGER rather than in current form.
aveytense.constants.JS_MIN_VALUE (≥ 0.3.26b3)
Returns the least number value that can be represented in JavaScript before evaluation hits 0, thats 2-1074 (4.940656... * 10-324; exact value). See also Number.MIN_VALUE. 0.3.50: this constant may occur as ~.Math.JS_MIN_VALUE rather than in current form.
aveytense.constants.MC_DURABILITY (≥ 0.3.26b3; < 0.3.41)
Returns duralibility of all tools in Minecraft as for version 1.21.5.

0.3.37: this constant is now instance of local class holding final properties representing items.
Earlier, it was a string-key-integer-value dictionary. 0.3.41: renamed this constant to ~.games.Minecraft.durability. aveytense.games submodule has been revoked in 0.3.47 to be in separate project aveytense_games. 0.3.41
aveytense.constants.MC_ENCHANTS (≥ 0.3.26b3; < 0.3.41)
Returns 42 (amount of enchantments in Minecraft as for version 1.21.5). 0.3.41: renamed this constant to ~.games.Minecraft.enchantments. aveytense.games submodule has been revoked in 0.3.47 to be in separate project aveytense_games. 0.3.41
aveytense.constants.SMASH_HIT_CHECKPOINTS (≥ 0.3.26b3; < 0.3.47)
Returns 13 (Smash Hit has 12 checkpoints + 1 endless). 0.3.47
aveytense.constants.STRING_BINARY (≥ 0.3.36)
Returns 0-1 in a string.
aveytense.constants.STRING_DIGITS (≥ 0.3.36)
Returns 0-9 in a string.
aveytense.constants.STRING_HEXADECIMAL (≥ 0.3.36)
Returns 0-9a-fA-F in a string.
aveytense.constants.STRING_LETTERS (≥ 0.3.36)
Returns a-zA-Z in a string.
aveytense.constants.STRING_LOWER (≥ 0.3.36)
Returns a-z in a string.
aveytense.constants.STRING_OCTAL (≥ 0.3.36)
Returns 0-7 in a string.
aveytense.constants.STRING_SPECIAL (≥ 0.3.36)
Returns all characters not being a letter nor digit, in a string.
aveytense.constants.STRING_UPPER (≥ 0.3.36)
Returns A-Z in a string.
aveytense.constants.VERSION (≥ 0.3.26b3; < 0.3.47)
Returns currently used version of AveyTense in a string. E.g. for 0.3.34 it will be "0.3.34". It is identical value as from PyPi.

0.3.36 0.3.47: Instead use aveytense.Tense.version.
aveytense.constants.VERSION_ID (≥ 0.3.26b3?; < 0.3.36)
Returns integer value being identifier of current version (counted via length of VERSION_LIST minus 1). This is helper constant along with VERSION_INFO; easier to inspect with if statements. For 0.3.34 it returns 70.

0.3.35: consider using VERSION_INFO instead. This constant is weak even, if it based on length of VERSION_LIST tuple.

0.3.36
aveytense.constants.VERSION_LIST (≥ 0.3.26b3; < 0.3.36)
Returns tuple of versions uploaded since version 0.2.1 (19th November 2022), including this version itself.

0.3.35: consider using VERSION_INFO instead. This constant seems to be enforced since not all versions are required to be included in a sequence, because they all appear on this page. It is also more difficult to inspect these versions via this constant anyway.

0.3.36
aveytense.constants.VERSION_INFO (≥ 0.3.26b3; < 0.3.47)
Returns tuple containing all version components concerning current version of AveyTense. This sequence consists of following segments: major, minor, micro, release level. If release level doesn't have value "final", then additional integer item known as serial is added. Sometimes, even if release is final, it may have value 0. E.g. for 0.3.34 it will be (0, 3, 34, "final"), meanwhile for 0.3.27rc1 it would be (0, 3, 27, "candidate", 1). Purpose of this constant is the same as inspection of sys.version_info with if statements.

0.3.35: renamed from VERSION_TUPLE to VERSION_INFO.

0.3.36

0.3.40: this constant is now instance of local class, which features more detailed information concerning currently used version of AveyTense. 0.3.47: Instead use aveytense.Tense.versionInfo.
type aveytense.constants.VERSION_INFO_TYPE (≥ 0.3.36; < 0.3.47)
Type of aveytense.constants.VERSION_INFO. Probable intend of this type was inspecting ~.constants.VERSION_INFO with isinstance() inbuilt function. It is worth noticing ~.constants.VERSION_INFO_TYPE refers to internal abstract class (~.constants._VERSION_INFO), and the class itself is abstract to disallow custom versioning via its constructor. 0.3.47: Instead use type(~.constants.VERSION_INFO)

Classes and type aliases

Classes are scattered around AveyTense library.
class aveytense.util.Abstract (≥ 0.3.26b3)
Creates an abstract class via inheritance.

This class is different to abc.ABC. abc.ABC class marks subclass abstract only when there are methods decorated with decorator @abc.abstractmethod. In case of ~.Abstract, class is always marked abstract, no matter if there are abstract methods or not (reference to abstract classes in JavaScript and PHP with abstract class keywords). The class doesn't inherit and isn't the same as abc.ABC, what means issubclass(~.Abstract, abc.ABC) returns False. Example how to create an abstract class:

from .util import Abstract class Test(Abstract): testTest() InitializedError: attempt to initialize an abstract class 'Test' 0.3.27rc1: the class is no longer experimental. Earlier, this class required following notation: class Test(~.Abstract, abstract = True). That notation came from local class typing._Final, and it isn't supported now. 0.3.34: moved this class from aveytense.types_collection to aveytense.util submodule. 0.3.40: this class is no longer a protocol class
class aveytense.util.AbstractFinal (≥ 0.3.27rc1)
Blend of classes ~.Abstract and ~.Final defined in the same submodule. This class creates abstract-final class via inheritance.

Abstract-final classes are only restricted to modify fields. Errors thrown by subclassing and initializing class object are the same as in ~.Abstract and ~.Final. ~.AbstractFinal is the same as: from .util import Abstract, Final class Test(Abstract, Final): 0.3.34: moved this class from aveytense.types_collection to aveytense.util submodule.
class aveytense.extensions.ANSIColor (≥ 0.3.24; < 0.3.26rc1)
Class based on ANSI escape code for colorizing purposes. Removed since formula ended after handover of class aveytense.Color.

0.3.26rc1
class aveytense.ChangeVar (≥ 0.3.26rc1)
Auxiliary class for creating sentinels inside loops, especially while.
class aveytense.Color (≥ 0.3.26rc1)
Deputy of aveytense.extensions.ANSIColor. This class allows to modify style for output.
abstract-final class aveytense.Colors (≥ 0.3.41)
Provides color palette from HTML. All members of this class are objects of class ~.RGB. All names are from this page. Attributes prefixed with mode256_ refer to 8-bit colors table from ANSI escape code article.
class aveytense.util.Final (≥ 0.3.26b3)
Creates a final class via inheritance. This class isn't clearly the same as local class typing._Final, because it doesn't use the _root passed in inheritance section.

Example how to create a final class: from .util import Final class Test(Final): class Test2(Test): SubclassedError: attempt to subclass a final class 'Test' 0.3.27rc1: the class is no longer experimental.

0.3.34: moved this class from aveytense.types_collection to aveytense.util submodule.
class aveytense.util.FinalVar (≥ 0.3.26rc1)
Creates a final variable. It's main job is to supersede typing.Final class, since it doesn't work as intended.

0.3.34: moved this class from aveytense.types_collection to aveytense.util submodule.

0.3.35: the class is no longer experimental.

0.3.38: objects of this class can now be inspected via aveytense.Tense.isFinalVar().
type aveytense.util.FinalVarType (≥ 0.3.38)
Type of aveytense.util.FinalVar; used in aveytense.Tense.isFinalVar() for type hinting.
Once instantiated, it will behave as initializing aveytense.util.FinalVar, what means example expression
FinalVar(2) == FinalVarType(2) returns True.
class aveytense.Math (≥ 0.3.25)
A class containing math methods and constants. Inherited by class aveytense.Tense.

Comparing to math module in Python, this class features polygonal number counting,
more trigonometrical methods, number verification methods and sequence checking.
In overall, this class is its extension.

All methods in the class are class methods.

Math constants

Constant Approximate value / Value
without fraction
Lifetime
~.Math.CENTILLION - / 10303 ≥ 0.3.25 (19th July 2024)
~.Math.E 2.71828 / 3 ≥ 0.3.25 (4th July 2024)
~.Math.INF - / - ≥ 0.3.25 (5th July 2024)
~.Math.NAN - / - ≥ 0.3.25 (5th July 2024)
~.Math.PI 3.14159 / 3 ≥ 0.3.25 (4th July 2024)
~.Math.SQRT2 1.41421 / 1 ≥ 0.3.25 (5th July 2024)
~.Math.TAU 6.28318 / 6 ≥ 0.3.25 (5th July 2024)

Trigonemetric functions

Normal
Class method name Equivalent to Lifetime Domain Possible values
~.Math.sin(x, /) - ≥ 0.3.25 (4th July 2024) x ∈ R ⟨-1; 1⟩
~.Math.cos(x, /) - ≥ 0.3.25 (4th July 2024) x ∈ R ⟨-1; 1⟩
~.Math.tan(x, /) sin xcos x ≥ 0.3.25 (4th July 2024) x ∈ R \ {k: k + 90 ∤ 90n}
(where n ∈ N \ {0})
R
~.Math.cot(x, /) 1tan x ≥ 0.3.25 (4th July 2024) x ∈ R \ {k: k ∤ 90}
R
~.Math.sec(x, /) 1cos x ≥ 0.3.25 (4th July 2024) x ∈ R \ {k: k + 90 ∤ 90n}
(where n ∈ N \ {0})
R \ (-1; 1)
~.Math.cosec(x, /) 1sin x ≥ 0.3.25 (4th July 2024) x ∈ R \ {k: k ∤ 180}
R \ (-1; 1)
Extended
Class method name Equivalent to Lifetime Domain Possible values
~.Math.versin(x, /) 1 - cos x ≥ 0.3.25 (4th July 2024) x ∈ R
⟨0; 2⟩
~.Math.vercos(x, /) 1 + cos x ≥ 0.3.25 (4th July 2024) x ∈ R ⟨0; 2⟩
~.Math.coversin(x, /) 1 - sin x ≥ 0.3.25 (4th July 2024) x ∈ R
⟨0; 2⟩
~.Math.covercos(x, /) 1 + sin x ≥ 0.3.25 (4th July 2024) x ∈ R
⟨0; 2⟩
~.Math.haversin(x, /) 1 - cos x2 ≥ 0.3.25 (4th July 2024) x ∈ R
⟨0; 1⟩
~.Math.havercos(x, /) 1 - sin x2 ≥ 0.3.25 (4th July 2024) x ∈ R
⟨0; 1⟩
~.Math.hacoversin(x, /) 1 + cos x2 ≥ 0.3.25 (4th July 2024) x ∈ R
⟨0; 1⟩
~.Math.hacovercos(x, /) 1 + sin x2 ≥ 0.3.25 (4th July 2024) x ∈ R
⟨0; 1⟩
~.Math.exsec(x, /) sec x - 1 ≥ 0.3.25 (5th July 2024) x ∈ R \ {k: k + 90 ∤ 90n}
(where n ∈ N \ {0})
⟨-2; 0⟩
~.Math.excosec(x, /) cosec x - 1 ≥ 0.3.25 (5th July 2024) x ∈ R \ {k: k ∤ 180}
⟨-2; 0⟩
Hyperbolic
Class method name Equivalent to Lifetime Domain Possible values
~.Math.sinh(x, /) ex - e-x2
≥ 0.3.25 (4th July 2024) x ∈ R R
~.Math.cosh(x, /) ex + e-x2
≥ 0.3.25 (4th July 2024) x ∈ R R
~.Math.tanh(x, /) sinh xcosh x
≥ 0.3.25 (4th July 2024) x ∈ R R
~.Math.coth(x, /) 1tanh x
≥ 0.3.46 (23rd May 2025) x ≠ 0 R
~.Math.sech(x, /) 1cosh x
≥ 0.3.46 (23rd May 2025) x ∈ R R
~.Math.cosech(x, /) 1sinh x
≥ 0.3.46 (23rd May 2025) x ≠ 0 R
Inverse
Class method name Equivalent to Lifetime Domain Possible values
~.Math.asin(x, /) sin-1 x
≥ 0.3.25 (4th July 2024) |x| ≤ 1
~.Math.acos(x, /) cos-1 x
≥ 0.3.25 (4th July 2024) |x| ≤ 1
~.Math.atan(x, /) tan-1 x
≥ 0.3.25 (4th July 2024) x ∈ R
~.Math.acot(x, /) cot-1 x
≥ 0.3.46 (23rd May 2025) x ∈ R
~.Math.asec(x, /) acos(1 ÷ x)
≥ 0.3.25 (4th July 2024) |x| > 1
~.Math.acosec(x, /) asin(1 ÷ x)
≥ 0.3.25 (4th July 2024) |x| > 1
~.Math.aversin(x, /) acos(1 - x)
≥ 0.3.25 (4th July 2024) x ∈ ⟨0; 2⟩
~.Math.avercos(x, /) asin(1 - x)
≥ 0.3.25 (4th July 2024) x ∈ ⟨0; 2⟩
~.Math.acoversin(x, /) acos(x - 1)
≥ 0.3.25 (4th July 2024) x ∈ ⟨0; 2⟩
~.Math.acovercos(x, /) acos(x - 1)
≥ 0.3.25 (4th July 2024) x ∈ ⟨0; 2⟩
~.Math.ahaversin(x, /) acos(1 - 2x)
≥ 0.3.25 (4th July 2024) x ∈ ⟨0; 1⟩
~.Math.ahavercos(x, /) acos(2x - 1)
≥ 0.3.25 (4th July 2024) x ∈ ⟨0; 1⟩
~.Math.ahacoversin(x, /) asin(1 - 2x)
≥ 0.3.25 (4th July 2024) x ∈ ⟨0; 1⟩
~.Math.ahacovercos(x, /) asin(2x - 1)
≥ 0.3.25 (4th July 2024) x ∈ ⟨0; 1⟩
~.Math.aexsec(x, /) asec(x + 1) ≥ 0.3.25 (5th July 2024) x ∉ (-2; 0)
~.Math.aexcosec(x, /) acosec(x + 1) ≥ 0.3.25 (5th July 2024) x ∉ (-2; 0)
class aveytense.games.Minesweeper (≥ 0.3.41; < 0.3.47)
Provides components for minesweeper game. Referred from Windows 7 Minesweeper. These components can be used with tkinter, from which AveyTense project resigned back on 0.3.36. 0.3.47: To be used in separate project aveytense_games.
class aveytense.util.ParamVar (≥ 0.3.42)
Extension of function inspect.getfullargspec(). Except looking for variable and non-variable parameters, it is also possible to receive type annotations of desired callable object, and overload pointer is included.
final-class aveytense.RGB (≥ 0.3.28)
Creates a RGB (red-green-blue) tuple.
final-class aveytense.RGBA (≥ 0.3.37)
Creates a RGBA (red-green-blue-alpha) tuple.
class aveytense.Tense (≥ 0.3.24)
Heart of AveyTense project. Contains many methods, including for math, time, checking types and utility.

All methods, except dunder ones, are class methods. If used via reference, dunder methods aren't
accessible, and will require the class instance. Instead, it is required to create an instance of this class
in order to access them.

0.3.26b3: this class is no longer final (can be subclassed).

0.3.24
abstract-final-class aveytense.TenseOptions (≥ 0.3.27a5)
Provides additional options influencing methods in class ~.Tense. All are variables, which can hold boolean values only.
Option name Lifetime Description
~.disableProbability2LengthLimit ≥ 0.3.31; < 0.3.46 It was applied to ~.Tense.probability2(). Allowed to remove the lengh limit related to sys.maxsize. This attribute was been removed in version 0.3.46, according to change occured in class methods ~.Tense.probability() and ~.Tense.probability2(). 0.3.46
~.initializationMessage ≥ 0.3.27a5; < 0.3.40 It was applied to constructor of ~.Tense. 0.3.40
~.insertionMessage ≥ 0.3.27b1 Applies to . 0.3.50
~.probabilityExtendedLength ≥ unavailable (0.3.27rc1 in code) Had to apply to ~.Tense.probability(). This variable was bound with usage of nested list in order to extend number support, bypassing sys.maxsize. This attribute was marked unrealized in version 0.3.46, according to change occured in class methods ~.Tense.probability2() and ~.Tense.probability().
0.3.50

Functions and decorators

Functions and decorators in AveyTense. Methods are included in classes.
aveytense.abroad(value1, /, value2 = None, modifier = None) (≥ 0.3.9)
Overall extension of range() function. The differences between range() and ~.abroad() functions are: Understanding this function might be more sophisticated than range(), but there are benefits:

0.3.10
aveytense.games.aeify(s, /) (≥ 0.3.9; < 0.3.24; ≥ 0.3.26a4; < 0.3.47)
This function converted all a and e letters occurrences into æ. Not recommended for terminals that don't read letters outside Latin-1 (ISO/IEC 8859-1 encoding). 0.3.47: To be used in separate project aveytense_games.
@aveytense.util.final (≥ 0.3.26b3)
Creates a final class. Equivalent to ~.Final, just used as decorator instead of base class.
@aveytense.util.finalmethod (≥ 0.3.27rc2)
Creates a final method. Equivalent to @typing.final.
class @aveytense.util.finalproperty (≥ 0.3.37)
Creates a final property accessible via class instance. This kind of properties cannot be modified nor deleted. To inspect these properties, it is advisable to use ~.Tense.isFinalProperty() class method. Usage with isinstance() Python function as isinstance(<class.attribute>, ~.util.finalproperty) works too. Using isinstance() as isinstance(<class.finalproperty>, property) returns False. Unlike for @property decorator, before 0.3.42, property created via ~.finalproperty decorator had typing.Any type hinted. Version 0.3.42 fixed this issue, but properties decorated with this class (~.finalproperty is actually a class) can have their values accessed via class reference too. Only in version 0.3.43 it has been fixed - and technique from 0.3.42 in method ~.Tense.isFinalProperty(), which required 2-item tuple with a type (class) and member name in a string is no longer required, however, will be kept for backward-compatibility. Since version 0.3.42 ~.finalproperty is generic class. Correct type hint was provided in 0.3.43.
class @aveytense.util.finalpropertycontainer(**properties) (≥ 0.3.43)
This class decorator creates class holding final properties, which values are assigned via variable keyword parameter properties to the affected class. If properties had keyword _static_ (with value True), affected class cannot be initialized, and can access all final properties via reference. If there are already attributes defined, and properties has the same names of attributes, these are overriden by these defined in properties. When _static_ has value True, internal code actually creates an object of the class, and in type hinting it isn't visible. 0.3.50: Marked experimental and not recommended to use; instead use @finalproperty.
aveytense.games.oeify(s, /) (≥ 0.3.9; < 0.3.24; ≥ 0.3.26a4; < 0.3.47)
This function converted all o and e letters occurrences into œ. Not recommended for terminals that don't read letters outside Latin-1 (ISO/IEC 8859-1 encoding). 0.3.47: To be used in separate project aveytense_games.
aveytense.games.owoify(s, /) (≥ 0.3.9; < 0.3.24; ≥ 0.3.25; < 0.3.47)
aveytense.games.uwuify(s, /) (≥ 0.3.27b2; < 0.3.47)
A joke function, which translated a string into a furry talk. Source here 0.3.47: To be used in separate project aveytense_games.
Site created by Aveyzan on 31st July 2022