Skip to main content

Python abstract data structure (ADT) extension

Project description

adt-extension

latest release

Python abstract data structure (ADT) extension.

Install:

pip install adt-extension

Import:

from adt_extension import Set, SwitchDict

Extensions

Currently the package have the ADT extensions:

Class Extension of Description
Set set Set with element type and validation rule.
SwitchDict dict Dictionary with the possibility of behavior of a switch case.

Set

Set with element type and validation rule for the elements that will be inserted into the set.

Example:

from adt_extension import Set

# A set with only even integers
set_int_even = Set(element_type=int, rule=lambda x: (x % 2 == 0))

# Elements that satisfies the element type and validation rule
set_int_even.update({4, 6})
# Elements that satisfies the element type, but not validation rule
set_int_even.update({5})
# Elements that not satisfies the element type
set_int_even.update({"qwe", True})

print(set_int_even)
# Output:
# Set({4, 6})

# Remove element type
set_int_even.element_type = None
# Remove validation rule
set_int_even.rule = None

SwitchDict

Dictionary with the possibility to perform a function or return a value when trying to access a nonexistent index in the dictionary class.

Example:

from adt_extension import SwitchDict

# Same behavior of a normal dictionary
switch_dict = SwitchDict({
    'Apartament': 125,
    'House': 250,
    'Condominium': 300,
})

# Add default case
switch_dict.default_case = 999

# List example
properties_list = [
    'Apartament',
    'House',
    'Condominium',
    'Treehouse',
    'Hotel',
]

# Get values
properties_values = [ switch_dict[ x ] for x in properties_list ]
print(properties_values)
# Output:
# [ 125, 250, 300, 999, 999 ]

# Remove default case, becomes a normal dictionary
switch_dict.default_case = None

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adt_extension-0.2.0-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file adt_extension-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: adt_extension-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 3.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for adt_extension-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d7434dc27223a4450f82092048a13d36d6e8a08102a04cd675b58bd5c48e96d1
MD5 793030ad88a3866b43a54ef340160657
BLAKE2b-256 71939660444043d6824949902b14574295b66c4a8737a2c7b6e7f24c63630fb7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page