Skip to content

Commit

Permalink
v6.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Paebbels committed Jan 16, 2024
2 parents b16ce1e + d448ee3 commit eed2cde
Show file tree
Hide file tree
Showing 42 changed files with 509 additions and 178 deletions.
6 changes: 4 additions & 2 deletions doc/Packaging.rst
Expand Up @@ -97,20 +97,22 @@ PackageDescriptions

.. code-block:: Python
from setuptools import setup
from pathlib import Path
from pyTooling.Packaging import DescribePythonPackageHostedOnGitHub
packageName = "pyTooling.Packaging"
DescribePythonPackageHostedOnGitHub(
setup(**DescribePythonPackageHostedOnGitHub(
packageName=packageName,
description="A set of helper functions to describe a Python package for setuptools.",
gitHubNamespace="pyTooling",
keywords="Python3 setuptools package wheel installation",
sourceFileWithVersion=Path(f"{packageName.replace('.', '/')}/__init__.py"),
developmentStatus="beta",
pythonVersions=("3.8", "3.9", "3.10")
)
))
.. _PACKAGING/Descriptions/Python:
Expand Down
2 changes: 1 addition & 1 deletion doc/requirements.txt
@@ -1,6 +1,6 @@
-r ../requirements.txt

pyTooling >= 5.0.0, < 6.0
pyTooling ~= 6.0
colorama >= 0.4.6
ruamel.yaml >= 0.18.5
setuptools >= 69.0.0
Expand Down
14 changes: 12 additions & 2 deletions pyTooling/Attributes/ArgParse/Argument.py
Expand Up @@ -32,8 +32,18 @@
from pathlib import Path
from typing import Type

from pyTooling.Decorators import export
from . import CommandLineArgument
try:
from pyTooling.Decorators import export
from pyTooling.Attributes.ArgParse import CommandLineArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Attributes.ArgParse.Argument] Could not import from 'pyTooling.*'!")

try:
from Decorators import export
from Attributes.ArgParse import CommandLineArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Attributes.ArgParse.Argument] Could not import directly!")
raise ex


@export
Expand Down
14 changes: 12 additions & 2 deletions pyTooling/Attributes/ArgParse/BooleanFlag.py
Expand Up @@ -29,8 +29,18 @@
# SPDX-License-Identifier: Apache-2.0 #
# ==================================================================================================================== #
#
from pyTooling.Decorators import export
from .Argument import NamedArgument, ValuedArgument
try:
from pyTooling.Decorators import export
from pyTooling.Attributes.ArgParse.Argument import NamedArgument, ValuedArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Attributes.ArgParse.BooleanFlag] Could not import from 'pyTooling.*'!")

try:
from Decorators import export
from Attributes.ArgParse.Argument import NamedArgument, ValuedArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Attributes.ArgParse.BooleanFlag] Could not import directly!")
raise ex


@export
Expand Down
13 changes: 11 additions & 2 deletions pyTooling/Attributes/ArgParse/Flag.py
Expand Up @@ -31,9 +31,18 @@
#
from typing import Optional as Nullable

from pyTooling.Decorators import export
try:
from pyTooling.Decorators import export
from pyTooling.Attributes.ArgParse.Argument import NamedArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Attributes.ArgParse.Flag] Could not import from 'pyTooling.*'!")

from .Argument import NamedArgument
try:
from Decorators import export
from Attributes.ArgParse.Argument import NamedArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Attributes.ArgParse.Flag] Could not import directly!")
raise ex


@export
Expand Down
13 changes: 11 additions & 2 deletions pyTooling/Attributes/ArgParse/KeyValueFlag.py
Expand Up @@ -31,9 +31,18 @@
#
from typing import Optional as Nullable

from pyTooling.Decorators import export
try:
from pyTooling.Decorators import export
from pyTooling.Attributes.ArgParse.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Attributes.ArgParse.KeyValueFlag] Could not import from 'pyTooling.*'!")

from .Argument import NamedAndValuedArgument
try:
from Decorators import export
from Attributes.ArgParse.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Attributes.ArgParse.KeyValueFlag] Could not import directly!")
raise ex


@export
Expand Down
14 changes: 12 additions & 2 deletions pyTooling/Attributes/ArgParse/OptionalValuedFlag.py
Expand Up @@ -31,8 +31,18 @@
#
from typing import Optional as Nullable

