(XLOFT) X-Library of tools
Project description
XLOFT
(XLOFT) X-Library of tools.
The collection is represented by three modules of `NamedTuple`, `AliasDict`, `Converters`, `ItIs`.
In the future, new tools can be added.
Installation
uv add xloft
Usage
- NamedTuple
"""This class imitates the behavior of the `named tuple`."""
from xloft import NamedTuple
nt = NamedTuple(x=10, y="Hello", _id="507c7f79bcf86cd7994f6c0e")
# or
d = {"x": 10, "y": "Hello", "_id": "507c7f79bcf86cd7994f6c0e"}
nt = NamedTuple(**d)
nt.x # => 10
nt.y # => Hello
nt._id # => 507c7f79bcf86cd7994f6c0e
nt.z # => raise: KeyError
nt["x"] # => 10
nt["y"] # => Hello
nt["_id"] # => 507c7f79bcf86cd7994f6c0e
nt["z"] # => KeyError
nt.get("x") # => 10
nt.get("y") # => Hello
nt.get("_id") # => 507c7f79bcf86cd7994f6c0e
nt.get("z") # => None
len(nt) # => 3
list(nt.keys()) # => ["x", "y", "_id"]
list(nt.values()) # => [10, "Hello", "507c7f79bcf86cd7994f6c0e"]
nt.has_key("x") # => True
nt.has_key("y") # => True
nt.hsa_key("_id") # => True
nt.has_key("z") # => False
nt.has_value(10) # => True
nt.has_value("Hello") # => True
nt.has_value("507c7f79bcf86cd7994f6c0e") # => True
nt.has_value([1, 2, 3]) # => False
d = nt.to_dict()
d["x"] # => 10
d.get("y") # => Hello
d.get("z") # => None
for key, val in nt.items():
print(f"Key: {key}, Value: {val}")
nt.update("x", 20)
nt.update("y", "Hi")
nt.update("_id", "new_id")
nt.x # => 20
nt.y # => Hi
nt._id # => new_id
nt.update("z", [1, 2, 3]) # => raise: KeyError
nt["x"] # => raise: KeyError
nt["y"] # => raise: KeyError
nt["_id"] # => raise: KeyError
nt["z"] # => raise: KeyError
nt["x"] = 20 # => TypeError
nt["y"] = "Hi" # => TypeError
nt["_id"] = "new_id" # => TypeError
nt["z"] = [1, 2, 3] # => TypeError
nt.x = 20 # => raise: AttributeDoesNotSetValueError
nt.y = "Hi" # => raise: AttributeDoesNotSetValueError
nt._id = "new_id" # => raise: AttributeDoesNotSetValueError
nt.z = [1, 2, 3] # => raise: AttributeDoesNotSetValueError
del nt.x # => raise: AttributeCannotBeDeleteError
del nt.y # => raise: AttributeCannotBeDeleteError
del nt._id # => raise: AttributeCannotBeDeleteError
- AliasDict
"""Pseudo dictionary with supports aliases for keys."""
from xloft import AliasDict
d = AliasDict()
# or
data = [
({"English", "en"}, "lemmatize_en_all"),
({"Russian", "ru"}, "lemmatize_ru_all"),
({"German", "de"}, "lemmatize_de_all"),
({"five", 5}, "Five it's me!"),
]
d = AliasDict(data)
len(d) # => 4
#
d["English"] # => "lemmatize_en_all"
d["en"] # => "lemmatize_en_all"
d["EN"] # => KeyError
#
d.get("English") # => "lemmatize_en_all"
d.get("en") # => "lemmatize_en_all"
d.get("EN") # => None
#
d.add({"Turkish", "tr"}, "libstemmer_tr")
d.get("Turkish") # => "libstemmer_tr"
d.get("tr") # => "libstemmer_tr"
#
d.update(5, "Hello world!")
d.get("five") # => "Hello world!"
d.get(5) # => "Hello world!"
#
d.add_alias(5, "five stars") # or -> d.add_alias("five", "five stars")
d.get("five stars") # => "Hello world!"
#
d.delete_alias("five stars")
d.get("five stars") # => None
#
d.delete(5)
d.get("five") # => None
d.get(5) # => None
#
d.has_key("English") # => True
d.has_key("en") # => True
d.has_key("EN") # => False
#
d.has_value("lemmatize_en_all") # True
d.has_value(6) # False
#
# items() -> `Generator[tuple[list[str | int | float], Any]]`
for aliases, value in d.items():
print(f"Aliases of key: {aliases}, Value: {value}")
#
list(d.keys()) # => ["English", "en", "Russian", "ru", "German", "de", "Turkish", "tr"]
#
list(d.values()) # => ["lemmatize_en_all", "lemmatize_ru_all", "lemmatize_de_all", "libstemmer_tr"]
- Converters
"""Convert the number of bytes into a human-readable format."""
from xloft import to_human_size, int_to_roman, roman_to_int
# from xloft.converters import to_human_size, int_to_roman, roman_to_int
to_human_size(200) # => 200 bytes
to_human_size(1048576) # => 1 MB
to_human_size(1048575) # => 1023.999 KB
#
int_to_roman(1994) # => MCMXCIV
roman_to_int("MCMXCIV") # => 1994
- ItIs
"""Check if a string is a number."""
from xloft import is_number, is_palindrome
# from xloft.itis import is_number, is_palindrome
is_number("") # => False
is_number(" ") # => False
is_number("1230.") # => False
is_number("0x5") # => False
is_number("0o5") # => False
is_number("-5.0") # => True
is_number("+5.0") # => True
is_number("5.0") # => True
is_number(".5") # => True
is_number("5.") # => True
is_number("3.4E+38") # => True
is_number("3.4E-38") # => True
is_number("1.7E+308") # => True
is_number("1.7E-308") # => True
is_number("-1.7976931348623157e+308") # => True
is_number("1.7976931348623157e+308") # => True
is_number("72028601076372765770200707816364342373431783018070841859646251155447849538676") # => True
is_number("-72028601076372765770200707816364342373431783018070841859646251155447849538676") # => True
#
is_palindrome("racecar") # True
is_palindrome("Go hang a salami, I'm a lasagna hog") # True
is_palindrome("22022022") # True
is_palindrome("Gene") # False
is_palindrome("123") # False
is_palindrome(123) # TypeError
is_palindrome("") # ValueError
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
xloft-0.10.11-py3-none-any.whl
(13.2 kB
view details)
File details
Details for the file xloft-0.10.11-py3-none-any.whl.
File metadata
- Download URL: xloft-0.10.11-py3-none-any.whl
- Upload date:
- Size: 13.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"42","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e1ce4435cb484228a48a6d0c2fe3aca109943526163f7ad48e7fe37790a8589
|
|
| MD5 |
c2ddbd8b7c1265f6701b8b1f485b8fe4
|
|
| BLAKE2b-256 |
d7043f6f6adae13082713935b2052477b477f6b2f2a2422e3643046e8e49b207
|