diff env/lib/python3.7/site-packages/aenum/README @ 0:26e78fe6e8c4 draft

"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author shellac
date Sat, 02 May 2020 07:14:21 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/env/lib/python3.7/site-packages/aenum/README	Sat May 02 07:14:21 2020 -0400
@@ -0,0 +1,221 @@
+aenum --- support for advanced enumerations, namedtuples, and constants
+===========================================================================
+
+Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples,
+and NamedConstants
+
+aenum includes a Python stdlib Enum-compatible data type, as well as a
+metaclass-based NamedTuple implementation and a NamedConstant class.
+
+An Enum is a set of symbolic names (members) bound to unique, constant
+values. Within an enumeration, the members can be compared by identity, and
+the enumeration itself can be iterated over.  If using Python 3 there is
+built-in support for unique values, multiple values, auto-numbering, and
+suspension of aliasing (members with the same value are not identical), plus
+the ability to have values automatically bound to attributes.
+
+A NamedTuple is a class-based, fixed-length tuple with a name for each
+possible position accessible using attribute-access notation as well as the
+standard index notation.
+
+A NamedConstant is a class whose members cannot be rebound; it lacks all other
+Enum capabilities, however; consequently, it can have duplicate values.
+
+
+Module Contents
+---------------
+
+``NamedTuple``
+^^^^^^^^^^^^^^
+   Base class for ``creating NamedTuples``, either by subclassing or via it's
+   functional API.
+
+``Constant``
+^^^^^^^^^^^^
+   Constant class for creating groups of constants.  These names cannot be rebound
+   to other values.
+
+``Enum``
+^^^^^^^^
+   Base class for creating enumerated constants.  See section ``Enum Functional API``
+   for an alternate construction syntax.
+
+``IntEnum``
+^^^^^^^^^^^
+   Base class for creating enumerated constants that are also subclasses of ``int``.
+
+``AutoNumberEnum``
+^^^^^^^^^^^^^^^^^^
+   Derived class that automatically assigns an ``int`` value to each member.
+
+``OrderedEnum``
+^^^^^^^^^^^^^^^
+   Derived class that adds ``<``, ``<=``, ``>=``, and ``>`` methods to an ``Enum``.
+
+``UniqueEnum``
+^^^^^^^^^^^^^^
+   Derived class that ensures only one name is bound to any one value.
+
+``IntFlag``
+^^^^^^^^^^^
+   Base class for creating enumerated constants that can be combined using
+   the bitwise operators without losing their ``IntFlag`` membership.
+   ``IntFlag`` members are also subclasses of ``int``.
+   
+``Flag``
+^^^^^^^^
+   Base class for creating enumerated constants that can be combined using
+   the bitwise operations without losing their ``Flag`` membership.
+
+``unique``
+^^^^^^^^^^
+   Enum class decorator that ensures only one name is bound to any one value.
+
+``constant``
+^^^^^^^^^^^^
+   Descriptor to add constant values to an ``Enum``
+
+``convert``
+^^^^^^^^^^^
+   Helper to transform target global variables into an ``Enum``.
+
+``enum``
+^^^^^^^^
+   Helper for specifying keyword arguments when creating ``Enum`` members.
+
+``export``
+^^^^^^^^^^
+   Helper for inserting ``Enum`` members into a namespace (usually ``globals()``.
+
+``extend_enum``
+^^^^^^^^^^^^^^^
+   Helper for adding new ``Enum`` members after creation.
+
+``module``
+^^^^^^^^^^
+   Function to take a ``Constant`` or ``Enum`` class and insert it into
+   ``sys.modules`` with the affect of a module whose top-level constant and
+   member names cannot be rebound.
+
+``skip``
+^^^^^^^^
+   Descriptor to add a normal (non-``Enum`` member) attribute to an ``Enum``
+   or ``Constant``.
+
+
+Creating an Enum
+----------------
+
+Enumerations can be created using the ``class`` syntax, which makes them
+easy to read and write.  To define an enumeration, subclass ``Enum`` as
+follows::
+
+    >>> from aenum import Enum
+    >>> class Color(Enum):
+    ...     RED = 1
+    ...     GREEN = 2
+    ...     BLUE = 3
+
+The ``Enum`` class is also callable, providing the following functional API::
+
+    >>> Animal = Enum('Animal', 'ANT BEE CAT DOG')
+    >>> Animal
+    <enum 'Animal'>
+    >>> Animal.ANT
+    <Animal.ANT: 1>
+    >>> Animal.ANT.value
+    1
+    >>> list(Animal)
+    [<Animal.ANT: 1>, <Animal.BEE: 2>, <Animal.CAT: 3>, <Animal.DOG: 4>]
+
+Note that ``Enum`` members are boolean ``True`` unless the ``__nonzero__``
+(Python 2) or ``__bool__`` (Python 3) method is overridden to provide
+different semantics.
+
+
+Creating a Flag
+---------------
+
+``Flag`` (and ``IntFlag``) has members that can be combined with each other
+using the bitwise operators (&, \|, ^, ~).  ``IntFlag`` members can be combined
+with ``int`` and other ``IntFlag`` members.  While it is possible to specify
+the values directly it is recommended to use ``auto`` as the value and let
+``(Int)Flag`` select an appropriate value::
+
+    >>> from enum import Flag
+    >>> class Color(Flag):
+    ...     RED = auto()
+    ...     BLUE = auto()
+    ...     GREEN = auto()
+    ...
+    >>> Color.RED & Color.GREEN
+    <Color.0: 0>
+    >>> bool(Color.RED & Color.GREEN)
+    False
+    >>> Color.RED | Color.BLUE
+    <Color.RED|BLUE: 3>
+
+If you want to name the empty flag, or various combinations of flags, you may::
+
+    >>> class Color(Flag):
+    ...     BLACK = 0
+    ...     RED = auto()
+    ...     BLUE = auto()
+    ...     GREEN = auto()
+    ...     WHITE = RED | BLUE | GREEN
+    ...
+    >>> Color.BLACK
+    <Color.BLACK: 0>
+    >>> Color.WHITE
+    <Color.WHITE: 7>
+
+Note that ``(Int)Flag`` zero-value members have the usual boolean value of
+``False``.
+
+
+Creating NamedTuples
+--------------------
+
+Simple
+^^^^^^
+
+The most common way to create a new NamedTuple will be via the functional API::
+
+    >>> from aenum import NamedTuple
+    >>> Book = NamedTuple('Book', 'title author genre', module=__name__)
+
+Advanced
+^^^^^^^^
+
+The simple method of creating ``NamedTuples`` requires always specifying all
+possible arguments when creating instances; failure to do so will raise
+exceptions.
+
+However, it is possible to specify both docstrings and default values when
+creating a ``NamedTuple`` using the class method::
+
+    >>> class Point(NamedTuple):
+    ...     x = 0, 'horizontal coordinate', 0
+    ...     y = 1, 'vertical coordinate', 0
+    ...
+    >>> Point()
+    Point(x=0, y=0)
+
+
+Creating Constants
+------------------
+
+``Constant`` is similar to ``Enum``, but do not support the ``Enum``
+protocols, and have no restrictions on duplications::
+
+    >>> class K(Constant):
+    ...     PI = 3.141596
+    ...     TAU = 2 * PI
+    ...
+    >>> K.TAU
+    6.283192
+
+More Information
+----------------
+
+Detailed documentation can be found at `<aenum/doc/aenum.rst>`_