Skip to main content

Alpha

Alpha is intended to be the first dependency you need to add to your Python application. It is a Python library which contains standard building blocks that can be used in applications that are used as APIs and/or make use of database interaction.

Badges

PyPI version PyPI Downloads Build Status Supported Python versions Coverage Status uv mypy Pytest PEP8 Ruff Documentation Status MIT License Sponsor

TL;DR

Alpha provides a comprehensive set of tools for building Python applications that interact with APIs and databases, including API code generation, authentication and authorization, database access layers, error handling, logging, and more. It is designed to be the first dependency you add to your project, providing a solid foundation for your application's architecture.

Documentation

Full documentation is available at alpha-python.readthedocs.io.

Installation

The library is still in development, but you can already install it using pip:

pip install alpha-python

If you want to use the alpha cli for generating API code, you can install it using pip as well:

pip install alpha-python[api-generator]

If you want to add the library to your API project, you can add it to your pyproject.toml file:

# Poetry example
poetry add alpha-python --extras "flask, postgresql"
poetry add --dev alpha-python --extras "api-generator"

# UV example
uv add alpha-python --extra flask --extra postgresql
uv add --dev alpha-python --extra api-generator

Features

  • API code generation
  • Authentication and authorization
  • Database interaction
  • Logging
  • Error handling
  • And much more!

Usage

The library contains many components. Below are a few practical examples that map to the guides in the documentation.

1) API code generation using OpenAPI spec

alpha api gen --spec-file specification/openapi.yaml --service-package my_app

alpha api run --port 8080

2) Authenticate with Keycloak (OIDC)

from alpha import KeyCloakOIDCConnector, KeyCloakProvider, PasswordCredentials

keycloak_connector = KeyCloakOIDCConnector(
	base_url="https://keycloak.example.com",
	realm="myrealm",
	client_id="myclient",
	client_secret="myclientsecret",
)

keycloak_provider = KeyCloakProvider(connector=keycloak_connector)

credentials = PasswordCredentials(username="user1", password="user1_password")
identity = keycloak_provider.authenticate(credentials)

3) Query data using SqlAlchemyDatabase + SqlAlchemyRepository

from alpha import SqlAlchemyDatabase, SqlAlchemyRepository
from my_app import User

db = SqlAlchemyDatabase(conn_str="postgresql://user:password@localhost:5432/mydatabase")

with db.get_session() as session:
	users = SqlAlchemyRepository[User](session=session, default_model=User)
	user = users.get_by_id(1)

4) Use Unit of Work for transactional operations

from alpha import (
	RepositoryModel,
	SqlAlchemyDatabase,
	SqlAlchemyRepository,
	SqlAlchemyUnitOfWork,
)
from my_app import User, OrmMapper

db = SqlAlchemyDatabase(..., mapper=OrmMapper)
repositories = [
	RepositoryModel(
		name="users",
		repository=SqlAlchemyRepository[User],
		default_model=User,
	)
]

uow = SqlAlchemyUnitOfWork(db=db, repos=repositories)

with uow:
	user = uow.users.get_by_id(1)

See also:

Contributing

If you want to contribute to the development of this library, you can fork the repository and create a pull request with your changes.

Support

If Alpha saves you time in production, consider supporting development by buying me a coffee! Your support helps me to continue improving the library and adding new features. Thank you!

License

This library is licensed under the MIT License. See the LICENSE file for more information.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alpha_python-0.7.6.tar.gz (122.4 kB view details)

Uploaded Source

Built Distribution

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

alpha_python-0.7.6-py3-none-any.whl (164.6 kB view details)

Uploaded Python 3

File details

Details for the file alpha_python-0.7.6.tar.gz.

File metadata

  • Download URL: alpha_python-0.7.6.tar.gz
  • Upload date:
  • Size: 122.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for alpha_python-0.7.6.tar.gz
Algorithm Hash digest
SHA256 721faef5a6880ad8f7d2270eabc920d262fdf05beeaf54d3d1cda4a3522609c0
MD5 7e72d937efee70fa9a37452a72a2c67e
BLAKE2b-256 d98064617fefb0848e8eb11738224ad3fcdb25998f63662854fb9d2bcc4f7f3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for alpha_python-0.7.6.tar.gz:

Publisher: python-publish.yml on BReijling/alpha

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file alpha_python-0.7.6-py3-none-any.whl.

File metadata

  • Download URL: alpha_python-0.7.6-py3-none-any.whl
  • Upload date:
  • Size: 164.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for alpha_python-0.7.6-py3-none-any.whl
Algorithm Hash digest
SHA256 23e8854c8f4551b3db4358ebb8da87bc4f2f1bb43ca472e341af8d35ee0073a0
MD5 2afcd2456cc1b583d205ae522155777f
BLAKE2b-256 b9e74f870ce20a491b068fb85e9c69323d27a8f2160e6e60392592c341a3fea7

See more details on using hashes here.

Provenance

The following attestation bundles were made for alpha_python-0.7.6-py3-none-any.whl:

Publisher: python-publish.yml on BReijling/alpha

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.7.7

2 files

This release

0.7.6 This release

2 files

0.7.5

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page