Skip to main content

Allows you to store configuration in an SQLAlchemy database instead of configuration files. The API is close, but not exactly like configparser and it plugs right into any application that is already using a declarative SQLAlchemy model:

# create a new model to hold the configuration items
class ConfigSetting(Base, ConfigSettingMixin):
    __tablename__ = 'configuration'

# instantiate the model with your session
config = Config(ConfigSetting, session)

# now config sections will work like a regular dict
config['section_foo']['bar'] = 123

# values will be json-encoded before being stored (this can be changed)
# to persist changes, simply commit the session
session.commit()

A full, minimal example is a bit more verbose due to the required initial setup:

from sqlacfg import ConfigSettingMixin, Config
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()
Session = sessionmaker()

class ConfigSetting(Base, ConfigSettingMixin):
    __tablename__ = 'configuration'


# for this demonstration, we just create the db in memory
eng = create_engine('sqlite:///:memory:', echo=True)
Base.metadata.create_all(eng)

session = sessionmaker(bind=eng)()

config = Config(ConfigSetting, session)

config['base']['foo'] = 'bar'
config['base']['baz'] = 'baz'

print dict(config['base'].iteritems())

Metadata

Release files for sqlacfg 0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sqlacfg 0.3
File Size Uploaded
sqlacfg-0.3.tar.gz 3.0 kB Details

Release files / sqlacfg-0.3.tar.gz

Download URL sqlacfg-0.3.tar.gz
Size 3.0 kB
Tags Source
SHA-256 checksum
How to use checksums
595e3a6610fe29d6c31958eac39485335b57ecf890b07a7339cb9a199b5dd712
BLAKE2b-256 checksum
How to use checksums
b5e2ab90c015d58a33836dd3d13e3ce6328e98c324a34fbabfd1ee5d01b1df28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.3 This release

1 release file

0.2

1 release file

0.2.dev1

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