Skip to main content

Exploring SQLAlchemy

Project description

General

Maintenance - intended Semantic Versioning - 2.0.0 License

CI

Test status Read the Docs Pre-Commit Code Style Black CodeCov

PyPI

PyPI - Package latest release PyPI - Supported Python Versions PyPI - Status PyPI - Format PyPI - Monthly downloads

Github

GitHub - Issue Counter GitHub - Top Language GitHub - Last Commit GitHub - PiPy Deployment

This project provides a sandbox to experiment with SQLAlchemy. This idea is to build an example sequentially in steps to give new users the idea on where to start and how to progress.

Along the way some principles will be exhibited. The code should be self-explanatory.

The source code in src by itself does not do much, it basically only defines the tables and some setup code. The “examples” are in the pytest's since we are experimenting to see howe it works and if it was successful.

References:

Installation

  1. Since this is intended for experimental purposes, it is recommended to create a virtual environment to experiment for installation.

  2. Set the following environment variables in the virtual environment. Set these in your IDE as well.

  3. Start Docker. The docker-rebuild.bat script will git docker up and running.

  4. The setup and installation is for Windows. Feel free to add contribute to get it running on Linux as well.

python -m venv ./sqlalchemyexample_venv
pip install sqlalchemyexample
pre-commit install
SET MYSQL_HOST=localhost
SET MYSQL_ROOT_PWD=N0tS0S3curePassw0rd
SET MYSQL_TCP_PORT_EXAMPLES=50002
SET SQLALCHEMY_SILENCE_UBER_WARNING=1
docker-rebuild.bat

Tests

  1. This project uses pytest to run tests.

  2. There are various settings combinations in the [tool.pytest.ini_options] section of the pyproject.toml file that can used by commenting it out.

  3. This project uses black to format code and flake8 for linting. We also support pre-commit to ensure these have been run. To configure your local environment please install these development dependencies and set up the commit hooks.

pytest

Contributing

Naming Conventions

  1. File names
    1. Not knowing what’s to come and what will be added, it is difficult to determine a naming convention for source, test and other file names. The owner will therefore be a “benevolent dictator” to rename and change names.

    2. Link the file name of the source code and the test so that it is easily linked.

  2. Branch names

    “enhancement” | “bug” | “hotfix”/< ticket_nr>_<description>

    where

    enhancement - Planned improvement or addition to functionality; non-urgent.

    bug - An error or defect causing incorrect or unexpected behavior; typically fixed in regular development cycles.

    hotfix - An urgent, critical fix applied directly to the live environment, often bypassing regular development cycles.

    ticket_nr: Ticket number assigned to the issue in GitHub. Once an issue is registered, the owner will assign a ticket.

    description: GitHub issue title or combination of titles is more than one issue is addressed.

Releasing

For the purpose of push and release of code two script files are included. Use there two files to files to make life a bit easier. The scripts make use of the gitit module to simplify tasks.

  1. push.bat - Use this script to push branches to GitHub repository. In principle it does the following:

    usage: push message

    e.g. push “Changed the Infinite Improbability Drive”

    1. .rst syntax check

    2. git add -A

    3. git commit -m message (with pre-commit including black and flake8)

    4. git push –all

  2. release.bat - Use this script to push a new tag and release to the GitHub repository. Remember to change the version number in the setup.cfg else the workflow will fail.

    usage: release version The version will match the release and the tag. Only issue a release once a push.bat was successful. In principle it does the following:

    e.g. release 1.2.3

    1. Commit the changes

    2. Create and push the release tag with the correct naming conventions.

    3. Checkout master since it assumes that the branch is now merged with master and will be deleted.

    4. display a list of all the current branches as a reminder to delete the branch on completion.

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

SQLAlchemyExample-0.1.45.tar.gz (27.1 kB view details)

Uploaded Source

Built Distribution

SQLAlchemyExample-0.1.45-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file SQLAlchemyExample-0.1.45.tar.gz.

File metadata

  • Download URL: SQLAlchemyExample-0.1.45.tar.gz
  • Upload date:
  • Size: 27.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for SQLAlchemyExample-0.1.45.tar.gz
Algorithm Hash digest
SHA256 0bd19d7d061fa00e8bcc6bafe6abe3aad78cb9ffe1d07b488390a15adcf0a8fb
MD5 45e93260021088c02837f88d827a542e
BLAKE2b-256 dc0414739ad36631e531d79d07f8f6addf9caf5fcd92ff448584adf5c72bad5d

See more details on using hashes here.

File details

Details for the file SQLAlchemyExample-0.1.45-py3-none-any.whl.

File metadata

File hashes

Hashes for SQLAlchemyExample-0.1.45-py3-none-any.whl
Algorithm Hash digest
SHA256 7992ae5a9891a284b332df6febb4864d90b9eeff6d46a1115d61be11056a1712
MD5 eea3b65d681087e2ded624ad19d88e86
BLAKE2b-256 628cdba6d435ba776385cf6f3fd75e35b9713d06cb38328a1de10ccb3dbe0b05

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