Skip to main content

No project description provided

Project description

SQLSymphony

A simple and powerful ORM library in Python


SQLSymphony: The elegant and powerful SQLite3 ORM for Python

SQLSymphony is a lightweight โœจ, powerful ๐Ÿ’ช, and high-performanceโšก๏ธ, Object-Relational Mapping (ORM) library for Python, designed to simplify the interaction with SQLite3 databases. It provides a Pythonic, object-oriented interface that allows developers to focus on their application's bussiness logic rather than the underlying database management.

SQLSymphony ORM - powerful and simple ORM for python

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Key              โ”ƒ Value           โ”ƒ Description          โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ Version          โ”‚ 0.1.0           โ”‚ Stable               โ”‚
โ”‚ Author           โ”‚ alexeev-prog    โ”‚ Maintainer&Developer โ”‚
โ”‚ License          โ”‚ GNU GPL v3      โ”‚ License of library   โ”‚
โ”‚ Language         โ”‚ Python 3.12.7   โ”‚ Main language        โ”‚
โ”‚ PyPi pep package โ”‚ sqlsymphony_orm โ”‚ Package name         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐ŸŒŸ Comparison with Alternatives

Feature SqlSymphony SQLAlchemy Peewee
๐Ÿ’ซ Simplicity โœ”๏ธ โœ”๏ธ โŒ
๐Ÿš€ Performance โœ”๏ธ โŒ โœ”๏ธ
๐ŸŒ Database Agnosticism โŒ โœ”๏ธ โŒ
๐Ÿ“š Comprehensive Documentation โœ”๏ธ โœ”๏ธ โœ”๏ธ
๐Ÿ”ฅ Active Development โœ”๏ธ โœ”๏ธ โŒ

๐Ÿค” Why Choose SqlSymphony?

โœจ Simplicity: SqlSymphony offers a straightforward and intuitive API for performing CRUD operations, filtering, sorting, and more, making it a breeze to work with databases in your Python projects.

๐Ÿ’ช Flexibility: The library is designed to be database-agnostic, allowing you to switch between different SQLite3 implementations without modifying your codebase.

โšก๏ธ Performance: SqlSymphony is optimized for performance, leveraging techniques like lazy loading and eager loading to minimize database queries and improve overall efficiency.

๐Ÿ“š Comprehensive Documentation: SqlSymphony comes with detailed documentation, including usage examples and API reference, to help you get started quickly and efficiently.

๐Ÿ” Maintainability: The codebase follows best practices in software engineering, including principles like SOLID, Clean Code, and modular design, ensuring the library is easy to extend and maintain.

๐Ÿงช Extensive Test Coverage: SqlSymphony is backed by a comprehensive test suite, ensuring the library's reliability and stability.

๐Ÿ“š Key Features

  • Intuitive API: Pythonic, object-oriented interface for interacting with SQLite3 databases.
  • Database Agnosticism: Seamlessly switch between different SQLite3 implementations.
  • Performance Optimization: Lazy loading, eager loading, and other techniques for efficient database queries.
  • Comprehensive Documentation: Detailed usage examples and API reference to help you get started.
  • Modular Design: Clean, maintainable codebase that follows best software engineering practices.
  • Extensive Test Coverage: Robust test suite to ensure the library's reliability and stability.

๐Ÿš€ Getting Started

To install SqlSymphony, use pip:

pip install sqlsymphony_orm

Once installed, you can start using the library in your Python projects. Check out the documentation for detailed usage examples and API reference.

๐Ÿ’ป Usage Examples

Creating a Model

from sqlsymphony_orm.datatypes.fields import IntegerField, CharField
from sqlsymphony_orm.models.orm_models import Model


class User(Model):
	__tablename__ = 'Users'
	__database__ = 'users.db'

	id = IntegerField(primary_key=True)
	name = CharField(max_length=32, unique=True)

	def __repr__(self):
		return f'<User {self.id}>'

Performing CRUD Operations

Create a new record
user = User(name='Charlie')
user.save()

user2 = User(name='John')
user2.save()

print(user.objects.fetch())
Update record
user2 = User(name="Carl")
user2.save()

user2.update(name="Bobby")

print(user.objects.fetch())
Delete record
user = User(name="Charlie")
user.save()

user2 = User(name="Carl")
user2.save()

user3 = User(name="John")
user3.save()

user3.delete() # delete user3
# OR
user3.delete(field_name="name", field_value="Carl") # delete user2

print(user.objects.fetch())
Filter
user = User(name="Charlie")
user.save()

user2 = User(name="Carl")
user2.save()

user2.update(name="Bobby")

user3 = User(name="John")
user3.save()

user3.delete()

print(user.objects.fetch())
print(user.objects.filter(name="Bobby"))

๐Ÿค Contributing

We welcome contributions from the community! If you'd like to help improve SqlSymphony, please check out the contributing guidelines to get started.

๐Ÿ’ฌ Support

If you encounter any issues or have questions about SqlSymphony, please:

โ˜‘๏ธ Todos

  • Create Migrations system and Migrations Manager
  • Create ForeignKey field

๐Ÿ”ฎ Roadmap

Our future goals for SqlSymphony include:

  • ๐Ÿ“š Expanding support for more SQLite3 features
  • ๐Ÿš€ Improving performance through further optimizations
  • โœ… Enhancing the testing suite and code coverage
  • ๐ŸŒ Translating the documentation to multiple languages
  • ๐Ÿ”ง Implementing advanced querying capabilities
  • ๐Ÿš€ Add asynchronous operation mode
  • โ˜‘๏ธ Add more fields

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

sqlsymphony_orm-0.1.3.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

sqlsymphony_orm-0.1.3-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file sqlsymphony_orm-0.1.3.tar.gz.

File metadata

  • Download URL: sqlsymphony_orm-0.1.3.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.7 Linux/6.11.1-1-cachyos

File hashes

Hashes for sqlsymphony_orm-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a69f5871904432c9408c7f84320d4cdf234658b09ca2de42fc877ca44aa1eda3
MD5 e24477cd820048e02a2f13fd4c606c2e
BLAKE2b-256 8235e0d960475225ca9be454d19dee16b80563e6547773d1ea9ad07b85519b47

See more details on using hashes here.

File details

Details for the file sqlsymphony_orm-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: sqlsymphony_orm-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.7 Linux/6.11.1-1-cachyos

File hashes

Hashes for sqlsymphony_orm-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 358ab14fe91dfa1610ee4badeb395c57fba16d4b6a713faed5f0d4521f996ff4
MD5 99092a9476f9a2b2c7c78f14dc7d1c29
BLAKE2b-256 8a4ca54fc1c2f7a27908492f46d22a7fbdbf359547d8b68941829d77fdf55aa7

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