Codetable is a lightweight package for seamlessly setting up codes, such as those used in API responses.
Project description
from codetable import Code, Codes, CodesStorage, msg
codes_storage = CodesStorage()
class UserErrorCodes(Codes):
NAMESPACE: str = "user"
EXPORT_TO: CodesStorage = codes_storage # For example, export status codes to global storage for use in frontend translations.
ALREADY_EXISTS: str
DOES_NOT_EXIST: Code = msg("User does not exist.")
print("# UserErrorCodes.ALREADY_EXISTS\n")
print("code:", UserErrorCodes.ALREADY_EXISTS)
print("\n# UserErrorCodes.DOES_NOT_EXIST\n")
print("obj:", UserErrorCodes.DOES_NOT_EXIST)
print("code:", UserErrorCodes.DOES_NOT_EXIST.code)
print("msg:", UserErrorCodes.DOES_NOT_EXIST.msg)
print("\n# UserErrorCodes.export_codes()\n")
print(UserErrorCodes.export_codes())
class CatCodes(Codes):
NAMESPACE: str = "cat"
EXPORT_TO: CodesStorage = codes_storage # We don't call export_codes here, but it will still be exported due to the presence of EXPORT_TO. export_codes is run automatically when EXPORT_TO is present.
NOT_HUNGRY: Code = msg("Cat is not hungry!")
print("\n# codes_storage\n")
print(codes_storage)
print("\n# codes_storage.to_json()")
print("# !!! You can change ident by passing an argument !!!\n")
print(codes_storage.to_json())
print("\n# codes_storage.to_dict()\n")
print(codes_storage.to_dict())
# # UserErrorCodes.ALREADY_EXISTS
# code: user_already_exists
# # UserErrorCodes.DOES_NOT_EXIST
# obj: Code(code='user_does_not_exist', msg='User does not exist.')
# code: user_does_not_exist
# msg: User does not exist.
# # UserErrorCodes.export_codes()
# {'user_already_exists': None, 'user_does_not_exist': 'User does not exist.'}
# # codes_storage
# CodesStorage(storage={'user_already_exists': None, 'user_does_not_exist': 'User does not exist.', 'cat_not_hungry': 'Cat is not hungry!'})
# # codes_storage.to_json()
# # !!! You can change ident by passing an argument !!!
# {
# "user_already_exists": null,
# "user_does_not_exist": "User does not exist.",
# "cat_not_hungry": "Cat is not hungry!"
# }
# # codes_storage.to_dict()
# {'user_already_exists': None, 'user_does_not_exist': 'User does not exist.', 'cat_not_hungry': 'Cat is not hungry!'}
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 Distribution
codetable-1.0.8.tar.gz
(4.6 kB
view details)
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
File details
Details for the file codetable-1.0.8.tar.gz.
File metadata
- Download URL: codetable-1.0.8.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75bfe9a380f5c086c3ef6d47b73265d5b589f251e3d5a50ad3a39323081445b4
|
|
| MD5 |
be91bc4dbe8c035165e37f30b93aca93
|
|
| BLAKE2b-256 |
fb4129ea875886c537e012205b6a085da4fff6ad507053f908a5b1f0cba04cb9
|
File details
Details for the file codetable-1.0.8-py3-none-any.whl.
File metadata
- Download URL: codetable-1.0.8-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5817cd8f492998c14697d1a6e8ce726e9d27996cddd005c8822c92a067dba71c
|
|
| MD5 |
87e796346cf01b22bdbdc0beee9ba06a
|
|
| BLAKE2b-256 |
13247102a488760a1b50272a089b2397dba103f83fcf83f5062ea531365b2a41
|