from pyTooling.Decorators import export
from pyTooling.Attributes.ArgParse.Argument import NamedAndValuedArgument
try:
from pyTooling.Decorators import export
from pyTooling.Attributes.ArgParse.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Attributes.ArgParse.OptionalValuedFlag] Could not import from 'pyTooling.*'!")

try:
from Decorators import export
from Attributes.ArgParse.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Attributes.ArgParse.OptionalValuedFlag] Could not import directly!")
raise ex


@export
Expand Down
13 changes: 11 additions & 2 deletions pyTooling/Attributes/ArgParse/ValuedFlag.py
Expand Up @@ -31,9 +31,18 @@
#
from typing import Optional as Nullable

from pyTooling.Decorators import export
try:
from pyTooling.Decorators import export
from pyTooling.Attributes.ArgParse.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Attributes.ArgParse.ValuedFlag] Could not import from 'pyTooling.*'!")

from .Argument import NamedAndValuedArgument
try:
from Decorators import export
from Attributes.ArgParse.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Attributes.ArgParse.ValuedFlag] Could not import directly!")
raise ex


@export
Expand Down
24 changes: 18 additions & 6 deletions pyTooling/Attributes/ArgParse/__init__.py
Expand Up @@ -30,12 +30,24 @@
# ==================================================================================================================== #
#
from argparse import ArgumentParser, Namespace
from typing import Callable, Dict, Tuple, Any, TypeVar

from pyTooling.Decorators import export, readonly
from pyTooling.MetaClasses import ExtendedType
from pyTooling.Common import firstElement, firstPair
from pyTooling.Attributes import Attribute
from typing import Callable, Dict, Tuple, Any, TypeVar

try:
from pyTooling.Decorators import export, readonly
from pyTooling.MetaClasses import ExtendedType
from pyTooling.Common import firstElement, firstPair
from pyTooling.Attributes import Attribute
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Attributes.ArgParse] Could not import from 'pyTooling.*'!")

try:
from Decorators import export, readonly
from MetaClasses import ExtendedType
from Common import firstElement, firstPair
from Attributes import Attribute
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Attributes.ArgParse] Could not import directly!")
raise ex


M = TypeVar("M", bound=Callable)
Expand Down
12 changes: 11 additions & 1 deletion pyTooling/Attributes/__init__.py
Expand Up @@ -43,7 +43,17 @@
from types import MethodType, FunctionType, ModuleType
from typing import Callable, List, TypeVar, Dict, Any, Iterable, Union, Type, Tuple, Generator, ClassVar, Optional as Nullable

from pyTooling.Decorators import export, readonly
try:
from pyTooling.Decorators import export, readonly
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Attributes] Could not import from 'pyTooling.*'!")

try:
from Decorators import export, readonly
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Attributes] Could not import directly!")
raise ex


__all__ = ["Entity", "TAttr", "TAttributeFilter", "ATTRIBUTES_MEMBER_NAME"]

Expand Down
14 changes: 12 additions & 2 deletions pyTooling/CLIAbstraction/Argument.py
Expand Up @@ -36,9 +36,19 @@
"""
from abc import abstractmethod
from pathlib import Path
from typing import ClassVar, List, Union, Iterable, TypeVar, Generic, Tuple, Any, Dict, Optional as Nullable
from typing import ClassVar, List, Union, Iterable, TypeVar, Generic, Any, Optional as Nullable

try:
from pyTooling.Decorators import export, readonly
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Versioning] Could not import from 'pyTooling.*'!")

try:
from Decorators import export, readonly
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Versioning] Could not import directly!")
raise ex

from pyTooling.Decorators import export, readonly

__all__ = ["ValueT"]

Expand Down
19 changes: 14 additions & 5 deletions pyTooling/CLIAbstraction/BooleanFlag.py
Expand Up @@ -41,11 +41,20 @@
* For flags that have an optional value. |br|
|rarr| :mod:`~pyTooling.CLIAbstraction.NamedOptionalValuedFlag`
"""
from typing import ClassVar, Union, Iterable, Tuple, Any, Dict, Optional as Nullable

from pyTooling.Decorators import export

from pyTooling.CLIAbstraction.Argument import NamedArgument, ValuedArgument
from typing import ClassVar, Union, Iterable, Any, Optional as Nullable

try:
from pyTooling.Decorators import export
from pyTooling.CLIAbstraction.Argument import NamedArgument, ValuedArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Versioning] Could not import from 'pyTooling.*'!")

