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 databasePOSTGRES_PORT
: The port of the databasePOSTGRES_USER
: The user of the databasePOSTGRES_PASSWORD
: The password of the databasePOSTGRES_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
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
Built Distribution
File details
Details for the file creypy-2.1.0.tar.gz
.
File metadata
- Download URL: creypy-2.1.0.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27b485c7f9447c02a560c6cab5d902b7e1f21de13ca6cf18b9e142b733f161dc |
|
MD5 | 036a73e230bffb777b09b22fece9ac97 |
|
BLAKE2b-256 | 50cb4e65fbbaf04122df6c28be7b298cae8050022a4f2f17b99fd13b81e7b564 |
Provenance
The following attestation bundles were made for creypy-2.1.0.tar.gz
:
Publisher:
ci.yml
on creyD/creyPY
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
creypy-2.1.0.tar.gz
- Subject digest:
27b485c7f9447c02a560c6cab5d902b7e1f21de13ca6cf18b9e142b733f161dc
- Sigstore transparency entry: 150792776
- Sigstore integration time:
- Predicate type:
File details
Details for the file creyPY-2.1.0-py3-none-any.whl
.
File metadata
- Download URL: creyPY-2.1.0-py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64e2f5711e7a6db9badde270349aa028394fdc3d7d9a91939bdf11f484586de1 |
|
MD5 | 1dd2237365c7d973bcd0db8c4be57489 |
|
BLAKE2b-256 | 609d8c57fcd11a4b72d4d2bcf5f9107ede06262658260d3bd336058f4fe9a430 |
Provenance
The following attestation bundles were made for creyPY-2.1.0-py3-none-any.whl
:
Publisher:
ci.yml
on creyD/creyPY
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
creypy-2.1.0-py3-none-any.whl
- Subject digest:
64e2f5711e7a6db9badde270349aa028394fdc3d7d9a91939bdf11f484586de1
- Sigstore transparency entry: 150792777
- Sigstore integration time:
- Predicate type: