Skip to main content

Collection of my Python and FastAPI shortcuts, snippets etc.

Project description

creyPY

My collection of Python and FastAPI shortcuts etc.

Installation

pip install creyPY -U

Versioning

This library uses Semantic Versioning.

FastAPI

This library installes fastapi and pydantic, as well as sqlalchemy for you. It also provides a sqlalchemy base class and companion pydantic schemas. Also there are some helper functions for FastAPI in creyPY.fastapi.app like generate_unique_id to generate unique operation IDs for the OpenAPI schema to work with code generators.

Database connection

The creyPY.fastapi.db module provides a Session class that can be used as a context manager to connect to a database. It exposes the SQLALCHEMY_DATABASE_URL variable for you to use. It uses the following environment variables:

  • POSTGRES_HOST: The host of the database
  • POSTGRES_PORT: The port of the database
  • POSTGRES_USER: The user of the database
  • POSTGRES_PASSWORD: The password of the database
  • POSTGRES_DB: The database name

Currently only PostgreSQL is supported. It creates a sync session, it is planned to add async support in the future. You can use this like this:

from creyPY.fastapi.db.session import get_db

async def test_endpoint(
    db: Session = Depends(get_db),
) -> Any:
    pass

Constants

The constants module contains a few enums that I use in my projects. The best way to understand this library is to look at the code (it's not that much). However for simplicity, here is a brief overview:

  • LanguageEnum: Contains all languages according to ISO 639
  • CountryEnum: Contains all countries according to ISO 3166
  • CurrencyEnum: Contains all accepted stripe currencies (Commented out are the Zero-decimal currencies, to avoid custom implementation)
  • StripeStatus: Contains all stripe payment statuses
  • GroupMode: Contains time group modes (e.g. day, week, month, year)

Usage example

from creyPY.const import LanguageEnum

print(LanguageEnum.EN) # Output: LanguageEnum.EN
print(LanguageEnum.EN.value) # Output: English

TODO

  • Add async support for database connection
  • Add version without postgresql dependency

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

creypy-2.0.0rc23.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

creyPY-2.0.0rc23-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file creypy-2.0.0rc23.tar.gz.

File metadata

  • Download URL: creypy-2.0.0rc23.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for creypy-2.0.0rc23.tar.gz
Algorithm Hash digest
SHA256 0d126ff12d305c399a34ee5ca876040a910e467a35f10c698fe49c943c096f32
MD5 32b603971c42c4c9f7a8bef36cb2d386
BLAKE2b-256 a7b289ad829cbbc7bd9f511c35ebd16b323d012b6473c48fb3f08bc4fab56d9f

See more details on using hashes here.

File details

Details for the file creyPY-2.0.0rc23-py3-none-any.whl.

File metadata

  • Download URL: creyPY-2.0.0rc23-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for creyPY-2.0.0rc23-py3-none-any.whl
Algorithm Hash digest
SHA256 afa1ccc7131f12b05897b4cf89f9b536336a5f369c7763b12b7a35c0f7ecd4dc
MD5 e6edbc93c4d40437864c48c1a6d68cb2
BLAKE2b-256 d1cd122dcd4b36531a0c00ba8bc07eab82edd8d5703355dd9ab69fd73b365ebf

See more details on using hashes here.

Supported by

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