Skip to main content

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


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)

Uploaded Source

Built Distribution

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

codetable-1.0.9-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

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

Hashes for codetable-1.0.9.tar.gz
Algorithm Hash digest
SHA256 7eb8ff3c5ddad085b6938ee1043e9fbcb33c433cc344d7eaa855306b807c9f9f
MD5 9186470184fb61e4eabd52b92b47aa2d
BLAKE2b-256 364aab914bd23858c2a0a4151c9885b8132d7a287b073037e794056899f905f4

See more details on using hashes here.

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

Hashes for codetable-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 e064551789ee61d8188dfd2a30af24443aae45f79b9102ccde1140a243383e55
MD5 44863f93b11ce8b256263829c5f1795f
BLAKE2b-256 5ffeeda7b22e09d5f0a26c715c03206643772c998db5a51afb229170f18b7066

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