try:
from Decorators import export
from CLIAbstraction.Argument import NamedArgument, ValuedArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Versioning] Could not import directly!")
raise ex


@export
Expand Down
19 changes: 14 additions & 5 deletions pyTooling/CLIAbstraction/Command.py
Expand Up @@ -46,11 +46,20 @@
* For string arguments. |br|
|rarr| :class:`~pyTooling.CLIAbstraction.Argument.StringArgument`
"""
from typing import Tuple, Any, Dict

from pyTooling.Decorators import export

from pyTooling.CLIAbstraction.Argument import NamedArgument
from typing import Any

try:
from pyTooling.Decorators import export
from pyTooling.CLIAbstraction.Argument import NamedArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Versioning] Could not import from 'pyTooling.*'!")

try:
from Decorators import export
from CLIAbstraction.Argument import NamedArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Versioning] Could not import directly!")
raise ex


# TODO: make this class abstract
Expand Down
19 changes: 14 additions & 5 deletions pyTooling/CLIAbstraction/Flag.py
Expand Up @@ -41,11 +41,20 @@
* For flags that have an optional value. |br|
|rarr| :mod:`~pyTooling.CLIAbstraction.NamedOptionalValuedFlag`
"""
from typing import Tuple, Any, Dict

from pyTooling.Decorators import export

from pyTooling.CLIAbstraction.Argument import NamedArgument
from typing import Any

try:
from pyTooling.Decorators import export
from pyTooling.CLIAbstraction.Argument import NamedArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Versioning] Could not import from 'pyTooling.*'!")

try:
from Decorators import export
from CLIAbstraction.Argument import NamedArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Versioning] Could not import directly!")
raise ex


@export
Expand Down
16 changes: 13 additions & 3 deletions pyTooling/CLIAbstraction/KeyValueFlag.py
Expand Up @@ -41,13 +41,23 @@
* For flags that have an optional value. |br|
|rarr| :mod:`~pyTooling.CLIAbstraction.NamedOptionalValuedFlag`
"""
from typing import Union, Iterable, Dict, cast, Tuple, Any, Optional as Nullable
from typing import Union, Iterable, Dict, cast, Any, Optional as Nullable

from pyTooling.Decorators import export
try:
from pyTooling.Decorators import export
from pyTooling.CLIAbstraction.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Versioning] Could not import from 'pyTooling.*'!")

from pyTooling.CLIAbstraction import NamedAndValuedArgument
try:
from Decorators import export
from CLIAbstraction.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Versioning] Could not import directly!")
raise ex


@export
class NamedKeyValuePairsArgument(NamedAndValuedArgument, pattern="{0}{1}={2}"):
"""
Class and base-class for all KeyValueFlag classes, which represents a flag argument with key and value
Expand Down
19 changes: 14 additions & 5 deletions pyTooling/CLIAbstraction/OptionalValuedFlag.py
Expand Up @@ -34,11 +34,20 @@
.. TODO:: Write module documentation.
"""
from typing import ClassVar, Optional as Nullable, Union, Iterable, Tuple, Any, Dict, Optional as Nullable

from pyTooling.Decorators import export

from pyTooling.CLIAbstraction import NamedAndValuedArgument
from typing import ClassVar, Union, Iterable, Any, Optional as Nullable

try:
from pyTooling.Decorators import export
from pyTooling.CLIAbstraction.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Versioning] Could not import from 'pyTooling.*'!")

try:
from Decorators import export
from CLIAbstraction.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Versioning] Could not import directly!")
raise ex


@export
Expand Down
19 changes: 14 additions & 5 deletions pyTooling/CLIAbstraction/ValuedFlag.py
Expand Up @@ -45,11 +45,20 @@
* For list of valued flags. |br|
|rarr| :mod:`~pyTooling.CLIAbstraction.ValuedFlagList`
"""
from typing import Tuple, Any, Dict

from pyTooling.Decorators import export

from pyTooling.CLIAbstraction import NamedAndValuedArgument
from typing import Any

try:
from pyTooling.Decorators import export
from pyTooling.CLIAbstraction.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError): # pragma: no cover
print("[pyTooling.Versioning] Could not import from 'pyTooling.*'!")

try:
from Decorators import export
from CLIAbstraction.Argument import NamedAndValuedArgument
except (ImportError, ModuleNotFoundError) as ex: # pragma: no cover
print("[pyTooling.Versioning] Could not import directly!")
raise ex


@export
Expand Down

0 comments on commit eed2cde

Please sign in to comment.