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.9.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.9.tar.gz.
File metadata
- Download URL: codetable-1.0.9.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 |
7eb8ff3c5ddad085b6938ee1043e9fbcb33c433cc344d7eaa855306b807c9f9f
|
|
| MD5 |
9186470184fb61e4eabd52b92b47aa2d
|
|
| BLAKE2b-256 |
364aab914bd23858c2a0a4151c9885b8132d7a287b073037e794056899f905f4
|
File details
Details for the file codetable-1.0.9-py3-none-any.whl.
File metadata
- Download URL: codetable-1.0.9-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 |
e064551789ee61d8188dfd2a30af24443aae45f79b9102ccde1140a243383e55
|
|
| MD5 |
44863f93b11ce8b256263829c5f1795f
|
|
| BLAKE2b-256 |
5ffeeda7b22e09d5f0a26c715c03206643772c998db5a51afb229170f18b7066
|